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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]
Messages
Services
Plugins
Recent questions tagged autoware_dummy_traffic_light_publisher 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-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya SASAKI
- Takayuki AKAMINE
Authors
autoware_dummy_traffic_light_publisher
Purpose
Publish dummy traffic light signals for simulation environments where a traffic light recognition module is not available.
Modes
| Mode | Description |
|---|---|
standalone |
Cycles through Green -> Yellow -> Red for all traffic lights found in the vector map. |
empty |
Publishes an empty TrafficLightGroupArray (no traffic light groups). |
fixed |
Publishes a single fixed color (fixed_color) for all traffic lights found in the vector map. |
To assign different signals per traffic light ID, use pass-through instead (see below); fixed mode intentionally applies one color to every light.
Pass-through
When a message is received on the input topic (~/input/traffic_signals), the node relays it as-is instead of generating its own signals. If no new input arrives within passthrough_timeout seconds, the node falls back to its configured mode.
Interface
Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/vector_map |
autoware_map_msgs/msg/LaneletMapBin |
Lanelet2 map to extract traffic light regulatory element IDs. |
~/input/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
External traffic light signals for pass-through. |
Publications
| Topic | Type | Description |
|---|---|---|
~/output/traffic_signals |
autoware_perception_msgs/msg/TrafficLightGroupArray |
Generated or relayed traffic light signals. |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode |
string | "empty" |
Operating mode: "standalone", "empty" or "fixed". |
publish_rate |
double | 10.0 |
Publishing frequency [Hz]. |
green_duration |
double | 30.0 |
Duration of the green phase [s] (standalone mode). |
yellow_duration |
double | 3.0 |
Duration of the yellow phase [s] (standalone mode). |
red_duration |
double | 30.0 |
Duration of the red phase [s] (standalone mode). |
passthrough_timeout |
double | 1.0 |
Time after last input before falling back to the configured mode [s]. |
fixed_color |
string | "red" |
Color published in fixed mode: "green", "yellow" or "red". |
Usage
Launch
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml
To override the mode:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=standalone
To publish a fixed color for all traffic lights:
ros2 launch autoware_dummy_traffic_light_publisher dummy_traffic_light_publisher.launch.xml mode:=fixed fixed_color:=green
Design and extension tactics
This package separates concerns into three layers:
| Layer | Class | Role |
|---|---|---|
| ROS I/O | DummyTrafficLightPublisherNode |
Subscriptions (take()), timer, publisher, vector map parsing. |
| Message assembly | DummyTrafficLight |
Pass-through judgment, traffic light ID management, TrafficLightGroupArray construction. |
| Signal generation | TrafficLightCycle |
Phase computation (Green/Yellow/Red) from elapsed time and TrafficLightElement output. |
When extending, modify only the layer that owns the responsibility:
-
Adding arrow shapes, flashing patterns, or new signal types — change
TrafficLightCycle. It ownsTrafficLightElementconstruction. Node andDummyTrafficLightare unaffected. -
Per-intersection or per-ID signal control — change
DummyTrafficLight. It maps IDs to elements.TrafficLightCycleand Node are unaffected. -
Adding new input sources or output topics — change
DummyTrafficLightPublisherNode. Logic layers are unaffected.
Run node directly
The parameters have no in-code defaults, so a parameter file must be provided (e.g. the packaged config/dummy_traffic_light_publisher.param.yaml):
ros2 run autoware_dummy_traffic_light_publisher autoware_dummy_traffic_light_publisher_node --ros-args \
--params-file $(ros2 pkg prefix --share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml \
-p mode:=standalone \
-r ~/input/vector_map:=/map/vector_map \
-r ~/input/traffic_signals:=/simulator/input/traffic_signals \
-r ~/output/traffic_signals:=/perception/traffic_light_recognition/traffic_signals
Changelog for package autoware_dummy_traffic_light_publisher
0.53.0 (2026-09-29)
- Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
- feat(simulator): add node design file for dummy traffic light publisher (#13254) feat(DummyTrafficLightPublisher): add new node design for traffic light publishing
- Contributors: Ryohsuke Mitsudome, Taekjin LEE
0.52.0 (2026-06-30)
-
chore: align package versions to 0.51.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
feat(dummy_traffic_light_publisher): add new node to publish traffic light message instead of Rviz (#12456)
- feat(simulator): add dummy traffic light publisher node for Planning simulator
- chore(dummy_traffic_light_publisher): add new description.
- feat(dummy_traffic_light_publisher): updated test codes and implementation
- style(pre-commit): autofix
- chore: fixed mistype and cpplint
- style(pre-commit): autofix
- fixed lint
- abstract method.
* Apply suggestions from code review I merged the reviewer's suggestion Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
- refactor(autoware_dummy_traffic_light_publisher): move public headers to private headers under src
- fix(autoware_dummy_traffic_light_publisher): address review comments
- use rclcpp::Rate(publish_rate).period() for timer period to avoid integer-millisecond truncation and a potential 0 ms busy loop
- validate TrafficLightCycle durations are positive to avoid fmod by zero
- document running the node directly with a params file
* fix(autoware_dummy_traffic_light_publisher): make build_empty_message static It does not access any member, so cppcheck's functionStatic check (run with --inconclusive in CI) flagged it. Declaring it static resolves the cppcheck-differential failure.
* feat(autoware_dummy_traffic_light_publisher): add fixed mode Add a dedicated 'fixed' mode that publishes a single constant color (fixed_color: green/yellow/red) for all traffic lights in the vector map, for tests that need an always-red or always-green state. A dedicated mode is preferred over reusing standalone with 0.0 s durations to avoid a magic-number configuration. Per-ID signals are intentionally left to pass-through, since the IDs are discovered from the vector map at runtime. ---------Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com> Co-authored-by: Junya Sasaki <<junya.sasaki@tier4.jp>> Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
Contributors: Takayuki AKAMINE, github-actions
Package Dependencies
| Deps | Name |
|---|---|
| ament_cmake_auto | |
| autoware_cmake | |
| ament_cmake_ros | |
| ament_lint_auto | |
| autoware_lint_common | |
| autoware_lanelet2_extension | |
| autoware_lanelet2_utils | |
| autoware_map_msgs | |
| autoware_perception_msgs | |
| rclcpp |
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_launch |
Launch files
- launch/dummy_traffic_light_publisher.launch.xml
-
- mode [default: empty]
- fixed_color [default: red]
- dummy_traffic_light_publisher_param_file [default: $(find-pkg-share autoware_dummy_traffic_light_publisher)/config/dummy_traffic_light_publisher.param.yaml]