Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]
Messages
Services
Plugins
Recent questions tagged autoware_external_velocity_limit_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.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 | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Shumpei Wakabayashi
- Tomohito Ando
- Tomoya Kimura
Authors
- Satoshi Ota
External Velocity Limit Selector
Purpose
The external_velocity_limit_selector_node is a node that keeps consistency of external velocity limits. This module subscribes
- velocity limit command sent by API,
- velocity limit command sent by Autoware internal modules.
VelocityLimit.msg contains not only max velocity but also information about the acceleration/jerk constraints on deceleration. The external_velocity_limit_selector_node integrates the lowest velocity limit and the highest jerk constraint to calculate the hardest velocity limit that protects all the deceleration points and max velocities sent by API and Autoware internal modules.

Inner-workings / Algorithms
WIP
Inputs
| Name | Type | Description |
|---|---|---|
~input/velocity_limit_from_api |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from api |
~input/velocity_limit_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimit | velocity limit from autoware internal modules |
~input/velocity_limit_clear_command_from_internal |
autoware_internal_planning_msgs::msg::VelocityLimitClearCommand | velocity limit clear command |
Outputs
| Name | Type | Description |
|---|---|---|
~output/max_velocity |
autoware_internal_planning_msgs::msg::VelocityLimit | current information of the hardest velocity limit |
Parameters
| Parameter | Type | Description |
|---|---|---|
max_velocity |
double | default max velocity [m/s] |
normal.min_acc |
double | minimum acceleration [m/ss] |
normal.max_acc |
double | maximum acceleration [m/ss] |
normal.min_jerk |
double | minimum jerk [m/sss] |
normal.max_jerk |
double | maximum jerk [m/sss] |
limit.min_acc |
double | minimum acceleration to be observed [m/ss] |
limit.max_acc |
double | maximum acceleration to be observed [m/ss] |
limit.min_jerk |
double | minimum jerk to be observed [m/sss] |
limit.max_jerk |
double | maximum jerk to be observed [m/sss] |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
<!– Write links you referred to when you implemented.
File truncated at 100 lines see the full file
Changelog for package autoware_external_velocity_limit_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
chore(planning): update package maintainers (#13186)
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
Contributors: Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_universe): use autoware_ament_auto_package in planning packages (#12291) Co-authored-by: github-actions <<github-actions@github.com>>
-
fix(external_velocity_limit_selector): correctly handle clear command on empty table (#11463)
* Update clearVelocityLimit to call updateVelocityLimit Call updateVelocityLimit when the velocity limit table is empty. Fixes #11370
* Change expected velocity limit in test case Update test to check max_velocity against max_vel_param, because limit of 0.0 does not make sense ---------
-
Contributors: Marvin Seegert, Vishal Chauhan, github-actions
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
0.45.0 (2025-05-22)
- Merge remote-tracking branch 'origin/main' into
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/external_velocity_limit_selector.launch.xml
-
- common_param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default_common.param.yaml]
- param_path [default: $(find-pkg-share autoware_external_velocity_limit_selector)/config/default.param.yaml]
- input_velocity_limit_from_api [default: /planning/scenario_planning/max_velocity_default]
- input_velocity_limit_from_internal [default: /planning/scenario_planning/max_velocity_candidates]
- input_velocity_limit_clear_command_from_internal [default: /planning/scenario_planning/clear_velocity_limit]
- output_velocity_limit_from_selector [default: /planning/scenario_planning/max_velocity]
- output_debug_string [default: /planning/scenario_planning/external_velocity_limit_selector/debug]