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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]
Messages
Services
Plugins
Recent questions tagged autoware_diffusion_planner 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
- Daniel Sanchez
- Yukihiro Saito
- Go Sakayori
- Shintaro Sakoda
- Yukinari Hisaki
Authors
- Daniel Sanchez
Autoware Diffusion Planner
Overview
The Autoware Diffusion Planner is a trajectory generation module for autonomous vehicles, designed to work within the Autoware ecosystem. It leverages the Diffusion Planner model, as described in the paper “Diffusion-Based Planning for Autonomous Driving with Flexible Guidance” by Zheng et al.
This planner generates smooth, feasible, and safe trajectories by considering:
- Dynamic and static obstacles
- Vehicle kinematics
- User-defined constraints
- Lanelet2 map context
- Traffic signals and speed limits
It is implemented as a ROS 2 component node, making it easy to integrate into Autoware-based stacks. The node is aimed at working within the proposed Autoware new planning framework.
How to use
(1) Prerequisites
Make sure that the directory specified in planning/autoware_diffusion_planner/config/diffusion_planner.param.yaml points to the correct model version and contains the required model weight and parameter files.
$ ls ~/autoware_data/ml_models/diffusion_planner/v4.0/
diffusion_planner.onnx diffusion_planner.param.json
This can be downloaded by following Download artifacts.
(2) Launch the planning simulator
Pass planning_setting:=diffusion_planner to switch the planning stack from the rule-based scenario planner to the diffusion planner. This argument automatically swaps the trajectory generator, the planning validator input topic, and the diagnostics graph, so no additional launch-file edits are required.
ros2 launch autoware_launch planning_simulator.launch.xml \
map_path:=/path/to/your/map \
vehicle_model:=sample_vehicle \
sensor_model:=sample_sensor_kit \
planning_setting:=diffusion_planner
Features
-
Diffusion-based trajectory generation for flexible and robust planning
-
Integration with Lanelet2 maps for lane-level context
-
Dynamic and static obstacle handling using perception inputs
-
Traffic signal and speed limit awareness
- ONNX Runtime inference for fast neural network execution
- ROS 2 publishers for planned trajectories, predicted objects, and debug markers
Parameters
{{ json_to_markdown(“planning/autoware_diffusion_planner/schema/diffusion_planner.schema.json”) }}
Parameters can be set via YAML (see config/diffusion_planner.param.yaml).
Inputs
| Topic | Message Type | Description |
|---|---|---|
~/input/odometry |
nav_msgs/msg/Odometry | Ego vehicle odometry |
~/input/acceleration |
geometry_msgs/msg/AccelWithCovarianceStamped | Ego acceleration |
~/input/tracked_objects |
autoware_perception_msgs/msg/TrackedObjects | Detected dynamic objects |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray | Traffic light states |
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin | Lanelet2 map |
~/input/route |
autoware_planning_msgs/msg/LaneletRoute | Route information |
~/input/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsReport | Turn indicator information |
Outputs
| Topic | Message Type | Description |
|---|---|---|
~/output/trajectory |
autoware_planning_msgs/msg/Trajectory | Planned trajectory for the ego vehicle |
~/output/trajectories |
autoware_internal_planning_msgs/msg/CandidateTrajectories | Multiple candidate trajectories |
~/output/predicted_objects |
autoware_perception_msgs/msg/PredictedObjects | Predicted future states of dynamic objects |
~/output/turn_indicators |
autoware_vehicle_msgs/msg/TurnIndicatorsCommand | Planned turn indicator command |
~/output/debug/traffic_signal |
autoware_perception_msgs/msg/TrafficLightGroup | First traffic light on route (ego forward) for RViz/ad_api |
~/debug/lane_marker |
visualization_msgs/msg/MarkerArray | Lane debug markers |
~/debug/route_marker |
visualization_msgs/msg/MarkerArray | Route debug markers |
File truncated at 100 lines see the full file
Changelog for package autoware_diffusion_planner
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
docs(autoware_diffusion_planner): fix arXiv link of reference paper (#13417)
-
feat(autoware_diffusion_planner): remap unsupported objects to pedestrian (#13352)
* feat(autoware_diffusion_planner): treat HAZARD objects as pedestrians Remap HAZARD classification to PEDESTRIAN when updating agent histories so that hazard objects are considered as planner inputs. If a hazard object has a non-BOX shape, emit a warning and replace the shape with a 0.5 m bounding box. Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
- feat(autoware_diffusion_planner): gate object remapping behind a parameter and extend it to UNKNOWN
- fix(tier4_dummy_object_rviz_plugin): emit a footprint for dummy unknown objects
* refactor(autoware_diffusion_planner): derive the unsupported-label set from the model labels ---------Co-authored-by: Yukihito Saito <<yukky.saito@gmail.com>> Co-authored-by: Claude Fable 5 <<noreply@anthropic.com>> Co-authored-by: Max-Bin <<vborisw@gmail.com>>
-
feat(diffusion_planner): ego snap to prev trajectory (#13234)
- Implemented [ego_snap_to_prev_trajectory]{.title-ref}
- Removed [all_close]{.title-ref}
- Applied [pre-commit run -a]{.title-ref}
- Merge main
- Fixed README.md
- Fixed parameters
- Added [max_search_segment_count]{.title-ref}
- Fixed to false
- Fixed to false
* Fixed unknown words ---------
-
feat(diffusion_planner): resample neighbor agent histories onto a constant grid (motion compensation) (#12979)
- feat: Implement agent history alignment for improved neighbor agent tracking
- Added HistoryAlignmentParams struct to configure neighbor-agent history time-alignment.
- Introduced propagate_motion and interpolate_yaw functions for motion state propagation and yaw interpolation.
- Updated DiffusionPlannerParams to include object_history parameters.
- Enhanced AgentData to support history updates with alignment parameters.
- Implemented resampling and transformation of agent histories based on alignment parameters.
- Added tests for agent history alignment functionality, including propagation and lifecycle management.
- Updated parameter handling in DiffusionPlanner to support new object history settings.
- Refactor agent history alignment to resampling
- Replaced agent history alignment with a new agent history resampler.
- Updated CMakeLists.txt to include new source and test files.
- Removed agent_history_alignment.hpp and agent_history_alignment.cpp.
- Introduced agent_history_resampler.hpp and agent_history_resampler.cpp.
- Updated AgentData to use resampling parameters instead of alignment parameters.
- Modified tests to reflect changes in history resampling logic.
- feat: Remove prune grace parameter and update agent history handling for immediate erasure of disappeared agents
- feat: Rename object_history to object_motion_resampling and update related parameters for clarity
- feat: Remove yaw rate threshold from object motion resampling parameters and update related logic
* retain agent history of temporal absent format fix
- object_motion_resampling parameter to read-only
- fix velocity handling
- chore(autoware_diffusion_planner): schema entry, spell exceptions, include cleanup
- add object_motion_resampling to the parameter schema
- file-scoped cspell exceptions for CTRV/dedup/tmpl
- prune unused includes from agent.hpp; direct includes in agent.cpp
- comment polish per codebase comment policy Co-Authored-By: Claude Fable 5 <<noreply@anthropic.com>>
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/diffusion_planner.launch.xml
-
- diffusion_planner_param_path [default: $(find-pkg-share autoware_diffusion_planner)/config/diffusion_planner.param.yaml]
- data_path [default: $(env HOME)/autoware_data/ml_models/diffusion_planner]
- vehicle_info_param_path [default: $(find-pkg-share autoware_vehicle_info_utils)/config/vehicle_info.param.yaml]
- output_trajectory [default: ~/output/trajectory]
- output_trajectories [default: ~/output/trajectories]
- output_predicted_objects [default: ~/output/predicted_objects]
- output_turn_indicators [default: ~/output/turn_indicators]
- debug/output_traffic_signal [default: ~/output/debug/traffic_signal]
- input_odometry [default: ~/input/odometry]
- input_acceleration [default: ~/input/acceleration]
- input_route [default: ~/input/route]
- input_traffic_signals [default: ~/input/traffic_signals]
- input_tracked_objects [default: ~/input/tracked_objects]
- input_vector_map [default: ~/input/vector_map]
- input_turn_indicators [default: ~/input/turn_indicators]
- build_only [default: false]




