Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]
Messages
Services
Plugins
Recent questions tagged autoware_hazard_lights_selector at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-26 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Makoto Kurihara
- Mamoru Sobue
Authors
Autoware Hazard Lights Selector
Purpose
The Hazard Lights Selector is a node that manages and selects hazard light commands from multiple sources (planning and system) to determine the final hazard lights state of the vehicle.
Inner-workings / Algorithms
The node operates on a timer-based update cycle and implements the following logic:
- Receives hazard light commands from both planning and system sources
- If either source requests hazard lights to be enabled, the final command will be to enable hazard lights
- If neither source requests hazard lights to be enabled, the final command will be to disable hazard lights
- The selected command is published at a configurable update rate
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
input/planning/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the planning system |
input/system/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
Hazard lights command from the system |
Output
| Name | Type | Description |
|---|---|---|
output/hazard_lights_command |
autoware_vehicle_msgs/msg/HazardLightsCommand |
The selected hazard lights command |
Parameters
| Name | Type | Default Value | Description |
|---|---|---|---|
update_rate |
int | 10 | The update rate in Hz for publishing hazard lights commands |
Assumptions / Known limits
(Optional) Error detection and handling
(Optional) Performance characterization
(Optional) References/External links
(Optional) Future extensions / Unimplemented parts
Changelog for package autoware_hazard_lights_selector
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
fix(design): align the planning node designs with the packages they describe (#13342)
* fix(design): align the planning node designs with the packages they describe HazardLightsSelector registers as HazardLightsSelector, and its second input maps to input/system/hazard_lights_command and carries the MRM command, so the port is named system_hazard_lights_cmd. SurroundObstacleChecker publishes the migrated autoware_internal_planning_msgs velocity limit types, and creates neither stop_reasons nor no_start_reason. RemainingDistanceTimeCalculator takes its velocity limit input through the design graph; global: keeps a port out of it, since link_manager skips any connection whose target is a global input port and the exporter emits no remap. ExternalVelocityLimitSelector's api_limit is the reverse case: it is published only by AD API adaptors outside the design graph, so it keeps global: alongside its remap_target. #13165 unified the Modifier and Optimizer nodes into TrajectoryProcessor but left both old designs in place, naming plugins, executables and param files that no longer exist, and put the new design in common/autoware_universe_designs, a bare directory that is not a ROS package. The design moves into autoware_trajectory_processor per the convention set by #13102, and its processing_time_detail publisher carries ProcessingTimeTree.
* feat(autoware_path_sampler): add the packaged path sampler parameter file The package had no config/ directory and its INSTALL_TO_SHARE was commented out, so the parameter file the node design points at lived only in autoware_launch. The file is copied into the package and installed, and the design declares the three shared param files the launcher also passes, which is where ego_nearest_dist_threshold and ego_nearest_yaw_threshold come from.
* feat(design): add the planning factor publishers to the BehaviorPathPlanner node design The node publishes nine planning factor arrays under /planning/planning_factors that the design did not declare, so nothing could connect them to the evaluator. ---------
-
refactor(planning): move node design files into each package (#13102) Co-authored-by: Claude Opus 5 (1M context) <<noreply@anthropic.com>>
-
feat(hazard_lights_selector): apply [agnocast_wrapper::Node]{.title-ref} to [autoware_hazard_lights_selector]{.title-ref} (#12850)
- apply agnocast_wrapper::Node
- fix cpplint and delete unnecessary comments
* fix for invalid parameter ---------
-
Contributors: Koichi Imai, Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
0.51.0 (2026-05-01)
0.50.0 (2026-02-14)
0.49.0 (2025-12-30)
0.48.0 (2025-11-18)
-
Merge remote-tracking branch 'origin/main' into humble
-
feat(planning, perception): replace wall_timer with generic timer (#11005)
- feat(planning, perception): replace wall_timer with generic timer
- use rclcpp::create_timer
* remove period_ns ---------
-
Contributors: Mamoru Sobue, Ryohsuke Mitsudome
0.47.1 (2025-08-14)
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- feat(hazard_lights_selector): add a hazard lights selector package (#10692) Co-authored-by: pre-commit-ci[bot]
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_agnocast_wrapper | |
| autoware_vehicle_msgs | |
| rclcpp | |
| rclcpp_components |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_planning_launch |
Launch files
- launch/hazard_lights_selector.launch.xml
-
- hazard_lights_selector_param_path [default: $(find-pkg-share autoware_hazard_lights_selector)/config/hazard_lights_selector.param.yaml]
- input_hazard_lights_cmd_from_path_planner [default: /planning/behavior_path_planner/hazard_lights_cmd]
- input_hazard_lights_cmd_from_mrm_operator [default: /system/hazard_lights_cmd]
- output_hazard_lights_cmd [default: /planning/hazard_lights_cmd]