Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_command_gate at Robotics Stack Exchange
Package Summary
| Version | 1.9.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Checkout URI | https://github.com/autowarefoundation/autoware_core.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-06-29 |
| Dev Status | DEVELOPED |
| Released | RELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Junya Sasaki
Authors
autoware_command_gate
A minimal gateway that exposes operation-mode change services and publishes matching state and gear commands.
Features
- Services
/api/operation_mode/change_to_stopand/api/operation_mode/change_to_autonomous(autoware_adapi_v1_msgs/srv/ChangeOperationMode). - Publishes
/api/operation_mode/state(reliable, transient local QoS) and/control/command/gear_cmdon each service call. - STOP -> gear
PARK; AUTONOMOUS -> gearDRIVE.
Build
colcon build --packages-select autoware_command_gate --symlink-install
Run
Launch as a node:
ros2 launch autoware_command_gate autoware_command_gate.launch.py
Or run directly:
ros2 run autoware_command_gate autoware_command_gate_exe
Interact
Call services (example from a sourced workspace):
ros2 service call /api/operation_mode/change_to_stop autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
ros2 service call /api/operation_mode/change_to_autonomous autoware_adapi_v1_msgs/srv/ChangeOperationMode "{}"
Echo topics:
ros2 topic echo /api/operation_mode/state
ros2 topic echo /control/command/gear_cmd
Tests
Tests are grouped under the following directories:
- Unit tests: test/unit
- Integration tests: test/integration
Run all tests:
colcon test --packages-select autoware_command_gate --event-handlers console_direct+
Changelog for package autoware_command_gate
1.9.0 (2026-06-24)
-
chore: align package versions to 1.8.0 and reset changelogs
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
refactor(autoware_command_gate): extract ROS-free mode dispatch helper (#1145)
* refactor(autoware_command_gate): extract ROS-free mode dispatch helper Move the request-to-mode dispatch (switch on the requested operation mode and build the corresponding outputs) out of the node's service-callback lambda into a ROS-free static helper CommandGateModeBuilder::dispatch_mode, which returns std::optional<ModeOutputs> (std::nullopt for unknown/unsupported modes). This makes the dispatch and its only error path (unknown mode -> PARAMETER_ERROR) unit-testable with plain gtest, without spinning up rclcpp. Behavior is preserved: the node still publishes outputs and sets status.success/code/message on the happy path, and emits success=false with PARAMETER_ERROR on an unknown mode. Add unit tests for dispatch_mode covering all four valid modes and the previously untested unknown-mode nullopt branch. The public node API is unchanged; dispatch_mode is an additive static method. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): address review feedback Move autoware_system_msgs/srv/change_operation_mode include from the builder header to the .cpp where ChangeOperationMode::Request is used, decoupling includers from the service definition. Assert stamp propagation in DispatchModeAutonomous/Local/Remote tests by passing non-zero stamps and checking outputs->state.stamp. Refs: autowarefoundation/autoware_core#1096
* refactor(autoware_command_gate): split mode-output and response builders (#80) Make the ChangeOperationMode service callback route through two pure message-in -> message-out builders: create_mode_output() builds the messages to publish (std::nullopt for unknown modes) and create_response() builds the service response. Both are ROS-node-free static functions that take the request, so they are unit-testable in isolation. Behavior is preserved; the publish-only ModeOutputs no longer carries response status. Refs: autowarefoundation/autoware_core#1096 ---------Co-authored-by: Junya Sasaki <<j2sasaki1990@gmail.com>>
-
feat: add [autoware_command_gate]{.title-ref} and its tests (#1012)
-
Contributors: Junya Sasaki, Yutaka Kondo, github-actions
Package Dependencies
System Dependencies
Dependant Packages
| Name | Deps |
|---|---|
| autoware_core_control |