Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]
Messages
Services
Plugins
Recent questions tagged autoware_control_validator at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-27 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Kyoichi Sugahara
- Makoto Kurihara
- Mamoru Sobue
- Takayuki Murooka
- Yuki Takagi
Authors
- Kyoichi Sugahara
- Takamasa Horibe
- Makoto Kurihara
Control Validator
The control_validator is a module that checks the validity of the output of the control component. The status of the validation can be viewed in the /diagnostics topic.
Supported features
The following features are supported for the validation and can have thresholds set by parameters. The listed features below does not always correspond to the latest implementation.
| Description | Arguments | Diagnostic equation |
|---|---|---|
| Inverse velocity: Measured velocity has a different sign from the target velocity. | measured velocity $v$, target velocity $\hat{v}$, and velocity parameter $c$ | $v \hat{v} < 0, \quad \lvert v \rvert > c$ |
| Overspeed: Measured speed exceeds target speed significantly. | measured velocity $v$, target velocity $\hat{v}$, ratio parameter $r$, and offset parameter $c$ | $\lvert v \rvert > (1 + r) \lvert \hat{v} \rvert + c$ |
| Overrun estimation: estimate overrun even if decelerate by assumed rate. | assumed deceleration, assumed delay |
- Lateral jerk : invalid when the lateral jerk exceeds the configured threshold. The validation uses the vehicle’s velocity and steering angle rate to calculate the resulting lateral jerk. The calculation assumes constant velocity (acceleration is zero).
- Deviation check between reference trajectory and predicted trajectory : invalid when the largest deviation between the predicted trajectory and reference trajectory is greater than the given threshold.
-
Yaw deviation: invalid when the difference between the yaw of the ego vehicle and the nearest (interpolated) trajectory yaw is greater than the given threshold.
- 2 thresholds are implemented, one to trigger a warning diagnostic, and one to trigger an error diagnostic.
Inputs/Outputs
Inputs
The control_validator takes in the following inputs:
| Name | Type | Description |
|---|---|---|
~/input/kinematics |
nav_msgs/Odometry | ego pose and twist |
~/input/reference_trajectory |
autoware_planning_msgs/Trajectory | reference trajectory which is outputted from planning module to to be followed |
~/input/predicted_trajectory |
autoware_planning_msgs/Trajectory | predicted trajectory which is outputted from control module |
Outputs
It outputs the following:
| Name | Type | Description |
|---|---|---|
~/output/validation_status |
control_validator/ControlValidatorStatus | validator status to inform the reason why the trajectory is valid/invalid |
/diagnostics |
diagnostic_msgs/DiagnosticStatus | diagnostics to report errors |
Parameters
The following parameters can be set for the control_validator:
System parameters
| Name | Type | Description | Default value |
|---|---|---|---|
publish_diag |
bool | if true, diagnostics msg is published. | true |
diag_error_count_threshold |
int | the Diag will be set to ERROR when the number of consecutive invalid trajectory exceeds this threshold. (For example, threshold = 1 means, even if the trajectory is invalid, the Diag will not be ERROR if the next trajectory is valid.) | true |
display_on_terminal |
bool | show error msg on terminal | true |
Algorithm parameters
Thresholds
The input trajectory is detected as invalid if the index exceeds the following thresholds.
| Name | Type | Description | Default value |
|---|---|---|---|
thresholds.max_distance_deviation |
double | invalid threshold of the max distance deviation between the predicted path and the reference trajectory [m] | 1.0 |
thresholds.lateral_jerk |
double | invalid threshold of the lateral jerk for steering rate validation [m/s^3] | 10.0 |
thresholds.rolling_back_velocity |
double | threshold velocity to validate the vehicle velocity [m/s] | 0.5 |
thresholds.over_velocity_offset |
double | threshold velocity offset to validate the vehicle velocity [m/s] | 2.0 |
thresholds.over_velocity_ratio |
double | threshold ratio to validate the vehicle velocity [*] | 0.2 |
thresholds.overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 0.8 |
thresholds.acc_error_offset |
double | threshold ratio to validate the vehicle acceleration [*] | 0.8 |
thresholds.acc_error_scale |
double | threshold acceleration to validate the vehicle acceleration [m] | 0.2 |
thresholds.will_overrun_stop_point_dist |
double | threshold distance to overrun stop point [m] | 1.0 |
thresholds.assumed_limit_acc |
double | assumed acceleration for over run estimation [m] | 5.0 |
thresholds.assumed_delay_time |
double | assumed delay for over run estimation [m] | 0.2 |
thresholds.yaw_deviation_error |
double | threshold angle to validate the vehicle yaw related to the nearest trajectory yaw [rad] | 1.0 |
thresholds.yaw_deviation_warn |
double | threshold angle to trigger a WARN diagnostic [rad] | 0.5 |
over_velocity.vel_lpf_gain |
double | low-pass filter gain for filtering vehicle and target velocity [*] (time constant 2.0s at 30msec sampling period) | 0.985 |
Changelog for package autoware_control_validator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat(control_validator): improve roll back detection logic (#13373)
- feat(control_validator): improve roll back detection logic (#3315)
- improve roll back detection logic to properly handle zero target velocity case
- add unit tests for velocity validation
* Refactor is_rolling_back into conditional ---------
- remove white space
* fix test ---------
-
feat(control_validator): apply [agnocast_wrapper::Node]{.title-ref} to [control_validator]{.title-ref} (#13322)
- feat(control_validator): apply agnocast_wrapper::Node to control_validator
* style(pre-commit): autofix ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
refactor(control): move node design files into each package (#13100) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(control_validator): modernize parameter handling and support dynamic reconfigure (#13027)
- fix(control_validator): use generate parameter library
- fix: dynamic reconfigure
- fix: rearranging parameters
- refactor: rearrange validator's in alphabetical order (param struct)
- fix: config file and arranging with alphabetical order
- fix: address PR's comment
* fix: parameter config ---------
-
fix(planning_validator, control_validator): fix include path for angles header (#13026)
- fix include path for angles header
* add missing package dependency ---------
-
Contributors: Ryohsuke Mitsudome, Taekjin LEE, Yutaro Kobayashi, Zulfaqar Azmi, 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
- feat: control : fix contol packages compile error when using ros2 jazzy (#11556)
- Contributors: Ryohsuke Mitsudome, 心刚
0.49.0 (2025-12-30)
-
Merge remote-tracking branch 'origin/main' into prepare-0.49.0-changelog
-
refactor: fix leftover dependent autoware_utils from updating vehicle_info_utils (#11734)
-
refactor(control_validator): reduce copy and add test for trajectory aligning (#11718)
- feat: add max trajectory size for reference trajectory alignment
- refactor: feed reverse trajectory before calculation
- refactor: add and arrange appropriate empty vector guards
- refactor: use only the first and the last segments of ref trajectory
- refactor: expose align function into detail namespace so that it can be tested
- add test for align_trajectory_with_reference_trajectory
- refactor: use boundary segment directly on interpolation
- minor: remove unnecessary reference from const bool&
- add explicit type guard for size >= 2
- addressing copilot review
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_control_launch |
Launch files
- launch/control_validator.launch.xml
-
- control_validator_param_path [default: $(find-pkg-share autoware_control_validator)/config/control_validator.param.yaml]
- input_reference_trajectory [default: /planning/trajectory]
- input_predicted_trajectory [default: /control/trajectory_follower/lateral/predicted_trajectory]
- input_operational_mode_state [default: /api/operation_mode/state]