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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator 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-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Takamasa Horibe
- Kosuke Takeuchi
- Kyoichi Sugahara
- Alqudah Mohammad
Authors
- Takamasa Horibe
- Yutaka Shimizu
- Satoshi Ota
Planning Validator
The autoware_planning_validator node is the last module executed in the planning component, it responsible for checking the validity of the planning trajectory before it is published to control component. The status of the validation can be viewed in the /diagnostics and /validation_status topics. When an invalidity is detected, the autoware_planning_validator will process the trajectory following the selected option: “0. publish the trajectory as it is”, “1. stop publishing the trajectory”, “2. publish the last validated trajectory”.
Note: The planning validator automatically suppresses validation errors during manual driving mode. When the vehicle is in autonomous mode, all validation checks are performed normally. During manual driving, validation errors are suppressed and only debug logs are output.
The autoware_planning_validator node loads multiple plugins modules, each responsible for running specific validation checks on the planning trajectory:
-
Latency Checker: The
autoware_planning_validator_latency_checkeris responsible for checking the validity of planning trajectory age -
Trajectory Checker: The
autoware_planning_validator_trajectory_checkeris responsible for checking the validity of planning trajectory shape -
Intersection Collision Checker: The
autoware_planning_validator_intersection_collision_checkeris responsible for verifying planning trajectory does not result in collision at intersections -
Rear Collision Checker: The
autoware_planning_validator_rear_collision_checkeris responsible for verifying planning trajectory does not result in collision with rear vehicles
Inputs/Outputs
Inputs
The autoware_planning_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/acceleration |
geometry_msgs/AccelWithCovarianceStamped | current acceleration of the ego vehicle |
~/input/trajectory |
autoware_planning_msgs/Trajectory | target trajectory to be validated in this node |
~/input/route |
autoware_planning_msgs/LaneletRoute | route information |
~/input/lanelet_map_bin |
autoware_map_msgs/LaneletMapBin | lanelet vector map information |
~/input/pointcloud |
sensor_msgs/PointCloud2 | obstacle pointcloud with ground removed |
~/input/operational_mode_state |
autoware_adapi_v1_msgs/OperationModeState | current operation mode state (autonomous/manual) |
~/input/traffic_signals |
autoware_perception_msgs/TrafficLightGroupArray | recognized traffic signal information |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/Trajectory | validated trajectory |
~/output/validation_status |
planning_validator/PlanningValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the autoware_planning_validator:
| Name | Type | Description | Default value |
|---|---|---|---|
default_handling_type |
int | set default handling type for when invalidity is detected. 0: publish invalid traj as it is, 1: publish last valid traj, 2: publish last valid traj with soft stop |
0 |
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | Number of consecutive invalid trajectories to set the Diag to ERROR. (Fe.g, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | 0 |
display_on_terminal |
bool | show error msg on terminal | true |
soft_stop_deceleration |
double | deceleration value to be used for soft stop action. [m/ss] | -1.0 |
soft_stop_jerk_lim |
double | jerk limit value to be used for soft stop action. [m/sss] | 0.3 |
th_traffic_light_timeout |
double | timeout threshold [s] to discard outdated traffic light information during validation | 0.5 |
Changelog for package autoware_planning_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(planning_validator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_validator]{.title-ref} (#12964)
- apply agnocast_wrapper::node
- style(pre-commit): autofix
* fix(autoware_planning_validator): feed stop checker per odometry message Restore the original VehicleStopChecker behavior: subscribe to /localization/kinematic_state and call addTwist() on every odometry message, instead of feeding the latest polled odometry once per trajectory cycle.
- refactor(autoware_planning_validator): drop odometry subscriber comment
- refactor(planning_validator): migrate to polling:: API
- fix(planning_validator): adopt PlanningFactorInterfaceT<Node>
- fix(autoware_planning_validator): launch as a standalone node and fix the agnocast build wiring
- fix(autoware_planning_validator): pass the underlying rclcpp node to the planning test manager
- style(pre-commit): autofix
* refactor(autoware_planning_validator): declare the utils packages it includes and drop the stale comment ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning, control): point design param_files at the packages that install them (#13219) BehaviorPathPlanner listed its plugin modules' param files as relative paths, resolving against the host node package; each module package installs its own config. PlanningValidator referenced its checker plugins' param files under the host package with a planning_validator_ filename prefix the plugins do not use. TrajectoryFollower referenced config/ where the package installs param/, and controller files that exist per controller type (mpc, pid). ManualLaneChangeHandler declared a param file that does not exist; the node declares no parameters. The run_out module ships a config directory that ament_auto_package() did not install. Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>>
-
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>>
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Satoshi OTA, Taekjin LEE, mkquda
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(direction_change_module): propagate [allow_area]{.title-ref} to downstream modules for area-primitive route support (#12815)
- feat: ignore lane_departure in area primitive
- feat: add area primitive for isRouteValid() in mission_planner_universe
- feat: add allow_area for scenario_selector
- feat: add allow_area to planning_validator
- feat: add missing params in scenario module manager
- fix: set allow_area to false by default
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: emmeyteja, github-actions
0.51.0 (2026-05-01)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(planning_validator_container): apply autoware_agnocast_wrapper for CIE
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
| Name |
|---|
| libboost-dev |
Launch files
- launch/invalid_trajectory_publisher.launch.xml
-
- input/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- output/trajectory [default: /planning/scenario_planning/velocity_smoother/trajectory]
- launch/planning_validator.launch.xml
-
- launch_latency_checker [default: true]
- launch_trajectory_checker [default: true]
- launch_intersection_collision_checker [default: true]
- launch_rear_collision_checker [default: true]
- launch_modules_list_end [default: ""]]
- planning_validator_launch_modules [default: []
- planning_validator_param_path [default: $(find-pkg-share autoware_planning_validator)/config/planning_validator.param.yaml]
- planning_validator_latency_checker_param_path
- planning_validator_trajectory_checker_param_path
- planning_validator_intersection_collision_checker_param_path
- planning_validator_rear_collision_checker_param_path
- input_trajectory_topic_name [default: /planning/scenario_planning/velocity_smoother/trajectory]
- input_objects_topic_name [default: /perception/object_recognition/objects]
- input_pointcloud_topic_name [default: /perception/obstacle_segmentation/pointcloud]
- input_traffic_light_topic_name [default: /perception/traffic_light_recognition/traffic_signals]
- input_route_topic_name [default: /planning/mission_planning/route]
- input_vector_map_topic_name [default: /map/vector_map]
- output_trajectory [default: /planning/trajectory]