Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_lanelet2_utils at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.5.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-08 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Maxime Clement
- Kosuke Takeuchi
Authors
- Mamoru Sobue
autoware_lanelet2_utils
Nomenclature
This package aims to strictly define the meaning of several words to clarify the documentation and API’s scope. In the table below, codespace words are given specific meanings when used in the API and API description. italic words are emphasized to indicate that it refers to social common sense which often comes with ambiguity. To help disambiguate the meaning, illustration is provided. “Lanelet” refers to the entity of alanelet::ConstLanelet object in order to distinguish with the word “lane” used in social customs. A and B stands for some Lanelets objects.
| Word | Meaning | Illustration |
|---|---|---|
driving |
The vehicle position belongs to the designated Lanelet. | In each map, green Lanelet are the driving lanes of the vehicle.Open |
boundary,entry,exit
|
The boundary of a Lanelet refers to the left or right Linestring. |
Open |
adjacent |
If A is adjacent to B, A and B share a common boundary with same direction either on the left or right side. |
In each map, orange Lanelet is adjacent to green Lanelet.Open |
same_direction |
Lanelet A and Lanelet B are same_direction if A and B are directly or indirectly adjacent to each other. |
In each map, orange Lanelets are same_direction as green Lanelet.Open |
bundle |
A bundle refers to a transitive closure set of Lanelets which are same_direction to each other. |
The enclosed sets of Lanelets are bundles.Open |
opposite |
If A is opposite to B, A and B share a common boundary with opposite direction. |
In the first map, green Lanelet and orange Lanelet are opposite to each other.In the second map, two red Lanelets are not opposite relation because they do not share a common LineString.Open |
opposite_direction |
If A and B are opposite_direction, the bundle of A and B are directly opposite to each other. |
In the each map, green Lanelet and orange Lanelet are opposite_direction because their bundles(enclosed in dotted line) are opposite relation.Open |
connected |
A is connected to(from) B if and only if the exit(entry) of A is identical to the entry(exit) of B. |
A is connected to B, and B is connected from A. Open |
following |
The following Lanelets of A is the list of Lanelets to which A is connected. |
In each map, orange Lanelets are the following of green Lanelet.Open |
previous |
The previous Lanelets of A is the list of Lanelets from which A is connected. |
In each map, orange Lanelets are the previous of green Lanelet. Open |
conflicting |
A is conflicting with B if A and B are geometrically intersecting. |
|
merging |
A is said to be merging Lanelet of B if and only if A is conflicting with B and both A and B are connected to a common Lanelet. |
In each map, one of the orange Lanelet is a merging Lanelet of the other orange Lanelet.Open |
sibling |
The designated Lanelets are referred to as sibling if all of them are connected from a common Lanelet. |
In each map, orange Lanelets are siblings.Open |
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. |
Open |
current_route_lanelet |
current_route_lanelet is one of the lanelet within the route which serves as the reference for ego position. |
API description
<autoware/lanelet2_utils/geometry.hpp>
| Function | Description | Average Computational Complexity | Illustration |
|---|---|---|---|
extrapolate_point |
Linearly extrapolate a point (ConstPoint3d) beyond a segment defined by two points (first and second) with given distance. |
Open |
|
interpolate_point |
Linearly interpolates a point along a segment defined by two points. |
Open |
|
interpolate_lanelet |
Find an interpolated point from a lanelet centerline at a given distance. |
Open |
|
interpolate_lanelet_sequence |
Find the first interpolated point from a centerline of the lanelet sequence at a given distance. |
Open |
|
concatenate_center_line |
Concatenate all center line of input lanelet sequence (several ConstLanelets) |
Open |
|
get_linestring_from_arc_length |
Extract a sub-linestring between two arc-length positions along an input linestring. |
Open |
|
get_pose_from_2d_arc_length |
Compute the 2D pose (position and heading) at a given arc-length along a sequence of lanelets. |
Open |
|
get_closest_segment |
Find the closest segment of the ConstLineString3d to the search point (BasicPoint3d). |
Open |
|
get_lanelet_angle |
Find the angle of center line segment of the lanelet that is closest to search point (BasicPoint3d). The angle is defined with the x-axis as the reference (0 radians). Positive angles are measured counterclockwise, while negative angles are measured clockwise within range of −π to π radians. |
Open |
Example Usage of geometry
Extrapolate point for distance of 5.
```cpp title=”./examples/example_geometry.cpp:51:55” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:51:55 –8<–
Interpolate point at half of the segment.
```cpp title="./examples/example_geometry.cpp:69:74"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:69:74
--8<--
Interpolate lanelet at distance of 3.
```cpp title=”./examples/example_geometry.cpp:82:84” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:82:84 –8<–
Interpolate lanelet sequence at distance of 3.
```cpp title="./examples/example_geometry.cpp:92:98"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:92:98
--8<--
Concatenate several lanelet centerline.
```cpp title=”./examples/example_geometry.cpp:110:118” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:110:118 –8<–
Get linestring from arc-length range (of 0.5 to 1.5).
```cpp title="./examples/example_geometry.cpp:142:150"
--8<--
common/autoware_lanelet2_utils/examples/example_geometry.cpp:142:150
--8<--
Get pose from arc-length (of 3.0).
```cpp title=”./examples/example_geometry.cpp:162:168” –8<– common/autoware_lanelet2_utils/examples/example_geometry.cpp:162:168 –8<–
```
File truncated at 100 lines see the full file
Changelog for package autoware_lanelet2_utils
1.1.0 (2025-05-01)
-
refactor(autoware_lanelet2_utils)!: move everything to namespace experimental (#372)
-
refactor(autoware_lanelet2_utils): rewrite using modern C++ without API breakage (#347)
- refactor using modern c++
- precommit
- fix
- fix
- precommit
- use std::strcmp
- precommit
* Revert "refactor using modern c++" This reverts commit 3f7e4953c08f5237dc3bc75db3d896cc9c0640a3. ---------
-
Contributors: Mamoru Sobue, Yutaka Kondo
1.5.0 (2025-11-16)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(lanelet2_utils): organize maps by vm-map-spec id (#716)
-
feat: replace [ament_auto_package]{.title-ref} to [autoware_ament_auto_package]{.title-ref} (#700)
- replace ament_auto_package to autoware_ament_auto_package
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
feat(autoware_lanelet2_utils): port get_conflicting_lanelets (#704)
-
chore: jazzy-porting, autoware_lanelet2_utils, add missing link dependency yaml-cpp (#686) Co-authored-by: Ryohsuke Mitsudome <<ryohsuke.mitsudome@tier4.jp>>
-
refactor(autoware_lanelet2_utils): refactor get_linestring_from_arc_length (#688) change return type of Const, and use create_safe_linestring
-
feat(autoware_lanelet2_utils): port function from autoware_lanelet2_extension (#693)
-
docs(autoware_lanelet2_utils): write documentation for geometry (#689)
- add geometry functions description
- capitalize table column name
- fix some descriptions
- add geometry illustration
* add more angle description ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat(autoware_lanelet2_utils): create artificial lanelet object (#669)
-
feat(autoware_lanelet2_utils): remove the usage of getClosestSegment and getLaneletAngle (#658)
-
feat(lanelet2_utils): update lanelet2_anonymizer (#666) Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
docs(lanelet2_utils): make table more readable (#657) docs(lanelet2_utils): divide table and make images bigger
-
feat(lanelet2_utils): add RouteManager class (#653)
-
feat(lanelet2_utils): add MapHandler class (minor change of #651) (#656)
-
chore(lanelet2_utils): revert #651 (#654) Revert "feat(lanelet2_utils): add MapHandler class (#651)" This reverts commit b44dc53f23b81d1713fc49c91074d638cd940234.
-
feat(lanelet2_utils): add MapHandler class
File truncated at 100 lines see the full file