Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | UNRELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path
Messages
Services
Plugins
Recent questions tagged autoware_behavior_velocity_planner at Robotics Stack Exchange
Package Summary
| Tags | No category tags. |
| Version | 1.4.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2025-10-23 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Mamoru Sobue
- Takayuki Murooka
- Satoshi Ota
- Kyoichi Sugahara
- Taiki Tanaka
- Kosuke Takeuchi
- Tomohito Ando
- Makoto Kurihara
- Maxime Clement
- Tomoya Kimura
- Shumpei Wakabayashi
Authors
- Taiki Tanaka
- Mamoru Sobue
- Satoshi Ota
- Kyoichi Sugahara
- Kosuke Takeuchi
- Yutaka Shimizu
- Tomohito Ando
- Yukihiro Saito
Behavior Velocity Planner
Overview
behavior_velocity_planner is a planner that adjust velocity based on the traffic rules.
It loads modules as plugins. Please refer to the links listed below for detail on each module.
- Blind Spot
- Crosswalk
- Walkway
- Detection Area
- Intersection
- MergeFromPrivate
- Stop Line
- Virtual Traffic Light
- Traffic Light
- Occlusion Spot
- No Stopping Area
- Speed Bump
When each module plans velocity, it considers based on base_link(center of rear-wheel axis) pose.
So for example, in order to stop at a stop line with the vehicles’ front on the stop line, it calculates base_link position from the distance between base_link to front and modifies path velocity from the base_link position.
Input topics
| Name | Type | Description |
|---|---|---|
~input/path_with_lane_id |
autoware_internal_planning_msgs::msg::PathWithLaneId | path with lane_id |
~input/vector_map |
autoware_map_msgs::msg::LaneletMapBin | vector map |
~input/vehicle_odometry |
nav_msgs::msg::Odometry | vehicle velocity |
~input/dynamic_objects |
autoware_perception_msgs::msg::PredictedObjects | dynamic objects |
~input/no_ground_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud |
~/input/compare_map_filtered_pointcloud |
sensor_msgs::msg::PointCloud2 | obstacle pointcloud filtered by compare map. Note that this is used only when the detection method of run out module is Points. |
~input/traffic_signals |
autoware_perception_msgs::msg::TrafficLightGroupArray | traffic light states |
Output topics
| Name | Type | Description |
|---|---|---|
~output/path |
autoware_planning_msgs::msg::Path | path to be followed |
~output/stop_reasons |
tier4_planning_msgs::msg::StopReasonArray | reasons that cause the vehicle to stop |
Node parameters
| Parameter | Type | Description |
|---|---|---|
launch_modules |
vector<string> | module names to launch |
forward_path_length |
double | forward path length |
backward_path_length |
double | backward path length |
max_accel |
double | (to be a global parameter) max acceleration of the vehicle |
system_delay |
double | (to be a global parameter) delay time until output control command |
delay_response_time |
double | (to be a global parameter) delay time of the vehicle’s response to control commands |
Traffic Light Handling in sim/real
The handling of traffic light information varies depending on the usage. In the below table, the traffic signal topic element for the corresponding lane is denoted as info, and if info is not available, it is denoted as null.
| module \ case |
info is null
|
info is not null
|
|---|---|---|
intersection_occlusion(is_simulation = *) <ul> <li>info is the latest non-null information</li></ul> |
GO(occlusion is ignored) | intersection_occlusion uses the latest non UNKNOWN observation in the queue up to present.<ul><li>If info is GREEN or UNKNOWN, occlusion is cared</li><li>If info is RED or YELLOW, occlusion is ignored(GO) </li> <li> NOTE: Currently timeout is not considered</li> </ul> |
traffic_light(sim, is_simulation = true) <ul> <li>info is current information</li></ul> |
GO | traffic_light uses the perceived traffic light information at present directly. <ul><li>If info is timeout, STOP whatever the color is</li> <li>If info is not timeout, then act according to the color. If info is UNKNOWN, STOP</li></ul> {: rowspan=2} |
traffic_light(real, is_simulation = false) <ul> <li>info is current information</li></ul> |
STOP | ⁠ {: style=”padding:0”} |
crosswalk with Traffic Light(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | <ul> <li>If disable_yield_for_new_stopped_object is true, each sub scene_module ignore newly detected pedestrians after module instantiation.</li> <li>If ignore_with_traffic_light is true, occlusion detection is skipped.</li></ul> |
map_based_prediction(is_simulation = *) <ul> <li>info is current information</li></ul> |
default | If a pedestrian traffic light is<ul> <li>RED, surrounding pedestrians are not predicted.</li> <li>GREEN, stopped pedestrians are not predicted.</li></ul> |
Changelog for package autoware_behavior_velocity_planner
1.1.0 (2025-05-01)
1.4.0 (2025-08-11)
- Merge remote-tracking branch 'origin/main' into humble
- chore(motion_velocity_planner, behavior_velocity_planner): unifiy module load srv (#585) port srv
- chore: bump version to 1.3.0 (#554)
- Contributors: Ryohsuke Mitsudome, Yuki TAKAGI
1.3.0 (2025-06-23)
-
fix: to be consistent version in all package.xml(s)
-
feat(planning_factor): add console output option (#513) fix param json fix param json snake_case set default
-
feat(behavior_velocity_planner): improve module registraion/deletion log (#503) feat(behavior_velocity_planner): imporve module registraion log update update ho
-
chore: no longer support ROS 2 Galactic (#492)
-
fix(autoware_behavior_velocity_planner): fix deprecated autoware_utils header (#442)
-
feat(behavior_velocity_planner)!: remove unused function extendLine (#457)
- remove unused function
* remove unused parameter ---------
-
feat(behavior_velocity_planner)!: only wait for the required subscriptions (#433)
-
Contributors: Kosuke Takeuchi, Masaki Baba, Mitsuhiro Sakamoto, Takayuki Murooka, Yutaka Kondo, github-actions
1.0.0 (2025-03-31)
- chore: update version in package.xml
- feat: port autoware_behavior_velocity_planner from autoware.universe to autoware.core (#230) Co-authored-by: Yutaka Kondo <<yutaka.kondo@youtalk.jp>> Co-authored-by: 心刚 <<90366790+liuXinGangChina@users.noreply.github.com>>
- Contributors: Ryohsuke Mitsudome, storrrrrrrrm
Package Dependencies
System Dependencies
| Name |
|---|
| eigen |
| libboost-dev |
Dependant Packages
Launch files
- launch/behavior_velocity_planner.launch.xml
-
- common_param_path
- vehicle_param_file
- nearest_search_param_path
- behavior_velocity_planner_launch_modules
- behavior_velocity_config_path
- behavior_velocity_smoother_type_param_path
- behavior_velocity_planner_param_path
- behavior_velocity_planner_common_param_path
- behavior_velocity_planner_blind_spot_module_param_path
- behavior_velocity_planner_crosswalk_module_param_path
- behavior_velocity_planner_walkway_module_param_path
- behavior_velocity_planner_detection_area_module_param_path
- behavior_velocity_planner_intersection_module_param_path
- behavior_velocity_planner_roundabout_module_param_path
- behavior_velocity_planner_stop_line_module_param_path
- behavior_velocity_planner_traffic_light_module_param_path
- behavior_velocity_planner_virtual_traffic_light_module_param_path
- behavior_velocity_planner_occlusion_spot_module_param_path
- behavior_velocity_planner_no_stopping_area_module_param_path
- behavior_velocity_planner_speed_bump_module_param_path
- behavior_velocity_planner_no_drivable_lane_module_param_path