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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]
Messages
Services
Plugins
Recent questions tagged autoware_traffic_light_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
- Yukihiro Saito
- Dai Nguyen
- Yoshi Ri
- Masato Saeki
- Taekjin Lee
- Masaki Baba
Authors
- Dai Nguyen
autoware_traffic_light_selector
Overview
autoware_traffic_light_selector selects the interest traffic light from the list of accurately detected traffic lights by something (e.g. deep learning neural network) based on the expect ROIs and rough ROIs information and then assign traffic_light_id for them.
Input topics
| Name | Type | Description |
|---|---|---|
input/detected_rois |
tier4_perception_msgs::msg::DetectedObjectsWithFeature | accurately detected traffic light |
input/rough_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image corresponding to the camera info |
input/expect_rois |
tier4_perception_msgs::msg::TrafficLightRoiArray | location of traffic lights in image without any offset |
Output topics
| Name | Type | Description |
|---|---|---|
output/traffic_rois |
tier4_perception_msgs::TrafficLightRoiArray | detected traffic light of interest with id |
Node parameters
None
Changelog for package autoware_traffic_light_selector
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_selector): shrink node characterization test (#12928) refactor(autoware_traffic_light_selector): shrink node characterization test to simple integration test The selection logic is now fully covered by TrafficLightSelector unit tests, so the node-level test only needs to verify that the node's subscribers, synchronizer and publisher are wired correctly. Replaced the four IoU-selection scenarios with a single empty-inputs case and removed the now-unused ROI-building helpers. Co-authored-by: Takahisa.Ishikawa <<takahisa.ishikawa@tier4.jp>>
-
refacotr(traffic_light_selector): extract core logic (#12924)
- refactor(autoware_traffic_light_selector): extract TrafficLightSelector logic
- refactor(autoware_traffic_light_selector): pass CameraInfo directly to TrafficLightSelector::select
- test(traffic_light_selector): add unit test
File truncated at 100 lines see the full file
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_gtest | |
| autoware_cmake | |
| ament_cmake_auto | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_utils | |
| message_filters | |
| rclcpp | |
| rclcpp_components | |
| sensor_msgs | |
| tier4_perception_msgs |
System Dependencies
Dependant Packages
Launch files
- launch/traffic_light_selector.launch.xml
-
- input/detected_rois [default: input/detected_rois]
- input/rough_rois [default: input/rough_rois]
- input/camera_info [default: input/camera_info]
- output/traffic_rois [default: output/traffic_light_rois]