Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_behavior_path_goal_planner_module at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 0.48.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-12-03 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Kosuke Takeuchi
- Kyoichi Sugahara
- Satoshi OTA
- Tomoya Kimura
- Shumpei Wakabayashi
- Tomohito Ando
- Mamoru Sobue
- Daniel Sanchez
Authors
Goal Planner design
Purpose / Role
goal_planner generates a smooth path toward the goal and additionally searches for safe path and goal to execute dynamic pull_over on the road shoulders lanes following the traffic rules.
Design
If goal modification is not allowed, just park at the designated fixed goal using fixed_goal_planner.
If allowed, rough_goal_planner works to park around the vacant spots in the shoulder lanes around the goal by executing pull_over toward left or right side of the road lanes.
@startuml
package goal_planner{
class GoalPlannerModule {}
package rough_goal_planner <<Rectangle>>{
package lane_parking <<Rectangle>>{
class ShiftPullOver {}
class GeometricPullOver {}
}
package freespace_parking <<Rectangle>>{
class FreeSpacePullOver {}
}
class GoalSearcher {}
struct GoalCandidates {}
struct PullOverPath{}
abstract class PullOverPlannerBase {}
}
package fixed_goal_planner <<Rectangle>>{
abstract class FixedGoalPlannerBase {}
class DefaultFixedPlanner{}
}
}
package utils{
class PathShifter {}
class GeometricParallelParking {}
}
package freespace_planning_algorithms
{
class AstarSearch{}
class RRTStar{}
}
' goal planner
ShiftPullOver --|> PullOverPlannerBase
GeometricPullOver --|> PullOverPlannerBase
FreeSpacePullOver --|> PullOverPlannerBase
DefaultFixedPlanner --|> FixedGoalPlannerBase
PathShifter --o ShiftPullOver
GeometricParallelParking --o GeometricPullOver
AstarSearch --o FreeSpacePullOver
RRTStar --o FreeSpacePullOver
PullOverPlannerBase --o GoalPlannerModule
FixedGoalPlannerBase --o GoalPlannerModule
PullOverPath --o PullOverPlannerBase
@enduml
trigger condition
fixed_goal_planner
fixed_goal_planner just plans a smooth path to the designated goal.
NOTE: this planner does not perform the several features described below, such as “goal search”, “collision check”, “safety check”, etc.
fixed_goal_planner is used when both conditions are met.
- Route is set with
allow_goal_modification=false. This is the default. - The goal is set on
roadlanes.
If the path given to goal_planner covers the goal, fixed_goal_planner smoothly connects the goal and the path points around the goal within the radius of refine_goal_search_radius_range using spline interpolation.

rough_goal_planner
pull over on road lane
rough_goal_planner is triggered following the behavior_path_planner scene module interface namely through isExecutionRequested function and it returns true when following two conditions are met.
- The distance between the goal and ego get shorter than $\max$(
pull_over_minimum_request_length, stop distance with decel and jerk constraints).
File truncated at 100 lines see the full file
Changelog for package autoware_behavior_path_goal_planner_module
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(autoware_lanelet2_utils): replace ported functions from autoware_lanelet2_extension (#11593) Co-authored-by: Mamoru Sobue <<hilo.soblin@gmail.com>>
-
fix: tf2 uses hpp headers in rolling (and is backported) (#11620)
-
fix(goal_planner): fix bezier path first yaw angle (#11601)
-
fix(goal_planner): prevent out_of_range crashes with bounds checking (#11580)
-
fix(goal_planner): hasPreviousModulePathShapeChanged die (#11579)
-
fix(goal_planner): failed to generate candidate paths when entering another lane for avoidance (#11560)
-
feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker (#11519)
- feat(turn_signal_decider): add threshold based on distance to lane bound for turning off blinker
- fix default value in readme
- Update readme
* update parameter description ---------
-
fix(goal_planner): fix iterator bug (#11551)
-
fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11544)
- fix(goal_planner): correct the lane_id and velocity interpolation logic in smooth_goal_connection (#11508)
- feat(goal_planner): enhance goal refinement with route handler integration
- Updated [set_goal]{.title-ref} and [refinePathForGoal]{.title-ref} functions to include a [route_handler]{.title-ref} parameter for improved path refinement.
- Introduced utility functions to fill lane IDs and longitudinal velocities based on the input path.
- Removed redundant lane ID filling logic to streamline goal setting process. This change aims to enhance the accuracy of goal positioning and path planning by leveraging route information.
- fix(utils): enhance longitudinal velocity handling in fillLongitudinalVelocityFromInputPath
- Added a check to ensure the input path has at least two points before processing.
- Removed the last point from the input path to avoid zero velocity issues.
- Updated lane ID and longitudinal velocity assignment logic in set_goal to streamline the process. These changes improve the robustness of the path planning by ensuring valid input and clearer handling of velocity data.
- refactor(utils): enhance lanelet handling in path processing
- Introduced a template function to retrieve unique lanelets from a given path, improving modularity and reusability.
- Updated [fillLaneIdsFromMap]{.title-ref} to utilize the new lanelet retrieval function, streamlining lane ID assignment.
- Enhanced [set_goal]{.title-ref} to incorporate the unique lanelets for more accurate lane ID filling. These changes aim to improve the efficiency and clarity of lanelet management within the path planning process.
* refactor(utils): reorder parameters in set_goal function for clarity ---------
- fix(utils): update lane ID assignment in fillLaneIdsFromMap function
* fix(utils): add TODO comment regarding potential segmentation fault in lane ID assignment ---------
-
fix(goal_planner): fix path safe state chattering (#11530)
-
fix(goal_planner): remove duplicated process (#11535)
-
feat(goal_planner): change debug marker color when DECIDING
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| range-v3 |
Dependant Packages
| Name | Deps |
|---|---|
| autoware_static_centerline_generator |