mrm_handler
Purpose
MRM Handler is a node to select a proper MRM from a system failure state contained in OperationModeAvailability.
Inner-workings / Algorithms
State Transitions

| Name | 
Type | 
Description | 
/localization/kinematic_state | 
nav_msgs::msg::Odometry | 
Used to decide whether vehicle is stopped or not | 
/system/operation_mode/availability | 
tier4_system_msgs::msg::OperationModeAvailability | 
Used to select proper MRM from system available mrm behavior contained in operationModeAvailability | 
/vehicle/status/control_mode | 
autoware_vehicle_msgs::msg::ControlModeReport | 
Used to check vehicle mode: autonomous or manual | 
/system/mrm/emergency_stop/status | 
tier4_system_msgs::msg::MrmBehaviorStatus | 
Used to check if MRM emergency stop operation is available | 
/system/mrm/comfortable_stop/status | 
tier4_system_msgs::msg::MrmBehaviorStatus | 
Used to check if MRM comfortable stop operation is available | 
/system/mrm/pull_over_manager/status | 
tier4_system_msgs::msg::MrmBehaviorStatus | 
Used to check if MRM pull over operation is available | 
/api/operation_mode/state | 
autoware_adapi_v1_msgs::msg::OperationModeState | 
Used to check whether the current operation mode is AUTO or STOP. | 
Output
| Name | 
Type | 
Description | 
/system/emergency/gear_cmd | 
autoware_vehicle_msgs::msg::GearCommand | 
Required to execute proper MRM (send gear cmd) | 
/system/emergency/turn_indicators_cmd | 
autoware_vehicle_msgs::msg::TurnIndicatorsCommand | 
Required to execute proper MRM (send turn signal cmd) | 
/system/emergency/hazard_lights_cmd | 
autoware_vehicle_msgs::msg::HazardLightsCommand | 
Required to execute proper MRM (send hazard signal cmd) | 
/system/fail_safe/mrm_state | 
autoware_adapi_v1_msgs::msg::MrmState | 
Inform MRM execution state and selected MRM behavior | 
/system/mrm/emergency_stop/operate | 
tier4_system_msgs::srv::OperateMrm | 
Execution order for MRM emergency stop | 
/system/mrm/comfortable_stop/operate | 
tier4_system_msgs::srv::OperateMrm | 
Execution order for MRM comfortable stop | 
/system/mrm/pull_over_manager/operate | 
tier4_system_msgs::srv::OperateMrm | 
Execution order for MRM pull over | 
Parameters
| Name | 
Type | 
Description | 
Default | 
Range | 
| update_rate | 
integer | 
Timer callback period. | 
10 | 
N/A | 
| timeout_operation_mode_availability | 
float | 
If the input operation_mode_availability topic cannot be received for more than timeout_operation_mode_availability, vehicle will make an emergency stop. | 
0.5 | 
N/A | 
| timeout_call_mrm_behavior | 
float | 
If a service is requested to the mrm operator and the response is not returned by timeout_call_mrm_behavior, the timeout occurs. | 
0.01 | 
N/A | 
| timeout_cancel_mrm_behavior | 
float | 
If a service is requested to the mrm operator and the response is not returned by timeout_cancel_mrm_behavior, the timeout occurs. | 
0.01 | 
N/A | 
| use_emergency_holding | 
boolean | 
If this parameter is true, the handler does not recover to the NORMAL state. | 
False | 
N/A | 
| timeout_emergency_recovery | 
float | 
If the duration of the EMERGENCY state is longer than timeout_emergency_recovery, it does not recover to the NORMAL state. | 
5.0 | 
N/A | 
| use_parking_after_stopped | 
boolean | 
If this parameter is true, it will publish PARKING shift command. | 
false | 
N/A | 
| use_pull_over | 
boolean | 
If this parameter is true, operate pull over when latent faults occur. | 
false | 
N/A | 
| use_comfortable_stop | 
boolean | 
If this parameter is true, operate comfortable stop when latent faults occur. | 
false | 
N/A | 
| turning_hazard_on.emergency | 
boolean | 
If this parameter is true, hazard lamps will be turned on during emergency state. | 
true | 
N/A | 
| turning_indicator_on.emergency | 
boolean | 
If this parameter is true, turning indicators will be disabled during emergency state. | 
true | 
N/A | 
Assumptions / Known limits
TBD.