Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_path_generator at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 1.1.0 |
License | Apache License 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-06-12 |
Dev Status | DEVELOPED |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | No category tags. |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Package Description
Additional Links
Maintainers
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Authors
- Satoshi Ota
- Takayuki Murooka
- Mitsuhiro Sakamoto
- Kosuke Takeuchi
- Junya Sasaki
Path Generator
The path_generator
node receives a route from mission_planner
and converts the center line into a path.
If the route has waypoints set, it generates a path passing through them.
This package is a simple alternative of behavior_path_generator
.
Path generation
When input data is ready, it first searches for the lanelet closest to the vehicle.
If found, it gets the lanelets within a distance of path_length.backward
behind and path_length.forward
in front.
Their center lines are concatenated to generate a path.
If waypoints exist in the route, it replaces the overlapped segment of the center line with them. The overlap interval is determined as shown in the following figure.
Path cut
If there is a self-intersection on either of the path bounds, the path is cut off a specified distance before the first intersection, as shown in the following figure (path: green, bound: blue).
Depending on the crossing angle, the return path’s bound may be closer to the centerline than the outward’s one, depicted in the diagram below. To deal with this, intersections of the left and right bounds (mutual intersection) are taken into account as well, and the path is cut at the nearest intersecting point.
Furthermore, in the case of the following figure, the return path goes inside even if mutual intersection is considered. Therefore, path cut is also made when the start edge of the path and the path bounds intersect.
Turn signal
Turn signal is determined based on the rules defined for behavior_path_planner. (See here for details)
As a general rule, the turn signal is turned on at a specified distance before the lanelet in which a turn is designated, and turned off when the driving direction has changed to the specified degree.
If consecutive turns are required, the turn signal corresponding to the required section or the last section takes precedence.
Hazard signal
This node always publishes a hazard signal of autoware_vehicle_msgs::msg::HazardLightsCommand::NO_COMMAND
.
Flowchart
```plantuml @startuml title run start
:take_data; :set_planner_data; if (is_data_ready) then (yes) else (no) stop endif
group plan_path group generate_path :update_current_lanelet; :get lanelets within route; if (path bounds have intersections?) then (yes) :align path end with intersection point; endif while (path end is outside range of lanelets?) :extend lanelets forward; endwhile while (path start is outside range of lanelets?) :extend lanelets backward; endwhile if (any waypoint interval starts behind lanelets?) then (yes) :extend lanelets backward; endif while (for each center line point) if (overlapped by waypoint group?) then (yes) if (previously overlapped?) then else (no) :add waypoints to path; endif else (no) :add point to path; endif endwhile :crop path; if (goal is in search range for smooth goal connection?) then (yes) :modify_path_for_smooth_goal_connection; endif :set path bounds; end group end group
group get_turn_signal while (for each path point) if (turn direction is set to corresponding lanelet?) then (yes) if (ego is in front of lanelet?) then (yes)
File truncated at 100 lines see the full file
Changelog for package autoware_path_generator
1.1.0 (2025-05-01)
-
fix(path_generator): set both lane IDs to point on border of adjacent lanes (#384) set both lane IDs to point on border of adjacent lanes
-
feat(path_generator): move generate_path public (#380)
- feat(path_generator): move generate_path public
- style(pre-commit): autofix
- fix pre-commit
* fix test include path ---------Co-authored-by: t4-adc <<grp-rd-1-adc-admin@tier4.jp>> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
refactor(autoware_trajectory)!: move everything to namespace experimetal (#371) refactor(autoware_trajectory)!: move everything to namespace experimental
-
test(path_generator): add tests for path cut feature (#268)
- add map for test
- add overpass map
- refactor & enhance base test class
- add tests
- style(pre-commit): autofix
* fix year created Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>>
- anonymize test map
- style(pre-commit): autofix
- add test map info to README
- style(pre-commit): autofix
- make tests work with autoware_trajectory
- include necessary header
- fix test case
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kosuke Takeuchi <<kosuke.tnp@gmail.com>> Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>>
-
fix(path_generator): deal with unintended input (#336)
- prevent segfault
- fix self-intersection search range
- define behavior for unintended input
- prevent segfault
* check builder output instead of input size ---------
-
refactor(path_generator): avoid using fixed-size array (#353)
- avoid using fixed-size array
- include necessary headers
* avoid capturing structured bindings in lambdas ---------
-
docs(path_generator): add description of path cut & turn signal feature (#359)
- add diagrams of path cut feature
- add diagrams of turn signal feature
- update parameter list
- update README
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
-
fix(path_generator): avoid shortcuts at overlaps (#352)
- track current lane to avoid shortcut
* add constraints for current lane search ---------
-
feat(autoware_path_generator): use autoware_trajectory for cropping bounds (#349)
-
Contributors: Kazunori-Nakajima, Mamoru Sobue, Mitsuhiro Sakamoto, Yukinari Hisaki
1.0.0 (2025-03-31)
File truncated at 100 lines see the full file
Wiki Tutorials
Package Dependencies
System Dependencies
Dependant Packages
Name | Deps |
---|---|
autoware_core_planning |