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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_planning_validator_trajectory_checker 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
- Alqudah Mohammad
- kyoichi sugahara
Authors
- Alqudah Mohammad
- Satoshi Ota
Trajectory Checker
The intersection_collision_checker is a plugin module of autoware_planning_validator node. It is responsible for validating the planning trajectory before it is published.
Supported features
The following features are supported for trajectory validation and can have thresholds set by parameters:
- Invalid field : e.g. Inf, Nan
- Trajectory points interval : invalid if any of the distance of trajectory points is too large
- Curvature : invalid if the trajectory has too sharp turns that is not feasible for the given vehicle kinematics
- Relative angle : invalid if the yaw angle changes too fast in the sequence of trajectory points
-
Lateral acceleration : invalid if the expected lateral acceleration/deceleration is too large. Lateral acceleration is calculated using the formula:
\[a_{lat} = v_{lon}^2 * \kappa\]Where $v_{lon}$ is longitudinal velocity and $\kappa$ is curvature. Since the acceleration embedded in path points is perpendicular to the derived lateral acceleration, projections are not considered. The velocity and acceleration assigned to each point are directed toward the next path point.
-
Lateral jerk : invalid if the rate of change of lateral acceleration is too large. Lateral jerk is calculated using the formula:
\[j_{lat} = v_{lon}^3 * \frac{d\kappa}{ds} + 3 * v_{lon}^2 * a_{lon} * \kappa\]Where $v_{lon}$ is longitudinal velocity, $\kappa$ is curvature, $a_{lon}$ is longitudinal acceleration, and $\frac{d\kappa}{ds}$ is the rate of curvature change with respect to distance. In this implementation, the curvature change ($\frac{d\kappa}{ds}$) is not considered, simplifying the calculation to only the second term. The lateral jerk represents how quickly the lateral acceleration changes, which affects ride comfort and vehicle stability.
- Longitudinal acceleration/deceleration : invalid if the acceleration/deceleration in the trajectory point is too large
- Steering angle : invalid if the expected steering value is too large estimated from trajectory curvature
- Steering angle rate : invalid if the expected steering rate value is too large
- Velocity deviation : invalid if the planning velocity is too far from the ego velocity
- Distance deviation : invalid if the ego is too far from the trajectory
- Longitudinal distance deviation : invalid if the trajectory is too far from ego in longitudinal direction
- Forward trajectory length : invalid if the trajectory length is not enough to stop within a given deceleration
-
Yaw deviation : invalid if the difference between the ego yaw and closest trajectory yaw is too large.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
th_trajectory_yaw_shiftbetween successive trajectories.
- in general planning is not responsible for keeping a low yaw deviation, so this metric is checked only when the closest trajectory yaw changes by more than
- Trajectory Shift : invalid if the lat./long. distance between two consecutive trajectories near the Ego exceed the thresholds.
Parameters
The following parameters are used to configure the different validation checks performed by trajectory_checker:
Interval Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
interval.enable |
[-] | bool | flag to enable/disable interval validation check | true |
interval.threshold |
[m] | double | max valid distance between two consecutive trajectory points | 100.0 |
interval.handling_type |
[-] | int | specify handling type for invalid interval (optional parameter, if not specified will use default of planning validator) | unspecified |
interval.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Curvature Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
curvature.enable |
[-] | bool | flag to enable/disable curvature validation check | true |
curvature.threshold |
[1/m] | double | max valid value for the trajectory curvature | 2.0 |
curvature.handling_type |
[-] | int | specify handling type for invalid curvature (optional parameter, if not specified will use default of planning validator) | unspecified |
curvature.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Relative Angle Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
relative_angle.enable |
[-] | bool | flag to enable/disable relative angle validation check | true |
relative_angle.threshold |
[rad] | double | max valid angle difference between two consecutive trajectory points | 2.0 |
relative_angle.handling_type |
[-] | int | specify handling type for invalid relative_angle (optional parameter, if not specified will use default of planning validator) | unspecified |
relative_angle.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable lateral acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the lateral acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Max Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable max longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | max valid value for the longitudinal acceleration along the trajectory | 9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Min Longitudinal Acceleration Check
| Name | Unit | Type | Description | Default value |
|---|---|---|---|---|
acceleration.enable |
[-] | bool | flag to enable/disable min longitudinal acceleration validation check | true |
acceleration.threshold |
[m/ss] | double | min valid value for the longitudinal acceleration along the trajectory | -9.8 |
acceleration.handling_type |
[-] | int | specify handling type for invalid acceleration (optional parameter, if not specified will use default of planning validator) | unspecified |
acceleration.override_error_diag |
[-] | bool | if true, will override error diag from other checks (optional parameter, if not specified will assume FALSE) | unspecified |
Lateral Jerk Check
| Name | Unit | Type | Description | Default value |
File truncated at 100 lines see the full file
Changelog for package autoware_planning_validator_trajectory_checker
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>>
-
chore(planning): update package maintainers (#13186)
-
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, mkquda
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): reset last_valid_trajectory when receiving new route (#11836)
- fix(planning_validator): reset last_valid_trajectory when receiving new route
- skip check_traject_shift when ego stops
- fix unit test failure
* use ivehicle_stop_checker ---------Co-authored-by: kosuke55 <<kosuke.tnp@gmail.com>>
-
Contributors: Kem (TiankuiXian), Ryohsuke Mitsudome
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
fix(planning_validator): update QoS settings for operational mode state subscriber (#11401)
-
fix: use the correct jerk computation formula (#11306)
- fix: use the correct jerk computation formula
* also fix test script ---------
-
feat(planning_validator): add operational mode state handling and validation filtering (#11216)
- feat(planning_validator): add operational mode state handling and validation filtering
- refactor(planning_validator): unused validation_filtering method and initialize validation status with existing function
* feat(planning_validator): add operational mode state handling and publisher for test ---------
File truncated at 100 lines see the full file