Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]
Messages
Services
Plugins
Recent questions tagged autoware_mrm_reset_manager at Robotics Stack Exchange
Package Summary
| Version | 0.53.0 |
| License | Apache License 2.0 |
| Build type | AMENT_CMAKE |
| Use | RECOMMENDED |
Repository Summary
| Description | |
| Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
| VCS Type | git |
| VCS Version | main |
| Last Updated | 2026-10-08 |
| Dev Status | UNKNOWN |
| Released | UNRELEASED |
| Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Maintainers
- Tetsuhiro Kawaguchi
- Makoto Kurihara
Authors
autoware_mrm_reset_manager
Purpose
autoware_mrm_reset_manager manages MRM reset orchestration by:
- forwarding
reset_mrmrequests to system reset services, and - coordinating initialization/reset timing from AD API states.
This package is focused on a single ECU path (no main/sub split logic).
Inner-workings / Algorithms
1. reset_mrm forwarding
When ~/input/reset_mrm is called, the node:
- Calls
~/output/reset_diag_graph - Calls
~/output/reset_redundancy_switcher(only whenis_redundant=true) - Returns success when all enabled calls succeed
2. Initialization state machine
At startup, a 1-second timer advances the following state machine:
| State | Action |
|---|---|
WAIT_SERVICES_READY |
Wait until all required output services are available (redundancy-switcher services are required only when is_redundant=true) |
SET_AGGREGATOR_INIT |
Call set_aggregator_initializing(true)
|
RESET_SWITCHER |
Call reset_redundancy_switcher() (skipped, treated as success, when is_redundant=false) |
SET_SWITCHER_INTERFACE_INIT |
Call set_redundancy_switcher_interface_initializing(true) (skipped, treated as success, when is_redundant=false) |
DONE |
Stop init timer and start periodic 5-second check |
3. Ready-state transition
The node subscribes to:
- localization initialization state,
- route state,
- operation mode state.
When all of the following are true:
- localization is initialized,
- route is set,
- Autoware control is enabled,
it performs the following actions only when enable_autoware_ready_actions=true:
set_aggregator_initializing(false)-
reset_redundancy_switcher()(skipped, treated as success, whenis_redundant=false) -
set_redundancy_switcher_interface_initializing(false)(skipped, treated as success, whenis_redundant=false)
If the system is still initializing and not yet ready, a 5-second periodic timer retries reset_redundancy_switcher().
Inputs / Outputs
Input Service
| Topic | Type | Description |
|---|---|---|
~/input/reset_mrm |
tier4_external_api_msgs::srv::ResetMrm |
External MRM reset request |
Input Subscriptions
| Topic | Type | Description |
|---|---|---|
~/input/localization_initialization_state |
autoware_adapi_v1_msgs::msg::LocalizationInitializationState |
Localization readiness |
~/input/route_state |
autoware_adapi_v1_msgs::msg::RouteState |
Route readiness |
~/input/operation_mode_state |
autoware_adapi_v1_msgs::msg::OperationModeState |
Autoware control state |
Output Service Clients
| Topic | Type | Description |
|---|---|---|
~/output/reset_diag_graph |
tier4_system_msgs::srv::ResetDiagGraph |
Resets diagnostics graph |
~/output/reset_redundancy_switcher |
tier4_system_msgs::srv::ResetRedundancySwitcher |
Resets redundancy switcher |
~/output/set_aggregator_initializing |
std_srvs::srv::SetBool |
Sets aggregator initializing flag |
~/output/set_redundancy_switcher_interface_initializing |
std_srvs::srv::SetBool |
Sets switcher-interface initializing flag |
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
service_timeout_ms |
int | 200 | Timeout for each service call |
is_redundant |
bool | true | Enables redundancy-switcher orchestration (reset_redundancy_switcher and set_redundancy_switcher_interface_initializing calls, and waiting for their services at startup). When false, these calls are skipped and treated as success. |
enable_autoware_ready_actions |
bool | true | Enables service calls triggered by Autoware-ready conditions (localization initialized, route set, Autoware control enabled). |
Launch
Launch file:
File truncated at 100 lines see the full file
Changelog for package autoware_mrm_reset_manager
0.53.0 (2026-09-29)
-
Merge remote-tracking branch 'origin/main' into prepare-0.53.0-changelog
-
feat: add mrm reset manager (#12746)
- feat(autoware_mrm_reset_manager): add MRM reset manager node
- fix: codescene
- fix: codescene
- fix: service compatibility
* fix(autoware_mrm_reset_manager): guard switcher interface init when non-redundant set_redundancy_switcher_interface_initializing() was called unconditionally during init and on the ready-state transition, even though its service is only expected to exist when is_redundant is true (are_required_services_ready already skips waiting for it otherwise). On a non-redundant configuration the call would time out every tick, so the init state machine never reached DONE and the aggregator initializing flag (diag graph latch) was never cleared. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* fix(autoware_mrm_reset_manager): keep periodic reset until actually ready on_periodic_reset_check() gated the periodic reset_redundancy_switcher retry on is_autoware_ready(), which only checks whether the localization/route/operation_mode topics have been received at least once, not their actual values. Once all three arrived (even while still uninitialized/unset/not-in-autonomous-control), the periodic reset stopped firing and never resumed, even though the system was not actually ready to leave the initializing phase. Gate on is_ready_for_operation() as well, so the reset keeps being requested every tick until localization is initialized, the route is set, and autonomous control is enabled. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* docs(autoware_mrm_reset_manager): note is_redundant skips switcher-interface calls too The is_redundant parameter description and the init/ready-state sections only mentioned reset_redundancy_switcher being skipped when is_redundant=false, not set_redundancy_switcher_interface_initializing. Now that the latter is guarded the same way, document both. Co-Authored-By: Claude Sonnet 5 <<noreply@anthropic.com>>
* style(pre-commit): autofix ---------Co-authored-by: Claude Sonnet 5 <<noreply@anthropic.com>> Co-authored-by: pre-commit-ci-lite[bot] <117423508+pre-commit-ci-lite[bot]@users.noreply.github.com>
-
Contributors: Ryohsuke Mitsudome, Tetsuhiro Kawaguchi
Package Dependencies
System Dependencies
Dependant Packages
Launch files
- launch/mrm_reset_manager.launch.xml
-
- is_redundant [default: true]
- enable_autoware_ready_actions [default: true]
- mrm_reset_manager_param_file [default: $(find-pkg-share autoware_mrm_reset_manager)/config/mrm_reset_manager.param.yaml]
- input_reset_mrm [default: /system/mrm/reset]
- input_localization_initialization_state [default: /api/localization/initialization_state]
- input_route_state [default: /api/routing/state]
- input_operation_mode_state [default: /api/operation_mode/state]
- output_reset_diag_graph [default: /diagnostics_graph/reset]
- output_reset_redundancy_switcher [default: /system/redundancy_switcher/reset]
- output_set_aggregator_initializing [default: /system/aggregator/set_initializing]
- output_set_redundancy_switcher_interface_initializing [default: /system/redundancy_switcher_interface/set_initializing]