From 0c54ebfe43c642a819cbe2c52032e44e8d05ab20 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Wed, 26 Jun 2024 17:15:41 +0900 Subject: [PATCH 01/20] feat: vector map requirement proposal --- .cspell.json | 2 +- .../design/autoware-architecture/map/index.md | 4 +- .../map/map-requirements/assets/vm-01-01.svg | 168 ++ .../map/map-requirements/assets/vm-01-02.svg | 194 ++ .../map-requirements/assets/vm-01-03_1.svg | 265 ++ .../map-requirements/assets/vm-01-03_2.svg | 257 ++ .../map-requirements/assets/vm-01-03_3.svg | 318 +++ .../map-requirements/assets/vm-01-04_1.svg | 631 +++++ .../map-requirements/assets/vm-01-04_2.svg | 246 ++ .../map-requirements/assets/vm-01-04_3.svg | 314 +++ .../map-requirements/assets/vm-01-05_1.svg | 415 +++ .../map-requirements/assets/vm-01-05_2.svg | 178 ++ .../map-requirements/assets/vm-01-05_3.svg | 282 ++ .../map-requirements/assets/vm-01-06_1.svg | 454 +++ .../map-requirements/assets/vm-01-06_2.svg | 109 + .../map-requirements/assets/vm-01-06_3.svg | 71 + .../map-requirements/assets/vm-01-07_1.svg | 249 ++ .../map-requirements/assets/vm-01-07_2.svg | 142 + .../map-requirements/assets/vm-01-08_1.svg | 416 +++ .../map-requirements/assets/vm-01-08_2.svg | 197 ++ .../map-requirements/assets/vm-01-09_1.svg | 100 + .../map-requirements/assets/vm-01-09_2.svg | 213 ++ .../map-requirements/assets/vm-01-10_1.svg | 410 +++ .../map-requirements/assets/vm-01-10_2.svg | 405 +++ .../map-requirements/assets/vm-01-10_3.svg | 302 ++ .../map-requirements/assets/vm-01-11_1.svg | 455 +++ .../map-requirements/assets/vm-01-11_2.svg | 554 ++++ .../map-requirements/assets/vm-01-11_3.svg | 545 ++++ .../map-requirements/assets/vm-01-12_1.svg | 466 ++++ .../map-requirements/assets/vm-01-12_2.svg | 457 +++ .../map-requirements/assets/vm-01-12_3.svg | 387 +++ .../map-requirements/assets/vm-01-13_1.svg | 452 +++ .../map-requirements/assets/vm-01-13_2.svg | 272 ++ .../map-requirements/assets/vm-01-14_1.svg | 468 ++++ .../map-requirements/assets/vm-01-14_2.svg | 260 ++ .../map-requirements/assets/vm-01-14_3.svg | 191 ++ .../map-requirements/assets/vm-01-15_1.svg | 297 ++ .../map-requirements/assets/vm-01-15_2.svg | 431 +++ .../map-requirements/assets/vm-01-15_3.svg | 239 ++ .../map-requirements/assets/vm-01-16_2.svg | 333 +++ .../map-requirements/assets/vm-01-17_1.svg | 217 ++ .../map-requirements/assets/vm-01-17_2.svg | 408 +++ .../map-requirements/assets/vm-01-18_2.svg | 316 +++ .../map-requirements/assets/vm-01-19_1.svg | 542 ++++ .../map-requirements/assets/vm-01-19_2.svg | 302 ++ .../map-requirements/assets/vm-02-01_1.svg | 281 ++ .../map-requirements/assets/vm-02-01_2.svg | 141 + .../map-requirements/assets/vm-02-01_3.svg | 93 + .../map-requirements/assets/vm-02-02_1.svg | 142 + .../map-requirements/assets/vm-02-02_2.svg | 315 +++ .../map-requirements/assets/vm-03-02_1.svg | 222 ++ .../map-requirements/assets/vm-03-02_2.svg | 674 +++++ .../map-requirements/assets/vm-03-03_1.svg | 789 ++++++ .../map-requirements/assets/vm-03-03_2.svg | 689 +++++ .../map-requirements/assets/vm-03-03_3.svg | 699 +++++ .../map-requirements/assets/vm-03-04_1.svg | 898 ++++++ .../map-requirements/assets/vm-03-04_2.svg | 777 ++++++ .../map-requirements/assets/vm-03-04_3.svg | 661 +++++ .../map-requirements/assets/vm-03-05_1.svg | 777 ++++++ .../map-requirements/assets/vm-03-05_2.svg | 699 +++++ .../map-requirements/assets/vm-03-05_3.svg | 722 +++++ .../map-requirements/assets/vm-03-06_1.svg | 2472 +++++++++++++++++ .../map-requirements/assets/vm-03-06_2.svg | 2329 ++++++++++++++++ .../map-requirements/assets/vm-03-07_1.svg | 1681 +++++++++++ .../map-requirements/assets/vm-03-07_2.svg | 1347 +++++++++ .../map-requirements/assets/vm-03-07_3.svg | 1343 +++++++++ .../map-requirements/assets/vm-03-08_1.svg | 1077 +++++++ .../map-requirements/assets/vm-03-09_1.svg | 769 +++++ .../map-requirements/assets/vm-03-10_1.svg | 1794 ++++++++++++ .../map-requirements/assets/vm-03-10_2.svg | 864 ++++++ .../map-requirements/assets/vm-03-10_3.svg | 875 ++++++ .../map-requirements/assets/vm-03-11_1.svg | 1583 +++++++++++ .../map-requirements/assets/vm-03-11_2.svg | 722 +++++ .../map-requirements/assets/vm-03-11_3.svg | 601 ++++ .../map-requirements/assets/vm-03-13_1.svg | 558 ++++ .../map-requirements/assets/vm-03-13_2.svg | 498 ++++ .../map-requirements/assets/vm-03-14_1.svg | 921 ++++++ .../map-requirements/assets/vm-03-14_2.svg | 807 ++++++ .../map-requirements/assets/vm-03-15_1.png | Bin 0 -> 3365 bytes .../map-requirements/assets/vm-03-15_2.svg | 269 ++ .../map-requirements/assets/vm-03-15_3.svg | 346 +++ .../map-requirements/assets/vm-04-01_1.svg | 731 +++++ .../map-requirements/assets/vm-04-01_2.svg | 813 ++++++ .../map-requirements/assets/vm-04-02_1.svg | 654 +++++ .../map-requirements/assets/vm-04-03_1.svg | 590 ++++ .../map-requirements/assets/vm-05-01_1.svg | 161 ++ .../map-requirements/assets/vm-05-02_1.svg | 121 + .../map-requirements/assets/vm-05-03_2.svg | 248 ++ .../map-requirements/assets/vm-05-04_1.svg | 181 ++ .../map-requirements/assets/vm-06-01_1.svg | 405 +++ .../map-requirements/assets/vm-06-01_2.svg | 132 + .../map-requirements/assets/vm-06-01_3.svg | 1236 +++++++++ .../map-requirements/assets/vm-06-02_1.svg | 168 ++ .../map-requirements/assets/vm-06-02_2.svg | 236 ++ .../map-requirements/assets/vm-06-03_1.svg | 156 ++ .../map-requirements/assets/vm-06-03_2.svg | 236 ++ .../map-requirements/assets/vm-06-04_1.svg | 320 +++ .../map-requirements/assets/vm-06-04_2.svg | 383 +++ .../map-requirements/assets/vm-06-05_1.svg | 657 +++++ .../map-requirements/assets/vm-07-01_1.svg | 409 +++ .../map-requirements/assets/vm-07-01_2.svg | 321 +++ .../map/map-requirements/assets/vm-07-03.svg | 166 ++ .../map-requirements/assets/vm-07-03_1.png | Bin 0 -> 154615 bytes .../map-requirements/assets/vm-07-03_2.png | Bin 0 -> 154579 bytes .../assets/vm-07-04_height_en.svg | 188 ++ .../map/map-requirements/category_area.md | 151 + .../map-requirements/category_crosswalk.md | 119 + .../map-requirements/category_intersection.md | 423 +++ .../map/map-requirements/category_lane.md | 453 +++ .../map/map-requirements/category_others.md | 98 + .../map-requirements/category_stop_line.md | 45 + .../category_traffic_light.md | 92 + .../map/map-requirements/overview.md | 82 + 113 files changed, 53340 insertions(+), 4 deletions(-) create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_1.png create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_1.png create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_2.png create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_area.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_intersection.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_lane.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_others.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_stop_line.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/overview.md diff --git a/.cspell.json b/.cspell.json index 0cd761eb370..3ea0e5c9222 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,3 +1,3 @@ { - "words": ["ISCLOAM"] + "words": ["ISCLOAM", "georeferenced", "MGRS"] } diff --git a/docs/design/autoware-architecture/map/index.md b/docs/design/autoware-architecture/map/index.md index b5607e5196d..5e337af5612 100644 --- a/docs/design/autoware-architecture/map/index.md +++ b/docs/design/autoware-architecture/map/index.md @@ -87,9 +87,7 @@ The vector cloud map must be supplied as a file with the following requirements: - Each lanelet in the map must contain traffic rule information including its speed limit, right of way, traffic direction, associated traffic lights, stop lines, and traffic signs. - It must cover the entire operational area of the vehicle. -!!! warning - - Under Construction +For detailed specifications on Vector Map creation, please refer to [Vector Map Creation Requirement Specification document](./map-requirements/overview.md). ### Projection Information diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg new file mode 100644 index 00000000000..420a99ff4c3 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left_bound + + right_bound + + + + Lanelet + subtype:road + location:urban + one_way=yes + + + + + direction + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg new file mode 100644 index 00000000000..1c86539a065 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg new file mode 100644 index 00000000000..ad6166ab74b --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg new file mode 100644 index 00000000000..6f5b77e1a5b --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring is sharedamong Lanelets + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg new file mode 100644 index 00000000000..23742b69f78 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring is NOT sharedamong Lanelets + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg new file mode 100644 index 00000000000..bfdf2fd503b --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg @@ -0,0 +1,631 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + road centerline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg new file mode 100644 index 00000000000..0027d0ae60f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring:Two lanelets refer tothe same linestring. + + + + + + + + Two Lanelets are the same length. + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg new file mode 100644 index 00000000000..25936cebff2 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring:Two lanelets do NOT referto the same linestring. + + + + + + + + + + + + + + + + + + + + + + + + Two Lanelets are NOT the samelength. + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg new file mode 100644 index 00000000000..3c07776215a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg @@ -0,0 +1,415 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + road + + road shoulder + + + + + + + + road centerline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg new file mode 100644 index 00000000000..419f06f9c26 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg new file mode 100644 index 00000000000..f9a375b4bfd --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + + + + + + + The connection to otherlanelets is not straight-line. + + + + uneven and not smooth + + + + + Line does not followthe road boundary. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg new file mode 100644 index 00000000000..6b910f8031f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + road centerline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg new file mode 100644 index 00000000000..5b1752ae7cc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + Linestring + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg new file mode 100644 index 00000000000..ac0736e3a7d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg new file mode 100644 index 00000000000..d8d3a6fa3e7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg new file mode 100644 index 00000000000..34d54f03a3e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + Linestring + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg new file mode 100644 index 00000000000..c7997874bc3 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg new file mode 100644 index 00000000000..163bab78da4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + Linestring + + + + + + + + + + + + + 0.5 m + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg new file mode 100644 index 00000000000..bee3a0ddd71 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + Speed limit road sign + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg new file mode 100644 index 00000000000..fa4f5589ed8 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road + tag: speed_limit = 20 + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg new file mode 100644 index 00000000000..e71aaa32f67 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg new file mode 100644 index 00000000000..3ca962b6ac7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + + + + Lanelet + centerline + + + + + + + + + + Smooth shape that vehiclescan drive on + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg new file mode 100644 index 00000000000..a0e4e2f8761 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Not smooth + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg new file mode 100644 index 00000000000..9c663f2a3cf --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg new file mode 100644 index 00000000000..38a3823f059 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + Linestrings connected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg new file mode 100644 index 00000000000..391e1f0b5c4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg @@ -0,0 +1,545 @@ + + + + + + + + + + + + + Not connected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg new file mode 100644 index 00000000000..78c737c54cc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg @@ -0,0 +1,466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg new file mode 100644 index 00000000000..dffeaaa089e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg @@ -0,0 +1,457 @@ + + + + + + + + + + + + + + + + + The start and end of the linestring (centerline)are placed in the center of the lanelet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg new file mode 100644 index 00000000000..0705ba1ab09 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg @@ -0,0 +1,387 @@ + + + + + + + + + + + + + The start and end of the linestring (centerline)are NOT placed in the center of the lanelet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg new file mode 100644 index 00000000000..c7034fb085d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg @@ -0,0 +1,452 @@ + + + + + + + + + + + + + Single lane road + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg new file mode 100644 index 00000000000..1af07b0c4fb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + + + Two Lanelets include thesame Linestring. + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg new file mode 100644 index 00000000000..981bdddf1a1 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg @@ -0,0 +1,468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + outward + + return + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg new file mode 100644 index 00000000000..5f292a9536f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + Lanelet (outward) + + + + subtype: road + tag: oneway = yes + + + + + + + + + Lanelet (return) + + + + subtype: road + tag: oneway = yes + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg new file mode 100644 index 00000000000..43e30448184 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Example of incorrect:The area is divided into two parts,left and right, and Lanelets areplaced side by side. + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg new file mode 100644 index 00000000000..a7a5bcf4249 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + off road + + sidewalk + + road shoulder + + road + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg new file mode 100644 index 00000000000..0fce0e76ab8 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg @@ -0,0 +1,431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road_shoulder + tag: oneway = yes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring between roadshoulder and sidewalk + subtype: road_border + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg new file mode 100644 index 00000000000..49979516c84 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + Example of noroad shoulder + + + + + + + + + + + + + + + + + + + + + + side strip + + off road + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg new file mode 100644 index 00000000000..317338965a4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road_shoulder + tag: oneway = yes + + + + + + + + + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg new file mode 100644 index 00000000000..e1a2d8bc768 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + side strip + + off road + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg new file mode 100644 index 00000000000..0ca124b39b7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:pedestrian_lane + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring between side stripand off road + subtype: road_border + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg new file mode 100644 index 00000000000..3bfb23eef5c --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road_shoulder + tag: oneway = yes + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg new file mode 100644 index 00000000000..62a0c090a07 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + off road + + + intersecting walkway + + + + + + road shoulder + + road + + + + + + + + + + + + + + private area + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg new file mode 100644 index 00000000000..06304425cc5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:walkway + + + + private area + + + + + + + + + + + + + + + + + + 3m + 3m + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg new file mode 100644 index 00000000000..3eedd1c8545 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + stop line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg new file mode 100644 index 00000000000..680360977fc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:stop_line + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg new file mode 100644 index 00000000000..b92df0ea685 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg new file mode 100644 index 00000000000..c7aed19e0e2 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg new file mode 100644 index 00000000000..80056d5e9fc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:stop_line + + + + + + + + + Linestring + type:traffic_signsubtype: stop_sign + + + + + + + type: regulatory_element + subtype: traffic_sign + + + + + Lanelet + subtype:road + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg new file mode 100644 index 00000000000..590157232eb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg new file mode 100644 index 00000000000..dad73e0b69d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg @@ -0,0 +1,674 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + tag: + turn_direction:left + + + + Lanelet + tag: + turn_direction:straight + + + + Lanelet + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type: virtual + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg new file mode 100644 index 00000000000..372e8d25ecb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg new file mode 100644 index 00000000000..f69a2156004 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The lanelet has a constantwidth and the linestring has a smooth curve + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg new file mode 100644 index 00000000000..1ef5cf7ddc3 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg @@ -0,0 +1,699 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The lanelet doesn't havea constant width and thelinestring doesn't have asmooth curve + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg new file mode 100644 index 00000000000..beddf486f07 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg @@ -0,0 +1,898 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg new file mode 100644 index 00000000000..25aecd81648 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg @@ -0,0 +1,777 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + You must create all laneletswithin the intersection + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg new file mode 100644 index 00000000000..91c9a8a4a15 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg @@ -0,0 +1,661 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Your creation is incomplete. + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg new file mode 100644 index 00000000000..cedeb38ef70 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg @@ -0,0 +1,777 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg new file mode 100644 index 00000000000..5940dfb1364 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg @@ -0,0 +1,699 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The lane consists of asingle lanelet from theentrance to the exit ofthe intersection. + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg new file mode 100644 index 00000000000..8db46e89b61 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg @@ -0,0 +1,722 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Lane consists ofseveral lanelets from theentrance to the exit ofthe intersection. + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg new file mode 100644 index 00000000000..7ae4d8eb19f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg @@ -0,0 +1,2472 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + guide line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg new file mode 100644 index 00000000000..0b6d23adfc0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg @@ -0,0 +1,2329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:virtual + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:virtual + + + + + + + + + + + + When diverging a Lanelet, the divergenceshall begin at the end of the guide line. + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg new file mode 100644 index 00000000000..ba16f5816f5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg @@ -0,0 +1,1681 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg new file mode 100644 index 00000000000..ac721be1d3f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg @@ -0,0 +1,1347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg new file mode 100644 index 00000000000..cc4bf0a87f1 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg @@ -0,0 +1,1343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg new file mode 100644 index 00000000000..b7683fc55d4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg @@ -0,0 +1,1077 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet connectionboundary + + + + + + road_border + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg new file mode 100644 index 00000000000..252d2acd45a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg @@ -0,0 +1,769 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stop line + + + + + + + + + + + Use the extended linefrom one end of thestop line as a laneletconnection boundaryin the intersection + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg new file mode 100644 index 00000000000..08899d16ddf --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg @@ -0,0 +1,1794 @@ + + + + + + + + + + + + + + + + The vehicle turns right. + + The vehicle turns left. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg new file mode 100644 index 00000000000..d0ceb2fdaea --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg @@ -0,0 +1,864 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + regulatory_element + subtype:right_of_way + + + + + + yield lane + + + right_of_way + (priority lane) + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg new file mode 100644 index 00000000000..15f9bda8d4c --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg @@ -0,0 +1,875 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + regulatory_element + subtype:right_of_way + + + + + + yield lane + + + right_of_way + (priority lane) + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg new file mode 100644 index 00000000000..a72141095d0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg @@ -0,0 +1,1583 @@ + + + + + + + + + + + + + + + + + + The vehicle goes straightthrough the non-priority lane. + + + + + + The vehicle goes straightthrough the priority lane. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg new file mode 100644 index 00000000000..a9b1adfff12 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg @@ -0,0 +1,722 @@ + + + + + + + + + + + + + + + + + + + + + regulatory_element + subtype:right_of_way + + + yield lane + + + right_of_way + (priority lane) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg new file mode 100644 index 00000000000..3749719542a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg new file mode 100644 index 00000000000..775c50d10ea --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg @@ -0,0 +1,558 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private area + + + + sidewalk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg new file mode 100644 index 00000000000..7d77cafb328 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:road + location=private + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:walkway + + + + + + Lanelet + subtype:road + location=urban + + + + + + + + Lanelet + subtype:road_shoulder + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg new file mode 100644 index 00000000000..0735cc14fa5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg @@ -0,0 +1,921 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + guide line + + + + + + + stop line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg new file mode 100644 index 00000000000..1454ce407a7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg @@ -0,0 +1,807 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:stop_line + + + + Lanelet + tag: turn_direction=right + + + + Regulatory Element + subtype: road_marking + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_1.png b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e3ebd47b938fbaae22c0d9eeed8fa44ec8f32380 GIT binary patch literal 3365 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 literal 0 HcmV?d00001 diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg new file mode 100644 index 00000000000..776c5a1300d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bicycle lane + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg new file mode 100644 index 00000000000..981a1d7212e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:road + + + + + + + Lanelet + subtype:road + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg new file mode 100644 index 00000000000..8bf3b5d8653 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg @@ -0,0 +1,731 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RegulatoryElement + subtype: traffic_light + + + refers + + ref_line + + + + + + + LineString + type: stop_line + + + + + LineString + id: 10 + type: traffic_light + + + + + + + + + + + + + + + + + + 4 + + + + 5 + + + + + + 1 + + + + 2 + + + + 3 + + + + + + + light_bulbs + + + + + + + LineString + Id: 11 + type: light_bulbs + traffic_light_id: 10 + + + + + Lanelet + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg new file mode 100644 index 00000000000..a23926ed952 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg @@ -0,0 +1,813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + refers + + ref_line + + + + LineString + id: 10 + type: traffic_light + + + + + + + + + + + + + + + 4 + + + + 5 + + + + + + 1 + + + + 2 + + + + 3 + + + + + + + light_bulbs + + + + + + + LineString + Id: 11 + type: light_bulbs + traffic_light_id: 10 + + + + + + + + + + Lanelet + + + + + + + LineString + type: stop_line + + + + + + + + RegulatoryElement + subtype: traffic_light + + + + + Lanelet + subtype: crosswalk + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg new file mode 100644 index 00000000000..4db6387f5cf --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg @@ -0,0 +1,654 @@ + + + + + + + + + + + + + + + + + + + + + + ground + + + + + the position of the Pointshould be accurate inthree dimensions + + + + + + + + + + + + + + + + + + + 1 + + + + 2 + + + + Linestring + points: 1-2 + type: traffic_light + height: 1.2 + + + + + + + + height + + + + + + + + + + + + + + + 1 + + + + 2 + + + + Linestring + points: 1-2 + type: traffic_light + height: 0.5 m + + + + + + + + height + + + left end as start point + + right end as end point + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg new file mode 100644 index 00000000000..e0634b87117 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg @@ -0,0 +1,590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 2 + + + + Point + tags: + + color: “green” + + arrow: “right” + + + + + Linestring + points: 1-4 + type: light_bulbs + + + + + 3 + + + + + + 4 + + + + + + + + + + + + + + + + + + + + 1 + + + + 2 + + + + 3 + + + + + + 4 + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg new file mode 100644 index 00000000000..794bff25dc0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ SubType:road +
+
+
+
+ Type:lanelet... +
+
+ + + + +
+
+
+ Type:regulatory_element +
+ SubType: + crosswalk + +
+
+
+
+
+
+ Type:regulatory_element... +
+
+ + + + + + + + + + +
+
+
+ Polygon +
+ crosswalk_polygon +
+
+
+
+ Polygon... +
+
+ + + + +
+
+
+ Linestring3d +
+ ref_line +
+
+
+
+ Linestring3d... +
+
+ + + + + + + + +
+
+
+ Lanelet +
+ refers +
+
+
+
+ Lanelet... +
+
+ + + + +
+
+
+ Linestring3d +
+ ref_line +
+
+
+
+ Linestring3d... +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg new file mode 100644 index 00000000000..1c3dfd2def2 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ SubType:crosswalk +
+
+
+
+ Type:lanelet... +
+
+ + + + +
+
+
+ Type:regulatory_element +
+ SubType:traffic_light + +
+
+
+
+
+
+ Type:regulatory_element... +
+
+ + + + + + + + + + + + +
+
+
+ Linestring +
+ Type:traffic_light +
+
+
+
+ Linestring... +
+
+ + + + +
+
+
+ Linestring +
+ Type:traffic_light +
+
+
+
+ Linestring... +
+
+ + + + +
+ + + + Text is not SVG - cannot display + + +
diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg new file mode 100644 index 00000000000..b599fdcd162 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ + SubType:road +
+
+
+
+
+ + + +
+
+
+ Type:regulatory_element +
+ + SubType: + crosswalk + +
+
+
+
+
+
+
+ + + + + + + + + +
+
+
+ Polygon +
+ + crosswalk_polygon +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + ref_line +
+
+
+
+
+ + + + + + + +
+
+
+ Lanelet +
+ + refers +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + ref_line +
+
+
+
+
+ +
+ + safety_slow_down_speedsafety_slow_down_distance + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ + + SubType:road +
+
+
+
+
+ + + +
+
+
+ Type:regulatory_element +
+ + + SubType: + crosswalk + +
+
+
+
+
+
+
+ + + + + + + + + +
+
+
+ Polygon +
+ + + crosswalk_polygon +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + + ref_line +
+
+
+
+
+ + + + + + + +
+
+
+ Lanelet +
+ + + refers +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + + ref_line +
+
+
+
+
+
+
\ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg new file mode 100644 index 00000000000..2ad07439658 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + linestring + type:fence + + + + + + Kindergartens orplaygrounds + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg new file mode 100644 index 00000000000..142575bbf81 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Buffer zone + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg new file mode 100644 index 00000000000..b85f9b42d8e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + Safety zone + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg new file mode 100644 index 00000000000..dac2ea04b0c --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg @@ -0,0 +1,1236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Polygon + type:hatched_road_markings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Polygon + type:intersection_area + + + + + median strip + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg new file mode 100644 index 00000000000..a2bd09b4949 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No parkng + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg new file mode 100644 index 00000000000..4840b6a34e5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype: road + + + + + + regulatory_element + subtype: no_parking_area + + + + + + + Polygon + type:no_parking_area + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg new file mode 100644 index 00000000000..dfadfd3a4cd --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + No parking and stopping + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg new file mode 100644 index 00000000000..ab4931b65b0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype: road + + + + + + regulatory_element + subtype: no_parking_area + + + + + + + Polygon + type:no_parking_area + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg new file mode 100644 index 00000000000..34760374631 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No stopping zone + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg new file mode 100644 index 00000000000..75574069ffb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype: road + + + + + + type: regulatory_element + subtype: no_stopping_area + + + + + + + Polygon + stype:no_stopping_area + + + + Linestring + type:stop_line + (optional) + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg new file mode 100644 index 00000000000..61afb686f87 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg @@ -0,0 +1,657 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + + + + + + + + + + + + + + + + + + + + + + + + + + + leftBound + + rightBound + + + + RegulatoryElement + subtype: detection_area + + + ref_line + + + + + + + LineString + type: stop_line + + + + + + + regulatory_ele + ment + + + + + + refers + + + + Polygon + Id: 11 + type: detection_area + area: yes + + + + + + + 1 + + + + 3 + + + + 2 + + + + 4 + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg new file mode 100644 index 00000000000..cb9c877edc0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Range of sensor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg new file mode 100644 index 00000000000..fd24ca8757d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg new file mode 100644 index 00000000000..524171fb254 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type: guard_rail + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_1.png b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_1.png new file mode 100644 index 0000000000000000000000000000000000000000..143ddc726066b8883b12b1ed03983d4b020ecc3e GIT binary patch literal 154615 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

