From 2d2a2c68bd32c52153a677e56058eab3c9a5130a Mon Sep 17 00:00:00 2001 From: Mamoru Sobue Date: Fri, 7 Mar 2025 18:05:01 +0900 Subject: [PATCH] update docs Signed-off-by: Mamoru Sobue --- common/autoware_lanelet2_utility/README.md | 41 ++++---- .../media/api/left_lanelets.drawio.svg | 96 ++++++++++++++++--- .../media/api/right_lanelets.drawio.svg | 89 +++++++++++++---- 3 files changed, 172 insertions(+), 54 deletions(-) diff --git a/common/autoware_lanelet2_utility/README.md b/common/autoware_lanelet2_utility/README.md index c8e344dae..7bce333e4 100644 --- a/common/autoware_lanelet2_utility/README.md +++ b/common/autoware_lanelet2_utility/README.md @@ -22,30 +22,29 @@ This package aims to strictly define the meaning of several words to clarify the | `oncoming` | TBD | TBD | | `upcoming` | TBD | TBD | | `sequence` | `sequence` is a list of Lanelets whose each element is `connected from` or `adjacent to` the previous element. | ![sequence](./media/nomenclature/sequence.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/nomenclature/sequence.drawio.svg") }}) | -| `similar` | A and B are called `similar` if and only if both of them have same valid `turn_direction` value. | | ## API description -| Header | function | description | average computational complexity | illustration | -| ------------------------------------------ | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `` | `is_road_lane` | | $O(1)$ | | -| | `is_shoulder_lane` | | $O(1)$ | | -| | `is_bicycle_lane` | | $O(1)$ | | -| `` | `instantiate_routing_graph` | This function creates a `RoutingGraph` object only from "road" lanes, which means "road_shoulder" and "bicycle_lane" Lanelets are inaccessible from left/right adjacency. | | | -| | `left_lanelet` | This function ignores the permission of lane change. Also it ignores `shoulder` and `bicycle` Lanelet. | $O(1)$ | In the first map, the green Lanelet is the `left_lanelet` of the orange Lanelet.
In the second and third map, the `left_lanelet` of the orange Lanelet is `null`.
![left_lanelet](./media/api/left_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/left_lanelet.drawio.svg") }}) | -| | `right_lanelet` | same as above `left_lanelet` | $O(1)$ | | -| | `left_similar_lanelet`(TODO) | same as above `left_lanelet` | $O(1)$ | | -| | `right_similar_lanelet`(TODO) | same as above `left_lanelet` | $O(1)$ | | -| | `left_opposite_lanelet` | same as below `right_opposite_lanelet` | $O(1)$
see [`findUsage`](./#complexity-of-findusage) for detail | | -| | `right_opposite_lanelet` | | $O(1)$
see [`findUsage`](./#complexity-of-findusage) for detail | In the first and second map, the green Lanelet is the `right_opposite_lanelet` of the orange Lanelet.
In the third map, the `right_opposite_lanelet` of the orange Lanelet is `null`.
![right_opposite_lanelet](./media/api/right_opposite_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/right_opposite_lanelet.drawio.svg") }}) | -| | `leftmost_lanelet` | | $O(W)$ where $W$ is the size of the `bundle`. | In the first and second map, the green Lanelet is the `leftmost_lanelet` of the orange Lanelet.
In the third map, the `leftmost_lanelet` of the orange Lanelet is `null`.
![leftmost_lanelet](./media/api/leftmost_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/leftmost_lanelet.drawio.svg") }}) | -| | `rightmost_lanelet` | | $O(W)$ where $W$ is the size of the `bundle`. | In the first map, the green Lanelet is the `rightmost_lanelet` of the orange Lanelet.
In the second and third map, the `rightmost_lanelet` of the orange Lanelet is `null`.
![rightmost_lanelet](./media/api/rightmost_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/rightmost_lanelet.drawio.svg") }}) | -| | `left_lanelets` | The input Lanelet is not included in the output. | $O(W)$ where $W$ is the size of the `bundle`. | In the first map, the green Lanelets are the `left_lanelets` of the orange Lanelet.
In the second and third map, `left_lanelets` of the orange Lanelet is empty.
If the flag `include_opposite = true`, the left opposite Lanelet and all of its `same_direction` Lanelets area also retrieved as illustrated in the fourth and fifth maps.
![left_lanelets](./media/api/left_lanelets.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/left_lanelets.drawio.svg") }}) | -| | `right_lanelets` | same as above `left_lanelets`. | $O(W)$ where $W$ is the size of the `bundle.` | In the first map, the green Lanelets are the `right_lanelets` of the orange Lanelet.
In the second and third map, `right_lanelets` of the orange Lanelet is empty.
If the flag `include_opposite = true`, the right opposite Lanelet and all of its `same_direction` Lanelets area also retrieved as illustrated in the fourth and fifth maps.
![right_lanelets](./media/api/right_lanelets.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/right_lanelets.drawio.svg") }}) | -| | `following_lanelets` | | $O(E)$ where $E$ is the number of Lanelets to which the input is connected to. | | -| | `previous_lanelets` | | $O(E)$ where $E$ is the number of Lanelets from which the input is connected from. | | -| | `sibling_lanelets` | | $O(E)$ where $E$ is the number of sibling Lanelets | | -| | `from_ids` | | $O(n)$ | | +| Header | function | description | average computational complexity | illustration | +| ---------------------------------------------- | ------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `` | `is_road_lane` | This function returns `true` if the input Lanelet is `road` subtype. | $O(1)$ | | +| | `is_shoulder_lane` | This function returns `true` if the input Lanelet is `road_shoulder` subtype. | $O(1)$ | | +| | `is_bicycle_lane` | This function returns `true` if the input Lanelet is `bicycle_lane` subtype. | $O(1)$ | | +| `` | `instantiate_routing_graph` | This function creates a `RoutingGraph` object only from "road" lanes, which means "road_shoulder" and "bicycle_lane" Lanelets are inaccessible from left/right adjacency. | | | +| | `left_lanelet` | This function ignores the permission of lane change. Also it ignores `shoulder` and `bicycle` Lanelet. | $O(1)$ | In the first map, the green Lanelet is the `left_lanelet` of the orange Lanelet.
In the second and third map, the `left_lanelet` of the orange Lanelet is `null`.
![left_lanelet](./media/api/left_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/left_lanelet.drawio.svg") }}) | +| | `right_lanelet` | same as above `left_lanelet` | $O(1)$ | | +| | `left_opposite_lanelet` | same as below `right_opposite_lanelet` | $O(1)$
see [`findUsage`](./#complexity-of-findusage) for detail | | +| | `right_opposite_lanelet` | This functions returns the right `opposite` Lanelet of the input Lanelet if available, otherwise returns null. | $O(1)$
see [`findUsage`](./#complexity-of-findusage) for detail | In the first and second map, the green Lanelet is the `right_opposite_lanelet` of the orange Lanelet.
In the third map, the `right_opposite_lanelet` of the orange Lanelet is `null`.
![right_opposite_lanelet](./media/api/right_opposite_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/right_opposite_lanelet.drawio.svg") }}) | +| | `leftmost_lanelet` | This function returns the Lanelet which is recursively left adjacent to the input Lanelet. | $O(W)$ where $W$ is the size of the `bundle`. | In the first and second map, the green Lanelet is the `leftmost_lanelet` of the orange Lanelet.
In the third map, the `leftmost_lanelet` of the orange Lanelet is `null`.
![leftmost_lanelet](./media/api/leftmost_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/leftmost_lanelet.drawio.svg") }}) | +| | `rightmost_lanelet` | This function returns the Lanelet which is recursively right adjacent to the input Lanelet. | $O(W)$ where $W$ is the size of the `bundle`. | In the first map, the green Lanelet is the `rightmost_lanelet` of the orange Lanelet.
In the second and third map, the `rightmost_lanelet` of the orange Lanelet is `null`.
![rightmost_lanelet](./media/api/rightmost_lanelet.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/rightmost_lanelet.drawio.svg") }}) | +| | `left_lanelets` | The input Lanelet is not included in the output, and output is ordered from left to right. | $O(W)$ where $W$ is the size of the `bundle`. | In the first map, the green Lanelets are the `left_lanelets` of the orange Lanelet.
In the second and third map, `left_lanelets` of the orange Lanelet is empty.
If the flag `include_opposite = true`, the left opposite Lanelet and all of its `same_direction` Lanelets area also retrieved as illustrated in the fourth and fifth maps.
![left_lanelets](./media/api/left_lanelets.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/left_lanelets.drawio.svg") }}) | +| | `right_lanelets` | The input Lanelet is not included in the output, and output is ordered from right to left. | $O(W)$ where $W$ is the size of the `bundle.` | In the first map, the green Lanelets are the `right_lanelets` of the orange Lanelet.
In the second and third map, `right_lanelets` of the orange Lanelet is empty.
If the flag `include_opposite = true`, the right opposite Lanelet and all of its `same_direction` Lanelets area also retrieved as illustrated in the fourth and fifth maps.
![right_lanelets](./media/api/right_lanelets.drawio.svg)
[Open]({{ drawio("/common/autoware_lanelet2_utility/media/api/right_lanelets.drawio.svg") }}) | +| | `following_lanelets` | This function returns the `following` Lanelets of the input Lanelet. The order is not defined. | $O(E)$ where $E$ is the number of Lanelets to which the input is connected to. | | +| | `previous_lanelets` | This function returns the `previous` Lanelets of the input Lanelet. The order is not defined. | $O(E)$ where $E$ is the number of Lanelets from which the input is connected from. | | +| | `sibling_lanelets` | This function returns the `sibling` Lanelets of the input Lanelet excluding itself. The order is not defined. | $O(E)$ where $E$ is the number of sibling Lanelets | | +| | `from_ids` | This function returns Lanelet objects in the same order as the input IDs. | $O(n)$ | | +| `` | `is_intersection_lanelet` | This function returns `true` if and only if the input Lanelet has `turn_direction` attribute. | $O(1)$ | | +| | `is_straight_lanelet`,
`is_left_lanelet`,
`is_right_lanelet` | This function returns `true` if and only if the input Lanelet has `turn_direction` attribute and its value is `straight`/`left`/`right`. | $O(1)$ | | ### complexity of `findUsage` diff --git a/common/autoware_lanelet2_utility/media/api/left_lanelets.drawio.svg b/common/autoware_lanelet2_utility/media/api/left_lanelets.drawio.svg index 5eac8f02d..0838adc7c 100644 --- a/common/autoware_lanelet2_utility/media/api/left_lanelets.drawio.svg +++ b/common/autoware_lanelet2_utility/media/api/left_lanelets.drawio.svg @@ -6,9 +6,9 @@ xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1129px" - height="1230px" - viewBox="-0.5 -0.5 1129 1230" - content="<mxfile host="Electron" modified="2025-03-06T12:27:02.409Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="HNWBCy4w_KWpEEUisrMr" version="20.3.0" type="device"><diagram id="eq9gud2WWk_s3i5_h-gE" name="Page-1">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</diagram></mxfile>" + height="1229px" + viewBox="-0.5 -0.5 1129 1229" + content="<mxfile host="Electron" modified="2025-03-07T11:25:12.867Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="4z2RctpCGW1heWk2lmka" version="20.3.0" type="device"><diagram id="eq9gud2WWk_s3i5_h-gE" name="Page-1">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</diagram></mxfile>" > @@ -499,15 +499,15 @@ bicycle lane - - - + + + - - - + + + @@ -517,8 +517,8 @@ - - + + @@ -648,7 +648,7 @@ - +
+ + + +
+
+
+ 1 +
+
+
+
+ 1 +
+
@@ -734,6 +751,23 @@ + + + +
+
+
+ 1 +
+
+
+
+ 1 +
+
@@ -921,6 +955,23 @@ + + + +
+
+
+ 3 +
+
+
+
+ 3 +
+
@@ -1186,6 +1237,23 @@ + + + +
+
+
+ 2 +
+
+
+
+ 2 +
+
diff --git a/common/autoware_lanelet2_utility/media/api/right_lanelets.drawio.svg b/common/autoware_lanelet2_utility/media/api/right_lanelets.drawio.svg index 318269020..b1bb1faa4 100644 --- a/common/autoware_lanelet2_utility/media/api/right_lanelets.drawio.svg +++ b/common/autoware_lanelet2_utility/media/api/right_lanelets.drawio.svg @@ -5,10 +5,10 @@ xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" - width="1059px" + width="1058px" height="1262px" - viewBox="-0.5 -0.5 1059 1262" - content="<mxfile host="Electron" modified="2025-03-06T12:27:19.976Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="qIXNYzKJ7irkuYJZfdFw" version="20.3.0" type="device"><diagram id="eq9gud2WWk_s3i5_h-gE" name="Page-1">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</diagram></mxfile>" + viewBox="-0.5 -0.5 1058 1262" + content="<mxfile host="Electron" modified="2025-03-07T11:24:51.247Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/20.3.0 Chrome/104.0.5112.114 Electron/20.1.3 Safari/537.36" etag="f7KWPp-L-uFfV_Oq5tln" version="20.3.0" type="device"><diagram id="eq9gud2WWk_s3i5_h-gE" name="Page-1">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</diagram></mxfile>" > @@ -263,7 +263,7 @@ pointer-events="all" /> (2) - - - + + + - - - + + + @@ -388,15 +388,15 @@ /> @@ -446,12 +446,12 @@ - +
@@ -488,6 +488,23 @@ pointer-events="all" /> + + + +
+
+
+ 2 +
+
+
+
+ 2 +
+
@@ -515,6 +532,23 @@ + + + +
+
+
+ 3 +
+
+
+
+ 3 +
+
@@ -759,6 +793,23 @@ + + + +
+
+
+ 1 +
+
+
+
+ 1 +
+