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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]
Messages
Services
Plugins
Recent questions tagged autoware_planning_evaluator 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
- Maxime CLEMENT
- Kyoichi Sugahara
- Kosuke Takeuchi
- Temkei Kem
Authors
- Maxime CLEMENT
Planning Evaluator
Purpose
This package provides nodes that generate various metrics to evaluate the quality of planning.
Metrics can be published in real time and saved to a JSON file when the node is shut down:
-
metrics_for_publish:- Metrics listed in
metrics_for_publishare calculated and published to the topic.
- Metrics listed in
-
metrics_for_output:- Metrics listed in
metrics_for_outputare saved to a JSON file when the node shuts down (ifoutput_metricsis set totrue). - These metrics include statistics derived from
metrics_for_publishand additional information such as parameters and descriptions.
- Metrics listed in
Metrics
All possible metrics are defined in the Metric enumeration located in:
include/autoware/planning_evaluator/metrics/metric.hppinclude/autoware/planning_evaluator/metrics/output_metric.hpp
These files also provide string conversions and human-readable descriptions for use in output files.
Metric Classifications
By Data Type
-
Statistics-based Metrics:
- Calculated using
autoware_utils::Accumulator, which tracks minimum, maximum, mean, and count values. - Sub-metrics:
/mean,/min,/max, and/count.
- Calculated using
-
Value-based Metrics:
- Metrics with a single value.
- Sub-metrics:
/value. - Some metrics with older implementations use the statistics-based format of
/mean,/min,/max, but all values are the same.
-
Count-based Metrics:
- Count occurrences of specific events over a time period.
- Sub-metrics:
/count, or/count_in_duration.
By Purpose
- Trajectory Metrics
- Trajectory Deviation Metrics
- Trajectory Stability Metrics
- Trajectory Obstacle Metrics
- Modified Goal Metrics
- Planning Factor Metrics
- Steering Metrics
- Blinker Metrics
- Other Information
Detailed Metrics
Trajectory Metrics
Evaluates the current trajectory T(0) itself.
Metrics are calculated and published when a trajectory is received.
Implemented metrics
-
curvature: Statistics of curvature at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
point_interval: Statistics of distances between consecutive trajectory points.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
relative_angle: Statistics of angles between consecutive trajectory points.- Parameters:
trajectory.min_point_dist_m(minimum distance between points). - Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Parameters:
-
resampled_relative_angle: Similar torelative_angle, but considers a point at a fixed distance (e.g., half the vehicle length) for angle calculation from the current point as the next point to calculate the relative angle, instead of using the immediately adjacent point. -
length: Total trajectory length.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
duration: Expected driving time to travel the trajectory.- Sub-metrics: Value-based metric, but using the statistics-based format of
/mean,/min,/maxwith the same value. - Sub-metrics to output:
/mean,/min,/maxfor the published data.
- Sub-metrics: Value-based metric, but using the statistics-based format of
-
velocity: Statistics of velocity at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
acceleration: Statistics of acceleration at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
-
jerk: Statistics of jerk at each trajectory point.- Sub-metrics to publish:
/mean,/min,/max. - Sub-metrics to output: The same as above but take the published data as data point instead of each trajectory point.
- Sub-metrics to publish:
Trajectory Deviation Metrics
Evaluates the trajectory deviation by comparing the trajectory T(0) and the reference trajectory.
File truncated at 100 lines see the full file
Changelog for package autoware_planning_evaluator
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the evaluator node designs with the packages they describe (#13341) The fixed-name ports of the evaluation adapters, the online perception evaluator and the metric converter are pinned with global:, which keeps them out of the design graph: link_manager skips any connection whose target is a global input port and the exporter emits no remap. remap_target: keeps the same topic and service names while letting the ports take part in the graph. /diagnostics stays global:. ControlEvaluator names a plugin class in the wrong namespace, publishes tier4_metric_msgs/MetricArray rather than the non-existent autoware_control_msgs/ControlEvaluation, and subscribes to eleven planning factor topics under /planning/planning_factors, two of which were missing. PlanningEvaluator publishes the same metric type. The evaluation adapter nodes are components with no executable of their own.
-
fix(autoware_planning_evaluator): fix out-of-bounds read in calc_lookahead_trajectory_distance (#13272)
-
fix(evaluator): declare the dependencies these packages use (#13218) Six packages use headers or symbols of packages that they never declare. Add the 26 missing entries: 25 <depend> and 1 <test_depend>. A per-package sweep of the first commit found four more missing entries. autoware_kinematic_evaluator and autoware_localization_evaluator call find_package(ament_cmake_ros REQUIRED) under BUILD_TESTING and declare it nowhere. Both get <test_depend>ament_cmake_ros</test_depend>. autoware_planning_evaluator uses lanelet::ConstLanelet in the library code, and the header arrives only through autoware_lanelet2_utils. It gets <depend>lanelet2_core</depend>. Its test loads two parameter files from the share directory of autoware_test_utils, so it gets <test_depend>autoware_test_utils</test_depend>.
-
refactor(evaluator): move node design files into each package (#13099) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
fix(autoware_planning_evaluator): use Newest polling policy for route/vector_map (#13055)
-
refactor(autoware_planning_evaluator): migrate to polling:: API (#13035)
-
feat(planning_evaluator): apply [agnocast_wrapper::Node]{.title-ref} to [planning_evaluator]{.title-ref} (#12966)
- apply agnocast_wrapper::Node
- fix
- use agnocast_wrapper tf2
- refactor(autoware_planning_evaluator): minimize diff from origin/main
- Restore the plain '// ROS subscribers' comment
- Drop explicit QoS on subscribers that had no explicit QoS in origin/main (keep transient_local QoS only on route/vector_map)
- Remove the allow_same_message explanatory comments
* refactor(autoware_planning_evaluator): drop explicit QoS on planning_factors sub origin/main created this subscriber with no explicit QoS.
- style(pre-commit): autofix
- fix: remove arg
* fix: cpplint ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: kobayu858 <<yutaro.kobayashi.2@tier4.jp>>
-
fix(planning_evaluator): guard degenerate curvature samples in trajectory metrics (#12906) Skip curvature calculation when the triangle edge-length product is near zero to avoid NaN/Inf values polluting trajectory curvature statistics. Co-authored-by: Cursor <<cursoragent@cursor.com>>
-
Contributors: Koichi Imai, Mete Fatih Cırıt, Ryohsuke Mitsudome, Taekjin LEE, Yuxuan Liu
0.52.0 (2026-06-30)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(autoware_vehicle_info_utils): refactor to use createFootprint
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/motion_evaluator.launch.xml
-
- output_metrics [default: false]
- input/twist [default: /localization/twist]
- launch/planning_evaluator.launch.xml
-
- output_metrics [default: false]
- input/odometry [default: /localization/kinematic_state]
- input/acceleration [default: /localization/acceleration]
- input/trajectory [default: /planning/trajectory]
- input/reference_trajectory [default: /planning/scenario_planning/lane_driving/motion_planning/path_optimizer/trajectory]
- input/objects [default: /perception/object_recognition/objects]
- input/modified_goal [default: /planning/scenario_planning/modified_goal]
- input/map_topic [default: /map/vector_map]
- input/route_topic [default: /planning/mission_planning/route]
- input/turn_indicators_status [default: /vehicle/status/turn_indicators_status]
- input/steering_status [default: /vehicle/status/steering_status]