+B5l9zh$aAJzea!X%LC9mZ{KyZZompV0>Y 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�SDEcHO+NuLdLWJ7NER!+IdmcvOYU#y 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 EYMQVN5pIKiokv+B;6n6KKv3YDwO1y9 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 literal 0 HcmV?d00001 diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg new file mode 100644 index 00000000000..dbf890958ba --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg @@ -0,0 +1,188 @@ + + + +pointTerrain surfaceGeoidEllipsoidal heightEllipsoid surfaceOrthometric height diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/category_area.md new file mode 100644 index 00000000000..bcb435d4770 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_area.md @@ -0,0 +1,151 @@ +## Category:Area + +--- + +### vm-06-01 Buffer Zone + +#### Detail of requirements + +Create a Polygon (_type:hatched_road_markings_) when a Buffer Zone (also known as a zebra zone) is painted on the road surface. + +- If the Buffer Zone is next to a Lanelet, share Points between them. +- Overlap the Buffer Zone's Polygon with the intersection's Polygon (intersection_area) if the Buffer Zone is located at an intersection. + +##### Behavior of Autoware: + +In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area and proceeds through it. + +!!! Caution + - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. + - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. + +![svg](./assets/vm-06-01_1.svg) + +![svg](./assets/vm-06-01_2.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-01_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) + +--- + +### vm-06-02 No parking signs + +#### Detail of requirements + +When creating a Vector Map, you can prohibit parking in specific areas, while temporary stops are permitted. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:no_parking_area_), and have this Regulatory Element refer to a Polygon (_type:no_parking_area_). + +Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-no-parking-area) for the method of creation in Vector Map Builder. + +##### Behavior of Autoware: + +Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. + +![svg](./assets/vm-06-02_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-02_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-06-03 No stopping signs + +#### Detail of requirements + +When creating a Vector Map, you can prohibit stopping in specific areas, while temporary stops are permitted. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:no_parking_area_), and have this Regulatory Element refer to a Polygon (_type:no_parking_area_). + +Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-no-parking-area) for the method of creation in Vector Map Builder. + +##### Behavior of Autoware: + +Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. + +![svg](./assets/vm-06-03_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-03_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-06-04 No stopping sections + +#### Detail of requirements + +While vehicles may stop on the road for signals or traffic congestion, you can prohibit any form of stopping (temporary stopping, parking, idling) in specific areas when creating a Vector Map. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:no_stopping_area_), and have this Regulatory Element refer to a Polygon (_type:no_stopping_area_). + +Refer to [Web.Auto Documentation - Creation of No Stopping Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-no-stopping-area) for the method of creation in Vector Map Builder. + +##### Behavior of Autoware: + +The vehicle does not make temporary stops in _no_stopping_area_. Since goals cannot be set in _no_stopping_area_, the vehicle cannot park there. + +![svg](./assets/vm-06-04_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-04_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [No Stopping Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/) + +--- + +### vm-06-05 Detection area + +#### Detail of requirements + +Autoware identifies obstacles by detecting point clouds in the Detection Area, leading to a stop at the stop line and maintaining that stop until the obstacles move away. To enable this response, incorporate the Detection Area element into the Vector Map. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:detection_area_), and have this Regulatory Element refer to a Polygon (_type:detection_area_) and a Linestring (_type:stop_line_). + +Refer to [Web.Auto Documentation - Creation of Detection Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-detection-area) for the method of creation in Vector Map Builder. + +#### Preferred vector map + +![svg](./assets/vm-06-05_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Detection Area - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md new file mode 100644 index 00000000000..2db632ae799 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md @@ -0,0 +1,119 @@ +## Category:Crosswalk + +There are two types of requirements for crosswalks, and they can both be applicable to a single crosswalk. + +- [vm-05-01](./category_crosswalk.md#vm-05-01-crosswalks-across-the-road) : Crosswalks across the road +- [vm-05-02](./category_crosswalk.md#vm-05-02-crosswalks-with-pedestrian-signals) : Crosswalks with pedestrian signals + +In the case of crosswalks at intersections, they must also meet the requirements of the intersection. + +--- + +### vm-05-01 Crosswalks across the road + +#### Detail of requirements + +Necessary requirements for creation: + +1. Create a Lanelet for the crosswalk (_subtype:crosswalk_). +2. If there is a stop line before the crosswalk, create a Linestring (_type:stop_line_). Create stop lines for the opposing traffic lane in the same way. +3. Create a Polygon (_type:crosswalk_polygon_) to cover the crosswalk. +4. The Lanelet of the road refers to the regulatory element (_subtype:crosswalk_), and the regulatory element refers to the created Lanelet, Linestring, and Polygon. + +##### Supplemental information + +- Link the regulatory element to the lanelet(s) of the road that intersects with the crosswalk. +- The stop lines linked to the regulatory element do not necessarily have to exist on the road Lanelets linked with the regulatory element. + +##### Behavior of Autoware: + +When pedestrians or cyclists are on the crosswalk, Autoware will come to a stop before the stop line and wait for them to pass. Once they have cleared the area, Autoware will begin to move forward. + +#### Preferred vector map + +![svg](./assets/vm-05-01_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Crosswalk - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/) + +--- + +### vm-05-02 Crosswalks with pedestrian signals + +#### Detail of requirements + +Necessary requirements for creation: + +- Create a Lanelet (_subtype:crosswalk_, _participant:pedestrian_). +- Create a Traffic Light Linestring. If multiple traffic lights exist, create multiple Linestrings. + - Linestring + - _type:traffic_light_ + - _subtype:red_green_ + - _height_:value +- Ensure the crosswalk's Lanelet references a Regulatory Element (_subtype:traffic_light_). Also, ensure the Regulatory Element references Linestring (_type:traffic_light_). + +Refer to [vm-04-02](./category_traffic_light.md#vm-04-02-traffic-light-position-and-size) for more about traffic light object. + +#### Preferred vector map + +![svg](./assets/vm-05-02_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Crosswalk - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/) + +--- + +### vm-05-03 Deceleration for safety at crosswalks + +#### Detail of requirements + +To ensure a constant deceleration to a safe speed when traversing a crosswalk, add the following tags to the crosswalk's Lanelet (_subtype:crosswalk_): + +- _safety_slow_down_speed_ [m/s]: The maximum velocity while crossing. +- _safety_slow_down_distance_ [m]: The starting point of the area where the maximum speed applies, measured from the vehicle's front bumper to the crosswalk. + +#### Preferred vector map + +![svg](./assets/vm-05-03_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Crosswalk - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/) + +--- + +### vm-05-04 Fences + +#### Detail of requirements + +Autoware detects pedestrians and bicycles crossing the crosswalk, as well as those that might cross. However, areas near the crosswalk, such as fenced kindergartens, playgrounds, or parks, where many people are moving, can affect crosswalk detection due to predicted paths of people and bicycles from these areas. + +Surround areas not connected to the crosswalk with Linestring (_type:fence_), which does not need to be linked to anything. + +However, if there is a guardrail, wall, or fence between the road and sidewalk, with another fence behind it, the second fence may be omitted. Nevertheless, areas around crosswalks are not subject to this omission and must be created without exclusion. + +#### Preferred vector map + +![svg](./assets/vm-05-04_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md new file mode 100644 index 00000000000..f82e96a271a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md @@ -0,0 +1,423 @@ +## Category:Intersection + +--- + +### vm-03-01 Intersection criteria + +#### Detail of requirements + +Essential criteria for the construction of an intersection: + +- Encircle the drivable area at the intersection with a Polygon (_type:intersection_area_). +- Add _turn_direction_ to all Lanelets in the intersection. +- Ensure that all lanelets in the intersection are tagged: + - _key:intersection_area_ + - _value: Polygon's ID_ +- Attach _right_of_way_ to the necessary Lanelets. +- Also, it is necessary to appropriately create traffic lights, crosswalks, and stop lines. + +For detailed information, refer to the respective requirements on this page. + +##### Autoware modules + +- The requirements for _turn_direction_ and _right_of_way_ are related to the intersection module, which plans velocity to avoid collisions with other vehicles, taking traffic light instructions into account. +- The requirements for _intersection_area_ are related to the avoidance module, which plans routes that evade by veering out of lanes in the intersections. + +#### Preferred vector map + +None in particular. + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) + +--- + +### vm-03-02 Lanelet's turn direction and virtual linestring + +#### Detail of requirements + +Add the following tag to the Lanelets in the intersection: + +- turn_direction : straight +- turn_direction : left +- turn_direction : right + +Also, if the left or right Linestrings of Lanelets at the intersection lack road paintings, designate these as _type:virtual_. + +##### Behavior of Autoware: + +Autoware will start flashing the turn signals (blinkers) 30 meters as default before turn_direction-tagged Lanelet. If you change the blinking timing, add the following tags: + +- key: _turn_signal_distance_ +- value: numerical value (m) + +![svg](./assets/vm-03-02_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-02_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) +- [virtual_traffic_light in behavior_velocity_planner - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/) + +--- + +### vm-03-03 Lanelet width in the intersection + +#### Detail of requirements: + +Lanelets in the intersection should have a consistent width. Additionally, draw Linestrings with smooth curves. + +The shape of this curve must be determined by the Vector Map creator. + +![svg](./assets/vm-03-03_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-03_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-03_3.svg) + +--- + +### vm-03-04 Lanelet creation in the intersection + +#### Detail of requirements + +Create all Lanelets in the intersection, including lanelets not driven by the vehicle. Additionally, link stop lines and traffic lights to the Lanelets appropriately. + +Refer also to the creation scope [vm-07-01](./category_others.md#vm-07-01-vector-map-creation-range) + +##### Behavior of Autoware + +Autoware uses lanelets to predict the movements of other vehicles and plan the vehicle's velocity accordingly. Therefore, it is necessary to create all lanelets in the intersection. + +![svg](./assets/vm-03-04_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-04_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-04_3.svg) + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-05 Lanelet division in the intersection + +#### Detail of requirements + +Create the Lanelets in the intersection as a single object without dividing them. + +![svg](./assets/vm-03-05_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-05_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-03_3.svg) + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-06 Guide lines in the intersection + +#### Detail of requirements + +If there are guide lines in the intersection, draw the Lanelet following them. + +In cases where the Lanelets branches off, begin the branching at the end of the guide line. However, it is not necessary to share points or linestrings between Lanelets. + +![svg](./assets/vm-03-06_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-06_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-07 Multiple lanelets in the intersection + +#### Detail of requirements + +When connecting multiple lanes with Lanelets at an intersection, those Lanelets should be made adjacent to each other without crossing. + +![svg](./assets/vm-03-07_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-07_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-07_3.svg) + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-08 Intersection area range + +#### Detail of requirements + +Encircle the intersection's drivable area with a Polygon (_type:intersection_area_). The boundary of this intersection's Polygon should be defined by the objects below. + +- Linestrings (_subtype:road_border_) +- Straight lines at the connection points of lanelets in the intersection." + +#### Preferred vector map + +![svg](./assets/vm-03-08_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) + +--- + +### vm-03-09 Range of Lanelet in the intersection + +#### Detail of requirements + +Determine the start and end positions of lanelets in the intersection (henceforth the boundaries of lanelet connections) based on the stop line's position. + +- For cases with a painted stop line: + - The stop line's linestring (_type:stop_line_) position must align with the lanelet's start. + - Extend the lanelet's end to where the opposing lane's stop line would be. +- Without a painted stop line: + - Use a drawn linestring (_type:stop_line_) to establish positions as if there were a painted stop line. + +#### Preferred vector map + +![svg](./assets/vm-03-09_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-10 Right of way (with signal) + +#### Detail of requirements + +Set the regulatory element 'right_of_way' for Lanelets that meet all of the following criteria: + +- Lanelets in the intersection with a _turn_direction_ of _right_ or _left_. +- Lanelets that intersect with the vehicle's lanelet. +- There are traffic lights at the intersection. + +Set to _yield_ those lanelets in the intersection that intersect the vehicle's lanelet, and set to _yield_ those lanelets that do not share the same signal change timing with the vehicle. Also, if the vehicle is turning left, set the opposing vehicle's right-turn lane to _yield_. There is no need to set _yield_ for lanelets where the vehicle goes straight (_turn_direction:straight_). + +![svg](./assets/vm-03-10_1.svg) + +#### Preferred vector map + +##### The vehicle turns left + +![svg](./assets/vm-03-10_2.svg) + +##### The vehicle turns right + +![svg](./assets/vm-03-10_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-11 Right of way (without signal) + +#### Detail of requirements + +Set the regulatory element 'right_of_way' for Lanelets that meet all of the following criteria: + +- Lanelets in the intersection with a _turn_direction_ of _right_ or _left_. +- Lanelets that intersect with the vehicle's lanelet. +- There are **no** traffic lights at the intersection. + +![svg](./assets/vm-03-11_1.svg) + +#### Preferred vector map + +##### ① The vehicle on the priority lane + +![svg](./assets/vm-03-11_2.svg) + +##### ② The vehicle on the non-priority lane + +A regulatory element is not necessary. However, when the vehicle goes straight, it has relative priority over other vehicles turning right from the opposing non-priority road. Therefore, settings for _right_of_way_ and _yield_ are required in this case. + +![svg](./assets/vm-03-11_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-12 Right of way supplements + +#### Detail of requirements + +##### Why it's necessary to configure 'right_of_way' + +Without the 'right_of_way' setting, Autoware interprets other lanes intersecting its path as having priority. Therefore, as long as there are other vehicles in the crossing lane, Autoware cannot enter the intersection regardless of signal indications. + +An example of a problem: Even when our signal allows proceeding, our vehicle waits beforehand if other vehicles are waiting at a red light where the opposing lane intersects with a right-turn lane. + +#### Preferred vector map + +None in particular. + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-13 Merging from private area, sidewalk + +#### Detail of requirements + +Set _location=private_ for Lanelets within private property. + +When a road, which enters or exits private property, intersects with a sidewalk, create a Lanelet for that sidewalk (_subtype:walkway_). + +##### Behavior of Autoware: + +- The vehicle stops temporarily before entering the sidewalk. +- The vehicle comes to a stop before merging onto the public road. + +![svg](./assets/vm-03-13_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-13_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-14 Road marking + +#### Detail of requirements + +If there is a stop line ahead of the guide lines in the intersection, ensure the following: + +- Create a Lanelet for the guide lines. +- The Lanelet for the guide lines references a Regulatory Element (_subtype:road_marking_). +- The Regulatory Element refers to the _stop_line_'s Linestring." + +Refer to [Web.Auto Documentation - Creation of Regulatory Element](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-regulatory-element) for the method of creation in Vector Map Builder. + +![svg](./assets/vm-03-14_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-14_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-15 Exclusive bicycle lane + +#### Detail of requirements + +If an exclusive bicycle lane exists, create a Lanelet (_subtype:road_). The section adjoining the road should share a Linestring. For bicycle lanes at intersections, assign a yield*lane designation beneath the \_right_of_way* for lanes that intersect with the vehicle's left-turn lane. (Refer to [vm-03-10](./category_intersection.md#vm-03-10-right-of-way-with-signal) and [vm-03-11](./category_intersection.md#vm-03-11-right-of-way-without-signal) for right_of_way). + +In addition, set _lane_change = no_ as OptionalTags. + +##### Behavior of Autoware: + +The blind spot (entanglement check) feature verifies the lanelet(subtype:road) and decides if the vehicle can proceed. + +![png](./assets/vm-03-15_1.png) + +![svg](./assets/vm-03-15_2.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-15_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/category_lane.md new file mode 100644 index 00000000000..a160449d74a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_lane.md @@ -0,0 +1,453 @@ +## Category:Lane + +--- + +### vm-01-01 Lanelet basics + +#### Detail of requirements + +The road's Lanelets must comply with the following requirements. + +- _subtype:road_ +- location:urban, for public roads +- Align the Lanelet's direction with the direction of vehicle move. (You can visualize lanelet direction as arrows with [Vector Map Builder](https://docs.web.auto/en/user-manuals/vector-map-builder/screen-layout#project-tab)) +- Set lane change is allowed or not, according to [vm-01-02](#vm-01-02-allowance-for-lane-changes). +- Set the Linestring IDs for Lanelet's left_bound and right_bound respectively. See [vm-01-03](#vm-01-03-linestring-sharing). +- tag : _one_way=yes_. Autoware currently does not support no. +- Connect the Lanelet to another Lanelet, except if it's at the start or end. +- Position the points (x, y, z) within the Lanelet to align with the PCD Map, ensuring accuracy not only laterally but also in elevation. The height of a Point should be based on the ellipsoidal height (WGS84). Refer to [vm-07-04](./category_others.md#vm-07-04-ellipsoidal-height). + +#### Preferred vector map + +![lanelet](./assets/vm-01-01.svg) + +--- + +### vm-01-02 Allowance for lane changes + +#### Detail of requirements + +Add a tag to the Lanelet's Linestring indicating lane change permission or prohibition. + +- Permit _lane_change=yes_ +- Prohibit _lane_change=no_ + +Set the Linestring _subtype_ according to the type of line. + +- _solid_ +- _dashed_ + +##### Referenced from Japan's Road Traffic Law + +- White dashed lines : indicate that lane changes and overtaking are permitted. +- White solid lines : indicate that changing lanes and overtaking are allowed. +- Yellow solid lines : mean no lane changes are allowed. + +![lines](./assets/vm-01-02.svg) + +#### Related Autoware module + +- [Lane Change design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Out of lane design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/) + +--- + +### vm-01-03 Linestring sharing + +#### Detail of requirements + +Share the Linestring when creating Lanelets that are physically adjacent to others. + +##### Behavior of Autoware + +If the Lanelet adjacent to the one the vehicle is driving on shares a Linestring, the following behaviors become possible: + +- The vehicle moves out of their lanes to avoid obstacles. +- The vehicle turns a curve while slightly extending out of the lane. +- Lane changes + +![lines](./assets/vm-01-03_1.svg) + +#### Preferred vector map + +![lines](./assets/vm-01-03_2.svg) + +#### Incorrect vector map + +![lines](./assets/vm-01-03_3.svg) + +#### Related Autoware module + +- [Lane Change design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Out of lane design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/) + +--- + +### vm-01-04 Sharing of the centerline of lanes for opposing traffic + +#### Detail of requirements + +When the vehicle's lanelet and the opposing lanelet physically touch, the road center line's Linestring ID must be shared between these two Lanelets. For that purpose, the lengths of those two Lanelets must match. + +##### Behavior of Autoware: + +Obstacle avoidance across the opposing lane is possible. + +![svg](./assets/vm-01-04_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-04_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-04_3.svg) + +--- + +### vm-01-05 Lane geometry + +#### Detail of requirements + +The geometry of the road lanelet needs to comply with the following: + +- The left and right Linestrings must follow the road's boundary lines. +- The lines of a Lanelet, which join with lanelets ahead and behind it, must form straight lines. +- Ensure the outline is smooth and not jagged or bumpy, except for L-shaped cranks. + +![svg](./assets/vm-01-05_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-05_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-05_3.svg) + +--- + +### vm-01-06 Line position (1) + +#### Detail of requirements + +Ensure the road's center line Linestring is located in the exact middle of the road markings. + +![svg](./assets/vm-01-06_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-06_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-06_3.svg) + +--- + +### vm-01-07 Line position (2) + +#### Detail of requirements + +Place the Linestring at the center of the markings when lines exist outside the road. + +![svg](./assets/vm-01-07_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-07_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-08 Line position (3) + +#### Detail of requirements + +If there are no lines on the outer side within the road, position the Linestring 0.5 m from the road's edge. + +!!! Caution + + The width depends on the laws of your country. + +![svg](./assets/vm-01-08_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-08_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-09 Speed limits + +#### Detail of requirements + +In the following cases, add a speed limit (_tag:speed_limit_) to the Lanelet (_subtype:road_) the vehicle is driving on, in km/h. + +- A speed limit road sign exists. +- You can add a speed limit, for example, on narrow roads. + +Note that the following is achieved through Autoware's settings and behavior. + +- Vehicle's maximum velocity +- Speed adjustment at places requiring deceleration, like curves and downhill areas. + +![svg](./assets/vm-01-09_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-09_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-10 Centerline + +#### Detail of requirements + +Autoware is designed to move through the midpoint calculated from a Lanelet's left and right Linestrings. + +Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. + +!!!Caution + 'Centerline' is a distinct concept from the central lane division line (centerline). + +![svg](./assets/vm-01-10_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-10_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-10_3.svg) + +--- + +### vm-01-11 Centerline connection (1) + +#### Detail of requirements + +When center lines have been added to several Lanelets, they should be connected. + +![svg](./assets/vm-01-11_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-11_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-11_3.svg) + +--- + +### vm-01-12 Centerline connection (2) + +#### Detail of requirements + +If a Lanelet with an added centerline is connected to Lanelets without one, ensure the start and end points of the added centerline are positioned at the Lanelet's center. Ensure the centerline has a smooth shape for drivability. + +![svg](./assets/vm-01-12_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-12_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-12_3.svg) + +--- + +### vm-01-13 Roads with no centerline (1) + +#### Detail of requirements + +When a road lacks a central line but is wide enough for one's vehicle and oncoming vehicles to pass each other, Lanelets should be positioned next to each other at the center of the road. + +![svg](./assets/vm-01-13_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-13_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-14 Roads with no centerline (2) + +#### Detail of requirements + +Apply if all the next conditions are satisfied: + +- The road is a single lane without a central line and is too narrow for one's vehicle and an oncoming vehicle to pass each other. +- It is an environment where no vehicles other than the autonomous vehicle enter this road. +- The plan involves autonomous vehicles operating forth and back on this road. + +Requirement for Vector Map creation: + +- Stack two Lanelets together. + +##### Supplementary information: + +- The application of this case depends on local operational policies and vehicle specifications, and should be determined in discussion with the map requestor. +- The current Autoware does not possess the capability to pass oncoming vehicles in shared lanes. + +![svg](./assets/vm-01-14_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-14_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-14_3.svg) + +--- + +### vm-01-15 Road Shoulder + +#### Detail of requirements + +If there is a shoulder next to the road, place the lanelet for the road shoulder (_subtype:road_shoulder_). However, it is not necessary to create this within intersections. + +The road shoulder's Lanelet and sidewalk's Lanelet share the Linestring (_subtype:road_border_). + +There must not be a road shoulder Lanelet next to another road shoulder Lanelet. + +A road Lanelet must be next to the shoulder Lanelet. + +##### Behavior of Autoware + +- Autoware can start from the shoulder and also reach the shoulder. +- The margin for moving to the edge upon arrival is determined by the Autoware parameter _margin_from_boundary_. It does not need to be considered when creating the Vector Map. +- Autoware does not park on the road shoulder lanelet if it overlaps with any of the following: + - A Polygon marked as _no_parking_area_ + - A Polygon marked as _no_stopping_area_ + - Areas near intersection and in the intersection + - Crosswalk + +_tag:lane_change=yes_ is not required on the Linestring marking the boundary of the shoulder. + +![svg](./assets/vm-01-15_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-15_2.svg) + +#### Incorrect vector map + +Do not create a road shoulder Lanelet for roads without a shoulder. + +![svg](./assets/vm-01-15_3.svg) + +#### Related Autoware module + +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-01-16 Road shoulder Linestring sharing + +#### Detail of requirements + +The Lanelets for the road shoulder and the adjacent road should have a common Linestring. + +![svg](./assets/vm-01-15_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-16_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-01-17 Side strip + +#### Detail of requirements + +Place a Lanelet (_subtype:pedestrian_lane_) on the side strip. However, it is not necessary to create this within intersections. + +The side strip's Lanelet must have the Linestring (_subtype:road_border_) outside. + +![svg](./assets/vm-01-17_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-17_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-18 Side strip Linestring sharing + +#### Detail of requirements + +The Lanelet for the side strip and the adjacent road Lanelet should have a common Linestring. + +![svg](./assets/vm-01-17_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-18_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-19 sidewalk + +#### Detail of requirements + +Place a sidewalk Lanelet (_subtype:walkway_) where necessary. However, install only when there is a crosswalk intersecting the vehicle's lane. Do not install if there is no intersection. + +The length of the lanelet (_subtype:walkway_) should be the area intersecting with your lane and additional 3 meters before and after. + +![svg](./assets/vm-01-19_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-19_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Walkway design- Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/category_others.md new file mode 100644 index 00000000000..d1dac3a41d7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_others.md @@ -0,0 +1,98 @@ +## Category:Others + +--- + +### vm-07-01 Vector Map creation range + +#### Detail of requirements + +Create all Lanelets within the sensor range of the vehicle, even those on roads not driven by the vehicle, including Lanelets that intersect with the vehicle's Lanelet. + +However, if the following conditions are met, the range you must create lanelets is 10 meters at least. + +- The vehicle drives on the priority lane through the intersection without traffic lights. +- The vehicle drives straight or turn left through the intersection with traffic lights + +Refer to [vm-03-04](./category_intersection.md#vm-03-04-lanelet-creation-in-the-intersection) for more about intersection requirements. + +##### Behavior of Autoware: + +Autoware detects approaching vehicles and plans a route to avoid collisions. + +!!! Caution + + Check the range of sensors on your vehicle. + +#### Preferred vector map + +![svg](./assets/vm-07-01_1.svg) + +#### Incorrect vector map + +![svg](./assets/vm-07-01_2.svg) + +--- + +### vm-07-02 Range of detecting pedestrians who enter the road + +#### Detail of requirements + +Autoware's feature for detecting sudden entries from the roadside tracks pedestrians and cyclists beyond the road boundaries, decelerating to prevent collisions when emergence into the road is likely. + +Setting up a linestring of the following type instructs Autoware to disregard those positioned outside the line as not posing pop-out risks. + +- guard_rail +- wall +- fence + +#### Preferred vector map + +![svg](./assets/vm-05-04_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) + +--- + +### vm-07-03 Guardrails, guard pipes, fences + +#### Detail of requirements + +When creating a Linestring for guardrails or guard pipes (_type: guard_rail_), position it at the point where the most protruding part on the roadway side is projected vertically onto the ground. + +Follow the same position guidelines for Linestrings of fences (_type:fence_). + +#### Preferred vector map + +![png](./assets/vm-07-03_1.png) + +#### Incorrect vector map + +![png](./assets/vm-07-03_2.png) + +#### Related Autoware module + +- [Drivable Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design/) + +--- + +### vm-07-04 Ellipsoidal height + +#### Detail of requirements + +The height of a Point should be based on the ellipsoidal height (WGS84), in meters. + +![svg](./assets/vm-07-04_height_en.svg) + +#### Preferred vector map + +The height of a Point is the distance from the ellipsoidal surface to the ground. + +#### Incorrect vector map + +The height of a Point is Orthometric height, the distance from the Geoid to the ground. diff --git a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md new file mode 100644 index 00000000000..61ee74f6e65 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md @@ -0,0 +1,45 @@ +## Category:Stop Line + +--- + +### vm-02-01 Stop line alignment + +#### Detail of requirements + +Place the Linestring (_type:stop_line_) for the stop line on the edge on the side before the white line. + +Refer to [Web.Auto Documentation - Creation and edit of a stop point (StopPoint)](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-and-edit-of-a-stop-point-stoppoint) for the method of creation in Vector Map Builder. + +![svg](./assets/vm-02-01_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-02-01_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-02-01_3.svg) + +--- + +### vm-02-02 Stop sign + +#### Detail of requirements + +Where there is no stop line on the road but a stop sign exists, place a Linestring as the stop line next to the sign. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:traffic_sign_), and have this Regulatory Element refer to a Linestring (_type:stop_line_) and a Linestring (_type:traffic_sign, subtype:stop_sign)_. + +![svg](./assets/vm-02-02_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-02-02_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Stop Line design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md b/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md new file mode 100644 index 00000000000..5ede232e917 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md @@ -0,0 +1,92 @@ +## Category:Traffic Light + +--- + +### vm-04-01 Traffic light basics + +#### Detail of requirements + +When creating traffic lights in a vector map, meet the following requirements: + +- Road Lanelet (_subtype:road_). Quantity: one. +- Traffic Light. Multiple instances possible. + - Traffic light Linestring (_type:traffic_light_). + - Traffic light bulbs Linestring (_type:light_bulbs_). + - Stop line Linestring (_type:stop_line_). +- Regulatory element for traffic lights (_subtype:traffic_light_). Referenced by the road Lanelet and references both the traffic light (_traffic_light_, _light_bulbs_) and stop line (_stop_line_). Quantity: one. + +Refer to [Web.Auto Documentation - Creation of a traffic light and a stop line](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-a-traffic-light-and-a-stop-line) for the method of creation in Vector Map Builder. + +Refer to vm-04-02 and vm-04-03 for the specifications of traffic light and traffic light bulb objects. + +#### Preferred vector map + +![svg](./assets/vm-04-01_1.svg) + +If there is a crosswalk at the intersection, arrange for the road's Lanelet and the crosswalk's Lanelet to intersect and overlap. + +![svg](./assets/vm-04-01_2.svg) + +#### Related Autoware module + +- [Traffic Light design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/) + +--- + +### vm-04-02 Traffic light position and size + +#### Detail of requirements + +Create traffic lights with Linestring. + +- _type:traffic_light_ +- _subtype:red_yellow_green_ (optional) + +Create the Linestring's length (from start to end points) precisely aligned with the traffic light's bottom edge. Ensure the traffic light's positional height is correctly represented in the Linestring's 3D coordinates. + +Use _tag:height_ for the traffic light's height, e.g., for 50cm, write _tag:height=0.5_. Note that this height indicates the size of the traffic light, not its position. + +##### Supplemental information + +Autoware currently ignores subtype _red_yellow_green_. + +#### Preferred vector map + +![svg](./assets/vm-04-02_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Traffic Light design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/) + +--- + +### vm-04-03 Traffic light lamps + +#### Detail of requirements + +To enable the system to detect the color of traffic lights, the color scheme and arrangement must be accurately created as objects. Indicate the position of the lights with Points. For colored lights, use the _color_ tag to represent the color. For arrow lights, use the _arrow_ tag to indicate the direction. + +- _tag: color = red, yellow, green_ +- _tag: arrow = up, right, left, up_light, up_left_ + +Use the Points of the lights when creating a Linestring. + +- _type: light_bulbs_ + +#### Preferred vector map + +![svg](./assets/vm-04-03_1.svg) + +The order of the lights' Points can be 1→2→3→4 or 4→3→2→1, either is acceptable. + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Traffic Light design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md new file mode 100644 index 00000000000..a0a23b5a40d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -0,0 +1,82 @@ +# Vector Map creation requirement specifications + +## Overview + +Autoware relies on high-definition point cloud maps and vector maps of the driving environment to perform various tasks such as localization, route planning, traffic light detection, and predicting the trajectories of pedestrians and other vehicles. + +A vector map contains highly accurate information about a road network, lane geometry, and traffic lights. It is required for route planning, traffic light detection, and predicting the trajectories of other vehicles and pedestrians. + +Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autoware_common/blob/main/tmp/lanelet2_extension/docs/lanelet2_format_extension.md), which is based on the [lanelet2](https://github.com/fzi-forschungszentrum-informatik/Lanelet2) format and extended for Autoware. + +The primitives (basic components) used in Vector Map are explained in [Web.Auto Docs - What is Lanelet2](https://docs.web.auto/en/user-manuals/vector-map-builder/introduction#what-is-lanelet2). The following **Vector Map creation requirement specifications** are written on the premise of these knowledge. + +This specification is a set of requirements for the creation of Vector Map(s) to ensure that Autoware drives safely and autonomously as intended by the user. It does not cover how to operate specific map creation tools. + +- [Vector Map Builder - how to use](https://docs.web.auto/user-manuals/vector-map-builder/how-to-use/edit-maps) + +## Handling of the Requirement Specification + +Which requirements apply entirely depends on the configuration of the Autoware system on a vehicle. Before creating a Vector Map, it is necessary to clearly determine in advance how you want the vehicle with the implemented system to behave in various environments. + +Next, you must comply with the laws of the country where the autonomous driving vehicle will be operating. It is your responsibility to choose which of the following requirements to apply according to the laws. + +!!!Caution + - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. + - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. + +## List of Requirement Specifications + +| Category | ID | Requirements | +| --------------------------------------------------------------- | -------- | ----------------------------------------------------------------- | +| [Category Lane](./category_lane.md) | vm-01-01 | Lanelet basics | +| | vm-01-02 | Allowance for lane changes | +| | vm-01-03 | Linestring sharing | +| | vm-01-04 | Sharing of the centerline of lanes for opposing traffic | +| | vm-01-05 | Lane geometry | +| | vm-01-06 | Line position (1) | +| | vm-01-07 | Line position (2) | +| | vm-01-08 | Line position (3) | +| | vm-01-09 | Speed limits | +| | vm-01-10 | Centerline | +| | vm-01-11 | Centerline connection (1) | +| | vm-01-12 | Centerline connection (2) | +| | vm-01-13 | Roads with no centerline (1) | +| | vm-01-14 | Roads with no centerline (2) | +| | vm-01-15 | Road shoulder | +| | vm-01-16 | Road shoulder Linestring sharing | +| | vm-01-17 | Side strip | +| | vm-01-18 | Side strip Linestring sharing | +| | vm-01-19 | Walkway | +| [Category Stop Line](./category_stop_line.md) | vm-02-01 | Stop line alignment | +| | vm-02-02 | Stop sign | +| [Category Intersection](./category_intersection.md) | vm-03-01 | Intersection criteria | +| | vm-03-02 | Lanelet's turn direction and virtual | +| | vm-03-03 | Lanelet width in the intersection | +| | vm-03-04 | Lanelet creation in the intersection | +| | vm-03-05 | Lanelet division in the intersection | +| | vm-03-06 | Guide lines in the intersection | +| | vm-03-07 | Multiple lanelets in the intersection | +| | vm-03-08 | Intersection Area range | +| | vm-03-09 | Range of Lanelet in the intersection | +| | vm-03-10 | Right of way (with signal) | +| | vm-03-11 | Right of way (without signal) | +| | vm-03-12 | Right of way supplements | +| | vm-03-13 | Merging from private area, sidewalk | +| | vm-03-14 | Road marking | +| | vm-03-15 | Exclusive bicycle lane | +| [Category Traffic Light](./category_traffic_light.md) | vm-04-01 | Traffic light basics | +| | vm-04-02 | Traffic light position and size | +| | vm-04-03 | Traffic light lamps | +| [Category Crosswalk](./category_crosswalk.md) | vm-05-01 | Crosswalks across the road | +| | vm-05-02 | Crosswalks with pedestrian signals | +| | vm-05-03 | Deceleration for safety at crosswalks | +| | vm-05-04 | Fences | +| [Category Area](./category_area.md) | vm-06-01 | Buffer Zone | +| | vm-06-02 | No parking signs | +| | vm-06-03 | No stopping signs | +| | vm-06-04 | No stopping sections | +| | vm-06-05 | Detection area | +| [Category Others](./category_others.md) | vm-07-01 | Vector Map creation range | +| | vm-07-02 | Range of detecting pedestrians who enter the road | +| | vm-07-03 | Guardrails, guard pipes, fences | +| | vm-07-04 | Ellipsoidal height | From 77b541197392dec88885f4919e146e18dbe31d8f Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 08:19:59 +0000 Subject: [PATCH 02/20] style(pre-commit): autofix --- .../map/map-requirements/category_area.md | 4 +- .../map-requirements/category_crosswalk.md | 2 +- .../map-requirements/category_intersection.md | 2 +- .../map/map-requirements/category_lane.md | 6 +- .../map/map-requirements/category_others.md | 2 +- .../map-requirements/category_stop_line.md | 2 +- .../map/map-requirements/overview.md | 112 +++++++++--------- 7 files changed, 63 insertions(+), 67 deletions(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/category_area.md index bcb435d4770..c76eb961bb5 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_area.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_area.md @@ -15,9 +15,7 @@ Create a Polygon (_type:hatched_road_markings_) when a Buffer Zone (also known a In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area and proceeds through it. -!!! Caution - - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. +!!! Caution - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. ![svg](./assets/vm-06-01_1.svg) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md index 2db632ae799..196e4c881ff 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md @@ -116,4 +116,4 @@ None in particular. #### Related Autoware module -- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) \ No newline at end of file +- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md index f82e96a271a..960b19e9a5a 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md @@ -420,4 +420,4 @@ None in particular. #### Related Autoware module -- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) \ No newline at end of file +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/category_lane.md index a160449d74a..393d8180a45 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_lane.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_lane.md @@ -224,7 +224,7 @@ Autoware is designed to move through the midpoint calculated from a Lanelet's le Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. !!!Caution - 'Centerline' is a distinct concept from the central lane division line (centerline). +'Centerline' is a distinct concept from the central lane division line (centerline). ![svg](./assets/vm-01-10_1.svg) @@ -306,7 +306,7 @@ Requirement for Vector Map creation: - Stack two Lanelets together. -##### Supplementary information: +##### Supplementary information - The application of this case depends on local operational policies and vehicle specifications, and should be determined in discussion with the map requestor. - The current Autoware does not possess the capability to pass oncoming vehicles in shared lanes. @@ -450,4 +450,4 @@ None in particular. #### Related Autoware module - [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) -- [Walkway design- Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/) \ No newline at end of file +- [Walkway design- Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/category_others.md index d1dac3a41d7..2abe4fdb287 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_others.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_others.md @@ -77,7 +77,7 @@ Follow the same position guidelines for Linestrings of fences (_type:fence_). #### Related Autoware module -- [Drivable Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design/) +- [Drivable Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design/) --- diff --git a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md index 61ee74f6e65..d5014c2e970 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md @@ -42,4 +42,4 @@ None in particular. #### Related Autoware module -- [Stop Line design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/) \ No newline at end of file +- [Stop Line design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md index a0a23b5a40d..cbd44f1d522 100644 --- a/docs/design/autoware-architecture/map/map-requirements/overview.md +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -20,63 +20,61 @@ Which requirements apply entirely depends on the configuration of the Autoware s Next, you must comply with the laws of the country where the autonomous driving vehicle will be operating. It is your responsibility to choose which of the following requirements to apply according to the laws. -!!!Caution - - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. - - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. +!!!Caution - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. ## List of Requirement Specifications -| Category | ID | Requirements | -| --------------------------------------------------------------- | -------- | ----------------------------------------------------------------- | -| [Category Lane](./category_lane.md) | vm-01-01 | Lanelet basics | -| | vm-01-02 | Allowance for lane changes | -| | vm-01-03 | Linestring sharing | -| | vm-01-04 | Sharing of the centerline of lanes for opposing traffic | -| | vm-01-05 | Lane geometry | -| | vm-01-06 | Line position (1) | -| | vm-01-07 | Line position (2) | -| | vm-01-08 | Line position (3) | -| | vm-01-09 | Speed limits | -| | vm-01-10 | Centerline | -| | vm-01-11 | Centerline connection (1) | -| | vm-01-12 | Centerline connection (2) | -| | vm-01-13 | Roads with no centerline (1) | -| | vm-01-14 | Roads with no centerline (2) | -| | vm-01-15 | Road shoulder | -| | vm-01-16 | Road shoulder Linestring sharing | -| | vm-01-17 | Side strip | -| | vm-01-18 | Side strip Linestring sharing | -| | vm-01-19 | Walkway | -| [Category Stop Line](./category_stop_line.md) | vm-02-01 | Stop line alignment | -| | vm-02-02 | Stop sign | -| [Category Intersection](./category_intersection.md) | vm-03-01 | Intersection criteria | -| | vm-03-02 | Lanelet's turn direction and virtual | -| | vm-03-03 | Lanelet width in the intersection | -| | vm-03-04 | Lanelet creation in the intersection | -| | vm-03-05 | Lanelet division in the intersection | -| | vm-03-06 | Guide lines in the intersection | -| | vm-03-07 | Multiple lanelets in the intersection | -| | vm-03-08 | Intersection Area range | -| | vm-03-09 | Range of Lanelet in the intersection | -| | vm-03-10 | Right of way (with signal) | -| | vm-03-11 | Right of way (without signal) | -| | vm-03-12 | Right of way supplements | -| | vm-03-13 | Merging from private area, sidewalk | -| | vm-03-14 | Road marking | -| | vm-03-15 | Exclusive bicycle lane | -| [Category Traffic Light](./category_traffic_light.md) | vm-04-01 | Traffic light basics | -| | vm-04-02 | Traffic light position and size | -| | vm-04-03 | Traffic light lamps | -| [Category Crosswalk](./category_crosswalk.md) | vm-05-01 | Crosswalks across the road | -| | vm-05-02 | Crosswalks with pedestrian signals | -| | vm-05-03 | Deceleration for safety at crosswalks | -| | vm-05-04 | Fences | -| [Category Area](./category_area.md) | vm-06-01 | Buffer Zone | -| | vm-06-02 | No parking signs | -| | vm-06-03 | No stopping signs | -| | vm-06-04 | No stopping sections | -| | vm-06-05 | Detection area | -| [Category Others](./category_others.md) | vm-07-01 | Vector Map creation range | -| | vm-07-02 | Range of detecting pedestrians who enter the road | -| | vm-07-03 | Guardrails, guard pipes, fences | -| | vm-07-04 | Ellipsoidal height | +| Category | ID | Requirements | +| ----------------------------------------------------- | -------- | ------------------------------------------------------- | +| [Category Lane](./category_lane.md) | vm-01-01 | Lanelet basics | +| | vm-01-02 | Allowance for lane changes | +| | vm-01-03 | Linestring sharing | +| | vm-01-04 | Sharing of the centerline of lanes for opposing traffic | +| | vm-01-05 | Lane geometry | +| | vm-01-06 | Line position (1) | +| | vm-01-07 | Line position (2) | +| | vm-01-08 | Line position (3) | +| | vm-01-09 | Speed limits | +| | vm-01-10 | Centerline | +| | vm-01-11 | Centerline connection (1) | +| | vm-01-12 | Centerline connection (2) | +| | vm-01-13 | Roads with no centerline (1) | +| | vm-01-14 | Roads with no centerline (2) | +| | vm-01-15 | Road shoulder | +| | vm-01-16 | Road shoulder Linestring sharing | +| | vm-01-17 | Side strip | +| | vm-01-18 | Side strip Linestring sharing | +| | vm-01-19 | Walkway | +| [Category Stop Line](./category_stop_line.md) | vm-02-01 | Stop line alignment | +| | vm-02-02 | Stop sign | +| [Category Intersection](./category_intersection.md) | vm-03-01 | Intersection criteria | +| | vm-03-02 | Lanelet's turn direction and virtual | +| | vm-03-03 | Lanelet width in the intersection | +| | vm-03-04 | Lanelet creation in the intersection | +| | vm-03-05 | Lanelet division in the intersection | +| | vm-03-06 | Guide lines in the intersection | +| | vm-03-07 | Multiple lanelets in the intersection | +| | vm-03-08 | Intersection Area range | +| | vm-03-09 | Range of Lanelet in the intersection | +| | vm-03-10 | Right of way (with signal) | +| | vm-03-11 | Right of way (without signal) | +| | vm-03-12 | Right of way supplements | +| | vm-03-13 | Merging from private area, sidewalk | +| | vm-03-14 | Road marking | +| | vm-03-15 | Exclusive bicycle lane | +| [Category Traffic Light](./category_traffic_light.md) | vm-04-01 | Traffic light basics | +| | vm-04-02 | Traffic light position and size | +| | vm-04-03 | Traffic light lamps | +| [Category Crosswalk](./category_crosswalk.md) | vm-05-01 | Crosswalks across the road | +| | vm-05-02 | Crosswalks with pedestrian signals | +| | vm-05-03 | Deceleration for safety at crosswalks | +| | vm-05-04 | Fences | +| [Category Area](./category_area.md) | vm-06-01 | Buffer Zone | +| | vm-06-02 | No parking signs | +| | vm-06-03 | No stopping signs | +| | vm-06-04 | No stopping sections | +| | vm-06-05 | Detection area | +| [Category Others](./category_others.md) | vm-07-01 | Vector Map creation range | +| | vm-07-02 | Range of detecting pedestrians who enter the road | +| | vm-07-03 | Guardrails, guard pipes, fences | +| | vm-07-04 | Ellipsoidal height | From d4967f83d1d025f378fbe9080b436a5ea476b100 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Wed, 26 Jun 2024 18:22:43 +0900 Subject: [PATCH 03/20] fix: layout issues --- .../map/map-requirements/category_area.md | 4 +++- .../map/map-requirements/category_lane.md | 13 +++++++------ .../map/map-requirements/category_others.md | 4 ++-- .../map/map-requirements/overview.md | 5 ++++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/category_area.md index c76eb961bb5..fdb1986f606 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_area.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_area.md @@ -15,7 +15,9 @@ Create a Polygon (_type:hatched_road_markings_) when a Buffer Zone (also known a In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area and proceeds through it. -!!! Caution - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. +##### Caution + +- Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. ![svg](./assets/vm-06-01_1.svg) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/category_lane.md index 393d8180a45..d94d39f9ddd 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_lane.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_lane.md @@ -173,11 +173,11 @@ None in particular. If there are no lines on the outer side within the road, position the Linestring 0.5 m from the road's edge. -!!! Caution +![svg](./assets/vm-01-08_1.svg) - The width depends on the laws of your country. +##### Caution -![svg](./assets/vm-01-08_1.svg) +The width depends on the laws of your country. #### Preferred vector map @@ -223,11 +223,12 @@ Autoware is designed to move through the midpoint calculated from a Lanelet's le Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. -!!!Caution -'Centerline' is a distinct concept from the central lane division line (centerline). - ![svg](./assets/vm-01-10_1.svg) +##### Caution + +'Centerline' is a distinct concept from the central lane division line (centerline). + #### Preferred vector map ![svg](./assets/vm-01-10_2.svg) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/category_others.md index 2abe4fdb287..ee70acf4a79 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_others.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_others.md @@ -19,9 +19,9 @@ Refer to [vm-03-04](./category_intersection.md#vm-03-04-lanelet-creation-in-the- Autoware detects approaching vehicles and plans a route to avoid collisions. -!!! Caution +##### Caution - Check the range of sensors on your vehicle. +Check the range of sensors on your vehicle. #### Preferred vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md index cbd44f1d522..22cf2788111 100644 --- a/docs/design/autoware-architecture/map/map-requirements/overview.md +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -20,7 +20,10 @@ Which requirements apply entirely depends on the configuration of the Autoware s Next, you must comply with the laws of the country where the autonomous driving vehicle will be operating. It is your responsibility to choose which of the following requirements to apply according to the laws. -!!!Caution - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. +### Caution + +- The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. +- The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. ## List of Requirement Specifications From 8012b1b31bf4f0ded043f6aa1b95e593bfbc822a Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Tue, 2 Jul 2024 09:49:29 +0900 Subject: [PATCH 04/20] fix a dead link --- .../autoware-architecture/map/map-requirements/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md index 22cf2788111..7d5064af659 100644 --- a/docs/design/autoware-architecture/map/map-requirements/overview.md +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -6,7 +6,7 @@ Autoware relies on high-definition point cloud maps and vector maps of the drivi A vector map contains highly accurate information about a road network, lane geometry, and traffic lights. It is required for route planning, traffic light detection, and predicting the trajectories of other vehicles and pedestrians. -Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autoware_common/blob/main/tmp/lanelet2_extension/docs/lanelet2_format_extension.md), which is based on the [lanelet2](https://github.com/fzi-forschungszentrum-informatik/Lanelet2) format and extended for Autoware. +Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autoware_lanelet2_extension/blob/main/autoware_lanelet2_extension/docs/lanelet2_format_extension.md), which is based on the [lanelet2](https://github.com/fzi-forschungszentrum-informatik/Lanelet2) format and extended for Autoware. The primitives (basic components) used in Vector Map are explained in [Web.Auto Docs - What is Lanelet2](https://docs.web.auto/en/user-manuals/vector-map-builder/introduction#what-is-lanelet2). The following **Vector Map creation requirement specifications** are written on the premise of these knowledge. From fcaa387e10d982d16a234412a5b6cddc855a8390 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Tue, 2 Jul 2024 20:35:52 +0900 Subject: [PATCH 05/20] delete an unnecessary file --- .../map/map-requirements/assets/vm-07-03.svg | 166 ------------------ 1 file changed, 166 deletions(-) delete mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg deleted file mode 100644 index 524171fb254..00000000000 --- a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Linestring - type: guard_rail - - - - - From a463059f0e18ee949cf967ecd040659e4bc00315 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Tue, 2 Jul 2024 21:05:28 +0900 Subject: [PATCH 06/20] change the folder and file structure --- .../design/autoware-architecture/map/index.md | 2 +- .../category_area.md | 20 ++--- .../category_crosswalk.md | 8 +- .../category_intersection.md | 62 ++++++------- .../category_lane.md | 90 +++++++++---------- .../category_others.md | 12 +-- .../category_stop_line.md | 10 +-- .../category_traffic_light.md | 8 +- .../index.md} | 0 9 files changed, 106 insertions(+), 106 deletions(-) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_area.md (94%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_crosswalk.md (97%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_intersection.md (93%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_lane.md (90%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_others.md (93%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_stop_line.md (89%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_traffic_light.md (96%) rename docs/design/autoware-architecture/map/map-requirements/{overview.md => vector-map-requirements-overview/index.md} (100%) diff --git a/docs/design/autoware-architecture/map/index.md b/docs/design/autoware-architecture/map/index.md index 5e337af5612..f75dd804b21 100644 --- a/docs/design/autoware-architecture/map/index.md +++ b/docs/design/autoware-architecture/map/index.md @@ -87,7 +87,7 @@ The vector cloud map must be supplied as a file with the following requirements: - Each lanelet in the map must contain traffic rule information including its speed limit, right of way, traffic direction, associated traffic lights, stop lines, and traffic signs. - It must cover the entire operational area of the vehicle. -For detailed specifications on Vector Map creation, please refer to [Vector Map Creation Requirement Specification document](./map-requirements/overview.md). +For detailed specifications on Vector Map creation, please refer to [Vector Map Creation Requirement Specification document](./map-requirements/vector-map-requirements-overview/index.md). ### Projection Information diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_area.md similarity index 94% rename from docs/design/autoware-architecture/map/map-requirements/category_area.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_area.md index fdb1986f606..6e5be9c1e0e 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_area.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_area.md @@ -19,13 +19,13 @@ In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. -![svg](./assets/vm-06-01_1.svg) +![svg](../assets/vm-06-01_1.svg) -![svg](./assets/vm-06-01_2.svg) +![svg](../assets/vm-06-01_2.svg) #### Preferred vector map -![svg](./assets/vm-06-01_3.svg) +![svg](../assets/vm-06-01_3.svg) #### Incorrect vector map @@ -52,11 +52,11 @@ Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. -![svg](./assets/vm-06-02_1.svg) +![svg](../assets/vm-06-02_1.svg) #### Preferred vector map -![svg](./assets/vm-06-02_2.svg) +![svg](../assets/vm-06-02_2.svg) #### Incorrect vector map @@ -82,11 +82,11 @@ Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. -![svg](./assets/vm-06-03_1.svg) +![svg](../assets/vm-06-03_1.svg) #### Preferred vector map -![svg](./assets/vm-06-03_2.svg) +![svg](../assets/vm-06-03_2.svg) #### Incorrect vector map @@ -112,11 +112,11 @@ Refer to [Web.Auto Documentation - Creation of No Stopping Area](https://docs.we The vehicle does not make temporary stops in _no_stopping_area_. Since goals cannot be set in _no_stopping_area_, the vehicle cannot park there. -![svg](./assets/vm-06-04_1.svg) +![svg](../assets/vm-06-04_1.svg) #### Preferred vector map -![svg](./assets/vm-06-04_2.svg) +![svg](../assets/vm-06-04_2.svg) #### Incorrect vector map @@ -140,7 +140,7 @@ Refer to [Web.Auto Documentation - Creation of Detection Area](https://docs.web. #### Preferred vector map -![svg](./assets/vm-06-05_1.svg) +![svg](../assets/vm-06-05_1.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_crosswalk.md similarity index 97% rename from docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_crosswalk.md index 196e4c881ff..20c956d6f8f 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_crosswalk.md @@ -31,7 +31,7 @@ When pedestrians or cyclists are on the crosswalk, Autoware will come to a stop #### Preferred vector map -![svg](./assets/vm-05-01_1.svg) +![svg](../assets/vm-05-01_1.svg) #### Incorrect vector map @@ -61,7 +61,7 @@ Refer to [vm-04-02](./category_traffic_light.md#vm-04-02-traffic-light-position- #### Preferred vector map -![svg](./assets/vm-05-02_1.svg) +![svg](../assets/vm-05-02_1.svg) #### Incorrect vector map @@ -84,7 +84,7 @@ To ensure a constant deceleration to a safe speed when traversing a crosswalk, a #### Preferred vector map -![svg](./assets/vm-05-03_2.svg) +![svg](../assets/vm-05-03_2.svg) #### Incorrect vector map @@ -108,7 +108,7 @@ However, if there is a guardrail, wall, or fence between the road and sidewalk, #### Preferred vector map -![svg](./assets/vm-05-04_1.svg) +![svg](../assets/vm-05-04_1.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_intersection.md similarity index 93% rename from docs/design/autoware-architecture/map/map-requirements/category_intersection.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_intersection.md index 960b19e9a5a..31ace0cfec7 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_intersection.md @@ -59,11 +59,11 @@ Autoware will start flashing the turn signals (blinkers) 30 meters as default be - key: _turn_signal_distance_ - value: numerical value (m) -![svg](./assets/vm-03-02_1.svg) +![svg](../assets/vm-03-02_1.svg) #### Preferred vector map -![svg](./assets/vm-03-02_2.svg) +![svg](../assets/vm-03-02_2.svg) #### Incorrect vector map @@ -85,15 +85,15 @@ Lanelets in the intersection should have a consistent width. Additionally, draw The shape of this curve must be determined by the Vector Map creator. -![svg](./assets/vm-03-03_1.svg) +![svg](../assets/vm-03-03_1.svg) #### Preferred vector map -![svg](./assets/vm-03-03_2.svg) +![svg](../assets/vm-03-03_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-03_3.svg) +![svg](../assets/vm-03-03_3.svg) --- @@ -109,15 +109,15 @@ Refer also to the creation scope [vm-07-01](./category_others.md#vm-07-01-vector Autoware uses lanelets to predict the movements of other vehicles and plan the vehicle's velocity accordingly. Therefore, it is necessary to create all lanelets in the intersection. -![svg](./assets/vm-03-04_1.svg) +![svg](../assets/vm-03-04_1.svg) #### Preferred vector map -![svg](./assets/vm-03-04_2.svg) +![svg](../assets/vm-03-04_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-04_3.svg) +![svg](../assets/vm-03-04_3.svg) #### Related Autoware module @@ -131,15 +131,15 @@ Autoware uses lanelets to predict the movements of other vehicles and plan the v Create the Lanelets in the intersection as a single object without dividing them. -![svg](./assets/vm-03-05_1.svg) +![svg](../assets/vm-03-05_1.svg) #### Preferred vector map -![svg](./assets/vm-03-05_2.svg) +![svg](../assets/vm-03-05_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-03_3.svg) +![svg](../assets/vm-03-03_3.svg) #### Related Autoware module @@ -155,11 +155,11 @@ If there are guide lines in the intersection, draw the Lanelet following them. In cases where the Lanelets branches off, begin the branching at the end of the guide line. However, it is not necessary to share points or linestrings between Lanelets. -![svg](./assets/vm-03-06_1.svg) +![svg](../assets/vm-03-06_1.svg) #### Preferred vector map -![svg](./assets/vm-03-06_2.svg) +![svg](../assets/vm-03-06_2.svg) #### Incorrect vector map @@ -177,15 +177,15 @@ None in particular. When connecting multiple lanes with Lanelets at an intersection, those Lanelets should be made adjacent to each other without crossing. -![svg](./assets/vm-03-07_1.svg) +![svg](../assets/vm-03-07_1.svg) #### Preferred vector map -![svg](./assets/vm-03-07_2.svg) +![svg](../assets/vm-03-07_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-07_3.svg) +![svg](../assets/vm-03-07_3.svg) #### Related Autoware module @@ -204,7 +204,7 @@ Encircle the intersection's drivable area with a Polygon (_type:intersection_are #### Preferred vector map -![svg](./assets/vm-03-08_1.svg) +![svg](../assets/vm-03-08_1.svg) #### Incorrect vector map @@ -233,7 +233,7 @@ Determine the start and end positions of lanelets in the intersection (hencefort #### Preferred vector map -![svg](./assets/vm-03-09_1.svg) +![svg](../assets/vm-03-09_1.svg) #### Incorrect vector map @@ -257,17 +257,17 @@ Set the regulatory element 'right_of_way' for Lanelets that meet all of the foll Set to _yield_ those lanelets in the intersection that intersect the vehicle's lanelet, and set to _yield_ those lanelets that do not share the same signal change timing with the vehicle. Also, if the vehicle is turning left, set the opposing vehicle's right-turn lane to _yield_. There is no need to set _yield_ for lanelets where the vehicle goes straight (_turn_direction:straight_). -![svg](./assets/vm-03-10_1.svg) +![svg](../assets/vm-03-10_1.svg) #### Preferred vector map ##### The vehicle turns left -![svg](./assets/vm-03-10_2.svg) +![svg](../assets/vm-03-10_2.svg) ##### The vehicle turns right -![svg](./assets/vm-03-10_3.svg) +![svg](../assets/vm-03-10_3.svg) #### Incorrect vector map @@ -289,19 +289,19 @@ Set the regulatory element 'right_of_way' for Lanelets that meet all of the foll - Lanelets that intersect with the vehicle's lanelet. - There are **no** traffic lights at the intersection. -![svg](./assets/vm-03-11_1.svg) +![svg](../assets/vm-03-11_1.svg) #### Preferred vector map ##### ① The vehicle on the priority lane -![svg](./assets/vm-03-11_2.svg) +![svg](../assets/vm-03-11_2.svg) ##### ② The vehicle on the non-priority lane A regulatory element is not necessary. However, when the vehicle goes straight, it has relative priority over other vehicles turning right from the opposing non-priority road. Therefore, settings for _right_of_way_ and _yield_ are required in this case. -![svg](./assets/vm-03-11_3.svg) +![svg](../assets/vm-03-11_3.svg) #### Incorrect vector map @@ -350,11 +350,11 @@ When a road, which enters or exits private property, intersects with a sidewalk, - The vehicle stops temporarily before entering the sidewalk. - The vehicle comes to a stop before merging onto the public road. -![svg](./assets/vm-03-13_1.svg) +![svg](../assets/vm-03-13_1.svg) #### Preferred vector map -![svg](./assets/vm-03-13_2.svg) +![svg](../assets/vm-03-13_2.svg) #### Incorrect vector map @@ -378,11 +378,11 @@ If there is a stop line ahead of the guide lines in the intersection, ensure the Refer to [Web.Auto Documentation - Creation of Regulatory Element](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-regulatory-element) for the method of creation in Vector Map Builder. -![svg](./assets/vm-03-14_1.svg) +![svg](../assets/vm-03-14_1.svg) #### Preferred vector map -![svg](./assets/vm-03-14_2.svg) +![svg](../assets/vm-03-14_2.svg) #### Incorrect vector map @@ -406,13 +406,13 @@ In addition, set _lane_change = no_ as OptionalTags. The blind spot (entanglement check) feature verifies the lanelet(subtype:road) and decides if the vehicle can proceed. -![png](./assets/vm-03-15_1.png) +![png](../assets/vm-03-15_1.png) -![svg](./assets/vm-03-15_2.svg) +![svg](../assets/vm-03-15_2.svg) #### Preferred vector map -![svg](./assets/vm-03-15_3.svg) +![svg](../assets/vm-03-15_3.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_lane.md similarity index 90% rename from docs/design/autoware-architecture/map/map-requirements/category_lane.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_lane.md index d94d39f9ddd..c5e1177a5f2 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_lane.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_lane.md @@ -19,7 +19,7 @@ The road's Lanelets must comply with the following requirements. #### Preferred vector map -![lanelet](./assets/vm-01-01.svg) +![lanelet](../assets/vm-01-01.svg) --- @@ -43,7 +43,7 @@ Set the Linestring _subtype_ according to the type of line. - White solid lines : indicate that changing lanes and overtaking are allowed. - Yellow solid lines : mean no lane changes are allowed. -![lines](./assets/vm-01-02.svg) +![lines](../assets/vm-01-02.svg) #### Related Autoware module @@ -68,15 +68,15 @@ If the Lanelet adjacent to the one the vehicle is driving on shares a Linestring - The vehicle turns a curve while slightly extending out of the lane. - Lane changes -![lines](./assets/vm-01-03_1.svg) +![lines](../assets/vm-01-03_1.svg) #### Preferred vector map -![lines](./assets/vm-01-03_2.svg) +![lines](../assets/vm-01-03_2.svg) #### Incorrect vector map -![lines](./assets/vm-01-03_3.svg) +![lines](../assets/vm-01-03_3.svg) #### Related Autoware module @@ -97,15 +97,15 @@ When the vehicle's lanelet and the opposing lanelet physically touch, the road c Obstacle avoidance across the opposing lane is possible. -![svg](./assets/vm-01-04_1.svg) +![svg](../assets/vm-01-04_1.svg) #### Preferred vector map -![svg](./assets/vm-01-04_2.svg) +![svg](../assets/vm-01-04_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-04_3.svg) +![svg](../assets/vm-01-04_3.svg) --- @@ -119,15 +119,15 @@ The geometry of the road lanelet needs to comply with the following: - The lines of a Lanelet, which join with lanelets ahead and behind it, must form straight lines. - Ensure the outline is smooth and not jagged or bumpy, except for L-shaped cranks. -![svg](./assets/vm-01-05_1.svg) +![svg](../assets/vm-01-05_1.svg) #### Preferred vector map -![svg](./assets/vm-01-05_2.svg) +![svg](../assets/vm-01-05_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-05_3.svg) +![svg](../assets/vm-01-05_3.svg) --- @@ -137,15 +137,15 @@ The geometry of the road lanelet needs to comply with the following: Ensure the road's center line Linestring is located in the exact middle of the road markings. -![svg](./assets/vm-01-06_1.svg) +![svg](../assets/vm-01-06_1.svg) #### Preferred vector map -![svg](./assets/vm-01-06_2.svg) +![svg](../assets/vm-01-06_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-06_3.svg) +![svg](../assets/vm-01-06_3.svg) --- @@ -155,11 +155,11 @@ Ensure the road's center line Linestring is located in the exact middle of the r Place the Linestring at the center of the markings when lines exist outside the road. -![svg](./assets/vm-01-07_1.svg) +![svg](../assets/vm-01-07_1.svg) #### Preferred vector map -![svg](./assets/vm-01-07_2.svg) +![svg](../assets/vm-01-07_2.svg) #### Incorrect vector map @@ -173,7 +173,7 @@ None in particular. If there are no lines on the outer side within the road, position the Linestring 0.5 m from the road's edge. -![svg](./assets/vm-01-08_1.svg) +![svg](../assets/vm-01-08_1.svg) ##### Caution @@ -181,7 +181,7 @@ The width depends on the laws of your country. #### Preferred vector map -![svg](./assets/vm-01-08_2.svg) +![svg](../assets/vm-01-08_2.svg) #### Incorrect vector map @@ -203,11 +203,11 @@ Note that the following is achieved through Autoware's settings and behavior. - Vehicle's maximum velocity - Speed adjustment at places requiring deceleration, like curves and downhill areas. -![svg](./assets/vm-01-09_1.svg) +![svg](../assets/vm-01-09_1.svg) #### Preferred vector map -![svg](./assets/vm-01-09_2.svg) +![svg](../assets/vm-01-09_2.svg) #### Incorrect vector map @@ -223,7 +223,7 @@ Autoware is designed to move through the midpoint calculated from a Lanelet's le Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. -![svg](./assets/vm-01-10_1.svg) +![svg](../assets/vm-01-10_1.svg) ##### Caution @@ -231,11 +231,11 @@ Create a centerline for the Lanelet when there is a need to shift the driving po #### Preferred vector map -![svg](./assets/vm-01-10_2.svg) +![svg](../assets/vm-01-10_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-10_3.svg) +![svg](../assets/vm-01-10_3.svg) --- @@ -245,15 +245,15 @@ Create a centerline for the Lanelet when there is a need to shift the driving po When center lines have been added to several Lanelets, they should be connected. -![svg](./assets/vm-01-11_1.svg) +![svg](../assets/vm-01-11_1.svg) #### Preferred vector map -![svg](./assets/vm-01-11_2.svg) +![svg](../assets/vm-01-11_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-11_3.svg) +![svg](../assets/vm-01-11_3.svg) --- @@ -263,15 +263,15 @@ When center lines have been added to several Lanelets, they should be connected. If a Lanelet with an added centerline is connected to Lanelets without one, ensure the start and end points of the added centerline are positioned at the Lanelet's center. Ensure the centerline has a smooth shape for drivability. -![svg](./assets/vm-01-12_1.svg) +![svg](../assets/vm-01-12_1.svg) #### Preferred vector map -![svg](./assets/vm-01-12_2.svg) +![svg](../assets/vm-01-12_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-12_3.svg) +![svg](../assets/vm-01-12_3.svg) --- @@ -281,11 +281,11 @@ If a Lanelet with an added centerline is connected to Lanelets without one, ensu When a road lacks a central line but is wide enough for one's vehicle and oncoming vehicles to pass each other, Lanelets should be positioned next to each other at the center of the road. -![svg](./assets/vm-01-13_1.svg) +![svg](../assets/vm-01-13_1.svg) #### Preferred vector map -![svg](./assets/vm-01-13_2.svg) +![svg](../assets/vm-01-13_2.svg) #### Incorrect vector map @@ -312,15 +312,15 @@ Requirement for Vector Map creation: - The application of this case depends on local operational policies and vehicle specifications, and should be determined in discussion with the map requestor. - The current Autoware does not possess the capability to pass oncoming vehicles in shared lanes. -![svg](./assets/vm-01-14_1.svg) +![svg](../assets/vm-01-14_1.svg) #### Preferred vector map -![svg](./assets/vm-01-14_2.svg) +![svg](../assets/vm-01-14_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-14_3.svg) +![svg](../assets/vm-01-14_3.svg) --- @@ -348,17 +348,17 @@ A road Lanelet must be next to the shoulder Lanelet. _tag:lane_change=yes_ is not required on the Linestring marking the boundary of the shoulder. -![svg](./assets/vm-01-15_1.svg) +![svg](../assets/vm-01-15_1.svg) #### Preferred vector map -![svg](./assets/vm-01-15_2.svg) +![svg](../assets/vm-01-15_2.svg) #### Incorrect vector map Do not create a road shoulder Lanelet for roads without a shoulder. -![svg](./assets/vm-01-15_3.svg) +![svg](../assets/vm-01-15_3.svg) #### Related Autoware module @@ -374,11 +374,11 @@ Do not create a road shoulder Lanelet for roads without a shoulder. The Lanelets for the road shoulder and the adjacent road should have a common Linestring. -![svg](./assets/vm-01-15_1.svg) +![svg](../assets/vm-01-15_1.svg) #### Preferred vector map -![svg](./assets/vm-01-16_2.svg) +![svg](../assets/vm-01-16_2.svg) #### Incorrect vector map @@ -400,11 +400,11 @@ Place a Lanelet (_subtype:pedestrian_lane_) on the side strip. However, it is no The side strip's Lanelet must have the Linestring (_subtype:road_border_) outside. -![svg](./assets/vm-01-17_1.svg) +![svg](../assets/vm-01-17_1.svg) #### Preferred vector map -![svg](./assets/vm-01-17_2.svg) +![svg](../assets/vm-01-17_2.svg) #### Incorrect vector map @@ -418,11 +418,11 @@ None in particular. The Lanelet for the side strip and the adjacent road Lanelet should have a common Linestring. -![svg](./assets/vm-01-17_1.svg) +![svg](../assets/vm-01-17_1.svg) #### Preferred vector map -![svg](./assets/vm-01-18_2.svg) +![svg](../assets/vm-01-18_2.svg) #### Incorrect vector map @@ -438,11 +438,11 @@ Place a sidewalk Lanelet (_subtype:walkway_) where necessary. However, install o The length of the lanelet (_subtype:walkway_) should be the area intersecting with your lane and additional 3 meters before and after. -![svg](./assets/vm-01-19_1.svg) +![svg](../assets/vm-01-19_1.svg) #### Preferred vector map -![svg](./assets/vm-01-19_2.svg) +![svg](../assets/vm-01-19_2.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_others.md similarity index 93% rename from docs/design/autoware-architecture/map/map-requirements/category_others.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_others.md index ee70acf4a79..c51a1f465cc 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_others.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_others.md @@ -25,11 +25,11 @@ Check the range of sensors on your vehicle. #### Preferred vector map -![svg](./assets/vm-07-01_1.svg) +![svg](../assets/vm-07-01_1.svg) #### Incorrect vector map -![svg](./assets/vm-07-01_2.svg) +![svg](../assets/vm-07-01_2.svg) --- @@ -47,7 +47,7 @@ Setting up a linestring of the following type instructs Autoware to disregard th #### Preferred vector map -![svg](./assets/vm-05-04_1.svg) +![svg](../assets/vm-05-04_1.svg) #### Incorrect vector map @@ -69,11 +69,11 @@ Follow the same position guidelines for Linestrings of fences (_type:fence_). #### Preferred vector map -![png](./assets/vm-07-03_1.png) +![png](../assets/vm-07-03_1.png) #### Incorrect vector map -![png](./assets/vm-07-03_2.png) +![png](../assets/vm-07-03_2.png) #### Related Autoware module @@ -87,7 +87,7 @@ Follow the same position guidelines for Linestrings of fences (_type:fence_). The height of a Point should be based on the ellipsoidal height (WGS84), in meters. -![svg](./assets/vm-07-04_height_en.svg) +![svg](../assets/vm-07-04_height_en.svg) #### Preferred vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_stop_line.md similarity index 89% rename from docs/design/autoware-architecture/map/map-requirements/category_stop_line.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_stop_line.md index d5014c2e970..d58ecb11c99 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_stop_line.md @@ -10,15 +10,15 @@ Place the Linestring (_type:stop_line_) for the stop line on the edge on the sid Refer to [Web.Auto Documentation - Creation and edit of a stop point (StopPoint)](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-and-edit-of-a-stop-point-stoppoint) for the method of creation in Vector Map Builder. -![svg](./assets/vm-02-01_1.svg) +![svg](../assets/vm-02-01_1.svg) #### Preferred vector map -![svg](./assets/vm-02-01_2.svg) +![svg](../assets/vm-02-01_2.svg) #### Incorrect vector map -![svg](./assets/vm-02-01_3.svg) +![svg](../assets/vm-02-01_3.svg) --- @@ -30,11 +30,11 @@ Where there is no stop line on the road but a stop sign exists, place a Linestri Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:traffic_sign_), and have this Regulatory Element refer to a Linestring (_type:stop_line_) and a Linestring (_type:traffic_sign, subtype:stop_sign)_. -![svg](./assets/vm-02-02_1.svg) +![svg](../assets/vm-02-02_1.svg) #### Preferred vector map -![svg](./assets/vm-02-02_2.svg) +![svg](../assets/vm-02-02_2.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_traffic_light.md similarity index 96% rename from docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_traffic_light.md index 5ede232e917..a9e981be05d 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_traffic_light.md @@ -21,11 +21,11 @@ Refer to vm-04-02 and vm-04-03 for the specifications of traffic light and traff #### Preferred vector map -![svg](./assets/vm-04-01_1.svg) +![svg](../assets/vm-04-01_1.svg) If there is a crosswalk at the intersection, arrange for the road's Lanelet and the crosswalk's Lanelet to intersect and overlap. -![svg](./assets/vm-04-01_2.svg) +![svg](../assets/vm-04-01_2.svg) #### Related Autoware module @@ -52,7 +52,7 @@ Autoware currently ignores subtype _red_yellow_green_. #### Preferred vector map -![svg](./assets/vm-04-02_1.svg) +![svg](../assets/vm-04-02_1.svg) #### Incorrect vector map @@ -79,7 +79,7 @@ Use the Points of the lights when creating a Linestring. #### Preferred vector map -![svg](./assets/vm-04-03_1.svg) +![svg](../assets/vm-04-03_1.svg) The order of the lights' Points can be 1→2→3→4 or 4→3→2→1, either is acceptable. diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md similarity index 100% rename from docs/design/autoware-architecture/map/map-requirements/overview.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md From 69fe00e91bec9d2794ef9e7a1091442c8d1ed382 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Wed, 3 Jul 2024 16:34:30 +0900 Subject: [PATCH 07/20] improve a link to map creation --- .../vector-map-requirements-overview/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md index 7d5064af659..fc2e01a7ffc 100644 --- a/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md @@ -10,9 +10,7 @@ Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autow The primitives (basic components) used in Vector Map are explained in [Web.Auto Docs - What is Lanelet2](https://docs.web.auto/en/user-manuals/vector-map-builder/introduction#what-is-lanelet2). The following **Vector Map creation requirement specifications** are written on the premise of these knowledge. -This specification is a set of requirements for the creation of Vector Map(s) to ensure that Autoware drives safely and autonomously as intended by the user. It does not cover how to operate specific map creation tools. - -- [Vector Map Builder - how to use](https://docs.web.auto/user-manuals/vector-map-builder/how-to-use/edit-maps) +This specification is a set of requirements for the creation of Vector Map(s) to ensure that Autoware drives safely and autonomously as intended by the user. To Create a Lanelet2 format .osm file, please refer to [Creating a vector map](https://autowarefoundation.github.io/autoware-documentation/latest/how-to-guides/integrating-autoware/creating-maps/#creating-a-vector-map). ## Handling of the Requirement Specification From 4424707161cd2074e072d669d1766394fd01b326 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Wed, 26 Jun 2024 17:15:41 +0900 Subject: [PATCH 08/20] feat: vector map requirement proposal Signed-off-by: Nishimoto, Shinya --- .cspell.json | 2 +- .../design/autoware-architecture/map/index.md | 4 +- .../map/map-requirements/assets/vm-01-01.svg | 168 ++ .../map/map-requirements/assets/vm-01-02.svg | 194 ++ .../map-requirements/assets/vm-01-03_1.svg | 265 ++ .../map-requirements/assets/vm-01-03_2.svg | 257 ++ .../map-requirements/assets/vm-01-03_3.svg | 318 +++ .../map-requirements/assets/vm-01-04_1.svg | 631 +++++ .../map-requirements/assets/vm-01-04_2.svg | 246 ++ .../map-requirements/assets/vm-01-04_3.svg | 314 +++ .../map-requirements/assets/vm-01-05_1.svg | 415 +++ .../map-requirements/assets/vm-01-05_2.svg | 178 ++ .../map-requirements/assets/vm-01-05_3.svg | 282 ++ .../map-requirements/assets/vm-01-06_1.svg | 454 +++ .../map-requirements/assets/vm-01-06_2.svg | 109 + .../map-requirements/assets/vm-01-06_3.svg | 71 + .../map-requirements/assets/vm-01-07_1.svg | 249 ++ .../map-requirements/assets/vm-01-07_2.svg | 142 + .../map-requirements/assets/vm-01-08_1.svg | 416 +++ .../map-requirements/assets/vm-01-08_2.svg | 197 ++ .../map-requirements/assets/vm-01-09_1.svg | 100 + .../map-requirements/assets/vm-01-09_2.svg | 213 ++ .../map-requirements/assets/vm-01-10_1.svg | 410 +++ .../map-requirements/assets/vm-01-10_2.svg | 405 +++ .../map-requirements/assets/vm-01-10_3.svg | 302 ++ .../map-requirements/assets/vm-01-11_1.svg | 455 +++ .../map-requirements/assets/vm-01-11_2.svg | 554 ++++ .../map-requirements/assets/vm-01-11_3.svg | 545 ++++ .../map-requirements/assets/vm-01-12_1.svg | 466 ++++ .../map-requirements/assets/vm-01-12_2.svg | 457 +++ .../map-requirements/assets/vm-01-12_3.svg | 387 +++ .../map-requirements/assets/vm-01-13_1.svg | 452 +++ .../map-requirements/assets/vm-01-13_2.svg | 272 ++ .../map-requirements/assets/vm-01-14_1.svg | 468 ++++ .../map-requirements/assets/vm-01-14_2.svg | 260 ++ .../map-requirements/assets/vm-01-14_3.svg | 191 ++ .../map-requirements/assets/vm-01-15_1.svg | 297 ++ .../map-requirements/assets/vm-01-15_2.svg | 431 +++ .../map-requirements/assets/vm-01-15_3.svg | 239 ++ .../map-requirements/assets/vm-01-16_2.svg | 333 +++ .../map-requirements/assets/vm-01-17_1.svg | 217 ++ .../map-requirements/assets/vm-01-17_2.svg | 408 +++ .../map-requirements/assets/vm-01-18_2.svg | 316 +++ .../map-requirements/assets/vm-01-19_1.svg | 542 ++++ .../map-requirements/assets/vm-01-19_2.svg | 302 ++ .../map-requirements/assets/vm-02-01_1.svg | 281 ++ .../map-requirements/assets/vm-02-01_2.svg | 141 + .../map-requirements/assets/vm-02-01_3.svg | 93 + .../map-requirements/assets/vm-02-02_1.svg | 142 + .../map-requirements/assets/vm-02-02_2.svg | 315 +++ .../map-requirements/assets/vm-03-02_1.svg | 222 ++ .../map-requirements/assets/vm-03-02_2.svg | 674 +++++ .../map-requirements/assets/vm-03-03_1.svg | 789 ++++++ .../map-requirements/assets/vm-03-03_2.svg | 689 +++++ .../map-requirements/assets/vm-03-03_3.svg | 699 +++++ .../map-requirements/assets/vm-03-04_1.svg | 898 ++++++ .../map-requirements/assets/vm-03-04_2.svg | 777 ++++++ .../map-requirements/assets/vm-03-04_3.svg | 661 +++++ .../map-requirements/assets/vm-03-05_1.svg | 777 ++++++ .../map-requirements/assets/vm-03-05_2.svg | 699 +++++ .../map-requirements/assets/vm-03-05_3.svg | 722 +++++ .../map-requirements/assets/vm-03-06_1.svg | 2472 +++++++++++++++++ .../map-requirements/assets/vm-03-06_2.svg | 2329 ++++++++++++++++ .../map-requirements/assets/vm-03-07_1.svg | 1681 +++++++++++ .../map-requirements/assets/vm-03-07_2.svg | 1347 +++++++++ .../map-requirements/assets/vm-03-07_3.svg | 1343 +++++++++ .../map-requirements/assets/vm-03-08_1.svg | 1077 +++++++ .../map-requirements/assets/vm-03-09_1.svg | 769 +++++ .../map-requirements/assets/vm-03-10_1.svg | 1794 ++++++++++++ .../map-requirements/assets/vm-03-10_2.svg | 864 ++++++ .../map-requirements/assets/vm-03-10_3.svg | 875 ++++++ .../map-requirements/assets/vm-03-11_1.svg | 1583 +++++++++++ .../map-requirements/assets/vm-03-11_2.svg | 722 +++++ .../map-requirements/assets/vm-03-11_3.svg | 601 ++++ .../map-requirements/assets/vm-03-13_1.svg | 558 ++++ .../map-requirements/assets/vm-03-13_2.svg | 498 ++++ .../map-requirements/assets/vm-03-14_1.svg | 921 ++++++ .../map-requirements/assets/vm-03-14_2.svg | 807 ++++++ .../map-requirements/assets/vm-03-15_1.png | Bin 0 -> 3365 bytes .../map-requirements/assets/vm-03-15_2.svg | 269 ++ .../map-requirements/assets/vm-03-15_3.svg | 346 +++ .../map-requirements/assets/vm-04-01_1.svg | 731 +++++ .../map-requirements/assets/vm-04-01_2.svg | 813 ++++++ .../map-requirements/assets/vm-04-02_1.svg | 654 +++++ .../map-requirements/assets/vm-04-03_1.svg | 590 ++++ .../map-requirements/assets/vm-05-01_1.svg | 161 ++ .../map-requirements/assets/vm-05-02_1.svg | 121 + .../map-requirements/assets/vm-05-03_2.svg | 248 ++ .../map-requirements/assets/vm-05-04_1.svg | 181 ++ .../map-requirements/assets/vm-06-01_1.svg | 405 +++ .../map-requirements/assets/vm-06-01_2.svg | 132 + .../map-requirements/assets/vm-06-01_3.svg | 1236 +++++++++ .../map-requirements/assets/vm-06-02_1.svg | 168 ++ .../map-requirements/assets/vm-06-02_2.svg | 236 ++ .../map-requirements/assets/vm-06-03_1.svg | 156 ++ .../map-requirements/assets/vm-06-03_2.svg | 236 ++ .../map-requirements/assets/vm-06-04_1.svg | 320 +++ .../map-requirements/assets/vm-06-04_2.svg | 383 +++ .../map-requirements/assets/vm-06-05_1.svg | 657 +++++ .../map-requirements/assets/vm-07-01_1.svg | 409 +++ .../map-requirements/assets/vm-07-01_2.svg | 321 +++ .../map/map-requirements/assets/vm-07-03.svg | 166 ++ .../map-requirements/assets/vm-07-03_1.png | Bin 0 -> 154615 bytes .../map-requirements/assets/vm-07-03_2.png | Bin 0 -> 154579 bytes .../assets/vm-07-04_height_en.svg | 188 ++ .../map/map-requirements/category_area.md | 151 + .../map-requirements/category_crosswalk.md | 119 + .../map-requirements/category_intersection.md | 423 +++ .../map/map-requirements/category_lane.md | 453 +++ .../map/map-requirements/category_others.md | 98 + .../map-requirements/category_stop_line.md | 45 + .../category_traffic_light.md | 92 + .../map/map-requirements/overview.md | 82 + 113 files changed, 53340 insertions(+), 4 deletions(-) create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_1.png create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_1.png create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_2.png create mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_area.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_intersection.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_lane.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_others.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_stop_line.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md create mode 100644 docs/design/autoware-architecture/map/map-requirements/overview.md diff --git a/.cspell.json b/.cspell.json index 0cd761eb370..3ea0e5c9222 100644 --- a/.cspell.json +++ b/.cspell.json @@ -1,3 +1,3 @@ { - "words": ["ISCLOAM"] + "words": ["ISCLOAM", "georeferenced", "MGRS"] } diff --git a/docs/design/autoware-architecture/map/index.md b/docs/design/autoware-architecture/map/index.md index b5607e5196d..5e337af5612 100644 --- a/docs/design/autoware-architecture/map/index.md +++ b/docs/design/autoware-architecture/map/index.md @@ -87,9 +87,7 @@ The vector cloud map must be supplied as a file with the following requirements: - Each lanelet in the map must contain traffic rule information including its speed limit, right of way, traffic direction, associated traffic lights, stop lines, and traffic signs. - It must cover the entire operational area of the vehicle. -!!! warning - - Under Construction +For detailed specifications on Vector Map creation, please refer to [Vector Map Creation Requirement Specification document](./map-requirements/overview.md). ### Projection Information diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg new file mode 100644 index 00000000000..420a99ff4c3 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-01.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + left_bound + + right_bound + + + + Lanelet + subtype:road + location:urban + one_way=yes + + + + + direction + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg new file mode 100644 index 00000000000..1c86539a065 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-02.svg @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg new file mode 100644 index 00000000000..ad6166ab74b --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_1.svg @@ -0,0 +1,265 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg new file mode 100644 index 00000000000..6f5b77e1a5b --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_2.svg @@ -0,0 +1,257 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring is sharedamong Lanelets + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg new file mode 100644 index 00000000000..23742b69f78 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-03_3.svg @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring is NOT sharedamong Lanelets + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg new file mode 100644 index 00000000000..bfdf2fd503b --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_1.svg @@ -0,0 +1,631 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + road centerline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg new file mode 100644 index 00000000000..0027d0ae60f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_2.svg @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring:Two lanelets refer tothe same linestring. + + + + + + + + Two Lanelets are the same length. + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg new file mode 100644 index 00000000000..25936cebff2 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-04_3.svg @@ -0,0 +1,314 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring:Two lanelets do NOT referto the same linestring. + + + + + + + + + + + + + + + + + + + + + + + + Two Lanelets are NOT the samelength. + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg new file mode 100644 index 00000000000..3c07776215a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_1.svg @@ -0,0 +1,415 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + road + + road shoulder + + + + + + + + road centerline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg new file mode 100644 index 00000000000..419f06f9c26 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_2.svg @@ -0,0 +1,178 @@ + + + + + + + + + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg new file mode 100644 index 00000000000..f9a375b4bfd --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-05_3.svg @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + + + + + + + The connection to otherlanelets is not straight-line. + + + + uneven and not smooth + + + + + Line does not followthe road boundary. + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg new file mode 100644 index 00000000000..6b910f8031f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_1.svg @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + road centerline + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg new file mode 100644 index 00000000000..5b1752ae7cc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_2.svg @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + + + + Linestring + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg new file mode 100644 index 00000000000..ac0736e3a7d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-06_3.svg @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg new file mode 100644 index 00000000000..d8d3a6fa3e7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_1.svg @@ -0,0 +1,249 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg new file mode 100644 index 00000000000..34d54f03a3e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-07_2.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + Linestring + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg new file mode 100644 index 00000000000..c7997874bc3 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_1.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg new file mode 100644 index 00000000000..163bab78da4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-08_2.svg @@ -0,0 +1,197 @@ + + + + + + + + + + + + + + + + + + Linestring + + + + + + + + + + + + + 0.5 m + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg new file mode 100644 index 00000000000..bee3a0ddd71 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_1.svg @@ -0,0 +1,100 @@ + + + + + + + + + + + + + Speed limit road sign + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg new file mode 100644 index 00000000000..fa4f5589ed8 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-09_2.svg @@ -0,0 +1,213 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road + tag: speed_limit = 20 + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg new file mode 100644 index 00000000000..e71aaa32f67 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_1.svg @@ -0,0 +1,410 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg new file mode 100644 index 00000000000..3ca962b6ac7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_2.svg @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + + + + Lanelet + centerline + + + + + + + + + + Smooth shape that vehiclescan drive on + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg new file mode 100644 index 00000000000..a0e4e2f8761 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-10_3.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Not smooth + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg new file mode 100644 index 00000000000..9c663f2a3cf --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_1.svg @@ -0,0 +1,455 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg new file mode 100644 index 00000000000..38a3823f059 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_2.svg @@ -0,0 +1,554 @@ + + + + + + + + + + + + + + Linestrings connected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg new file mode 100644 index 00000000000..391e1f0b5c4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-11_3.svg @@ -0,0 +1,545 @@ + + + + + + + + + + + + + Not connected + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg new file mode 100644 index 00000000000..78c737c54cc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_1.svg @@ -0,0 +1,466 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg new file mode 100644 index 00000000000..dffeaaa089e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_2.svg @@ -0,0 +1,457 @@ + + + + + + + + + + + + + + + + + The start and end of the linestring (centerline)are placed in the center of the lanelet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg new file mode 100644 index 00000000000..0705ba1ab09 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-12_3.svg @@ -0,0 +1,387 @@ + + + + + + + + + + + + + The start and end of the linestring (centerline)are NOT placed in the center of the lanelet. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg new file mode 100644 index 00000000000..c7034fb085d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_1.svg @@ -0,0 +1,452 @@ + + + + + + + + + + + + + Single lane road + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg new file mode 100644 index 00000000000..1af07b0c4fb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-13_2.svg @@ -0,0 +1,272 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + + + Two Lanelets include thesame Linestring. + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg new file mode 100644 index 00000000000..981bdddf1a1 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_1.svg @@ -0,0 +1,468 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + outward + + return + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg new file mode 100644 index 00000000000..5f292a9536f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_2.svg @@ -0,0 +1,260 @@ + + + + + + + + + + + + + + + + + + + + + + Lanelet (outward) + + + + subtype: road + tag: oneway = yes + + + + + + + + + Lanelet (return) + + + + subtype: road + tag: oneway = yes + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg new file mode 100644 index 00000000000..43e30448184 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-14_3.svg @@ -0,0 +1,191 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + Example of incorrect:The area is divided into two parts,left and right, and Lanelets areplaced side by side. + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg new file mode 100644 index 00000000000..a7a5bcf4249 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_1.svg @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + off road + + sidewalk + + road shoulder + + road + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg new file mode 100644 index 00000000000..0fce0e76ab8 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_2.svg @@ -0,0 +1,431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road_shoulder + tag: oneway = yes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring between roadshoulder and sidewalk + subtype: road_border + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg new file mode 100644 index 00000000000..49979516c84 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-15_3.svg @@ -0,0 +1,239 @@ + + + + + + + + + + + + + + + + + + Example of noroad shoulder + + + + + + + + + + + + + + + + + + + + + + side strip + + off road + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg new file mode 100644 index 00000000000..317338965a4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-16_2.svg @@ -0,0 +1,333 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road_shoulder + tag: oneway = yes + + + + + + + + + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg new file mode 100644 index 00000000000..e1a2d8bc768 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_1.svg @@ -0,0 +1,217 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + side strip + + off road + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg new file mode 100644 index 00000000000..0ca124b39b7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-17_2.svg @@ -0,0 +1,408 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:pedestrian_lane + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring between side stripand off road + subtype: road_border + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg new file mode 100644 index 00000000000..3bfb23eef5c --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-18_2.svg @@ -0,0 +1,316 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet + subtype: road_shoulder + tag: oneway = yes + + + + + + lanelet + subtype: road + tag: oneway = yes + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg new file mode 100644 index 00000000000..62a0c090a07 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_1.svg @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + off road + + + intersecting walkway + + + + + + road shoulder + + road + + + + + + + + + + + + + + private area + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg new file mode 100644 index 00000000000..06304425cc5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-01-19_2.svg @@ -0,0 +1,302 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:walkway + + + + private area + + + + + + + + + + + + + + + + + + 3m + 3m + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg new file mode 100644 index 00000000000..3eedd1c8545 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_1.svg @@ -0,0 +1,281 @@ + + + + + + + + + + + + + + + + + + + + stop line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg new file mode 100644 index 00000000000..680360977fc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_2.svg @@ -0,0 +1,141 @@ + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:stop_line + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg new file mode 100644 index 00000000000..b92df0ea685 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-01_3.svg @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg new file mode 100644 index 00000000000..c7aed19e0e2 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_1.svg @@ -0,0 +1,142 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg new file mode 100644 index 00000000000..80056d5e9fc --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-02-02_2.svg @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:stop_line + + + + + + + + + Linestring + type:traffic_signsubtype: stop_sign + + + + + + + type: regulatory_element + subtype: traffic_sign + + + + + Lanelet + subtype:road + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg new file mode 100644 index 00000000000..590157232eb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_1.svg @@ -0,0 +1,222 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg new file mode 100644 index 00000000000..dad73e0b69d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-02_2.svg @@ -0,0 +1,674 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + tag: + turn_direction:left + + + + Lanelet + tag: + turn_direction:straight + + + + Lanelet + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type: virtual + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg new file mode 100644 index 00000000000..372e8d25ecb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_1.svg @@ -0,0 +1,789 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg new file mode 100644 index 00000000000..f69a2156004 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_2.svg @@ -0,0 +1,689 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The lanelet has a constantwidth and the linestring has a smooth curve + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg new file mode 100644 index 00000000000..1ef5cf7ddc3 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-03_3.svg @@ -0,0 +1,699 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The lanelet doesn't havea constant width and thelinestring doesn't have asmooth curve + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg new file mode 100644 index 00000000000..beddf486f07 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_1.svg @@ -0,0 +1,898 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg new file mode 100644 index 00000000000..25aecd81648 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_2.svg @@ -0,0 +1,777 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + You must create all laneletswithin the intersection + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg new file mode 100644 index 00000000000..91c9a8a4a15 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-04_3.svg @@ -0,0 +1,661 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Your creation is incomplete. + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg new file mode 100644 index 00000000000..cedeb38ef70 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_1.svg @@ -0,0 +1,777 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg new file mode 100644 index 00000000000..5940dfb1364 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_2.svg @@ -0,0 +1,699 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The lane consists of asingle lanelet from theentrance to the exit ofthe intersection. + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg new file mode 100644 index 00000000000..8db46e89b61 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-05_3.svg @@ -0,0 +1,722 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + The Lane consists ofseveral lanelets from theentrance to the exit ofthe intersection. + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg new file mode 100644 index 00000000000..7ae4d8eb19f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_1.svg @@ -0,0 +1,2472 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + guide line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg new file mode 100644 index 00000000000..0b6d23adfc0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-06_2.svg @@ -0,0 +1,2329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:virtual + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:virtual + + + + + + + + + + + + When diverging a Lanelet, the divergenceshall begin at the end of the guide line. + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg new file mode 100644 index 00000000000..ba16f5816f5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_1.svg @@ -0,0 +1,1681 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg new file mode 100644 index 00000000000..ac721be1d3f --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_2.svg @@ -0,0 +1,1347 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg new file mode 100644 index 00000000000..cc4bf0a87f1 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-07_3.svg @@ -0,0 +1,1343 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg new file mode 100644 index 00000000000..b7683fc55d4 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-08_1.svg @@ -0,0 +1,1077 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lanelet connectionboundary + + + + + + road_border + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg new file mode 100644 index 00000000000..252d2acd45a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-09_1.svg @@ -0,0 +1,769 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + stop line + + + + + + + + + + + Use the extended linefrom one end of thestop line as a laneletconnection boundaryin the intersection + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg new file mode 100644 index 00000000000..08899d16ddf --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_1.svg @@ -0,0 +1,1794 @@ + + + + + + + + + + + + + + + + The vehicle turns right. + + The vehicle turns left. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg new file mode 100644 index 00000000000..d0ceb2fdaea --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_2.svg @@ -0,0 +1,864 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + regulatory_element + subtype:right_of_way + + + + + + yield lane + + + right_of_way + (priority lane) + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg new file mode 100644 index 00000000000..15f9bda8d4c --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-10_3.svg @@ -0,0 +1,875 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + regulatory_element + subtype:right_of_way + + + + + + yield lane + + + right_of_way + (priority lane) + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg new file mode 100644 index 00000000000..a72141095d0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_1.svg @@ -0,0 +1,1583 @@ + + + + + + + + + + + + + + + + + + The vehicle goes straightthrough the non-priority lane. + + + + + + The vehicle goes straightthrough the priority lane. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg new file mode 100644 index 00000000000..a9b1adfff12 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_2.svg @@ -0,0 +1,722 @@ + + + + + + + + + + + + + + + + + + + + + regulatory_element + subtype:right_of_way + + + yield lane + + + right_of_way + (priority lane) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg new file mode 100644 index 00000000000..3749719542a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-11_3.svg @@ -0,0 +1,601 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg new file mode 100644 index 00000000000..775c50d10ea --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_1.svg @@ -0,0 +1,558 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + private area + + + + sidewalk + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg new file mode 100644 index 00000000000..7d77cafb328 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-13_2.svg @@ -0,0 +1,498 @@ + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:road + location=private + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:walkway + + + + + + Lanelet + subtype:road + location=urban + + + + + + + + Lanelet + subtype:road_shoulder + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg new file mode 100644 index 00000000000..0735cc14fa5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_1.svg @@ -0,0 +1,921 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + guide line + + + + + + + stop line + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg new file mode 100644 index 00000000000..1454ce407a7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-14_2.svg @@ -0,0 +1,807 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type:stop_line + + + + Lanelet + tag: turn_direction=right + + + + Regulatory Element + subtype: road_marking + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_1.png b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_1.png new file mode 100644 index 0000000000000000000000000000000000000000..e3ebd47b938fbaae22c0d9eeed8fa44ec8f32380 GIT binary patch literal 3365 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 literal 0 HcmV?d00001 diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg new file mode 100644 index 00000000000..776c5a1300d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_2.svg @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Bicycle lane + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg new file mode 100644 index 00000000000..981a1d7212e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-03-15_3.svg @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype:road + + + + + + + Lanelet + subtype:road + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg new file mode 100644 index 00000000000..8bf3b5d8653 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_1.svg @@ -0,0 +1,731 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + RegulatoryElement + subtype: traffic_light + + + refers + + ref_line + + + + + + + LineString + type: stop_line + + + + + LineString + id: 10 + type: traffic_light + + + + + + + + + + + + + + + + + + 4 + + + + 5 + + + + + + 1 + + + + 2 + + + + 3 + + + + + + + light_bulbs + + + + + + + LineString + Id: 11 + type: light_bulbs + traffic_light_id: 10 + + + + + Lanelet + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg new file mode 100644 index 00000000000..a23926ed952 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-01_2.svg @@ -0,0 +1,813 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + refers + + ref_line + + + + LineString + id: 10 + type: traffic_light + + + + + + + + + + + + + + + 4 + + + + 5 + + + + + + 1 + + + + 2 + + + + 3 + + + + + + + light_bulbs + + + + + + + LineString + Id: 11 + type: light_bulbs + traffic_light_id: 10 + + + + + + + + + + Lanelet + + + + + + + LineString + type: stop_line + + + + + + + + RegulatoryElement + subtype: traffic_light + + + + + Lanelet + subtype: crosswalk + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg new file mode 100644 index 00000000000..4db6387f5cf --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-02_1.svg @@ -0,0 +1,654 @@ + + + + + + + + + + + + + + + + + + + + + + ground + + + + + the position of the Pointshould be accurate inthree dimensions + + + + + + + + + + + + + + + + + + + 1 + + + + 2 + + + + Linestring + points: 1-2 + type: traffic_light + height: 1.2 + + + + + + + + height + + + + + + + + + + + + + + + 1 + + + + 2 + + + + Linestring + points: 1-2 + type: traffic_light + height: 0.5 m + + + + + + + + height + + + left end as start point + + right end as end point + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg new file mode 100644 index 00000000000..e0634b87117 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-04-03_1.svg @@ -0,0 +1,590 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1 + + + + 2 + + + + Point + tags: + + color: “green” + + arrow: “right” + + + + + Linestring + points: 1-4 + type: light_bulbs + + + + + 3 + + + + + + 4 + + + + + + + + + + + + + + + + + + + + 1 + + + + 2 + + + + 3 + + + + + + 4 + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg new file mode 100644 index 00000000000..794bff25dc0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-01_1.svg @@ -0,0 +1,161 @@ + + + + + + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ SubType:road +
+
+
+
+ Type:lanelet... +
+
+ + + + +
+
+
+ Type:regulatory_element +
+ SubType: + crosswalk + +
+
+
+
+
+
+ Type:regulatory_element... +
+
+ + + + + + + + + + +
+
+
+ Polygon +
+ crosswalk_polygon +
+
+
+
+ Polygon... +
+
+ + + + +
+
+
+ Linestring3d +
+ ref_line +
+
+
+
+ Linestring3d... +
+
+ + + + + + + + +
+
+
+ Lanelet +
+ refers +
+
+
+
+ Lanelet... +
+
+ + + + +
+
+
+ Linestring3d +
+ ref_line +
+
+
+
+ Linestring3d... +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg new file mode 100644 index 00000000000..1c3dfd2def2 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-02_1.svg @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ SubType:crosswalk +
+
+
+
+ Type:lanelet... +
+
+ + + + +
+
+
+ Type:regulatory_element +
+ SubType:traffic_light + +
+
+
+
+
+
+ Type:regulatory_element... +
+
+ + + + + + + + + + + + +
+
+
+ Linestring +
+ Type:traffic_light +
+
+
+
+ Linestring... +
+
+ + + + +
+
+
+ Linestring +
+ Type:traffic_light +
+
+
+
+ Linestring... +
+
+ + + + +
+ + + + Text is not SVG - cannot display + + +
diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg new file mode 100644 index 00000000000..b599fdcd162 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-03_2.svg @@ -0,0 +1,248 @@ + + + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ + SubType:road +
+
+
+
+
+ + + +
+
+
+ Type:regulatory_element +
+ + SubType: + crosswalk + +
+
+
+
+
+
+
+ + + + + + + + + +
+
+
+ Polygon +
+ + crosswalk_polygon +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + ref_line +
+
+
+
+
+ + + + + + + +
+
+
+ Lanelet +
+ + refers +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + ref_line +
+
+
+
+
+ +
+ + safety_slow_down_speedsafety_slow_down_distance + + + + + + + + + + + + + + + + +
+
+
+ Type:lanelet +
+ + + SubType:road +
+
+
+
+
+ + + +
+
+
+ Type:regulatory_element +
+ + + SubType: + crosswalk + +
+
+
+
+
+
+
+ + + + + + + + + +
+
+
+ Polygon +
+ + + crosswalk_polygon +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + + ref_line +
+
+
+
+
+ + + + + + + +
+
+
+ Lanelet +
+ + + refers +
+
+
+
+
+ + + +
+
+
+ Linestring3d +
+ + + ref_line +
+
+
+
+
+
+
\ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg new file mode 100644 index 00000000000..2ad07439658 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-05-04_1.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + linestring + type:fence + + + + + + Kindergartens orplaygrounds + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg new file mode 100644 index 00000000000..142575bbf81 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_1.svg @@ -0,0 +1,405 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Buffer zone + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg new file mode 100644 index 00000000000..b85f9b42d8e --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_2.svg @@ -0,0 +1,132 @@ + + + + + + + + + + + + + + + + + + + + + + + Safety zone + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg new file mode 100644 index 00000000000..dac2ea04b0c --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-01_3.svg @@ -0,0 +1,1236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Polygon + type:hatched_road_markings + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Polygon + type:intersection_area + + + + + median strip + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg new file mode 100644 index 00000000000..a2bd09b4949 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_1.svg @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No parkng + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg new file mode 100644 index 00000000000..4840b6a34e5 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-02_2.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype: road + + + + + + regulatory_element + subtype: no_parking_area + + + + + + + Polygon + type:no_parking_area + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg new file mode 100644 index 00000000000..dfadfd3a4cd --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_1.svg @@ -0,0 +1,156 @@ + + + + + + + + + + + + + No parking and stopping + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg new file mode 100644 index 00000000000..ab4931b65b0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-03_2.svg @@ -0,0 +1,236 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype: road + + + + + + regulatory_element + subtype: no_parking_area + + + + + + + Polygon + type:no_parking_area + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg new file mode 100644 index 00000000000..34760374631 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_1.svg @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No stopping zone + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg new file mode 100644 index 00000000000..75574069ffb --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-04_2.svg @@ -0,0 +1,383 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + subtype: road + + + + + + type: regulatory_element + subtype: no_stopping_area + + + + + + + Polygon + stype:no_stopping_area + + + + Linestring + type:stop_line + (optional) + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg new file mode 100644 index 00000000000..61afb686f87 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-06-05_1.svg @@ -0,0 +1,657 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Lanelet + + + + + + + + + + + + + + + + + + + + + + + + + + + leftBound + + rightBound + + + + RegulatoryElement + subtype: detection_area + + + ref_line + + + + + + + LineString + type: stop_line + + + + + + + regulatory_ele + ment + + + + + + refers + + + + Polygon + Id: 11 + type: detection_area + area: yes + + + + + + + 1 + + + + 3 + + + + 2 + + + + 4 + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg new file mode 100644 index 00000000000..cb9c877edc0 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_1.svg @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Range of sensor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg new file mode 100644 index 00000000000..fd24ca8757d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-01_2.svg @@ -0,0 +1,321 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg new file mode 100644 index 00000000000..524171fb254 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg @@ -0,0 +1,166 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Linestring + type: guard_rail + + + + + diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_1.png b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03_1.png new file mode 100644 index 0000000000000000000000000000000000000000..143ddc726066b8883b12b1ed03983d4b020ecc3e GIT binary patch literal 154615 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

+B5l9zh$aAJzea!X%LC9mZ{KyZZompV0>Y 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�SDEcHO+NuLdLWJ7NER!+IdmcvOYU#y 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 EYMQVN5pIKiokv+B;6n6KKv3YDwO1y9 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 literal 0 HcmV?d00001 diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg new file mode 100644 index 00000000000..dbf890958ba --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-04_height_en.svg @@ -0,0 +1,188 @@ + + + +pointTerrain surfaceGeoidEllipsoidal heightEllipsoid surfaceOrthometric height diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/category_area.md new file mode 100644 index 00000000000..bcb435d4770 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_area.md @@ -0,0 +1,151 @@ +## Category:Area + +--- + +### vm-06-01 Buffer Zone + +#### Detail of requirements + +Create a Polygon (_type:hatched_road_markings_) when a Buffer Zone (also known as a zebra zone) is painted on the road surface. + +- If the Buffer Zone is next to a Lanelet, share Points between them. +- Overlap the Buffer Zone's Polygon with the intersection's Polygon (intersection_area) if the Buffer Zone is located at an intersection. + +##### Behavior of Autoware: + +In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area and proceeds through it. + +!!! Caution + - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. + - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. + +![svg](./assets/vm-06-01_1.svg) + +![svg](./assets/vm-06-01_2.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-01_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) + +--- + +### vm-06-02 No parking signs + +#### Detail of requirements + +When creating a Vector Map, you can prohibit parking in specific areas, while temporary stops are permitted. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:no_parking_area_), and have this Regulatory Element refer to a Polygon (_type:no_parking_area_). + +Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-no-parking-area) for the method of creation in Vector Map Builder. + +##### Behavior of Autoware: + +Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. + +![svg](./assets/vm-06-02_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-02_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-06-03 No stopping signs + +#### Detail of requirements + +When creating a Vector Map, you can prohibit stopping in specific areas, while temporary stops are permitted. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:no_parking_area_), and have this Regulatory Element refer to a Polygon (_type:no_parking_area_). + +Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-no-parking-area) for the method of creation in Vector Map Builder. + +##### Behavior of Autoware: + +Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. + +![svg](./assets/vm-06-03_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-03_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-06-04 No stopping sections + +#### Detail of requirements + +While vehicles may stop on the road for signals or traffic congestion, you can prohibit any form of stopping (temporary stopping, parking, idling) in specific areas when creating a Vector Map. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:no_stopping_area_), and have this Regulatory Element refer to a Polygon (_type:no_stopping_area_). + +Refer to [Web.Auto Documentation - Creation of No Stopping Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-no-stopping-area) for the method of creation in Vector Map Builder. + +##### Behavior of Autoware: + +The vehicle does not make temporary stops in _no_stopping_area_. Since goals cannot be set in _no_stopping_area_, the vehicle cannot park there. + +![svg](./assets/vm-06-04_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-06-04_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [No Stopping Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/) + +--- + +### vm-06-05 Detection area + +#### Detail of requirements + +Autoware identifies obstacles by detecting point clouds in the Detection Area, leading to a stop at the stop line and maintaining that stop until the obstacles move away. To enable this response, incorporate the Detection Area element into the Vector Map. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:detection_area_), and have this Regulatory Element refer to a Polygon (_type:detection_area_) and a Linestring (_type:stop_line_). + +Refer to [Web.Auto Documentation - Creation of Detection Area](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-detection-area) for the method of creation in Vector Map Builder. + +#### Preferred vector map + +![svg](./assets/vm-06-05_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Detection Area - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md new file mode 100644 index 00000000000..2db632ae799 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md @@ -0,0 +1,119 @@ +## Category:Crosswalk + +There are two types of requirements for crosswalks, and they can both be applicable to a single crosswalk. + +- [vm-05-01](./category_crosswalk.md#vm-05-01-crosswalks-across-the-road) : Crosswalks across the road +- [vm-05-02](./category_crosswalk.md#vm-05-02-crosswalks-with-pedestrian-signals) : Crosswalks with pedestrian signals + +In the case of crosswalks at intersections, they must also meet the requirements of the intersection. + +--- + +### vm-05-01 Crosswalks across the road + +#### Detail of requirements + +Necessary requirements for creation: + +1. Create a Lanelet for the crosswalk (_subtype:crosswalk_). +2. If there is a stop line before the crosswalk, create a Linestring (_type:stop_line_). Create stop lines for the opposing traffic lane in the same way. +3. Create a Polygon (_type:crosswalk_polygon_) to cover the crosswalk. +4. The Lanelet of the road refers to the regulatory element (_subtype:crosswalk_), and the regulatory element refers to the created Lanelet, Linestring, and Polygon. + +##### Supplemental information + +- Link the regulatory element to the lanelet(s) of the road that intersects with the crosswalk. +- The stop lines linked to the regulatory element do not necessarily have to exist on the road Lanelets linked with the regulatory element. + +##### Behavior of Autoware: + +When pedestrians or cyclists are on the crosswalk, Autoware will come to a stop before the stop line and wait for them to pass. Once they have cleared the area, Autoware will begin to move forward. + +#### Preferred vector map + +![svg](./assets/vm-05-01_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Crosswalk - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/) + +--- + +### vm-05-02 Crosswalks with pedestrian signals + +#### Detail of requirements + +Necessary requirements for creation: + +- Create a Lanelet (_subtype:crosswalk_, _participant:pedestrian_). +- Create a Traffic Light Linestring. If multiple traffic lights exist, create multiple Linestrings. + - Linestring + - _type:traffic_light_ + - _subtype:red_green_ + - _height_:value +- Ensure the crosswalk's Lanelet references a Regulatory Element (_subtype:traffic_light_). Also, ensure the Regulatory Element references Linestring (_type:traffic_light_). + +Refer to [vm-04-02](./category_traffic_light.md#vm-04-02-traffic-light-position-and-size) for more about traffic light object. + +#### Preferred vector map + +![svg](./assets/vm-05-02_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Crosswalk - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/) + +--- + +### vm-05-03 Deceleration for safety at crosswalks + +#### Detail of requirements + +To ensure a constant deceleration to a safe speed when traversing a crosswalk, add the following tags to the crosswalk's Lanelet (_subtype:crosswalk_): + +- _safety_slow_down_speed_ [m/s]: The maximum velocity while crossing. +- _safety_slow_down_distance_ [m]: The starting point of the area where the maximum speed applies, measured from the vehicle's front bumper to the crosswalk. + +#### Preferred vector map + +![svg](./assets/vm-05-03_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Crosswalk - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/) + +--- + +### vm-05-04 Fences + +#### Detail of requirements + +Autoware detects pedestrians and bicycles crossing the crosswalk, as well as those that might cross. However, areas near the crosswalk, such as fenced kindergartens, playgrounds, or parks, where many people are moving, can affect crosswalk detection due to predicted paths of people and bicycles from these areas. + +Surround areas not connected to the crosswalk with Linestring (_type:fence_), which does not need to be linked to anything. + +However, if there is a guardrail, wall, or fence between the road and sidewalk, with another fence behind it, the second fence may be omitted. Nevertheless, areas around crosswalks are not subject to this omission and must be created without exclusion. + +#### Preferred vector map + +![svg](./assets/vm-05-04_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md new file mode 100644 index 00000000000..f82e96a271a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md @@ -0,0 +1,423 @@ +## Category:Intersection + +--- + +### vm-03-01 Intersection criteria + +#### Detail of requirements + +Essential criteria for the construction of an intersection: + +- Encircle the drivable area at the intersection with a Polygon (_type:intersection_area_). +- Add _turn_direction_ to all Lanelets in the intersection. +- Ensure that all lanelets in the intersection are tagged: + - _key:intersection_area_ + - _value: Polygon's ID_ +- Attach _right_of_way_ to the necessary Lanelets. +- Also, it is necessary to appropriately create traffic lights, crosswalks, and stop lines. + +For detailed information, refer to the respective requirements on this page. + +##### Autoware modules + +- The requirements for _turn_direction_ and _right_of_way_ are related to the intersection module, which plans velocity to avoid collisions with other vehicles, taking traffic light instructions into account. +- The requirements for _intersection_area_ are related to the avoidance module, which plans routes that evade by veering out of lanes in the intersections. + +#### Preferred vector map + +None in particular. + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) + +--- + +### vm-03-02 Lanelet's turn direction and virtual linestring + +#### Detail of requirements + +Add the following tag to the Lanelets in the intersection: + +- turn_direction : straight +- turn_direction : left +- turn_direction : right + +Also, if the left or right Linestrings of Lanelets at the intersection lack road paintings, designate these as _type:virtual_. + +##### Behavior of Autoware: + +Autoware will start flashing the turn signals (blinkers) 30 meters as default before turn_direction-tagged Lanelet. If you change the blinking timing, add the following tags: + +- key: _turn_signal_distance_ +- value: numerical value (m) + +![svg](./assets/vm-03-02_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-02_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) +- [virtual_traffic_light in behavior_velocity_planner - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/) + +--- + +### vm-03-03 Lanelet width in the intersection + +#### Detail of requirements: + +Lanelets in the intersection should have a consistent width. Additionally, draw Linestrings with smooth curves. + +The shape of this curve must be determined by the Vector Map creator. + +![svg](./assets/vm-03-03_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-03_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-03_3.svg) + +--- + +### vm-03-04 Lanelet creation in the intersection + +#### Detail of requirements + +Create all Lanelets in the intersection, including lanelets not driven by the vehicle. Additionally, link stop lines and traffic lights to the Lanelets appropriately. + +Refer also to the creation scope [vm-07-01](./category_others.md#vm-07-01-vector-map-creation-range) + +##### Behavior of Autoware + +Autoware uses lanelets to predict the movements of other vehicles and plan the vehicle's velocity accordingly. Therefore, it is necessary to create all lanelets in the intersection. + +![svg](./assets/vm-03-04_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-04_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-04_3.svg) + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-05 Lanelet division in the intersection + +#### Detail of requirements + +Create the Lanelets in the intersection as a single object without dividing them. + +![svg](./assets/vm-03-05_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-05_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-03_3.svg) + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-06 Guide lines in the intersection + +#### Detail of requirements + +If there are guide lines in the intersection, draw the Lanelet following them. + +In cases where the Lanelets branches off, begin the branching at the end of the guide line. However, it is not necessary to share points or linestrings between Lanelets. + +![svg](./assets/vm-03-06_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-06_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-07 Multiple lanelets in the intersection + +#### Detail of requirements + +When connecting multiple lanes with Lanelets at an intersection, those Lanelets should be made adjacent to each other without crossing. + +![svg](./assets/vm-03-07_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-07_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-03-07_3.svg) + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-08 Intersection area range + +#### Detail of requirements + +Encircle the intersection's drivable area with a Polygon (_type:intersection_area_). The boundary of this intersection's Polygon should be defined by the objects below. + +- Linestrings (_subtype:road_border_) +- Straight lines at the connection points of lanelets in the intersection." + +#### Preferred vector map + +![svg](./assets/vm-03-08_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) + +--- + +### vm-03-09 Range of Lanelet in the intersection + +#### Detail of requirements + +Determine the start and end positions of lanelets in the intersection (henceforth the boundaries of lanelet connections) based on the stop line's position. + +- For cases with a painted stop line: + - The stop line's linestring (_type:stop_line_) position must align with the lanelet's start. + - Extend the lanelet's end to where the opposing lane's stop line would be. +- Without a painted stop line: + - Use a drawn linestring (_type:stop_line_) to establish positions as if there were a painted stop line. + +#### Preferred vector map + +![svg](./assets/vm-03-09_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-10 Right of way (with signal) + +#### Detail of requirements + +Set the regulatory element 'right_of_way' for Lanelets that meet all of the following criteria: + +- Lanelets in the intersection with a _turn_direction_ of _right_ or _left_. +- Lanelets that intersect with the vehicle's lanelet. +- There are traffic lights at the intersection. + +Set to _yield_ those lanelets in the intersection that intersect the vehicle's lanelet, and set to _yield_ those lanelets that do not share the same signal change timing with the vehicle. Also, if the vehicle is turning left, set the opposing vehicle's right-turn lane to _yield_. There is no need to set _yield_ for lanelets where the vehicle goes straight (_turn_direction:straight_). + +![svg](./assets/vm-03-10_1.svg) + +#### Preferred vector map + +##### The vehicle turns left + +![svg](./assets/vm-03-10_2.svg) + +##### The vehicle turns right + +![svg](./assets/vm-03-10_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-11 Right of way (without signal) + +#### Detail of requirements + +Set the regulatory element 'right_of_way' for Lanelets that meet all of the following criteria: + +- Lanelets in the intersection with a _turn_direction_ of _right_ or _left_. +- Lanelets that intersect with the vehicle's lanelet. +- There are **no** traffic lights at the intersection. + +![svg](./assets/vm-03-11_1.svg) + +#### Preferred vector map + +##### ① The vehicle on the priority lane + +![svg](./assets/vm-03-11_2.svg) + +##### ② The vehicle on the non-priority lane + +A regulatory element is not necessary. However, when the vehicle goes straight, it has relative priority over other vehicles turning right from the opposing non-priority road. Therefore, settings for _right_of_way_ and _yield_ are required in this case. + +![svg](./assets/vm-03-11_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-12 Right of way supplements + +#### Detail of requirements + +##### Why it's necessary to configure 'right_of_way' + +Without the 'right_of_way' setting, Autoware interprets other lanes intersecting its path as having priority. Therefore, as long as there are other vehicles in the crossing lane, Autoware cannot enter the intersection regardless of signal indications. + +An example of a problem: Even when our signal allows proceeding, our vehicle waits beforehand if other vehicles are waiting at a red light where the opposing lane intersects with a right-turn lane. + +#### Preferred vector map + +None in particular. + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-13 Merging from private area, sidewalk + +#### Detail of requirements + +Set _location=private_ for Lanelets within private property. + +When a road, which enters or exits private property, intersects with a sidewalk, create a Lanelet for that sidewalk (_subtype:walkway_). + +##### Behavior of Autoware: + +- The vehicle stops temporarily before entering the sidewalk. +- The vehicle comes to a stop before merging onto the public road. + +![svg](./assets/vm-03-13_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-13_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-14 Road marking + +#### Detail of requirements + +If there is a stop line ahead of the guide lines in the intersection, ensure the following: + +- Create a Lanelet for the guide lines. +- The Lanelet for the guide lines references a Regulatory Element (_subtype:road_marking_). +- The Regulatory Element refers to the _stop_line_'s Linestring." + +Refer to [Web.Auto Documentation - Creation of Regulatory Element](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-regulatory-element) for the method of creation in Vector Map Builder. + +![svg](./assets/vm-03-14_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-14_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + +--- + +### vm-03-15 Exclusive bicycle lane + +#### Detail of requirements + +If an exclusive bicycle lane exists, create a Lanelet (_subtype:road_). The section adjoining the road should share a Linestring. For bicycle lanes at intersections, assign a yield*lane designation beneath the \_right_of_way* for lanes that intersect with the vehicle's left-turn lane. (Refer to [vm-03-10](./category_intersection.md#vm-03-10-right-of-way-with-signal) and [vm-03-11](./category_intersection.md#vm-03-11-right-of-way-without-signal) for right_of_way). + +In addition, set _lane_change = no_ as OptionalTags. + +##### Behavior of Autoware: + +The blind spot (entanglement check) feature verifies the lanelet(subtype:road) and decides if the vehicle can proceed. + +![png](./assets/vm-03-15_1.png) + +![svg](./assets/vm-03-15_2.svg) + +#### Preferred vector map + +![svg](./assets/vm-03-15_3.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/category_lane.md new file mode 100644 index 00000000000..a160449d74a --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_lane.md @@ -0,0 +1,453 @@ +## Category:Lane + +--- + +### vm-01-01 Lanelet basics + +#### Detail of requirements + +The road's Lanelets must comply with the following requirements. + +- _subtype:road_ +- location:urban, for public roads +- Align the Lanelet's direction with the direction of vehicle move. (You can visualize lanelet direction as arrows with [Vector Map Builder](https://docs.web.auto/en/user-manuals/vector-map-builder/screen-layout#project-tab)) +- Set lane change is allowed or not, according to [vm-01-02](#vm-01-02-allowance-for-lane-changes). +- Set the Linestring IDs for Lanelet's left_bound and right_bound respectively. See [vm-01-03](#vm-01-03-linestring-sharing). +- tag : _one_way=yes_. Autoware currently does not support no. +- Connect the Lanelet to another Lanelet, except if it's at the start or end. +- Position the points (x, y, z) within the Lanelet to align with the PCD Map, ensuring accuracy not only laterally but also in elevation. The height of a Point should be based on the ellipsoidal height (WGS84). Refer to [vm-07-04](./category_others.md#vm-07-04-ellipsoidal-height). + +#### Preferred vector map + +![lanelet](./assets/vm-01-01.svg) + +--- + +### vm-01-02 Allowance for lane changes + +#### Detail of requirements + +Add a tag to the Lanelet's Linestring indicating lane change permission or prohibition. + +- Permit _lane_change=yes_ +- Prohibit _lane_change=no_ + +Set the Linestring _subtype_ according to the type of line. + +- _solid_ +- _dashed_ + +##### Referenced from Japan's Road Traffic Law + +- White dashed lines : indicate that lane changes and overtaking are permitted. +- White solid lines : indicate that changing lanes and overtaking are allowed. +- Yellow solid lines : mean no lane changes are allowed. + +![lines](./assets/vm-01-02.svg) + +#### Related Autoware module + +- [Lane Change design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Out of lane design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/) + +--- + +### vm-01-03 Linestring sharing + +#### Detail of requirements + +Share the Linestring when creating Lanelets that are physically adjacent to others. + +##### Behavior of Autoware + +If the Lanelet adjacent to the one the vehicle is driving on shares a Linestring, the following behaviors become possible: + +- The vehicle moves out of their lanes to avoid obstacles. +- The vehicle turns a curve while slightly extending out of the lane. +- Lane changes + +![lines](./assets/vm-01-03_1.svg) + +#### Preferred vector map + +![lines](./assets/vm-01-03_2.svg) + +#### Incorrect vector map + +![lines](./assets/vm-01-03_3.svg) + +#### Related Autoware module + +- [Lane Change design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/) +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Out of lane design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/) + +--- + +### vm-01-04 Sharing of the centerline of lanes for opposing traffic + +#### Detail of requirements + +When the vehicle's lanelet and the opposing lanelet physically touch, the road center line's Linestring ID must be shared between these two Lanelets. For that purpose, the lengths of those two Lanelets must match. + +##### Behavior of Autoware: + +Obstacle avoidance across the opposing lane is possible. + +![svg](./assets/vm-01-04_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-04_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-04_3.svg) + +--- + +### vm-01-05 Lane geometry + +#### Detail of requirements + +The geometry of the road lanelet needs to comply with the following: + +- The left and right Linestrings must follow the road's boundary lines. +- The lines of a Lanelet, which join with lanelets ahead and behind it, must form straight lines. +- Ensure the outline is smooth and not jagged or bumpy, except for L-shaped cranks. + +![svg](./assets/vm-01-05_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-05_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-05_3.svg) + +--- + +### vm-01-06 Line position (1) + +#### Detail of requirements + +Ensure the road's center line Linestring is located in the exact middle of the road markings. + +![svg](./assets/vm-01-06_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-06_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-06_3.svg) + +--- + +### vm-01-07 Line position (2) + +#### Detail of requirements + +Place the Linestring at the center of the markings when lines exist outside the road. + +![svg](./assets/vm-01-07_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-07_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-08 Line position (3) + +#### Detail of requirements + +If there are no lines on the outer side within the road, position the Linestring 0.5 m from the road's edge. + +!!! Caution + + The width depends on the laws of your country. + +![svg](./assets/vm-01-08_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-08_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-09 Speed limits + +#### Detail of requirements + +In the following cases, add a speed limit (_tag:speed_limit_) to the Lanelet (_subtype:road_) the vehicle is driving on, in km/h. + +- A speed limit road sign exists. +- You can add a speed limit, for example, on narrow roads. + +Note that the following is achieved through Autoware's settings and behavior. + +- Vehicle's maximum velocity +- Speed adjustment at places requiring deceleration, like curves and downhill areas. + +![svg](./assets/vm-01-09_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-09_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-10 Centerline + +#### Detail of requirements + +Autoware is designed to move through the midpoint calculated from a Lanelet's left and right Linestrings. + +Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. + +!!!Caution + 'Centerline' is a distinct concept from the central lane division line (centerline). + +![svg](./assets/vm-01-10_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-10_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-10_3.svg) + +--- + +### vm-01-11 Centerline connection (1) + +#### Detail of requirements + +When center lines have been added to several Lanelets, they should be connected. + +![svg](./assets/vm-01-11_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-11_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-11_3.svg) + +--- + +### vm-01-12 Centerline connection (2) + +#### Detail of requirements + +If a Lanelet with an added centerline is connected to Lanelets without one, ensure the start and end points of the added centerline are positioned at the Lanelet's center. Ensure the centerline has a smooth shape for drivability. + +![svg](./assets/vm-01-12_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-12_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-12_3.svg) + +--- + +### vm-01-13 Roads with no centerline (1) + +#### Detail of requirements + +When a road lacks a central line but is wide enough for one's vehicle and oncoming vehicles to pass each other, Lanelets should be positioned next to each other at the center of the road. + +![svg](./assets/vm-01-13_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-13_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-14 Roads with no centerline (2) + +#### Detail of requirements + +Apply if all the next conditions are satisfied: + +- The road is a single lane without a central line and is too narrow for one's vehicle and an oncoming vehicle to pass each other. +- It is an environment where no vehicles other than the autonomous vehicle enter this road. +- The plan involves autonomous vehicles operating forth and back on this road. + +Requirement for Vector Map creation: + +- Stack two Lanelets together. + +##### Supplementary information: + +- The application of this case depends on local operational policies and vehicle specifications, and should be determined in discussion with the map requestor. +- The current Autoware does not possess the capability to pass oncoming vehicles in shared lanes. + +![svg](./assets/vm-01-14_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-14_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-01-14_3.svg) + +--- + +### vm-01-15 Road Shoulder + +#### Detail of requirements + +If there is a shoulder next to the road, place the lanelet for the road shoulder (_subtype:road_shoulder_). However, it is not necessary to create this within intersections. + +The road shoulder's Lanelet and sidewalk's Lanelet share the Linestring (_subtype:road_border_). + +There must not be a road shoulder Lanelet next to another road shoulder Lanelet. + +A road Lanelet must be next to the shoulder Lanelet. + +##### Behavior of Autoware + +- Autoware can start from the shoulder and also reach the shoulder. +- The margin for moving to the edge upon arrival is determined by the Autoware parameter _margin_from_boundary_. It does not need to be considered when creating the Vector Map. +- Autoware does not park on the road shoulder lanelet if it overlaps with any of the following: + - A Polygon marked as _no_parking_area_ + - A Polygon marked as _no_stopping_area_ + - Areas near intersection and in the intersection + - Crosswalk + +_tag:lane_change=yes_ is not required on the Linestring marking the boundary of the shoulder. + +![svg](./assets/vm-01-15_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-15_2.svg) + +#### Incorrect vector map + +Do not create a road shoulder Lanelet for roads without a shoulder. + +![svg](./assets/vm-01-15_3.svg) + +#### Related Autoware module + +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-01-16 Road shoulder Linestring sharing + +#### Detail of requirements + +The Lanelets for the road shoulder and the adjacent road should have a common Linestring. + +![svg](./assets/vm-01-15_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-16_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Static Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) +- [Dynamic Avoidance - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/) +- [Goal Planner design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + +--- + +### vm-01-17 Side strip + +#### Detail of requirements + +Place a Lanelet (_subtype:pedestrian_lane_) on the side strip. However, it is not necessary to create this within intersections. + +The side strip's Lanelet must have the Linestring (_subtype:road_border_) outside. + +![svg](./assets/vm-01-17_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-17_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-18 Side strip Linestring sharing + +#### Detail of requirements + +The Lanelet for the side strip and the adjacent road Lanelet should have a common Linestring. + +![svg](./assets/vm-01-17_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-18_2.svg) + +#### Incorrect vector map + +None in particular. + +--- + +### vm-01-19 sidewalk + +#### Detail of requirements + +Place a sidewalk Lanelet (_subtype:walkway_) where necessary. However, install only when there is a crosswalk intersecting the vehicle's lane. Do not install if there is no intersection. + +The length of the lanelet (_subtype:walkway_) should be the area intersecting with your lane and additional 3 meters before and after. + +![svg](./assets/vm-01-19_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-01-19_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) +- [Walkway design- Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/category_others.md new file mode 100644 index 00000000000..d1dac3a41d7 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_others.md @@ -0,0 +1,98 @@ +## Category:Others + +--- + +### vm-07-01 Vector Map creation range + +#### Detail of requirements + +Create all Lanelets within the sensor range of the vehicle, even those on roads not driven by the vehicle, including Lanelets that intersect with the vehicle's Lanelet. + +However, if the following conditions are met, the range you must create lanelets is 10 meters at least. + +- The vehicle drives on the priority lane through the intersection without traffic lights. +- The vehicle drives straight or turn left through the intersection with traffic lights + +Refer to [vm-03-04](./category_intersection.md#vm-03-04-lanelet-creation-in-the-intersection) for more about intersection requirements. + +##### Behavior of Autoware: + +Autoware detects approaching vehicles and plans a route to avoid collisions. + +!!! Caution + + Check the range of sensors on your vehicle. + +#### Preferred vector map + +![svg](./assets/vm-07-01_1.svg) + +#### Incorrect vector map + +![svg](./assets/vm-07-01_2.svg) + +--- + +### vm-07-02 Range of detecting pedestrians who enter the road + +#### Detail of requirements + +Autoware's feature for detecting sudden entries from the roadside tracks pedestrians and cyclists beyond the road boundaries, decelerating to prevent collisions when emergence into the road is likely. + +Setting up a linestring of the following type instructs Autoware to disregard those positioned outside the line as not posing pop-out risks. + +- guard_rail +- wall +- fence + +#### Preferred vector map + +![svg](./assets/vm-05-04_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) + +--- + +### vm-07-03 Guardrails, guard pipes, fences + +#### Detail of requirements + +When creating a Linestring for guardrails or guard pipes (_type: guard_rail_), position it at the point where the most protruding part on the roadway side is projected vertically onto the ground. + +Follow the same position guidelines for Linestrings of fences (_type:fence_). + +#### Preferred vector map + +![png](./assets/vm-07-03_1.png) + +#### Incorrect vector map + +![png](./assets/vm-07-03_2.png) + +#### Related Autoware module + +- [Drivable Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design/) + +--- + +### vm-07-04 Ellipsoidal height + +#### Detail of requirements + +The height of a Point should be based on the ellipsoidal height (WGS84), in meters. + +![svg](./assets/vm-07-04_height_en.svg) + +#### Preferred vector map + +The height of a Point is the distance from the ellipsoidal surface to the ground. + +#### Incorrect vector map + +The height of a Point is Orthometric height, the distance from the Geoid to the ground. diff --git a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md new file mode 100644 index 00000000000..61ee74f6e65 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md @@ -0,0 +1,45 @@ +## Category:Stop Line + +--- + +### vm-02-01 Stop line alignment + +#### Detail of requirements + +Place the Linestring (_type:stop_line_) for the stop line on the edge on the side before the white line. + +Refer to [Web.Auto Documentation - Creation and edit of a stop point (StopPoint)](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-and-edit-of-a-stop-point-stoppoint) for the method of creation in Vector Map Builder. + +![svg](./assets/vm-02-01_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-02-01_2.svg) + +#### Incorrect vector map + +![svg](./assets/vm-02-01_3.svg) + +--- + +### vm-02-02 Stop sign + +#### Detail of requirements + +Where there is no stop line on the road but a stop sign exists, place a Linestring as the stop line next to the sign. + +Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:traffic_sign_), and have this Regulatory Element refer to a Linestring (_type:stop_line_) and a Linestring (_type:traffic_sign, subtype:stop_sign)_. + +![svg](./assets/vm-02-02_1.svg) + +#### Preferred vector map + +![svg](./assets/vm-02-02_2.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Stop Line design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/) \ No newline at end of file diff --git a/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md b/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md new file mode 100644 index 00000000000..5ede232e917 --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md @@ -0,0 +1,92 @@ +## Category:Traffic Light + +--- + +### vm-04-01 Traffic light basics + +#### Detail of requirements + +When creating traffic lights in a vector map, meet the following requirements: + +- Road Lanelet (_subtype:road_). Quantity: one. +- Traffic Light. Multiple instances possible. + - Traffic light Linestring (_type:traffic_light_). + - Traffic light bulbs Linestring (_type:light_bulbs_). + - Stop line Linestring (_type:stop_line_). +- Regulatory element for traffic lights (_subtype:traffic_light_). Referenced by the road Lanelet and references both the traffic light (_traffic_light_, _light_bulbs_) and stop line (_stop_line_). Quantity: one. + +Refer to [Web.Auto Documentation - Creation of a traffic light and a stop line](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-a-traffic-light-and-a-stop-line) for the method of creation in Vector Map Builder. + +Refer to vm-04-02 and vm-04-03 for the specifications of traffic light and traffic light bulb objects. + +#### Preferred vector map + +![svg](./assets/vm-04-01_1.svg) + +If there is a crosswalk at the intersection, arrange for the road's Lanelet and the crosswalk's Lanelet to intersect and overlap. + +![svg](./assets/vm-04-01_2.svg) + +#### Related Autoware module + +- [Traffic Light design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/) + +--- + +### vm-04-02 Traffic light position and size + +#### Detail of requirements + +Create traffic lights with Linestring. + +- _type:traffic_light_ +- _subtype:red_yellow_green_ (optional) + +Create the Linestring's length (from start to end points) precisely aligned with the traffic light's bottom edge. Ensure the traffic light's positional height is correctly represented in the Linestring's 3D coordinates. + +Use _tag:height_ for the traffic light's height, e.g., for 50cm, write _tag:height=0.5_. Note that this height indicates the size of the traffic light, not its position. + +##### Supplemental information + +Autoware currently ignores subtype _red_yellow_green_. + +#### Preferred vector map + +![svg](./assets/vm-04-02_1.svg) + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Traffic Light design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/) + +--- + +### vm-04-03 Traffic light lamps + +#### Detail of requirements + +To enable the system to detect the color of traffic lights, the color scheme and arrangement must be accurately created as objects. Indicate the position of the lights with Points. For colored lights, use the _color_ tag to represent the color. For arrow lights, use the _arrow_ tag to indicate the direction. + +- _tag: color = red, yellow, green_ +- _tag: arrow = up, right, left, up_light, up_left_ + +Use the Points of the lights when creating a Linestring. + +- _type: light_bulbs_ + +#### Preferred vector map + +![svg](./assets/vm-04-03_1.svg) + +The order of the lights' Points can be 1→2→3→4 or 4→3→2→1, either is acceptable. + +#### Incorrect vector map + +None in particular. + +#### Related Autoware module + +- [Traffic Light design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md new file mode 100644 index 00000000000..a0a23b5a40d --- /dev/null +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -0,0 +1,82 @@ +# Vector Map creation requirement specifications + +## Overview + +Autoware relies on high-definition point cloud maps and vector maps of the driving environment to perform various tasks such as localization, route planning, traffic light detection, and predicting the trajectories of pedestrians and other vehicles. + +A vector map contains highly accurate information about a road network, lane geometry, and traffic lights. It is required for route planning, traffic light detection, and predicting the trajectories of other vehicles and pedestrians. + +Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autoware_common/blob/main/tmp/lanelet2_extension/docs/lanelet2_format_extension.md), which is based on the [lanelet2](https://github.com/fzi-forschungszentrum-informatik/Lanelet2) format and extended for Autoware. + +The primitives (basic components) used in Vector Map are explained in [Web.Auto Docs - What is Lanelet2](https://docs.web.auto/en/user-manuals/vector-map-builder/introduction#what-is-lanelet2). The following **Vector Map creation requirement specifications** are written on the premise of these knowledge. + +This specification is a set of requirements for the creation of Vector Map(s) to ensure that Autoware drives safely and autonomously as intended by the user. It does not cover how to operate specific map creation tools. + +- [Vector Map Builder - how to use](https://docs.web.auto/user-manuals/vector-map-builder/how-to-use/edit-maps) + +## Handling of the Requirement Specification + +Which requirements apply entirely depends on the configuration of the Autoware system on a vehicle. Before creating a Vector Map, it is necessary to clearly determine in advance how you want the vehicle with the implemented system to behave in various environments. + +Next, you must comply with the laws of the country where the autonomous driving vehicle will be operating. It is your responsibility to choose which of the following requirements to apply according to the laws. + +!!!Caution + - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. + - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. + +## List of Requirement Specifications + +| Category | ID | Requirements | +| --------------------------------------------------------------- | -------- | ----------------------------------------------------------------- | +| [Category Lane](./category_lane.md) | vm-01-01 | Lanelet basics | +| | vm-01-02 | Allowance for lane changes | +| | vm-01-03 | Linestring sharing | +| | vm-01-04 | Sharing of the centerline of lanes for opposing traffic | +| | vm-01-05 | Lane geometry | +| | vm-01-06 | Line position (1) | +| | vm-01-07 | Line position (2) | +| | vm-01-08 | Line position (3) | +| | vm-01-09 | Speed limits | +| | vm-01-10 | Centerline | +| | vm-01-11 | Centerline connection (1) | +| | vm-01-12 | Centerline connection (2) | +| | vm-01-13 | Roads with no centerline (1) | +| | vm-01-14 | Roads with no centerline (2) | +| | vm-01-15 | Road shoulder | +| | vm-01-16 | Road shoulder Linestring sharing | +| | vm-01-17 | Side strip | +| | vm-01-18 | Side strip Linestring sharing | +| | vm-01-19 | Walkway | +| [Category Stop Line](./category_stop_line.md) | vm-02-01 | Stop line alignment | +| | vm-02-02 | Stop sign | +| [Category Intersection](./category_intersection.md) | vm-03-01 | Intersection criteria | +| | vm-03-02 | Lanelet's turn direction and virtual | +| | vm-03-03 | Lanelet width in the intersection | +| | vm-03-04 | Lanelet creation in the intersection | +| | vm-03-05 | Lanelet division in the intersection | +| | vm-03-06 | Guide lines in the intersection | +| | vm-03-07 | Multiple lanelets in the intersection | +| | vm-03-08 | Intersection Area range | +| | vm-03-09 | Range of Lanelet in the intersection | +| | vm-03-10 | Right of way (with signal) | +| | vm-03-11 | Right of way (without signal) | +| | vm-03-12 | Right of way supplements | +| | vm-03-13 | Merging from private area, sidewalk | +| | vm-03-14 | Road marking | +| | vm-03-15 | Exclusive bicycle lane | +| [Category Traffic Light](./category_traffic_light.md) | vm-04-01 | Traffic light basics | +| | vm-04-02 | Traffic light position and size | +| | vm-04-03 | Traffic light lamps | +| [Category Crosswalk](./category_crosswalk.md) | vm-05-01 | Crosswalks across the road | +| | vm-05-02 | Crosswalks with pedestrian signals | +| | vm-05-03 | Deceleration for safety at crosswalks | +| | vm-05-04 | Fences | +| [Category Area](./category_area.md) | vm-06-01 | Buffer Zone | +| | vm-06-02 | No parking signs | +| | vm-06-03 | No stopping signs | +| | vm-06-04 | No stopping sections | +| | vm-06-05 | Detection area | +| [Category Others](./category_others.md) | vm-07-01 | Vector Map creation range | +| | vm-07-02 | Range of detecting pedestrians who enter the road | +| | vm-07-03 | Guardrails, guard pipes, fences | +| | vm-07-04 | Ellipsoidal height | From 19cb351266e33426851164a5f56fe10affe32dc0 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 26 Jun 2024 08:19:59 +0000 Subject: [PATCH 09/20] style(pre-commit): autofix Signed-off-by: Nishimoto, Shinya --- .../map/map-requirements/category_area.md | 4 +- .../map-requirements/category_crosswalk.md | 2 +- .../map-requirements/category_intersection.md | 2 +- .../map/map-requirements/category_lane.md | 6 +- .../map/map-requirements/category_others.md | 2 +- .../map-requirements/category_stop_line.md | 2 +- .../map/map-requirements/overview.md | 112 +++++++++--------- 7 files changed, 63 insertions(+), 67 deletions(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/category_area.md index bcb435d4770..c76eb961bb5 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_area.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_area.md @@ -15,9 +15,7 @@ Create a Polygon (_type:hatched_road_markings_) when a Buffer Zone (also known a In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area and proceeds through it. -!!! Caution - - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. +!!! Caution - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. ![svg](./assets/vm-06-01_1.svg) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md index 2db632ae799..196e4c881ff 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md @@ -116,4 +116,4 @@ None in particular. #### Related Autoware module -- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) \ No newline at end of file +- [map_based_prediction - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/perception/autoware_map_based_prediction/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md index f82e96a271a..960b19e9a5a 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_intersection.md @@ -420,4 +420,4 @@ None in particular. #### Related Autoware module -- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) \ No newline at end of file +- [Blind Spot design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/category_lane.md index a160449d74a..393d8180a45 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_lane.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_lane.md @@ -224,7 +224,7 @@ Autoware is designed to move through the midpoint calculated from a Lanelet's le Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. !!!Caution - 'Centerline' is a distinct concept from the central lane division line (centerline). +'Centerline' is a distinct concept from the central lane division line (centerline). ![svg](./assets/vm-01-10_1.svg) @@ -306,7 +306,7 @@ Requirement for Vector Map creation: - Stack two Lanelets together. -##### Supplementary information: +##### Supplementary information - The application of this case depends on local operational policies and vehicle specifications, and should be determined in discussion with the map requestor. - The current Autoware does not possess the capability to pass oncoming vehicles in shared lanes. @@ -450,4 +450,4 @@ None in particular. #### Related Autoware module - [Intersection - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) -- [Walkway design- Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/) \ No newline at end of file +- [Walkway design- Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_walkway_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/category_others.md index d1dac3a41d7..2abe4fdb287 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_others.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_others.md @@ -77,7 +77,7 @@ Follow the same position guidelines for Linestrings of fences (_type:fence_). #### Related Autoware module -- [Drivable Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design/) +- [Drivable Area design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner_common/docs/behavior_path_planner_drivable_area_design/) --- diff --git a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md index 61ee74f6e65..d5014c2e970 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md @@ -42,4 +42,4 @@ None in particular. #### Related Autoware module -- [Stop Line design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/) \ No newline at end of file +- [Stop Line design - Autoware Universe Documentation](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/) diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md index a0a23b5a40d..cbd44f1d522 100644 --- a/docs/design/autoware-architecture/map/map-requirements/overview.md +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -20,63 +20,61 @@ Which requirements apply entirely depends on the configuration of the Autoware s Next, you must comply with the laws of the country where the autonomous driving vehicle will be operating. It is your responsibility to choose which of the following requirements to apply according to the laws. -!!!Caution - - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. - - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. +!!!Caution - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. ## List of Requirement Specifications -| Category | ID | Requirements | -| --------------------------------------------------------------- | -------- | ----------------------------------------------------------------- | -| [Category Lane](./category_lane.md) | vm-01-01 | Lanelet basics | -| | vm-01-02 | Allowance for lane changes | -| | vm-01-03 | Linestring sharing | -| | vm-01-04 | Sharing of the centerline of lanes for opposing traffic | -| | vm-01-05 | Lane geometry | -| | vm-01-06 | Line position (1) | -| | vm-01-07 | Line position (2) | -| | vm-01-08 | Line position (3) | -| | vm-01-09 | Speed limits | -| | vm-01-10 | Centerline | -| | vm-01-11 | Centerline connection (1) | -| | vm-01-12 | Centerline connection (2) | -| | vm-01-13 | Roads with no centerline (1) | -| | vm-01-14 | Roads with no centerline (2) | -| | vm-01-15 | Road shoulder | -| | vm-01-16 | Road shoulder Linestring sharing | -| | vm-01-17 | Side strip | -| | vm-01-18 | Side strip Linestring sharing | -| | vm-01-19 | Walkway | -| [Category Stop Line](./category_stop_line.md) | vm-02-01 | Stop line alignment | -| | vm-02-02 | Stop sign | -| [Category Intersection](./category_intersection.md) | vm-03-01 | Intersection criteria | -| | vm-03-02 | Lanelet's turn direction and virtual | -| | vm-03-03 | Lanelet width in the intersection | -| | vm-03-04 | Lanelet creation in the intersection | -| | vm-03-05 | Lanelet division in the intersection | -| | vm-03-06 | Guide lines in the intersection | -| | vm-03-07 | Multiple lanelets in the intersection | -| | vm-03-08 | Intersection Area range | -| | vm-03-09 | Range of Lanelet in the intersection | -| | vm-03-10 | Right of way (with signal) | -| | vm-03-11 | Right of way (without signal) | -| | vm-03-12 | Right of way supplements | -| | vm-03-13 | Merging from private area, sidewalk | -| | vm-03-14 | Road marking | -| | vm-03-15 | Exclusive bicycle lane | -| [Category Traffic Light](./category_traffic_light.md) | vm-04-01 | Traffic light basics | -| | vm-04-02 | Traffic light position and size | -| | vm-04-03 | Traffic light lamps | -| [Category Crosswalk](./category_crosswalk.md) | vm-05-01 | Crosswalks across the road | -| | vm-05-02 | Crosswalks with pedestrian signals | -| | vm-05-03 | Deceleration for safety at crosswalks | -| | vm-05-04 | Fences | -| [Category Area](./category_area.md) | vm-06-01 | Buffer Zone | -| | vm-06-02 | No parking signs | -| | vm-06-03 | No stopping signs | -| | vm-06-04 | No stopping sections | -| | vm-06-05 | Detection area | -| [Category Others](./category_others.md) | vm-07-01 | Vector Map creation range | -| | vm-07-02 | Range of detecting pedestrians who enter the road | -| | vm-07-03 | Guardrails, guard pipes, fences | -| | vm-07-04 | Ellipsoidal height | +| Category | ID | Requirements | +| ----------------------------------------------------- | -------- | ------------------------------------------------------- | +| [Category Lane](./category_lane.md) | vm-01-01 | Lanelet basics | +| | vm-01-02 | Allowance for lane changes | +| | vm-01-03 | Linestring sharing | +| | vm-01-04 | Sharing of the centerline of lanes for opposing traffic | +| | vm-01-05 | Lane geometry | +| | vm-01-06 | Line position (1) | +| | vm-01-07 | Line position (2) | +| | vm-01-08 | Line position (3) | +| | vm-01-09 | Speed limits | +| | vm-01-10 | Centerline | +| | vm-01-11 | Centerline connection (1) | +| | vm-01-12 | Centerline connection (2) | +| | vm-01-13 | Roads with no centerline (1) | +| | vm-01-14 | Roads with no centerline (2) | +| | vm-01-15 | Road shoulder | +| | vm-01-16 | Road shoulder Linestring sharing | +| | vm-01-17 | Side strip | +| | vm-01-18 | Side strip Linestring sharing | +| | vm-01-19 | Walkway | +| [Category Stop Line](./category_stop_line.md) | vm-02-01 | Stop line alignment | +| | vm-02-02 | Stop sign | +| [Category Intersection](./category_intersection.md) | vm-03-01 | Intersection criteria | +| | vm-03-02 | Lanelet's turn direction and virtual | +| | vm-03-03 | Lanelet width in the intersection | +| | vm-03-04 | Lanelet creation in the intersection | +| | vm-03-05 | Lanelet division in the intersection | +| | vm-03-06 | Guide lines in the intersection | +| | vm-03-07 | Multiple lanelets in the intersection | +| | vm-03-08 | Intersection Area range | +| | vm-03-09 | Range of Lanelet in the intersection | +| | vm-03-10 | Right of way (with signal) | +| | vm-03-11 | Right of way (without signal) | +| | vm-03-12 | Right of way supplements | +| | vm-03-13 | Merging from private area, sidewalk | +| | vm-03-14 | Road marking | +| | vm-03-15 | Exclusive bicycle lane | +| [Category Traffic Light](./category_traffic_light.md) | vm-04-01 | Traffic light basics | +| | vm-04-02 | Traffic light position and size | +| | vm-04-03 | Traffic light lamps | +| [Category Crosswalk](./category_crosswalk.md) | vm-05-01 | Crosswalks across the road | +| | vm-05-02 | Crosswalks with pedestrian signals | +| | vm-05-03 | Deceleration for safety at crosswalks | +| | vm-05-04 | Fences | +| [Category Area](./category_area.md) | vm-06-01 | Buffer Zone | +| | vm-06-02 | No parking signs | +| | vm-06-03 | No stopping signs | +| | vm-06-04 | No stopping sections | +| | vm-06-05 | Detection area | +| [Category Others](./category_others.md) | vm-07-01 | Vector Map creation range | +| | vm-07-02 | Range of detecting pedestrians who enter the road | +| | vm-07-03 | Guardrails, guard pipes, fences | +| | vm-07-04 | Ellipsoidal height | From 71a697b71545bccc114f2678c473820dac41ff31 Mon Sep 17 00:00:00 2001 From: Yutaka Kondo Date: Mon, 24 Jun 2024 18:14:24 +0900 Subject: [PATCH 10/20] feat(doc): revert "feat(doc): add `--download-artifacts` option to docker-installation.md" (#571) Signed-off-by: Nishimoto, Shinya --- docs/installation/autoware/docker-installation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/installation/autoware/docker-installation.md b/docs/installation/autoware/docker-installation.md index 53f3de78a52..74d3fef3c5a 100644 --- a/docs/installation/autoware/docker-installation.md +++ b/docs/installation/autoware/docker-installation.md @@ -18,13 +18,13 @@ Open AD Kit offers two types of Docker image to let you get started with Autowar The [setup script](https://github.com/autowarefoundation/autoware/blob/main/setup-dev-env.sh) will install all required dependencies with the setup script: ```bash -./setup-dev-env.sh -y --download-artifacts docker +./setup-dev-env.sh -y docker ``` To install without **NVIDIA GPU** support: ```bash -./setup-dev-env.sh -y --no-nvidia --download-artifacts docker +./setup-dev-env.sh -y --no-nvidia docker ``` !!! info From 5112f456988db9e7eb222e242d655fa03d1ac778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=2E=20Fatih=20C=C4=B1r=C4=B1t?= Date: Mon, 24 Jun 2024 12:59:54 +0300 Subject: [PATCH 11/20] feat(support-guidelines): update guidelines for Autoware community support (#578) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: M. Fatih Cırıt Signed-off-by: Nishimoto, Shinya --- docs/support/support-guidelines.md | 108 +++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 23 deletions(-) diff --git a/docs/support/support-guidelines.md b/docs/support/support-guidelines.md index d84a73d27c5..78519f3ea9c 100644 --- a/docs/support/support-guidelines.md +++ b/docs/support/support-guidelines.md @@ -10,19 +10,53 @@ This page explains the support mechanisms we provide. Choose appropriate resources depending on what kind of help you need and read the detailed description in the sections below. - [Documentation sites](#documentation-sites) - - Various information + - Gathering information - [GitHub Discussions](#github-discussions) - - Questions - - Unconfirmed bugs - - Feature requests - - Design discussions + - Questions or unconfirmed bugs -> [Q&A](https://github.com/orgs/autowarefoundation/discussions/categories/q-a) + - [Feature requests](https://github.com/orgs/autowarefoundation/discussions/categories/feature-requests) + - [Design discussions](https://github.com/orgs/autowarefoundation/discussions/categories/design) - [GitHub Issues](#github-issues) - Confirmed bugs + - Confirmed tasks - [Discord](#discord) - Instant messaging between contributors - [ROS Discourse](#ros-discourse) - General topics that should be widely announced +## Guidelines for Autoware community support + +If you encounter a problem with Autoware, please follow these steps to seek help: + +### 1. Search for existing Issues and Questions + +Before creating a new issue or question, check if someone else has already reported or asked about the problem. Use the following resources: + +- **[Issues](https://github.com/autowarefoundation/autoware/issues)** + + Note that Autoware has multiple repositories listed in [autoware.repos](https://github.com/autowarefoundation/autoware/blob/main/autoware.repos). + It is recommended to search across all repositories. + +- **[Questions](https://github.com/autowarefoundation/autoware/discussions/categories/q-a)** + +### 2. Create a new question thread + +If you don't find an existing issue or question that addresses your problem, create a new question thread: + +- **[Ask a Question](https://github.com/autowarefoundation/autoware/discussions/categories/q-a)** + + If your question is not answered within a week, mention `@autoware-maintainers` in a post to remind them. + +### 3. Participate in other discussions + +You are also welcome to open or join discussions in other categories: + +- **[Feature requests](https://github.com/autowarefoundation/autoware/discussions/categories/feature-requests)** +- **[Design discussions](https://github.com/autowarefoundation/autoware/discussions/categories/design)** + +### Additional resources + +If you are unsure how to create a discussion, refer to the [GitHub Docs on creating a new discussion](https://docs.github.com/en/discussions/quickstart#creating-a-new-discussion). + ## Documentation sites [Docs guide](docs-guide.md) shows the list of useful documentation sites. @@ -31,39 +65,67 @@ Visit them and see if there is any information related to your problem. Note that the documentation sites aren't always up-to-date and perfect. If you find out that some information is wrong, unclear, or missing in Autoware docs, feel free to submit a pull request following the [contribution guidelines](../contributing/index.md). +## GitHub Discussions + +[GitHub discussions page](https://github.com/orgs/autowarefoundation/discussions) is the primary place for asking questions and discussing topics related to Autoware. + +| Category | Description | +| :--------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------- | +| [Announcements](https://github.com/orgs/autowarefoundation/discussions/categories/announcements) | Official updates and news from the Autoware maintainers | +| [Design](https://github.com/orgs/autowarefoundation/discussions/categories/design) | Discussions on Autoware system and software design | +| [Feature requests](https://github.com/orgs/autowarefoundation/discussions/categories/feature-requests) | Suggestions for new features and improvements | +| [General](https://github.com/orgs/autowarefoundation/discussions/categories/general) | General discussions about Autoware | +| [Ideas](https://github.com/orgs/autowarefoundation/discussions/categories/ideas) | Brainstorming and sharing innovative ideas | +| [Polls](https://github.com/orgs/autowarefoundation/discussions/categories/polls) | Community polls and surveys | +| [Q&A](https://github.com/orgs/autowarefoundation/discussions/categories/q-a) | Questions and answers from the community and developers | +| [Show and tell](https://github.com/orgs/autowarefoundation/discussions/categories/show-and-tell) | Showcase of projects and achievements | +| [TSC meetings](https://github.com/orgs/autowarefoundation/discussions/categories/tsc-meetings) | Minutes and discussions from TSC(Technical Steering Committee) meetings | +| [Working group activities](https://github.com/orgs/autowarefoundation/discussions/categories/working-group-activities) | Updates on working group activities | +| [Working group meetings](https://github.com/orgs/autowarefoundation/discussions/categories/working-group-meetings) | Minutes and discussions from working group meetings | + !!! warning - Since this documentation site is still under construction, there are some empty pages. + GitHub Discussions is not the right place to track tasks or bugs. Use GitHub Issues for that purpose. -## GitHub Discussions +## GitHub Issues -If you encounter a problem with Autoware, check existing issues and questions and search for similar issues first. +GitHub Issues is the designated platform for tracking confirmed bugs, tasks, and enhancements within Autoware's various repositories. -- [Issues](https://github.com/autowarefoundation/autoware/issues) +Follow these guidelines to ensure efficient issue tracking and resolution: - Note that Autoware has multiple repositories listed in [autoware.repos](https://github.com/autowarefoundation/autoware/blob/main/autoware.repos). - It is recommended to search across the repositories. +### Reporting bugs -- [Questions](https://github.com/autowarefoundation/autoware/discussions/categories/q-a) +If you encounter a confirmed bug, please report it by creating an issue in the appropriate Autoware repository. +Include detailed information such as steps to reproduce, expected outcomes, and actual results to assist maintainers in addressing the issue promptly. -If no answer was found, create a new question thread [here](https://github.com/autowarefoundation/autoware/discussions/categories/q-a). -If your question is not answered within a week, then @mention the maintainers to remind them. +### Tracking tasks -Also, there are other discussion types such as [feature requests](https://github.com/autowarefoundation/autoware/discussions/categories/feature-requests) or [design discussions](https://github.com/autowarefoundation/autoware/discussions/categories/design). -Feel free to open or join such discussions. +GitHub Issues is also the place for managing tasks including: -If you don't know how to create a discussion, refer to [GitHub Docs](https://docs.github.com/en/discussions/quickstart#creating-a-new-discussion). +- **Refactoring:** Propose refactoring existing code to improve efficiency, readability, or maintainability. Clearly describe what and why you propose to refactor. +- **New Features:** If you have confirmed the need for a new feature through discussions, use Issues to track its development. Outline the feature's purpose, potential designs, and its intended impact. +- **Documentation:** Propose changes to documentation to fix inaccuracies, update outdated content, or add new sections. Specify what changes are needed and why they are important. -## GitHub Issues +### Creating an issue -If you have a problem and you have confirmed it is a bug, find the appropriate repository and create a new issue there. -If you can't determine the appropriate repository, ask the maintainers for help by creating a new discussion in the [Q&A category](https://github.com/autowarefoundation/autoware/discussions/categories/q-a). +When creating a new issue, use the following guidelines: -!!! warning +1. **Choose the Correct Repository**: If unsure which repository is appropriate, start a discussion in the [Q&A category](https://github.com/autowarefoundation/autoware/discussions/categories/q-a) to seek guidance from maintainers. +2. **Use Clear, Concise Titles**: Clearly summarize the issue or task in the title for quick identification. +3. **Provide Detailed Descriptions**: Include all necessary details to understand the context and scope of the issue. Attach screenshots, error logs, and code snippets where applicable. +4. **Tag Relevant Contributors**: Mention contributors or teams that might be impacted by or interested in the issue. + +### Linking issues and pull requests - Do not create issues for questions or unconfirmed bugs. If such issues are created, maintainers will transfer them to GitHub Discussions. +When you start working on an issue, link the related pull request to the issue by mentioning the issue number. +This helps maintain a clear and traceable development history. + +For more details, see the [Pull Request Guidelines page](../contributing/pull-request-guidelines/index.md). + +!!! warning -If you want to fix the bug by yourself, discuss the approach with maintainers and submit a pull request. + GitHub Issues is not for questions or unconfirmed bugs. If an issue is created for such purposes, + it will likely be transferred to GitHub Discussions for further clarification. ## Discord From 80f322fa9e967f84d39d8a43b02bc06109c244bb Mon Sep 17 00:00:00 2001 From: "Takagi, Isamu" <43976882+isamu-takagi@users.noreply.github.com> Date: Wed, 26 Jun 2024 13:35:20 +0900 Subject: [PATCH 12/20] feat(ad-api): add routing api description (#555) Signed-off-by: Takagi, Isamu Signed-off-by: Nishimoto, Shinya --- .../autoware-interfaces/ad-api/list/api/routing/set_route.md | 1 + .../ad-api/list/api/routing/set_route_points.md | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route.md b/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route.md index d80b8ac5138..a7338b1c45c 100644 --- a/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route.md +++ b/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route.md @@ -19,4 +19,5 @@ type: {% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %} {% block description %} Set the route with the waypoint segments in lanelet format. If start pose is not specified, the current pose will be used. +This API only accepts the route when the route state is UNSET. In any other state, clear the route first. {% endblock %} diff --git a/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route_points.md b/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route_points.md index 0b80cf71ecd..b95f8fae903 100644 --- a/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route_points.md +++ b/docs/design/autoware-interfaces/ad-api/list/api/routing/set_route_points.md @@ -19,4 +19,5 @@ type: {% extends 'design/autoware-interfaces/templates/autoware-interface.jinja2' %} {% block description %} Set the route with the waypoint poses. If start pose is not specified, the current pose will be used. +This API only accepts the route when the route state is UNSET. In any other state, clear the route first. {% endblock %} From 3003ad6e6274ecba23fe68fff0c6567b2a88a945 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Wed, 26 Jun 2024 18:22:43 +0900 Subject: [PATCH 13/20] fix: layout issues Signed-off-by: Nishimoto, Shinya --- .../map/map-requirements/category_area.md | 4 +++- .../map/map-requirements/category_lane.md | 13 +++++++------ .../map/map-requirements/category_others.md | 4 ++-- .../map/map-requirements/overview.md | 5 ++++- 4 files changed, 16 insertions(+), 10 deletions(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/category_area.md index c76eb961bb5..fdb1986f606 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_area.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_area.md @@ -15,7 +15,9 @@ Create a Polygon (_type:hatched_road_markings_) when a Buffer Zone (also known a In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area and proceeds through it. -!!! Caution - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. +##### Caution + +- Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. ![svg](./assets/vm-06-01_1.svg) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/category_lane.md index 393d8180a45..d94d39f9ddd 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_lane.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_lane.md @@ -173,11 +173,11 @@ None in particular. If there are no lines on the outer side within the road, position the Linestring 0.5 m from the road's edge. -!!! Caution +![svg](./assets/vm-01-08_1.svg) - The width depends on the laws of your country. +##### Caution -![svg](./assets/vm-01-08_1.svg) +The width depends on the laws of your country. #### Preferred vector map @@ -223,11 +223,12 @@ Autoware is designed to move through the midpoint calculated from a Lanelet's le Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. -!!!Caution -'Centerline' is a distinct concept from the central lane division line (centerline). - ![svg](./assets/vm-01-10_1.svg) +##### Caution + +'Centerline' is a distinct concept from the central lane division line (centerline). + #### Preferred vector map ![svg](./assets/vm-01-10_2.svg) diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/category_others.md index 2abe4fdb287..ee70acf4a79 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_others.md +++ b/docs/design/autoware-architecture/map/map-requirements/category_others.md @@ -19,9 +19,9 @@ Refer to [vm-03-04](./category_intersection.md#vm-03-04-lanelet-creation-in-the- Autoware detects approaching vehicles and plans a route to avoid collisions. -!!! Caution +##### Caution - Check the range of sensors on your vehicle. +Check the range of sensors on your vehicle. #### Preferred vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md index cbd44f1d522..22cf2788111 100644 --- a/docs/design/autoware-architecture/map/map-requirements/overview.md +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -20,7 +20,10 @@ Which requirements apply entirely depends on the configuration of the Autoware s Next, you must comply with the laws of the country where the autonomous driving vehicle will be operating. It is your responsibility to choose which of the following requirements to apply according to the laws. -!!!Caution - The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. - The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. +### Caution + +- The examples of the road signs and road surface markings are used in Japan. Please replace them with those used in your respective countries. +- The values for range and distance indicated are minimum values. Please determine values that comply with the laws of your country. Furthermore, these minimum values may change depending on the maximum velocity of the autonomous driving vehicle. ## List of Requirement Specifications From 5538066243ec8d09a78859dcd6f7d48a8ad50eb3 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Tue, 2 Jul 2024 09:49:29 +0900 Subject: [PATCH 14/20] fix a dead link Signed-off-by: Nishimoto, Shinya --- .../autoware-architecture/map/map-requirements/overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/overview.md index 22cf2788111..7d5064af659 100644 --- a/docs/design/autoware-architecture/map/map-requirements/overview.md +++ b/docs/design/autoware-architecture/map/map-requirements/overview.md @@ -6,7 +6,7 @@ Autoware relies on high-definition point cloud maps and vector maps of the drivi A vector map contains highly accurate information about a road network, lane geometry, and traffic lights. It is required for route planning, traffic light detection, and predicting the trajectories of other vehicles and pedestrians. -Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autoware_common/blob/main/tmp/lanelet2_extension/docs/lanelet2_format_extension.md), which is based on the [lanelet2](https://github.com/fzi-forschungszentrum-informatik/Lanelet2) format and extended for Autoware. +Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autoware_lanelet2_extension/blob/main/autoware_lanelet2_extension/docs/lanelet2_format_extension.md), which is based on the [lanelet2](https://github.com/fzi-forschungszentrum-informatik/Lanelet2) format and extended for Autoware. The primitives (basic components) used in Vector Map are explained in [Web.Auto Docs - What is Lanelet2](https://docs.web.auto/en/user-manuals/vector-map-builder/introduction#what-is-lanelet2). The following **Vector Map creation requirement specifications** are written on the premise of these knowledge. From 16fe2d858ea0a3c4cd84c2c4592fd5cb0c070b3a Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Tue, 2 Jul 2024 20:35:52 +0900 Subject: [PATCH 15/20] delete an unnecessary file Signed-off-by: Nishimoto, Shinya --- .../map/map-requirements/assets/vm-07-03.svg | 166 ------------------ 1 file changed, 166 deletions(-) delete mode 100644 docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg diff --git a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg b/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg deleted file mode 100644 index 524171fb254..00000000000 --- a/docs/design/autoware-architecture/map/map-requirements/assets/vm-07-03.svg +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Linestring - type: guard_rail - - - - - From e1b9d35cf962bd21cd07ebe732cf0b77f008bac5 Mon Sep 17 00:00:00 2001 From: "Md. Muhaimin Rahman" Date: Wed, 26 Jun 2024 19:41:39 +0900 Subject: [PATCH 16/20] fix(perception-architecture): correct a typo (#582) Signed-off-by: Md. Muhaimin Rahman Signed-off-by: Nishimoto, Shinya --- docs/design/autoware-architecture/perception/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/perception/index.md b/docs/design/autoware-architecture/perception/index.md index 9ce29a31241..b1687b89491 100644 --- a/docs/design/autoware-architecture/perception/index.md +++ b/docs/design/autoware-architecture/perception/index.md @@ -78,7 +78,7 @@ The following describes the input/output concept between Perception Component an - **From Localization**: This input should provide real-time information about the ego vehicle. - Vehicle motion information: Includes the ego vehicle's position. - **From Map**: This input should provide real-time information about the static information about the environment. - - Vector Map: Contains all static information about the environment, including lane aria information. + - Vector Map: Contains all static information about the environment, including lane area information. - Point Cloud Map: Contains static point cloud maps, which should not include information about the dynamic objects. - **From API**: - V2X information: The information from V2X modules. For example, the information from traffic signals. From 6e9226e87223fb89ec9d1841c6df022ad022cc64 Mon Sep 17 00:00:00 2001 From: fixposition-support Date: Wed, 26 Jun 2024 14:44:59 +0200 Subject: [PATCH 17/20] docs: update Fixposition documentation (#566) * Update Fixposition docs Signed-off-by: Fixposition Support * Ignore spell checker Signed-off-by: Fixposition Support --------- Signed-off-by: Fixposition Support Co-authored-by: Takagi, Isamu <43976882+isamu-takagi@users.noreply.github.com> Signed-off-by: Nishimoto, Shinya --- docs/reference-hw/imu_ahrs_gnss_ins.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/reference-hw/imu_ahrs_gnss_ins.md b/docs/reference-hw/imu_ahrs_gnss_ins.md index af5dd26ba0a..65f3c2a9efc 100644 --- a/docs/reference-hw/imu_ahrs_gnss_ins.md +++ b/docs/reference-hw/imu_ahrs_gnss_ins.md @@ -70,7 +70,7 @@ Link to ROS 2 driver: Link to company website: [https://www.applanix.com/products/poslv.htm](https://www.applanix.com/products/poslv.htm) -## **PolyExplore GNSS/INS Sensors** +## **PolyExplore GNSS/INS Sensors** ![images/gnss-polyexplore.png](images/gnss-polyexplore.png) @@ -87,7 +87,7 @@ Link to ROS 2 driver: Link to company website: [https://www.polyexplore.com/](https://www.polyexplore.com/) -## **Fix Position GNSS/INS Sensors** +## **Fixposition Visual GNSS/INS Sensors** ![images/gnss-fixposition.png](images/gnss-fixposition.png) @@ -100,3 +100,8 @@ Link to ROS 2 driver: Link to company website: [https://www.fixposition.com/](https://www.fixposition.com/) + +Additional utilities: + +- Fixposition GNSS transformation lib: [https://github.com/fixposition/fixposition_gnss_tf](https://github.com/fixposition/fixposition_gnss_tf) +- Miscellaneous utilities (logging, software update, ...): [https://github.com/fixposition/fixposition_utility](https://github.com/fixposition/fixposition_utility) From 34f5543e1ef41bd228e9492a4092c7280d19b83a Mon Sep 17 00:00:00 2001 From: Go Sakayori Date: Mon, 1 Jul 2024 19:26:07 +0900 Subject: [PATCH 18/20] fix: planning links (#583) * fix table Signed-off-by: Go Sakayori * fix reference implementation links Signed-off-by: Go Sakayori * style(pre-commit): autofix * fix typo Signed-off-by: Go Sakayori * fix links Signed-off-by: Go Sakayori * fix Signed-off-by: Go Sakayori --------- Signed-off-by: Go Sakayori Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Signed-off-by: Nishimoto, Shinya --- .../autoware-architecture/planning/index.md | 132 +++++++++--------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/docs/design/autoware-architecture/planning/index.md b/docs/design/autoware-architecture/planning/index.md index c26d3a0d35a..97c9fc1ff07 100644 --- a/docs/design/autoware-architecture/planning/index.md +++ b/docs/design/autoware-architecture/planning/index.md @@ -153,45 +153,45 @@ This section describes the inputs and outputs of the Planning Component and of i ### Supported features -| Feature | Description | Requirements | Figure | Demonstration | -| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Route Planning | Plan route from the ego vehicle position to the destination.

Reference implementation is in [Mission Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/mission_planner/), enabled by launching the `mission_planner` node. | - Lanelet map (driving lanelets) | ![route-planning](image/features-route-planning.drawio.svg) | -| Path Planning from Route | Plan path to be followed from the given route.

Reference implementation is in [Behavior Path Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/). | - Lanelet map (driving lanelets) | ![lane-follow](image/features-lane-follow.drawio.svg) | -| Obstacle Avoidance | Plan path to avoid obstacles by steering operation.

Reference implementation is in [Avoidance](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/docs/behavior_path_planner_avoidance_design/), [Obstacle Avoidance Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_avoidance_planner/). Enable flag in parameter: `launch obstacle_avoidance_planner true` | - objects information | ![obstacle-avoidance](image/features-avoidance.drawio.svg) | [Demonstration Video](https://youtu.be/A_V9yvfKZ4E)
[![Demonstration Video](https://img.youtube.com/vi/A_V9yvfKZ4E/0.jpg)](https://www.youtube.com/watch?v=A_V9yvfKZ4E) | -| Path Smoothing | Plan path to achieve smooth steering.

Reference implementation is in [Obstacle Avoidance Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_avoidance_planner/). | - Lanelet map (driving lanelet) | ![path-smoothing](image/features-path-smoothing.drawio.svg) | [Demonstration Video](https://youtu.be/RhyAF26Ppzs)
[![Demonstration Video](https://img.youtube.com/vi/RhyAF26Ppzs/0.jpg)](https://www.youtube.com/watch?v=RhyAF26Ppzs) | -| Narrow Space Driving | Plan path to drive within the drivable area. Furthermore, when it is not possible to drive within the drivable area, stop the vehicle to avoid exiting the drivable area.

Reference implementation is in [Obstacle Avoidance Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_avoidance_planner/). | - Lanelet map (high-precision lane boundaries) | ![narrow-space-driving](image/features-narrow-space-driving.drawio.svg) | [Demonstration Video](https://youtu.be/URzcLO2E1vY)
[![Demonstration Video](https://img.youtube.com/vi/URzcLO2E1vY/0.jpg)](https://www.youtube.com/watch?v=URzcLO2E1vY) | -| Lane Change | Plan path for lane change to reach the destination.

Reference implementation is in [Lane Change](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/docs/behavior_path_planner_lane_change_design/). | - Lanelet map (driving lanelets) | ![lane-change](image/features-lane-change.drawio.svg) | [Demonstration Video](https://youtu.be/0jRDGQ84cD4)
[![Demonstration Video](https://img.youtube.com/vi/0jRDGQ84cD4/0.jpg)](https://www.youtube.com/watch?v=0jRDGQ84cD4) | -| Pull Over | Plan path for pull over to park at the road shoulder.

Reference implementation is in [Goal Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/docs/behavior_path_planner_goal_planner_design/). | - Lanelet map (shoulder lane) | ![pull-over](image/features-pull-over.drawio.svg) | Demonstration Videos:
[Simple Pull Over](https://youtu.be/r3-kAmTb4hc)
[![Demonstration Video](https://img.youtube.com/vi/r3-kAmTb4hc/0.jpg)](https://www.youtube.com/watch?v=r3-kAmTb4hc)
[Arc Forward Pull Over](https://youtu.be/ornbzkWxRWU)
[![Demonstration Video](https://img.youtube.com/vi/ornbzkWxRWU/0.jpg)](https://www.youtube.com/watch?v=ornbzkWxRWU)
[Arc Backward Pull Over](https://youtu.be/if-0tG3AkLo)
[![Demonstration Video](https://img.youtube.com/vi/if-0tG3AkLo/0.jpg)](https://www.youtube.com/watch?v=if-0tG3AkLo) | -| Pull Out | Plan path for pull over to start from the road shoulder.

Reference implementation is in [Pull Out Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/docs/behavior_path_planner_start_planner_design/#:~:text=WIP-,Path%20Generation,-%23). | - Lanelet map (shoulder lane) | ![pull-out](image/features-pull-out.drawio.svg) | Demonstration Video:
[Simple Pull Out](https://youtu.be/xOjnPqoHup4)
[![Demonstration Video](https://img.youtube.com/vi/xOjnPqoHup4/0.jpg)](https://www.youtube.com/watch?v=xOjnPqoHup4)
[Backward Pull Out](https://youtu.be/iGieijPcPcQ)
[![Demonstration Video](https://img.youtube.com/vi/iGieijPcPcQ/0.jpg)](https://www.youtube.com/watch?v=iGieijPcPcQ) | -| Path Shift | Plan path in lateral direction in response to external instructions.

Reference implementation is in [Side Shift Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/docs/behavior_path_planner_side_shift_design/). | - None | ![side-shift](image/features-side-shift.drawio.svg) | -| Obstacle Stop | Plan velocity to stop for an obstacle on the path.

Reference implementation is in [Obstacle Stop Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/), [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_cruise_planner/). `launch obstacle_stop_planner` and enable flag: `TODO`, `launch obstacle_cruise_planner` and enable flag: `TODO` | - objects information | ![obstacle-stop](image/features-obstacle-stop.drawio.svg) | [Demonstration Video](https://youtu.be/d8IRW_xArcE)
[![Demonstration Video](https://img.youtube.com/vi/d8IRW_xArcE/0.jpg)](https://www.youtube.com/watch?v=d8IRW_xArcE) | -| Obstacle Deceleration | Plan velocity to decelerate for an obstacle located around the path.

Reference implementation is in [Obstacle Stop Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/), [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_cruise_planner/). | - objects information | ![obstacle-decel](image/features-obstacle-decel.drawio.svg) | [Demonstration Video](https://youtu.be/gvN1otgeaaw)
[![Demonstration Video](https://img.youtube.com/vi/gvN1otgeaaw/0.jpg)](https://www.youtube.com/watch?v=gvN1otgeaaw) | -| Adaptive Cruise Control | Plan velocity to follow the vehicle driving in front of the ego vehicle.

Reference implementation is in [Obstacle Stop Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/), [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_cruise_planner/). | - objects information | ![adaptive-cruise](image/features-adaptive-cruise.drawio.svg) | -| Decelerate for cut-in vehicles | Plan velocity to avoid a risk for cutting-in vehicle to ego lane.

Reference implementation is in [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_cruise_planner/). | - objects information | ![cut-in](image/features-cut-in.drawio.svg) | -| Surround Check at starting | Plan velocity to prevent moving when an obstacle exists around the vehicle.

Reference implementation is in [Surround Obstacle Checker](https://autowarefoundation.github.io/autoware.universe/main/planning/surround_obstacle_checker/). Enable flag in parameter: `use_surround_obstacle_check true` in [tier4_planning_component.launch.xml](https://github.com/autowarefoundation/autoware_launch/blob/2850d7f4e20b173fde2183d5323debbe0067a990/autoware_launch/launch/components/tier4_planning_component.launch.xml#L8) < | - objects information | ![surround-check](image/features-surround-check.drawio.svg) | [Demonstration Video](https://youtu.be/bbGgtXN3lC4)
[![Demonstration Video](https://img.youtube.com/vi/bbGgtXN3lC4/0.jpg)](https://www.youtube.com/watch?v=bbGgtXN3lC4) | -| Curve Deceleration | Plan velocity to decelerate the speed on a curve.

Reference implementation is in [Motion Velocity Smoother](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_smoother/). | - None | ![decel-on-curve](image/features-decel-on-curve.drawio.svg) | -| Curve Deceleration for Obstacle | Plan velocity to decelerate the speed on a curve for a risk of obstacle collision around the path.

Reference implementation is in [Obstacle Velocity Limiter](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_velocity_limiter/). | - objects information
- Lanelet map (static obstacle) | ![decel-on-curve-obstacles](image/features-decel-on-curve-obstacles.drawio.svg) | [Demonstration Video](https://youtu.be/I-oFgG6kIAs)
[![Demonstration Video](https://img.youtube.com/vi/I-oFgG6kIAs/0.jpg)](https://www.youtube.com/watch?v=I-oFgG6kIAs) | -| Crosswalk | Plan velocity to stop or decelerate for pedestrians approaching or walking on a crosswalk.

Reference implementation is in [Crosswalk Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_crosswalk_module/). | - objects information
- Lanelet map (pedestrian crossing) | ![crosswalk](image/features-crosswalk.drawio.svg) | [Demonstration Video](https://youtu.be/tUvthyIL2W8)
[![Demonstration Video](https://img.youtube.com/vi/tUvthyIL2W8/0.jpg)](https://www.youtube.com/watch?v=tUvthyIL2W8) | -| Intersection Oncoming Vehicle Check | Plan velocity for turning right/left at intersection to avoid a risk with oncoming other vehicles.

Reference implementation is in [Intersection Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_intersection_module/). | - objects information
- Lanelet map (intersection lane and yield lane) | ![intersection](image/features-intersection.drawio.svg) | [Demonstration Video](https://youtu.be/SGD07Hqg4Hk)
[![Demonstration Video](https://img.youtube.com/vi/SGD07Hqg4Hk/0.jpg)](https://www.youtube.com/watch?v=SGD07Hqg4Hk) | -| Intersection Blind Spot Check | Plan velocity for turning right/left at intersection to avoid a risk with other vehicles or motorcycles coming from behind blind spot.

Reference implementation is in [Blind Spot Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_blind_spot_module/). | - objects information
- Lanelet map (intersection lane) | ![blind-spot](image/features-blind-spot.drawio.svg) | [Demonstration Video](https://youtu.be/oaTCJRafDGA)
[![Demonstration Video](https://img.youtube.com/vi/oaTCJRafDGA/0.jpg)](https://www.youtube.com/watch?v=oaTCJRafDGA) | -| Intersection Occlusion Check | Plan velocity for turning right/left at intersection to avoid a risk with the possibility of coming vehicles from occlusion area.

Reference implementation is in [Intersection Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_intersection_module/). | - objects information
- Lanelet map (intersection lane) | ![intersection-occlusion](image/features-intersection-occlusion.drawio.svg) | [Demonstration Video](https://youtu.be/bAHXMB7kbFc)
[![Demonstration Video](https://img.youtube.com/vi/bAHXMB7kbFc/0.jpg)](https://www.youtube.com/watch?v=bAHXMB7kbFc) | -| Intersection Traffic Jam Detection | Plan velocity for intersection not to enter the intersection when a vehicle is stopped ahead for a traffic jam.

Reference implementation is in [Intersection Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_intersection_module/). | - objects information
- Lanelet map (intersection lane) | ![intersection-traffic-jam](image/features-intersection-traffic-jam.drawio.svg) | [Demonstration Video](https://youtu.be/negK4VbrC5o)
[![Demonstration Video](https://img.youtube.com/vi/negK4VbrC5o/0.jpg)](https://www.youtube.com/watch?v=negK4VbrC5o) | -| Traffic Light | Plan velocity for intersection according to a traffic light signal.

Reference implementation is in [Traffic Light Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_traffic_light_module/). | - Traffic light color information | ![traffic-light](image/features-traffic-light.drawio.svg) | [Demonstration Video](https://youtu.be/lGA53KljQrM)
[![Demonstration Video](https://img.youtube.com/vi/lGA53KljQrM/0.jpg)](https://www.youtube.com/watch?v=lGA53KljQrM) | -| Run-out Check | Plan velocity to decelerate for the possibility of nearby objects running out into the path.

Reference implementation is in [Run Out Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_run_out_module/). | - objects information | ![run-out](image/features-run-out.drawio.svg) | [Demonstration Video](https://youtu.be/9IDggldT2t0)
[![Demonstration Video](https://img.youtube.com/vi/9IDggldT2t0/0.jpg)](https://www.youtube.com/watch?v=9IDggldT2t0) | -| Stop Line | Plan velocity to stop at a stop line.

Reference implementation is in [Stop Line Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_stop_line_module/). | - Lanelet map (stop line) | ![stop-line](image/features-stop-line.drawio.svg) | [Demonstration Video](https://youtu.be/eej9jYt-GSE)
[![Demonstration Video](https://img.youtube.com/vi/eej9jYt-GSE/0.jpg)](https://www.youtube.com/watch?v=eej9jYt-GSE) | -| Occlusion Spot Check | Plan velocity to decelerate for objects running out from occlusion area, for example, from behind a large vehicle.

Reference implementation is in [Occlusion Spot Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_occlusion_spot_module/). | - objects information
- Lanelet map (private/public lane) | ![occlusion-spot](image/features-occlusion-spot.drawio.svg) | [Demonstration Video](https://youtu.be/3qs8Ivjh1fs)
[![Demonstration Video](https://img.youtube.com/vi/3qs8Ivjh1fs/0.jpg)](https://www.youtube.com/watch?v=3qs8Ivjh1fs) | -| No Stop Area | Plan velocity not to stop in areas where stopping is prohibited, such as in front of the fire station entrance.

Reference implementation is in [No Stopping Area Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_no_stopping_area_module/). | - Lanelet map (no stopping area) | ![no-stopping-area](image/features-no-stopping-area.drawio.svg) | -| Merge from Private Area to Public Road | Plan velocity for entering the public road from a private driveway to avoid a risk of collision with pedestrians or other vehicles.

Reference implementation is in [Merge from Private Area Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_intersection_module/). | - objects information
- Lanelet map (private/public lane) | WIP | -| Speed Bump | Plan velocity to decelerate for speed bumps.

Reference implementation is in [Speed Bump Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_speed_bump_module/). | - Lanelet map (speed bump) | ![speed-bump](image/features-speed-bump.drawio.svg) | [Demonstration Video](https://youtu.be/FpX3q3YaaCw)
[![Demonstration Video](https://img.youtube.com/vi/FpX3q3YaaCw/0.jpg)](https://www.youtube.com/watch?v=FpX3q3YaaCw) | -| Detection Area | Plan velocity to stop at the corresponding stop when an object exist in the designated detection area.

Reference implementation is in [Detection Area Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_detection_area_module/). | - Lanelet map (detection area) | ![detection-area](image/features-detection-area.drawio.svg) | [Demonstration Video](https://youtu.be/YzXF4U69lJs)
[![Demonstration Video](https://img.youtube.com/vi/YzXF4U69lJs/0.jpg)](https://www.youtube.com/watch?v=YzXF4U69lJs) | -| No Drivable Lane | Plan velocity to stop before exiting the area designated by ODD (Operational Design Domain) or stop the vehicle if autonomous mode started in out of ODD lane.

Reference implementation is in [No Drivable Lane Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_no_drivable_lane_module/). | - Lanelet map (no drivable lane) | ![no-drivable-lane](image/features-no-drivable-lane.drawio.svg) | -| Collision Detection when deviating from lane | Plan velocity to avoid conflict with other vehicles driving in the another lane when the ego vehicle is deviating from own lane.

Reference implementation is in [Out of Lane Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_out_of_lane_module/). | - objects information
- Lanelet map (driving lane) | WIP | -| Parking | Plan path and velocity for given goal in parking area.

Reference implementation is in [Free Space Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/freespace_planner/). | - objects information
- Lanelet map (parking area) | ![parking](image/features-parking.drawio.svg) | [Demonstration Video](https://youtu.be/rAIYmwpNWfA)
[![Demonstration Video](https://img.youtube.com/vi/rAIYmwpNWfA/0.jpg)](https://www.youtube.com/watch?v=rAIYmwpNWfA) | -| Autonomous Emergency Braking (AEB) | Perform an emergency stop if a collision with an object ahead is anticipated. It is noted that this function is expected as a final safety layer, and this should work even in the event of failures in the Localization or Perception system.

Reference implementation is in [Out of Lane Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_out_of_lane_module/). | - Primitive objects | ![aeb](image/features-aeb.drawio.svg) | -| Minimum Risk Maneuver (MRM) | Provide appropriate MRM (Minimum Risk Maneuver) instructions when a hazardous event occurs. For example, when a sensor trouble found, send an instruction for emergency braking, moderate stop, or pulling over to the shoulder, depending on the severity of the situation.

Reference implementation is in TODO | - TODO | WIP | -| Trajectory Validation | Check the planned trajectory is safe. If it is unsafe, take appropriate action, such as modify the trajectory, stop sending the trajectory or report to the autonomous driving system.

Reference implementation is in [Planning Validator](https://autowarefoundation.github.io/autoware.universe/main/planning/planning_validator/). | - None | ![trajectory-validation](image/features-trajectory-validation.drawio.svg) | -| Running Lane Map Generation | Generate lane map from localization data recorded in manual driving.

Reference implementation is in WIP | - None | WIP | -| Running Lane Optimization | Optimize the centerline (reference path) of the map to make it smooth considering the vehicle kinematics.

Reference implementation is in [Static Centerline Optimizer](https://autowarefoundation.github.io/autoware.universe/main/planning/static_centerline_optimizer/). | - Lanelet map (driving lanes) | WIP | +| Feature | Description | Requirements | Figure | Demonstration | +| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Route Planning | Plan route from the ego vehicle position to the destination.

Reference implementation is in [Mission Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_mission_planner/), enabled by launching the `mission_planner` node. | - Lanelet map (driving lanelets) | ![route-planning](image/features-route-planning.drawio.svg) | +| Path Planning from Route | Plan path to be followed from the given route.

Reference implementation is in [Behavior Path Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner/). | - Lanelet map (driving lanelets) | ![lane-follow](image/features-lane-follow.drawio.svg) | +| Obstacle Avoidance | Plan path to avoid obstacles by steering operation.

Reference implementation is in [Static Avoidance Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/), [Path Optimizer](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_path_optimizer/). Enable flag in parameter: `launch path_optimizer true` | - objects information | ![obstacle-avoidance](image/features-avoidance.drawio.svg) | [Demonstration Video](https://youtu.be/A_V9yvfKZ4E)
[![Demonstration Video](https://img.youtube.com/vi/A_V9yvfKZ4E/0.jpg)](https://www.youtube.com/watch?v=A_V9yvfKZ4E) | +| Path Smoothing | Plan path to achieve smooth steering.

Reference implementation is in [Path Optimizer](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_path_optimizer/). | - Lanelet map (driving lanelet) | ![path-smoothing](image/features-path-smoothing.drawio.svg) | [Demonstration Video](https://youtu.be/RhyAF26Ppzs)
[![Demonstration Video](https://img.youtube.com/vi/RhyAF26Ppzs/0.jpg)](https://www.youtube.com/watch?v=RhyAF26Ppzs) | +| Narrow Space Driving | Plan path to drive within the drivable area. Furthermore, when it is not possible to drive within the drivable area, stop the vehicle to avoid exiting the drivable area.

Reference implementation is in [Path Optimizer](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_path_optimizer/). | - Lanelet map (high-precision lane boundaries) | ![narrow-space-driving](image/features-narrow-space-driving.drawio.svg) | [Demonstration Video](https://youtu.be/URzcLO2E1vY)
[![Demonstration Video](https://img.youtube.com/vi/URzcLO2E1vY/0.jpg)](https://www.youtube.com/watch?v=URzcLO2E1vY) | +| Lane Change | Plan path for lane change to reach the destination.

Reference implementation is in [Lane Change](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/). | - Lanelet map (driving lanelets) | ![lane-change](image/features-lane-change.drawio.svg) | [Demonstration Video](https://youtu.be/0jRDGQ84cD4)
[![Demonstration Video](https://img.youtube.com/vi/0jRDGQ84cD4/0.jpg)](https://www.youtube.com/watch?v=0jRDGQ84cD4) | +| Pull Over | Plan path for pull over to park at the road shoulder.

Reference implementation is in [Goal Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/). | - Lanelet map (shoulder lane) | ![pull-over](image/features-pull-over.drawio.svg) | Demonstration Videos:
[Simple Pull Over](https://youtu.be/r3-kAmTb4hc)
[![Demonstration Video](https://img.youtube.com/vi/r3-kAmTb4hc/0.jpg)](https://www.youtube.com/watch?v=r3-kAmTb4hc)
[Arc Forward Pull Over](https://youtu.be/ornbzkWxRWU)
[![Demonstration Video](https://img.youtube.com/vi/ornbzkWxRWU/0.jpg)](https://www.youtube.com/watch?v=ornbzkWxRWU)
[Arc Backward Pull Over](https://youtu.be/if-0tG3AkLo)
[![Demonstration Video](https://img.youtube.com/vi/if-0tG3AkLo/0.jpg)](https://www.youtube.com/watch?v=if-0tG3AkLo) | +| Pull Out | Plan path for pull over to start from the road shoulder.

Reference implementation is in [Start Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_start_planner_module/). | - Lanelet map (shoulder lane) | ![pull-out](image/features-pull-out.drawio.svg) | Demonstration Video:
[Simple Pull Out](https://youtu.be/xOjnPqoHup4)
[![Demonstration Video](https://img.youtube.com/vi/xOjnPqoHup4/0.jpg)](https://www.youtube.com/watch?v=xOjnPqoHup4)
[Backward Pull Out](https://youtu.be/iGieijPcPcQ)
[![Demonstration Video](https://img.youtube.com/vi/iGieijPcPcQ/0.jpg)](https://www.youtube.com/watch?v=iGieijPcPcQ) | +| Path Shift | Plan path in lateral direction in response to external instructions.

Reference implementation is in [Side Shift Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_side_shift_module/). | - None | ![side-shift](image/features-side-shift.drawio.svg) | +| Obstacle Stop | Plan velocity to stop for an obstacle on the path.

Reference implementation is in [Obstacle Stop Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/), [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_obstacle_cruise_planner/). `launch obstacle_stop_planner` and enable flag: `TODO`, `launch obstacle_cruise_planner` and enable flag: `TODO` | - objects information | ![obstacle-stop](image/features-obstacle-stop.drawio.svg) | [Demonstration Video](https://youtu.be/d8IRW_xArcE)
[![Demonstration Video](https://img.youtube.com/vi/d8IRW_xArcE/0.jpg)](https://www.youtube.com/watch?v=d8IRW_xArcE) | +| Obstacle Deceleration | Plan velocity to decelerate for an obstacle located around the path.

Reference implementation is in [Obstacle Stop Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/), [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_obstacle_cruise_planner/). | - objects information | ![obstacle-decel](image/features-obstacle-decel.drawio.svg) | [Demonstration Video](https://youtu.be/gvN1otgeaaw)
[![Demonstration Video](https://img.youtube.com/vi/gvN1otgeaaw/0.jpg)](https://www.youtube.com/watch?v=gvN1otgeaaw) | +| Adaptive Cruise Control | Plan velocity to follow the vehicle driving in front of the ego vehicle.

Reference implementation is in [Obstacle Stop Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/), [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_obstacle_cruise_planner/). | - objects information | ![adaptive-cruise](image/features-adaptive-cruise.drawio.svg) | +| Decelerate for cut-in vehicles | Plan velocity to avoid a risk for cutting-in vehicle to ego lane.

Reference implementation is in [Obstacle Cruise Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_obstacle_cruise_planner/). | - objects information | ![cut-in](image/features-cut-in.drawio.svg) | +| Surround Check at starting | Plan velocity to prevent moving when an obstacle exists around the vehicle.

Reference implementation is in [Surround Obstacle Checker](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_surround_obstacle_checker/). Enable flag in parameter: `use_surround_obstacle_check true` in [tier4_planning_component.launch.xml](https://github.com/autowarefoundation/autoware_launch/blob/2850d7f4e20b173fde2183d5323debbe0067a990/autoware_launch/launch/components/tier4_planning_component.launch.xml#L8) < | - objects information | ![surround-check](image/features-surround-check.drawio.svg) | [Demonstration Video](https://youtu.be/bbGgtXN3lC4)
[![Demonstration Video](https://img.youtube.com/vi/bbGgtXN3lC4/0.jpg)](https://www.youtube.com/watch?v=bbGgtXN3lC4) | +| Curve Deceleration | Plan velocity to decelerate the speed on a curve.

Reference implementation is in [Motion Velocity Smoother](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_velocity_smoother/). | - None | ![decel-on-curve](image/features-decel-on-curve.drawio.svg) | +| Curve Deceleration for Obstacle | Plan velocity to decelerate the speed on a curve for a risk of obstacle collision around the path.

Reference implementation is in [Obstacle Velocity Limiter](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_obstacle_velocity_limiter_module/). | - objects information
- Lanelet map (static obstacle) | ![decel-on-curve-obstacles](image/features-decel-on-curve-obstacles.drawio.svg) | [Demonstration Video](https://youtu.be/I-oFgG6kIAs)
[![Demonstration Video](https://img.youtube.com/vi/I-oFgG6kIAs/0.jpg)](https://www.youtube.com/watch?v=I-oFgG6kIAs) | +| Crosswalk | Plan velocity to stop or decelerate for pedestrians approaching or walking on a crosswalk.

Reference implementation is in [Crosswalk Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/). | - objects information
- Lanelet map (pedestrian crossing) | ![crosswalk](image/features-crosswalk.drawio.svg) | [Demonstration Video](https://youtu.be/tUvthyIL2W8)
[![Demonstration Video](https://img.youtube.com/vi/tUvthyIL2W8/0.jpg)](https://www.youtube.com/watch?v=tUvthyIL2W8) | +| Intersection Oncoming Vehicle Check | Plan velocity for turning right/left at intersection to avoid a risk with oncoming other vehicles.

Reference implementation is in [Intersection Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/). | - objects information
- Lanelet map (intersection lane and yield lane) | ![intersection](image/features-intersection.drawio.svg) | [Demonstration Video](https://youtu.be/SGD07Hqg4Hk)
[![Demonstration Video](https://img.youtube.com/vi/SGD07Hqg4Hk/0.jpg)](https://www.youtube.com/watch?v=SGD07Hqg4Hk) | +| Intersection Blind Spot Check | Plan velocity for turning right/left at intersection to avoid a risk with other vehicles or motorcycles coming from behind blind spot.

Reference implementation is in [Blind Spot Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/). | - objects information
- Lanelet map (intersection lane) | ![blind-spot](image/features-blind-spot.drawio.svg) | [Demonstration Video](https://youtu.be/oaTCJRafDGA)
[![Demonstration Video](https://img.youtube.com/vi/oaTCJRafDGA/0.jpg)](https://www.youtube.com/watch?v=oaTCJRafDGA) | +| Intersection Occlusion Check | Plan velocity for turning right/left at intersection to avoid a risk with the possibility of coming vehicles from occlusion area.

Reference implementation is in [Intersection Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/). | - objects information
- Lanelet map (intersection lane) | ![intersection-occlusion](image/features-intersection-occlusion.drawio.svg) | [Demonstration Video](https://youtu.be/bAHXMB7kbFc)
[![Demonstration Video](https://img.youtube.com/vi/bAHXMB7kbFc/0.jpg)](https://www.youtube.com/watch?v=bAHXMB7kbFc) | +| Intersection Traffic Jam Detection | Plan velocity for intersection not to enter the intersection when a vehicle is stopped ahead for a traffic jam.

Reference implementation is in [Intersection Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/). | - objects information
- Lanelet map (intersection lane) | ![intersection-traffic-jam](image/features-intersection-traffic-jam.drawio.svg) | [Demonstration Video](https://youtu.be/negK4VbrC5o)
[![Demonstration Video](https://img.youtube.com/vi/negK4VbrC5o/0.jpg)](https://www.youtube.com/watch?v=negK4VbrC5o) | +| Traffic Light | Plan velocity for intersection according to a traffic light signal.

Reference implementation is in [Traffic Light Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/). | - Traffic light color information | ![traffic-light](image/features-traffic-light.drawio.svg) | [Demonstration Video](https://youtu.be/lGA53KljQrM)
[![Demonstration Video](https://img.youtube.com/vi/lGA53KljQrM/0.jpg)](https://www.youtube.com/watch?v=lGA53KljQrM) | +| Run-out Check | Plan velocity to decelerate for the possibility of nearby objects running out into the path.

Reference implementation is in [Run Out Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/). | - objects information | ![run-out](image/features-run-out.drawio.svg) | [Demonstration Video](https://youtu.be/9IDggldT2t0)
[![Demonstration Video](https://img.youtube.com/vi/9IDggldT2t0/0.jpg)](https://www.youtube.com/watch?v=9IDggldT2t0) | +| Stop Line | Plan velocity to stop at a stop line.

Reference implementation is in [Stop Line Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/). | - Lanelet map (stop line) | ![stop-line](image/features-stop-line.drawio.svg) | [Demonstration Video](https://youtu.be/eej9jYt-GSE)
[![Demonstration Video](https://img.youtube.com/vi/eej9jYt-GSE/0.jpg)](https://www.youtube.com/watch?v=eej9jYt-GSE) | +| Occlusion Spot Check | Plan velocity to decelerate for objects running out from occlusion area, for example, from behind a large vehicle.

Reference implementation is in [Occlusion Spot Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_occlusion_spot_module/). | - objects information
- Lanelet map (private/public lane) | ![occlusion-spot](image/features-occlusion-spot.drawio.svg) | [Demonstration Video](https://youtu.be/3qs8Ivjh1fs)
[![Demonstration Video](https://img.youtube.com/vi/3qs8Ivjh1fs/0.jpg)](https://www.youtube.com/watch?v=3qs8Ivjh1fs) | +| No Stop Area | Plan velocity not to stop in areas where stopping is prohibited, such as in front of the fire station entrance.

Reference implementation is in [No Stopping Area Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/). | - Lanelet map (no stopping area) | ![no-stopping-area](image/features-no-stopping-area.drawio.svg) | +| Merge from Private Area to Public Road | Plan velocity for entering the public road from a private driveway to avoid a risk of collision with pedestrians or other vehicles.

Reference implementation is in [Merge from Private Area Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/). | - objects information
- Lanelet map (private/public lane) | WIP | +| Speed Bump | Plan velocity to decelerate for speed bumps.

Reference implementation is in [Speed Bump Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_speed_bump_module/). | - Lanelet map (speed bump) | ![speed-bump](image/features-speed-bump.drawio.svg) | [Demonstration Video](https://youtu.be/FpX3q3YaaCw)
[![Demonstration Video](https://img.youtube.com/vi/FpX3q3YaaCw/0.jpg)](https://www.youtube.com/watch?v=FpX3q3YaaCw) | +| Detection Area | Plan velocity to stop at the corresponding stop when an object exist in the designated detection area.

Reference implementation is in [Detection Area Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/). | - Lanelet map (detection area) | ![detection-area](image/features-detection-area.drawio.svg) | [Demonstration Video](https://youtu.be/YzXF4U69lJs)
[![Demonstration Video](https://img.youtube.com/vi/YzXF4U69lJs/0.jpg)](https://www.youtube.com/watch?v=YzXF4U69lJs) | +| No Drivable Lane | Plan velocity to stop before exiting the area designated by ODD (Operational Design Domain) or stop the vehicle if autonomous mode started in out of ODD lane.

Reference implementation is in [No Drivable Lane Module](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_no_drivable_lane_module/). | - Lanelet map (no drivable lane) | ![no-drivable-lane](image/features-no-drivable-lane.drawio.svg) | +| Collision Detection when deviating from lane | Plan velocity to avoid conflict with other vehicles driving in the another lane when the ego vehicle is deviating from own lane.

Reference implementation is in [Out of Lane Module](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/). | - objects information
- Lanelet map (driving lane) | WIP | +| Parking | Plan path and velocity for given goal in parking area.

Reference implementation is in [Free Space Planner](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_freespace_planner/). | - objects information
- Lanelet map (parking area) | ![parking](image/features-parking.drawio.svg) | [Demonstration Video](https://youtu.be/rAIYmwpNWfA)
[![Demonstration Video](https://img.youtube.com/vi/rAIYmwpNWfA/0.jpg)](https://www.youtube.com/watch?v=rAIYmwpNWfA) | +| Autonomous Emergency Braking (AEB) | Perform an emergency stop if a collision with an object ahead is anticipated. It is noted that this function is expected as a final safety layer, and this should work even in the event of failures in the Localization or Perception system.

Reference implementation is in [Out of Lane Module](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_out_of_lane_module/). | - Primitive objects | ![aeb](image/features-aeb.drawio.svg) | +| Minimum Risk Maneuver (MRM) | Provide appropriate MRM (Minimum Risk Maneuver) instructions when a hazardous event occurs. For example, when a sensor trouble found, send an instruction for emergency braking, moderate stop, or pulling over to the shoulder, depending on the severity of the situation.

Reference implementation is in TODO | - TODO | WIP | +| Trajectory Validation | Check the planned trajectory is safe. If it is unsafe, take appropriate action, such as modify the trajectory, stop sending the trajectory or report to the autonomous driving system.

Reference implementation is in [Planning Validator](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_planning_validator/). | - None | ![trajectory-validation](image/features-trajectory-validation.drawio.svg) | +| Running Lane Map Generation | Generate lane map from localization data recorded in manual driving.

Reference implementation is in WIP | - None | WIP | +| Running Lane Optimization | Optimize the centerline (reference path) of the map to make it smooth considering the vehicle kinematics.

Reference implementation is in [Static Centerline Optimizer](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_static_centerline_generator/). | - Lanelet map (driving lanes) | WIP | @@ -205,36 +205,36 @@ _Note that some implementation does not adhere to the high-level architecture de For more details, please refer to the design documents in each package. -- [_mission_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/mission_planner/): calculate route from start to goal based on the map information. -- [_behavior_path_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/): calculates path and drivable area based on the traffic rules. - - [_lane_following_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#lane-following) - - [_lane_change_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#lane-change) - - [_avoidance_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#avoidance) - - [_pull_over_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#pull-over) - - [_pull_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#pull-out) - - _side_shift_ -- [_behavior_velocity_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/): calculates max speed based on the traffic rules. - - [_detection_area_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_detection_area_module/docs/detection-area-design/) - - [_blind_spot_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_blind_spot_module/docs/blind-spot-design/) - - [_cross_walk_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_crosswalk_module/docs/crosswalk-design/) - - [_stop_line_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_stop_line_module/docs/stop-line-design/) - - [_traffic_light_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_traffic_light_module/docs/traffic-light-design/) - - [_intersection_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_intersection_module/docs/intersection-design/) - - [_no_stopping_area_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_no_stopping_area_module/docs/no-stopping-area-design/) - - [_virtual_traffic_light_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_virtual_traffic_light_module/docs/virtual-traffic-light-design/) - - [_occlusion_spot_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_occlusion_spot_module/docs/occlusion-spot-design/) - - [_run_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_run_out_module/docs/run-out-design/) -- [_obstacle_avoidance_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_avoidance_planner/): calculate path shape under obstacle and drivable area constraints -- [_surround_obstacle_checker_](https://autowarefoundation.github.io/autoware.universe/main/planning/surround_obstacle_checker/): keeps the vehicle being stopped when there are obstacles around the ego-vehicle. It works only when the vehicle is stopped. +- [_mission_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_mission_planner/): calculate route from start to goal based on the map information. +- [_behavior_path_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner/): calculates path and drivable area based on the traffic rules. + - [_lane_following_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner#lane-following) + - [_lane_change_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_lane_change_module/) + - [_static_obstacle_avoidance_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_static_obstacle_avoidance_module/) + - [_pull_over_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/) + - [_pull_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_start_planner_module/) + - [_side_shift_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_side_shift_module/) +- [_behavior_velocity_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/): calculates max speed based on the traffic rules. + - [_detection_area_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_detection_area_module/) + - [_blind_spot_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_blind_spot_module/) + - [_cross_walk_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_crosswalk_module/) + - [_stop_line_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_stop_line_module/) + - [_traffic_light_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_traffic_light_module/) + - [_intersection_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_intersection_module/) + - [_no_stopping_area_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_no_stopping_area_module/) + - [_virtual_traffic_light_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_virtual_traffic_light_module/) + - [_occlusion_spot_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_occlusion_spot_module/) + - [_run_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_run_out_module/) +- [_obstacle_avoidance_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_dynamic_obstacle_avoidance_module/): calculate path shape under obstacle and drivable area constraints +- [_surround_obstacle_checker_](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_surround_obstacle_checker/): keeps the vehicle being stopped when there are obstacles around the ego-vehicle. It works only when the vehicle is stopped. - [_obstacle_stop_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/): When there are obstacles on or near the trajectory, it calculates the maximum velocity of the trajectory points depending on the situation: stopping, slowing down, or adaptive cruise (following the car). - [_stop_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#obstacle-stop-planner_1) - [_slow_down_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#slow-down-planner) - [_adaptive_cruise_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#adaptive-cruise-controller) -- [_costmap_generator_](https://autowarefoundation.github.io/autoware.universe/main/planning/costmap_generator/): generates a costmap for path generation from dynamic objects and lane information. -- [_freespace_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/freespace_planner/): calculates trajectory considering the feasibility (e.g. curvature) for the freespace scene. Algorithms are described [here](https://autowarefoundation.github.io/autoware.universe/main/planning/freespace_planning_algorithms/). +- [_costmap_generator_](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_costmap_generator): generates a costmap for path generation from dynamic objects and lane information. +- [_freespace_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_freespace_planner/): calculates trajectory considering the feasibility (e.g. curvature) for the freespace scene. Algorithms are described [here](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_freespace_planning_algorithms/). - _scenario_selector_ : chooses a trajectory according to the current scenario. -- [_external_velocity_limit_selector_](https://autowarefoundation.github.io/autoware.universe/main/planning/external_velocity_limit_selector/): takes an appropriate velocity limit from multiple candidates. -- [_motion_velocity_smoother_](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_smoother/): calculates final velocity considering velocity, acceleration, and jerk constraints. +- [_external_velocity_limit_selector_](https://autowarefoundation.github.io/autoware.universe/main/planning/autoware_external_velocity_limit_selector/): takes an appropriate velocity limit from multiple candidates. +- [_motion_velocity_smoother_](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_planner/autoware_motion_velocity_planner_node/): calculates final velocity considering velocity, acceleration, and jerk constraints. ### Important information in the current implementation @@ -256,9 +256,9 @@ While it is possible to add module-level functionalities in the current implemen ![reference-implementation-add-new-modules](image/reference-implementation-add-new-modules.drawio.svg) -#### Add new modules in behavior_velocity_planner or behavior_path_plnner +#### Add new modules in behavior_velocity_planner or behavior_path_planner -ROS nodes such as [behavior_path_planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/) and [behavior_velocity_planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/) have a module interface available through plugins. By adding modules in accordance with the module interfaces defined in these ROS nodes, dynamic loading/unloading of modules becomes possible. For specific methods of adding modules, please refer to the documentation of each package. +ROS nodes such as [behavior_path_planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/autoware_behavior_path_planner/) and [behavior_velocity_planner](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/autoware_behavior_velocity_planner/) have a module interface available through plugins. By adding modules in accordance with the module interfaces defined in these ROS nodes, dynamic loading/unloading of modules becomes possible. For specific methods of adding modules, please refer to the documentation of each package. #### Add a new ros node in the planning component From f587abd2595166a84c60260eb652ac20ca126434 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Tue, 2 Jul 2024 21:05:28 +0900 Subject: [PATCH 19/20] change the folder and file structure Signed-off-by: Nishimoto, Shinya --- .../design/autoware-architecture/map/index.md | 2 +- .../category_area.md | 20 ++--- .../category_crosswalk.md | 8 +- .../category_intersection.md | 62 ++++++------- .../category_lane.md | 90 +++++++++---------- .../category_others.md | 12 +-- .../category_stop_line.md | 10 +-- .../category_traffic_light.md | 8 +- .../index.md} | 0 9 files changed, 106 insertions(+), 106 deletions(-) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_area.md (94%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_crosswalk.md (97%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_intersection.md (93%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_lane.md (90%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_others.md (93%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_stop_line.md (89%) rename docs/design/autoware-architecture/map/map-requirements/{ => vector-map-requirements-overview}/category_traffic_light.md (96%) rename docs/design/autoware-architecture/map/map-requirements/{overview.md => vector-map-requirements-overview/index.md} (100%) diff --git a/docs/design/autoware-architecture/map/index.md b/docs/design/autoware-architecture/map/index.md index 5e337af5612..f75dd804b21 100644 --- a/docs/design/autoware-architecture/map/index.md +++ b/docs/design/autoware-architecture/map/index.md @@ -87,7 +87,7 @@ The vector cloud map must be supplied as a file with the following requirements: - Each lanelet in the map must contain traffic rule information including its speed limit, right of way, traffic direction, associated traffic lights, stop lines, and traffic signs. - It must cover the entire operational area of the vehicle. -For detailed specifications on Vector Map creation, please refer to [Vector Map Creation Requirement Specification document](./map-requirements/overview.md). +For detailed specifications on Vector Map creation, please refer to [Vector Map Creation Requirement Specification document](./map-requirements/vector-map-requirements-overview/index.md). ### Projection Information diff --git a/docs/design/autoware-architecture/map/map-requirements/category_area.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_area.md similarity index 94% rename from docs/design/autoware-architecture/map/map-requirements/category_area.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_area.md index fdb1986f606..6e5be9c1e0e 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_area.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_area.md @@ -19,13 +19,13 @@ In order to avoid obstacles, Autoware regards the Buffer Zone as a drivable area - Vehicles are not allowed to pass through safety areas. It's important to differentiate between Buffer Zones and safety areas. - Do not create a Polygon for the Buffer Zone in areas where static objects like poles are present and vehicles cannot pass, even if a Buffer Zone is painted on the surface. Buffer Zones should be established only in areas where vehicle passage is feasible. -![svg](./assets/vm-06-01_1.svg) +![svg](../assets/vm-06-01_1.svg) -![svg](./assets/vm-06-01_2.svg) +![svg](../assets/vm-06-01_2.svg) #### Preferred vector map -![svg](./assets/vm-06-01_3.svg) +![svg](../assets/vm-06-01_3.svg) #### Incorrect vector map @@ -52,11 +52,11 @@ Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. -![svg](./assets/vm-06-02_1.svg) +![svg](../assets/vm-06-02_1.svg) #### Preferred vector map -![svg](./assets/vm-06-02_2.svg) +![svg](../assets/vm-06-02_2.svg) #### Incorrect vector map @@ -82,11 +82,11 @@ Refer to [Web.Auto Documentation - Creation of No Parking Area](https://docs.web Since _no_parking_area_ does not allow for setting a goal, Autoware cannot park the vehicle there. -![svg](./assets/vm-06-03_1.svg) +![svg](../assets/vm-06-03_1.svg) #### Preferred vector map -![svg](./assets/vm-06-03_2.svg) +![svg](../assets/vm-06-03_2.svg) #### Incorrect vector map @@ -112,11 +112,11 @@ Refer to [Web.Auto Documentation - Creation of No Stopping Area](https://docs.we The vehicle does not make temporary stops in _no_stopping_area_. Since goals cannot be set in _no_stopping_area_, the vehicle cannot park there. -![svg](./assets/vm-06-04_1.svg) +![svg](../assets/vm-06-04_1.svg) #### Preferred vector map -![svg](./assets/vm-06-04_2.svg) +![svg](../assets/vm-06-04_2.svg) #### Incorrect vector map @@ -140,7 +140,7 @@ Refer to [Web.Auto Documentation - Creation of Detection Area](https://docs.web. #### Preferred vector map -![svg](./assets/vm-06-05_1.svg) +![svg](../assets/vm-06-05_1.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_crosswalk.md similarity index 97% rename from docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_crosswalk.md index 196e4c881ff..20c956d6f8f 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_crosswalk.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_crosswalk.md @@ -31,7 +31,7 @@ When pedestrians or cyclists are on the crosswalk, Autoware will come to a stop #### Preferred vector map -![svg](./assets/vm-05-01_1.svg) +![svg](../assets/vm-05-01_1.svg) #### Incorrect vector map @@ -61,7 +61,7 @@ Refer to [vm-04-02](./category_traffic_light.md#vm-04-02-traffic-light-position- #### Preferred vector map -![svg](./assets/vm-05-02_1.svg) +![svg](../assets/vm-05-02_1.svg) #### Incorrect vector map @@ -84,7 +84,7 @@ To ensure a constant deceleration to a safe speed when traversing a crosswalk, a #### Preferred vector map -![svg](./assets/vm-05-03_2.svg) +![svg](../assets/vm-05-03_2.svg) #### Incorrect vector map @@ -108,7 +108,7 @@ However, if there is a guardrail, wall, or fence between the road and sidewalk, #### Preferred vector map -![svg](./assets/vm-05-04_1.svg) +![svg](../assets/vm-05-04_1.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_intersection.md similarity index 93% rename from docs/design/autoware-architecture/map/map-requirements/category_intersection.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_intersection.md index 960b19e9a5a..31ace0cfec7 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_intersection.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_intersection.md @@ -59,11 +59,11 @@ Autoware will start flashing the turn signals (blinkers) 30 meters as default be - key: _turn_signal_distance_ - value: numerical value (m) -![svg](./assets/vm-03-02_1.svg) +![svg](../assets/vm-03-02_1.svg) #### Preferred vector map -![svg](./assets/vm-03-02_2.svg) +![svg](../assets/vm-03-02_2.svg) #### Incorrect vector map @@ -85,15 +85,15 @@ Lanelets in the intersection should have a consistent width. Additionally, draw The shape of this curve must be determined by the Vector Map creator. -![svg](./assets/vm-03-03_1.svg) +![svg](../assets/vm-03-03_1.svg) #### Preferred vector map -![svg](./assets/vm-03-03_2.svg) +![svg](../assets/vm-03-03_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-03_3.svg) +![svg](../assets/vm-03-03_3.svg) --- @@ -109,15 +109,15 @@ Refer also to the creation scope [vm-07-01](./category_others.md#vm-07-01-vector Autoware uses lanelets to predict the movements of other vehicles and plan the vehicle's velocity accordingly. Therefore, it is necessary to create all lanelets in the intersection. -![svg](./assets/vm-03-04_1.svg) +![svg](../assets/vm-03-04_1.svg) #### Preferred vector map -![svg](./assets/vm-03-04_2.svg) +![svg](../assets/vm-03-04_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-04_3.svg) +![svg](../assets/vm-03-04_3.svg) #### Related Autoware module @@ -131,15 +131,15 @@ Autoware uses lanelets to predict the movements of other vehicles and plan the v Create the Lanelets in the intersection as a single object without dividing them. -![svg](./assets/vm-03-05_1.svg) +![svg](../assets/vm-03-05_1.svg) #### Preferred vector map -![svg](./assets/vm-03-05_2.svg) +![svg](../assets/vm-03-05_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-03_3.svg) +![svg](../assets/vm-03-03_3.svg) #### Related Autoware module @@ -155,11 +155,11 @@ If there are guide lines in the intersection, draw the Lanelet following them. In cases where the Lanelets branches off, begin the branching at the end of the guide line. However, it is not necessary to share points or linestrings between Lanelets. -![svg](./assets/vm-03-06_1.svg) +![svg](../assets/vm-03-06_1.svg) #### Preferred vector map -![svg](./assets/vm-03-06_2.svg) +![svg](../assets/vm-03-06_2.svg) #### Incorrect vector map @@ -177,15 +177,15 @@ None in particular. When connecting multiple lanes with Lanelets at an intersection, those Lanelets should be made adjacent to each other without crossing. -![svg](./assets/vm-03-07_1.svg) +![svg](../assets/vm-03-07_1.svg) #### Preferred vector map -![svg](./assets/vm-03-07_2.svg) +![svg](../assets/vm-03-07_2.svg) #### Incorrect vector map -![svg](./assets/vm-03-07_3.svg) +![svg](../assets/vm-03-07_3.svg) #### Related Autoware module @@ -204,7 +204,7 @@ Encircle the intersection's drivable area with a Polygon (_type:intersection_are #### Preferred vector map -![svg](./assets/vm-03-08_1.svg) +![svg](../assets/vm-03-08_1.svg) #### Incorrect vector map @@ -233,7 +233,7 @@ Determine the start and end positions of lanelets in the intersection (hencefort #### Preferred vector map -![svg](./assets/vm-03-09_1.svg) +![svg](../assets/vm-03-09_1.svg) #### Incorrect vector map @@ -257,17 +257,17 @@ Set the regulatory element 'right_of_way' for Lanelets that meet all of the foll Set to _yield_ those lanelets in the intersection that intersect the vehicle's lanelet, and set to _yield_ those lanelets that do not share the same signal change timing with the vehicle. Also, if the vehicle is turning left, set the opposing vehicle's right-turn lane to _yield_. There is no need to set _yield_ for lanelets where the vehicle goes straight (_turn_direction:straight_). -![svg](./assets/vm-03-10_1.svg) +![svg](../assets/vm-03-10_1.svg) #### Preferred vector map ##### The vehicle turns left -![svg](./assets/vm-03-10_2.svg) +![svg](../assets/vm-03-10_2.svg) ##### The vehicle turns right -![svg](./assets/vm-03-10_3.svg) +![svg](../assets/vm-03-10_3.svg) #### Incorrect vector map @@ -289,19 +289,19 @@ Set the regulatory element 'right_of_way' for Lanelets that meet all of the foll - Lanelets that intersect with the vehicle's lanelet. - There are **no** traffic lights at the intersection. -![svg](./assets/vm-03-11_1.svg) +![svg](../assets/vm-03-11_1.svg) #### Preferred vector map ##### ① The vehicle on the priority lane -![svg](./assets/vm-03-11_2.svg) +![svg](../assets/vm-03-11_2.svg) ##### ② The vehicle on the non-priority lane A regulatory element is not necessary. However, when the vehicle goes straight, it has relative priority over other vehicles turning right from the opposing non-priority road. Therefore, settings for _right_of_way_ and _yield_ are required in this case. -![svg](./assets/vm-03-11_3.svg) +![svg](../assets/vm-03-11_3.svg) #### Incorrect vector map @@ -350,11 +350,11 @@ When a road, which enters or exits private property, intersects with a sidewalk, - The vehicle stops temporarily before entering the sidewalk. - The vehicle comes to a stop before merging onto the public road. -![svg](./assets/vm-03-13_1.svg) +![svg](../assets/vm-03-13_1.svg) #### Preferred vector map -![svg](./assets/vm-03-13_2.svg) +![svg](../assets/vm-03-13_2.svg) #### Incorrect vector map @@ -378,11 +378,11 @@ If there is a stop line ahead of the guide lines in the intersection, ensure the Refer to [Web.Auto Documentation - Creation of Regulatory Element](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-of-regulatory-element) for the method of creation in Vector Map Builder. -![svg](./assets/vm-03-14_1.svg) +![svg](../assets/vm-03-14_1.svg) #### Preferred vector map -![svg](./assets/vm-03-14_2.svg) +![svg](../assets/vm-03-14_2.svg) #### Incorrect vector map @@ -406,13 +406,13 @@ In addition, set _lane_change = no_ as OptionalTags. The blind spot (entanglement check) feature verifies the lanelet(subtype:road) and decides if the vehicle can proceed. -![png](./assets/vm-03-15_1.png) +![png](../assets/vm-03-15_1.png) -![svg](./assets/vm-03-15_2.svg) +![svg](../assets/vm-03-15_2.svg) #### Preferred vector map -![svg](./assets/vm-03-15_3.svg) +![svg](../assets/vm-03-15_3.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_lane.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_lane.md similarity index 90% rename from docs/design/autoware-architecture/map/map-requirements/category_lane.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_lane.md index d94d39f9ddd..c5e1177a5f2 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_lane.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_lane.md @@ -19,7 +19,7 @@ The road's Lanelets must comply with the following requirements. #### Preferred vector map -![lanelet](./assets/vm-01-01.svg) +![lanelet](../assets/vm-01-01.svg) --- @@ -43,7 +43,7 @@ Set the Linestring _subtype_ according to the type of line. - White solid lines : indicate that changing lanes and overtaking are allowed. - Yellow solid lines : mean no lane changes are allowed. -![lines](./assets/vm-01-02.svg) +![lines](../assets/vm-01-02.svg) #### Related Autoware module @@ -68,15 +68,15 @@ If the Lanelet adjacent to the one the vehicle is driving on shares a Linestring - The vehicle turns a curve while slightly extending out of the lane. - Lane changes -![lines](./assets/vm-01-03_1.svg) +![lines](../assets/vm-01-03_1.svg) #### Preferred vector map -![lines](./assets/vm-01-03_2.svg) +![lines](../assets/vm-01-03_2.svg) #### Incorrect vector map -![lines](./assets/vm-01-03_3.svg) +![lines](../assets/vm-01-03_3.svg) #### Related Autoware module @@ -97,15 +97,15 @@ When the vehicle's lanelet and the opposing lanelet physically touch, the road c Obstacle avoidance across the opposing lane is possible. -![svg](./assets/vm-01-04_1.svg) +![svg](../assets/vm-01-04_1.svg) #### Preferred vector map -![svg](./assets/vm-01-04_2.svg) +![svg](../assets/vm-01-04_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-04_3.svg) +![svg](../assets/vm-01-04_3.svg) --- @@ -119,15 +119,15 @@ The geometry of the road lanelet needs to comply with the following: - The lines of a Lanelet, which join with lanelets ahead and behind it, must form straight lines. - Ensure the outline is smooth and not jagged or bumpy, except for L-shaped cranks. -![svg](./assets/vm-01-05_1.svg) +![svg](../assets/vm-01-05_1.svg) #### Preferred vector map -![svg](./assets/vm-01-05_2.svg) +![svg](../assets/vm-01-05_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-05_3.svg) +![svg](../assets/vm-01-05_3.svg) --- @@ -137,15 +137,15 @@ The geometry of the road lanelet needs to comply with the following: Ensure the road's center line Linestring is located in the exact middle of the road markings. -![svg](./assets/vm-01-06_1.svg) +![svg](../assets/vm-01-06_1.svg) #### Preferred vector map -![svg](./assets/vm-01-06_2.svg) +![svg](../assets/vm-01-06_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-06_3.svg) +![svg](../assets/vm-01-06_3.svg) --- @@ -155,11 +155,11 @@ Ensure the road's center line Linestring is located in the exact middle of the r Place the Linestring at the center of the markings when lines exist outside the road. -![svg](./assets/vm-01-07_1.svg) +![svg](../assets/vm-01-07_1.svg) #### Preferred vector map -![svg](./assets/vm-01-07_2.svg) +![svg](../assets/vm-01-07_2.svg) #### Incorrect vector map @@ -173,7 +173,7 @@ None in particular. If there are no lines on the outer side within the road, position the Linestring 0.5 m from the road's edge. -![svg](./assets/vm-01-08_1.svg) +![svg](../assets/vm-01-08_1.svg) ##### Caution @@ -181,7 +181,7 @@ The width depends on the laws of your country. #### Preferred vector map -![svg](./assets/vm-01-08_2.svg) +![svg](../assets/vm-01-08_2.svg) #### Incorrect vector map @@ -203,11 +203,11 @@ Note that the following is achieved through Autoware's settings and behavior. - Vehicle's maximum velocity - Speed adjustment at places requiring deceleration, like curves and downhill areas. -![svg](./assets/vm-01-09_1.svg) +![svg](../assets/vm-01-09_1.svg) #### Preferred vector map -![svg](./assets/vm-01-09_2.svg) +![svg](../assets/vm-01-09_2.svg) #### Incorrect vector map @@ -223,7 +223,7 @@ Autoware is designed to move through the midpoint calculated from a Lanelet's le Create a centerline for the Lanelet when there is a need to shift the driving position to the left or right due to certain circumstances, ensuring the centerline has a smooth shape for drivability. -![svg](./assets/vm-01-10_1.svg) +![svg](../assets/vm-01-10_1.svg) ##### Caution @@ -231,11 +231,11 @@ Create a centerline for the Lanelet when there is a need to shift the driving po #### Preferred vector map -![svg](./assets/vm-01-10_2.svg) +![svg](../assets/vm-01-10_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-10_3.svg) +![svg](../assets/vm-01-10_3.svg) --- @@ -245,15 +245,15 @@ Create a centerline for the Lanelet when there is a need to shift the driving po When center lines have been added to several Lanelets, they should be connected. -![svg](./assets/vm-01-11_1.svg) +![svg](../assets/vm-01-11_1.svg) #### Preferred vector map -![svg](./assets/vm-01-11_2.svg) +![svg](../assets/vm-01-11_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-11_3.svg) +![svg](../assets/vm-01-11_3.svg) --- @@ -263,15 +263,15 @@ When center lines have been added to several Lanelets, they should be connected. If a Lanelet with an added centerline is connected to Lanelets without one, ensure the start and end points of the added centerline are positioned at the Lanelet's center. Ensure the centerline has a smooth shape for drivability. -![svg](./assets/vm-01-12_1.svg) +![svg](../assets/vm-01-12_1.svg) #### Preferred vector map -![svg](./assets/vm-01-12_2.svg) +![svg](../assets/vm-01-12_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-12_3.svg) +![svg](../assets/vm-01-12_3.svg) --- @@ -281,11 +281,11 @@ If a Lanelet with an added centerline is connected to Lanelets without one, ensu When a road lacks a central line but is wide enough for one's vehicle and oncoming vehicles to pass each other, Lanelets should be positioned next to each other at the center of the road. -![svg](./assets/vm-01-13_1.svg) +![svg](../assets/vm-01-13_1.svg) #### Preferred vector map -![svg](./assets/vm-01-13_2.svg) +![svg](../assets/vm-01-13_2.svg) #### Incorrect vector map @@ -312,15 +312,15 @@ Requirement for Vector Map creation: - The application of this case depends on local operational policies and vehicle specifications, and should be determined in discussion with the map requestor. - The current Autoware does not possess the capability to pass oncoming vehicles in shared lanes. -![svg](./assets/vm-01-14_1.svg) +![svg](../assets/vm-01-14_1.svg) #### Preferred vector map -![svg](./assets/vm-01-14_2.svg) +![svg](../assets/vm-01-14_2.svg) #### Incorrect vector map -![svg](./assets/vm-01-14_3.svg) +![svg](../assets/vm-01-14_3.svg) --- @@ -348,17 +348,17 @@ A road Lanelet must be next to the shoulder Lanelet. _tag:lane_change=yes_ is not required on the Linestring marking the boundary of the shoulder. -![svg](./assets/vm-01-15_1.svg) +![svg](../assets/vm-01-15_1.svg) #### Preferred vector map -![svg](./assets/vm-01-15_2.svg) +![svg](../assets/vm-01-15_2.svg) #### Incorrect vector map Do not create a road shoulder Lanelet for roads without a shoulder. -![svg](./assets/vm-01-15_3.svg) +![svg](../assets/vm-01-15_3.svg) #### Related Autoware module @@ -374,11 +374,11 @@ Do not create a road shoulder Lanelet for roads without a shoulder. The Lanelets for the road shoulder and the adjacent road should have a common Linestring. -![svg](./assets/vm-01-15_1.svg) +![svg](../assets/vm-01-15_1.svg) #### Preferred vector map -![svg](./assets/vm-01-16_2.svg) +![svg](../assets/vm-01-16_2.svg) #### Incorrect vector map @@ -400,11 +400,11 @@ Place a Lanelet (_subtype:pedestrian_lane_) on the side strip. However, it is no The side strip's Lanelet must have the Linestring (_subtype:road_border_) outside. -![svg](./assets/vm-01-17_1.svg) +![svg](../assets/vm-01-17_1.svg) #### Preferred vector map -![svg](./assets/vm-01-17_2.svg) +![svg](../assets/vm-01-17_2.svg) #### Incorrect vector map @@ -418,11 +418,11 @@ None in particular. The Lanelet for the side strip and the adjacent road Lanelet should have a common Linestring. -![svg](./assets/vm-01-17_1.svg) +![svg](../assets/vm-01-17_1.svg) #### Preferred vector map -![svg](./assets/vm-01-18_2.svg) +![svg](../assets/vm-01-18_2.svg) #### Incorrect vector map @@ -438,11 +438,11 @@ Place a sidewalk Lanelet (_subtype:walkway_) where necessary. However, install o The length of the lanelet (_subtype:walkway_) should be the area intersecting with your lane and additional 3 meters before and after. -![svg](./assets/vm-01-19_1.svg) +![svg](../assets/vm-01-19_1.svg) #### Preferred vector map -![svg](./assets/vm-01-19_2.svg) +![svg](../assets/vm-01-19_2.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_others.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_others.md similarity index 93% rename from docs/design/autoware-architecture/map/map-requirements/category_others.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_others.md index ee70acf4a79..c51a1f465cc 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_others.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_others.md @@ -25,11 +25,11 @@ Check the range of sensors on your vehicle. #### Preferred vector map -![svg](./assets/vm-07-01_1.svg) +![svg](../assets/vm-07-01_1.svg) #### Incorrect vector map -![svg](./assets/vm-07-01_2.svg) +![svg](../assets/vm-07-01_2.svg) --- @@ -47,7 +47,7 @@ Setting up a linestring of the following type instructs Autoware to disregard th #### Preferred vector map -![svg](./assets/vm-05-04_1.svg) +![svg](../assets/vm-05-04_1.svg) #### Incorrect vector map @@ -69,11 +69,11 @@ Follow the same position guidelines for Linestrings of fences (_type:fence_). #### Preferred vector map -![png](./assets/vm-07-03_1.png) +![png](../assets/vm-07-03_1.png) #### Incorrect vector map -![png](./assets/vm-07-03_2.png) +![png](../assets/vm-07-03_2.png) #### Related Autoware module @@ -87,7 +87,7 @@ Follow the same position guidelines for Linestrings of fences (_type:fence_). The height of a Point should be based on the ellipsoidal height (WGS84), in meters. -![svg](./assets/vm-07-04_height_en.svg) +![svg](../assets/vm-07-04_height_en.svg) #### Preferred vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_stop_line.md similarity index 89% rename from docs/design/autoware-architecture/map/map-requirements/category_stop_line.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_stop_line.md index d5014c2e970..d58ecb11c99 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_stop_line.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_stop_line.md @@ -10,15 +10,15 @@ Place the Linestring (_type:stop_line_) for the stop line on the edge on the sid Refer to [Web.Auto Documentation - Creation and edit of a stop point (StopPoint)](https://docs.web.auto/en/user-manuals/vector-map-builder/how-to-use/edit-maps#creation-and-edit-of-a-stop-point-stoppoint) for the method of creation in Vector Map Builder. -![svg](./assets/vm-02-01_1.svg) +![svg](../assets/vm-02-01_1.svg) #### Preferred vector map -![svg](./assets/vm-02-01_2.svg) +![svg](../assets/vm-02-01_2.svg) #### Incorrect vector map -![svg](./assets/vm-02-01_3.svg) +![svg](../assets/vm-02-01_3.svg) --- @@ -30,11 +30,11 @@ Where there is no stop line on the road but a stop sign exists, place a Linestri Create a reference from a Lanelet (_subtype:road_) to a Regulatory Element (_subtype:traffic_sign_), and have this Regulatory Element refer to a Linestring (_type:stop_line_) and a Linestring (_type:traffic_sign, subtype:stop_sign)_. -![svg](./assets/vm-02-02_1.svg) +![svg](../assets/vm-02-02_1.svg) #### Preferred vector map -![svg](./assets/vm-02-02_2.svg) +![svg](../assets/vm-02-02_2.svg) #### Incorrect vector map diff --git a/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_traffic_light.md similarity index 96% rename from docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_traffic_light.md index 5ede232e917..a9e981be05d 100644 --- a/docs/design/autoware-architecture/map/map-requirements/category_traffic_light.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/category_traffic_light.md @@ -21,11 +21,11 @@ Refer to vm-04-02 and vm-04-03 for the specifications of traffic light and traff #### Preferred vector map -![svg](./assets/vm-04-01_1.svg) +![svg](../assets/vm-04-01_1.svg) If there is a crosswalk at the intersection, arrange for the road's Lanelet and the crosswalk's Lanelet to intersect and overlap. -![svg](./assets/vm-04-01_2.svg) +![svg](../assets/vm-04-01_2.svg) #### Related Autoware module @@ -52,7 +52,7 @@ Autoware currently ignores subtype _red_yellow_green_. #### Preferred vector map -![svg](./assets/vm-04-02_1.svg) +![svg](../assets/vm-04-02_1.svg) #### Incorrect vector map @@ -79,7 +79,7 @@ Use the Points of the lights when creating a Linestring. #### Preferred vector map -![svg](./assets/vm-04-03_1.svg) +![svg](../assets/vm-04-03_1.svg) The order of the lights' Points can be 1→2→3→4 or 4→3→2→1, either is acceptable. diff --git a/docs/design/autoware-architecture/map/map-requirements/overview.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md similarity index 100% rename from docs/design/autoware-architecture/map/map-requirements/overview.md rename to docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md From 06827a532331fc5945cae23066e98115d4060351 Mon Sep 17 00:00:00 2001 From: "Nishimoto, Shinya" Date: Wed, 3 Jul 2024 16:34:30 +0900 Subject: [PATCH 20/20] improve a link to map creation Signed-off-by: Nishimoto, Shinya --- .../vector-map-requirements-overview/index.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md index 7d5064af659..fc2e01a7ffc 100644 --- a/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md +++ b/docs/design/autoware-architecture/map/map-requirements/vector-map-requirements-overview/index.md @@ -10,9 +10,7 @@ Vector Map uses [lanelet2_extension](https://github.com/autowarefoundation/autow The primitives (basic components) used in Vector Map are explained in [Web.Auto Docs - What is Lanelet2](https://docs.web.auto/en/user-manuals/vector-map-builder/introduction#what-is-lanelet2). The following **Vector Map creation requirement specifications** are written on the premise of these knowledge. -This specification is a set of requirements for the creation of Vector Map(s) to ensure that Autoware drives safely and autonomously as intended by the user. It does not cover how to operate specific map creation tools. - -- [Vector Map Builder - how to use](https://docs.web.auto/user-manuals/vector-map-builder/how-to-use/edit-maps) +This specification is a set of requirements for the creation of Vector Map(s) to ensure that Autoware drives safely and autonomously as intended by the user. To Create a Lanelet2 format .osm file, please refer to [Creating a vector map](https://autowarefoundation.github.io/autoware-documentation/latest/how-to-guides/integrating-autoware/creating-maps/#creating-a-vector-map). ## Handling of the Requirement Specification