Package Summary
| Version | 1.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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.10.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-10-07 |
| 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.10.0 (2026-09-28)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix(control): declare the dependencies these packages use (#1368)
* fix(control): declare the dependencies these packages use Each of these packages uses a package it never declares. Either it includes a header of that package, or it names a symbol of it while the header arrives through another dependency. Both build today only because some declared dependency re-exports the owner, so a change in an unrelated repository can break them without anything here changing. The tag follows where the dependency is used: a use in an installed header or in code compiled into the library takes <depend>, one reached only from test/ takes <test_depend>.
* fix(autoware_command_gate): remove the unused rmw include and dependency autoware_command_gate.cpp includes <rmw/types.h> and uses no symbol from it. Remove the include instead of declaring rmw in package.xml. This removes the <depend>rmw</depend> entry that the previous commit added. ---------
-
refactor(autoware_command_gate): create endpoints through NodeAdaptor (#1328) This file redefined GearCommand as a local struct carrying only a message type and a name, duplicating a spec that already exists centrally with the same two values plus its QoS. Replace the local definition with an alias to the real spec, matching the three aliases beside it, and create all four endpoints through NodeAdaptor. No wire change: the central spec declares depth 1, reliable and volatile, which is what the hand-written rclcpp::QoS{1} at the gear publisher already resolved to.
-
Contributors: Mete Fatih Cırıt, Yutaka Kondo, github-actions
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 |