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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_arbiter 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-23 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Masato Saeki
- Yoshi Ri
- Taekjin Lee
- Masaki Baba
Authors
autoware_traffic_light_arbiter
Purpose
This package receives traffic signals from perception and external (e.g., V2X) components and combines them using either a confidence-based or a external-preference based approach.
TrafficLightArbiter
Merges traffic light/signal state from image recognition and external (e.g., V2X) systems to provide to a planning component. Merging is only applied to elements in the TrafficLightGroup msg, not to predictions.
Signal Match Validator
When enable_signal_matching is set to true, perception and external signals are validated against each other.
The table below outlines how the matching process determines the output based on the combination of perception and external signal colors. Each cell represents the outcome when a specific color from a perception signal (columns) intersects with a color from an external signal (rows).
| External \ Perception | RED | AMBER | GREEN | UNKNOWN | Not Received |
|---|---|---|---|---|---|
| RED | RED | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| AMBER | UNKNOWN | AMBER | UNKNOWN | UNKNOWN | UNKNOWN |
| GREEN | UNKNOWN | UNKNOWN | GREEN | UNKNOWN | UNKNOWN |
| UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
| Not Received | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN | UNKNOWN |
Source priority
As an alternative to the signal matching option, one of the sources can be prioritized. There are three priority modes for signal selection: ‘external’ prioritizes external signals, ‘perception’ prioritizes perception signals, ‘confidence’ uses confidence-based selection.
Note, this option will not be effective if signal matching is enabled.
Inputs / Outputs
Input
| Name | Type | Description |
|---|---|---|
| ~/sub/vector_map | autoware_map_msgs::msg::LaneletMapBin | The vector map to get valid traffic signal ids. |
| ~/sub/perception_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from the image recognition pipeline. |
| ~/sub/external_traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The traffic signals from an external system. |
Output
| Name | Type | Description |
|---|---|---|
| ~/pub/traffic_signals | autoware_perception_msgs::msg::TrafficLightGroupArray | The merged traffic signal state. |
Parameters
{{ json_to_markdown(“perception/autoware_traffic_light_arbiter/schema/traffic_light_arbiter.schema.json”) }}
Changelog for package autoware_traffic_light_arbiter
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
build(traffic_light_perception): split core/node CMake targets and expose public core headers (#13325)
* refactor(autoware_traffic_light_category_merger): expose core header, split core/node CMake targets Move traffic_light_category_merger.hpp into include/autoware/traffic_light_category_merger/, and split the CMake target into ${PROJECT_NAME} (core) and ${PROJECT_NAME}_node (Node adapter linking the core). The Node header stays in src/. No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_selector): expose core header, split core/node CMake targets Move traffic_light_selector.hpp into include/autoware/traffic_light_selector/, keeping traffic_light_selector_utils.hpp private in src/ (not part of the public API). Split the CMake target into ${PROJECT_NAME} (core: selector + utils) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_traffic_light_map_based_detector): expose core header, split core/node CMake targets Move traffic_light_map_based_detector.hpp into include/autoware/traffic_light_map_based_detector/, keeping traffic_light_map_based_detector_process.hpp private in src/ (not part of the public API). Since the public header declares functions taking image_geometry::PinholeCameraModel, add that include directly to the header instead of pulling it in transitively via the private process header. Split the CMake target into ${PROJECT_NAME} (core: detector + process) and ${PROJECT_NAME}_node (Node adapter linking the core). No behavior change; colcon build + colcon test pass (7 tests, 0 failures).
* refactor(autoware_tensorrt_yolox): build TrtYoloXDetector as part of the core library tensorrt_yolox_detector.cpp implements core detection logic and was being compiled into ${PROJECT_NAME}_node (the Node adapter target) instead of ${PROJECT_NAME} (the core library). Move it to the core target so the core library does not depend on the node target for its own logic.
- refactor(autoware_traffic_light_classifier): expose TrafficLightClassifier as the sole public header
- Move traffic_light_classifier.hpp to include/autoware/traffic_light_classifier/ and forward-declare ClassifierInterface instead of including classifier/classifier_interface.hpp, so the classifier/*.hpp backends and classifier_params.hpp / traffic_light_classifier_node.hpp stay private under src/.
- Split the CMake library target into ${PROJECT_NAME} (ROS-free classification core) and ${PROJECT_NAME}_node (rclcpp::Node adapter layer), mirroring the core/node separation already present in src/.
- single_image_debug_inference_node and the node-level integration test now link against both libraries instead of recompiling every source file.
- refactor(autoware_traffic_light_multi_camera_fusion): move headers under include/, split core/node CMake targets
- refactor(autoware_traffic_light_arbiter): split core/node CMake targets
- refactor(autoware_image_transport_decompressor): move core logic header to include, node header to src
* refactor(autoware_crosswalk_traffic_light_estimator): move core logic header to include, node header to src, split core/node CMake targets ---------
-
refactor(autoware_traffic_light_arbiter): accept source_priority as string at the boundary (#13271) Node's source_priority parameter is a string, but TrafficLightArbiter and SignalMatchValidator previously required callers to pre-convert it into the SourcePriority enum themselves. Both constructors now accept the raw std::string directly and convert it internally via the new to_source_priority() free function, so the enum-vs-string translation is no longer duplicated at each call site. Internal storage and comparisons still use SourcePriority. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix (#13016)
* refactor(autoware_traffic_light_arbiter): rename classes to drop Core suffix Line up file names with class names: the ROS-free arbitration logic is now the canonical TrafficLightArbiter in traffic_light_arbiter.{hpp,cpp}, and the thin ROS node is
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_perception_launch |
Launch files
- launch/traffic_light_arbiter.launch.xml
-
- perception_traffic_signals [default: /internal/traffic_signals]
- external_traffic_signals [default: /external/traffic_signals]
- output_traffic_signals [default: /traffic_light_arbiter/traffic_signals]
- param_path [default: $(find-pkg-share autoware_traffic_light_arbiter)/config/traffic_light_arbiter.param.yaml]