From 7589136785c1a1106122cf63d3d8714359aec186 Mon Sep 17 00:00:00 2001 From: Tomohito ANDO Date: Sat, 23 Nov 2024 09:38:27 +0900 Subject: [PATCH] feat(system_diagnostic_monitor): add mrm recoverable option (#847) * feat: add mrm recoverable option Signed-off-by: Tomohito Ando * feat: add fatal_error path to implement MRM auto-recover Signed-off-by: Tomohito Ando * set vehicle-emergency-button as fatal error Signed-off-by: Tomohito Ando --------- Signed-off-by: Tomohito Ando --- .../system/mrm_handler/mrm_handler.param.yaml | 2 ++ .../autoware-main.yaml | 33 +++++++++++++++++++ .../system_diagnostic_monitor/control.yaml | 27 +++++++++++++++ .../system_diagnostic_monitor/hardware.yaml | 27 +++++++++++++++ .../system_diagnostic_monitor/others.yaml | 27 +++++++++++++++ .../system_diagnostic_monitor/planning.yaml | 27 +++++++++++++++ .../system_diagnostic_monitor/system.yaml | 27 +++++++++++++++ .../system_diagnostic_monitor/vehicle.yaml | 28 ++++++++++++++++ .../tier4_system_component.launch.xml | 2 ++ 9 files changed, 200 insertions(+) diff --git a/autoware_launch/config/system/mrm_handler/mrm_handler.param.yaml b/autoware_launch/config/system/mrm_handler/mrm_handler.param.yaml index 2370259cbe..c00fde3546 100644 --- a/autoware_launch/config/system/mrm_handler/mrm_handler.param.yaml +++ b/autoware_launch/config/system/mrm_handler/mrm_handler.param.yaml @@ -11,6 +11,8 @@ use_parking_after_stopped: false use_pull_over: false use_comfortable_stop: true + is_mrm_recoverable: false + use_pull_over_after_stopped: false # setting whether to turn hazard lamp on for each situation turning_hazard_on: diff --git a/autoware_launch/config/system/system_diagnostic_monitor/autoware-main.yaml b/autoware_launch/config/system/system_diagnostic_monitor/autoware-main.yaml index 29ab9d11b0..c28b9038ca 100644 --- a/autoware_launch/config/system/system_diagnostic_monitor/autoware-main.yaml +++ b/autoware_launch/config/system/system_diagnostic_monitor/autoware-main.yaml @@ -33,6 +33,7 @@ units: - { type: link, link: /sensing/autonomous_available } - { type: link, link: /system/autonomous_available } - { type: link, link: /vehicle/autonomous_available } + - { type: link, link: /autoware/fatal_error/autonomous_available } - path: /autoware/modes/pull_over type: and @@ -47,6 +48,7 @@ units: - { type: link, link: /sensing/pull_over_available } - { type: link, link: /system/pull_over_available } - { type: link, link: /vehicle/pull_over_available } + - { type: link, link: /autoware/fatal_error/pull_over_available } - path: /autoware/modes/comfortable_stop type: and @@ -61,6 +63,37 @@ units: - { type: link, link: /sensing/comfortable_stop_available } - { type: link, link: /system/comfortable_stop_available } - { type: link, link: /vehicle/comfortable_stop_available } + - { type: link, link: /autoware/fatal_error/comfortable_stop_available } + + - path: /autoware/fatal_error/autonomous_available + type: and + list: + - { type: link, link: /hardware/fatal_error/autonomous_available } + - { type: link, link: /planning/fatal_error/autonomous_available } + - { type: link, link: /control/fatal_error/autonomous_available } + - { type: link, link: /vehicle/fatal_error/autonomous_available } + - { type: link, link: /system/fatal_error/autonomous_available } + - { type: link, link: /others/fatal_error/autonomous_available } + + - path: /autoware/fatal_error/pull_over_available + type: and + list: + - { type: link, link: /hardware/fatal_error/pull_over_available } + - { type: link, link: /planning/fatal_error/pull_over_available } + - { type: link, link: /control/fatal_error/pull_over_available } + - { type: link, link: /vehicle/fatal_error/pull_over_available } + - { type: link, link: /system/fatal_error/pull_over_available } + - { type: link, link: /others/fatal_error/pull_over_available } + + - path: /autoware/fatal_error/comfortable_stop_available + type: and + list: + - { type: link, link: /hardware/fatal_error/comfortable_stop_available } + - { type: link, link: /planning/fatal_error/comfortable_stop_available } + - { type: link, link: /control/fatal_error/comfortable_stop_available } + - { type: link, link: /vehicle/fatal_error/comfortable_stop_available } + - { type: link, link: /system/fatal_error/comfortable_stop_available } + - { type: link, link: /others/fatal_error/comfortable_stop_available } - path: /autoware/modes/emergency_stop type: ok diff --git a/autoware_launch/config/system/system_diagnostic_monitor/control.yaml b/autoware_launch/config/system/system_diagnostic_monitor/control.yaml index bf7e053a35..57094fd51e 100644 --- a/autoware_launch/config/system/system_diagnostic_monitor/control.yaml +++ b/autoware_launch/config/system/system_diagnostic_monitor/control.yaml @@ -17,6 +17,24 @@ units: list: - { type: link, link: /control/emergency_stop } + - path: /control/fatal_error/autonomous_available + type: and + list: + - { type: link, link: /control/fatal_error/emergency_stop } + - { type: link, link: /control/fatal_error/pull_over } + - { type: link, link: /control/fatal_error/comfortable_stop } + + - path: /control/fatal_error/pull_over_available + type: and + list: + - { type: link, link: /control/fatal_error/emergency_stop } + - { type: link, link: /control/fatal_error/comfortable_stop } + + - path: /control/fatal_error/comfortable_stop_available + type: and + list: + - { type: link, link: /control/fatal_error/emergency_stop } + # ******************************************************************************* # NOTE: Please modify this section according to your environment and requirements. # ******************************************************************************* @@ -30,12 +48,21 @@ units: # - { type: link, link: /control/010-max_distance_deviation-error } - { type: link, link: /control/011-slip_detection } + - path: /control/fatal_error/emergency_stop + type: and + - path: /control/comfortable_stop type: and + - path: /control/fatal_error/comfortable_stop + type: and + - path: /control/pull_over type: and + - path: /control/fatal_error/pull_over + type: and + - path: /control/none type: and list: diff --git a/autoware_launch/config/system/system_diagnostic_monitor/hardware.yaml b/autoware_launch/config/system/system_diagnostic_monitor/hardware.yaml index 290c317010..cff4628608 100644 --- a/autoware_launch/config/system/system_diagnostic_monitor/hardware.yaml +++ b/autoware_launch/config/system/system_diagnostic_monitor/hardware.yaml @@ -17,6 +17,24 @@ units: list: - { type: link, link: /hardware/emergency_stop } + - path: /hardware/fatal_error/autonomous_available + type: and + list: + - { type: link, link: /hardware/fatal_error/emergency_stop } + - { type: link, link: /hardware/fatal_error/pull_over } + - { type: link, link: /hardware/fatal_error/comfortable_stop } + + - path: /hardware/fatal_error/pull_over_available + type: and + list: + - { type: link, link: /hardware/fatal_error/emergency_stop } + - { type: link, link: /hardware/fatal_error/comfortable_stop } + + - path: /hardware/fatal_error/comfortable_stop_available + type: and + list: + - { type: link, link: /hardware/fatal_error/emergency_stop } + # ******************************************************************************* # NOTE: Please modify this section according to your environment and requirements. # ******************************************************************************* @@ -40,14 +58,23 @@ units: # - { type: link, link: /hardware/gpu/004-throttling-error } # - { type: link, link: /hardware/gpu/005-frequency-error } + - path: /hardware/fatal_error/emergency_stop + type: and + - path: /hardware/pull_over type: and list: - { type: link, link: /hardware/hdd/002-usage-error } + - path: /hardware/fatal_error/pull_over + type: and + - path: /hardware/comfortable_stop type: and + - path: /hardware/fatal_error/comfortable_stop + type: and + - path: /hardware/none type: and list: diff --git a/autoware_launch/config/system/system_diagnostic_monitor/others.yaml b/autoware_launch/config/system/system_diagnostic_monitor/others.yaml index a8116b27d5..54a3a4fbce 100644 --- a/autoware_launch/config/system/system_diagnostic_monitor/others.yaml +++ b/autoware_launch/config/system/system_diagnostic_monitor/others.yaml @@ -17,6 +17,24 @@ units: list: - { type: link, link: /others/emergency_stop } + - path: /others/fatal_error/autonomous_available + type: and + list: + - { type: link, link: /others/fatal_error/emergency_stop } + - { type: link, link: /others/fatal_error/pull_over } + - { type: link, link: /others/fatal_error/comfortable_stop } + + - path: /others/fatal_error/pull_over_available + type: and + list: + - { type: link, link: /others/fatal_error/emergency_stop } + - { type: link, link: /others/fatal_error/comfortable_stop } + + - path: /others/fatal_error/comfortable_stop_available + type: and + list: + - { type: link, link: /others/fatal_error/emergency_stop } + # ******************************************************************************* # NOTE: Please modify this section according to your environment and requirements. # ******************************************************************************* @@ -28,16 +46,25 @@ units: # - { type: link, link: /others/005-visibility_validation-error } # - { type: link, link: /others/012-vehicle_stuck_checker } + - path: /others/fatal_error/emergency_stop + type: and + - path: /others/comfortable_stop type: and # list: # - { type: link, link: /others/010-emergency_vehicle-error } + - path: /others/fatal_error/comfortable_stop + type: and + - path: /others/pull_over type: and list: - { type: link, link: /others/011-daytime_monitor } + - path: /others/fatal_error/pull_over + type: and + - path: /others/none type: and diff --git a/autoware_launch/config/system/system_diagnostic_monitor/planning.yaml b/autoware_launch/config/system/system_diagnostic_monitor/planning.yaml index 3a8240aedd..a54a715839 100644 --- a/autoware_launch/config/system/system_diagnostic_monitor/planning.yaml +++ b/autoware_launch/config/system/system_diagnostic_monitor/planning.yaml @@ -17,6 +17,24 @@ units: list: - { type: link, link: /planning/emergency_stop } + - path: /planning/fatal_error/autonomous_available + type: and + list: + - { type: link, link: /planning/fatal_error/emergency_stop } + - { type: link, link: /planning/fatal_error/pull_over } + - { type: link, link: /planning/fatal_error/comfortable_stop } + + - path: /planning/fatal_error/pull_over_available + type: and + list: + - { type: link, link: /planning/fatal_error/emergency_stop } + - { type: link, link: /planning/fatal_error/comfortable_stop } + + - path: /planning/fatal_error/comfortable_stop_available + type: and + list: + - { type: link, link: /planning/fatal_error/emergency_stop } + # ******************************************************************************* # NOTE: Please modify this section according to your environment and requirements. # ******************************************************************************* @@ -37,12 +55,21 @@ units: - { type: link, link: /planning/012-trajectory_velocity_deviation_validation-error } # - { type: link, link: /planning/013-collision_checker-error } + - path: /planning/fatal_error/emergency_stop + type: and + - path: /planning/comfortable_stop type: and + - path: /planning/fatal_error/comfortable_stop + type: and + - path: /planning/pull_over type: and + - path: /planning/fatal_error/pull_over + type: and + - path: /planning/none type: and diff --git a/autoware_launch/config/system/system_diagnostic_monitor/system.yaml b/autoware_launch/config/system/system_diagnostic_monitor/system.yaml index 02fa87326f..65d926b371 100644 --- a/autoware_launch/config/system/system_diagnostic_monitor/system.yaml +++ b/autoware_launch/config/system/system_diagnostic_monitor/system.yaml @@ -17,6 +17,24 @@ units: list: - { type: link, link: /system/emergency_stop } + - path: /system/fatal_error/autonomous_available + type: and + list: + - { type: link, link: /system/fatal_error/emergency_stop } + - { type: link, link: /system/fatal_error/pull_over } + - { type: link, link: /system/fatal_error/comfortable_stop } + + - path: /system/fatal_error/pull_over_available + type: and + list: + - { type: link, link: /system/fatal_error/emergency_stop } + - { type: link, link: /system/fatal_error/comfortable_stop } + + - path: /system/fatal_error/comfortable_stop_available + type: and + list: + - { type: link, link: /system/fatal_error/emergency_stop } + # ******************************************************************************* # NOTE: Please modify this section according to your environment and requirements. # ******************************************************************************* @@ -26,14 +44,23 @@ units: - { type: link, link: /system/001-topic_status-error } - { type: link, link: /system/002-emergency_stop_operation-error } + - path: /system/fatal_error/emergency_stop + type: and + - path: /system/comfortable_stop type: and + - path: /system/fatal_error/comfortable_stop + type: and + - path: /system/pull_over type: and list: - { type: link, link: /system/005-fms_connection-error } + - path: /system/fatal_error/pull_over + type: and + - path: /system/none type: and list: diff --git a/autoware_launch/config/system/system_diagnostic_monitor/vehicle.yaml b/autoware_launch/config/system/system_diagnostic_monitor/vehicle.yaml index ba8a783c96..8f1fb8b2aa 100644 --- a/autoware_launch/config/system/system_diagnostic_monitor/vehicle.yaml +++ b/autoware_launch/config/system/system_diagnostic_monitor/vehicle.yaml @@ -17,6 +17,24 @@ units: list: - { type: link, link: /vehicle/emergency_stop } + - path: /vehicle/fatal_error/autonomous_available + type: and + list: + - { type: link, link: /vehicle/fatal_error/emergency_stop } + - { type: link, link: /vehicle/fatal_error/pull_over } + - { type: link, link: /vehicle/fatal_error/comfortable_stop } + + - path: /vehicle/fatal_error/pull_over_available + type: and + list: + - { type: link, link: /vehicle/fatal_error/emergency_stop } + - { type: link, link: /vehicle/fatal_error/comfortable_stop } + + - path: /vehicle/fatal_error/comfortable_stop_available + type: and + list: + - { type: link, link: /vehicle/fatal_error/emergency_stop } + # ******************************************************************************* # NOTE: Please modify this section according to your environment and requirements. # ******************************************************************************* @@ -28,15 +46,25 @@ units: - { type: link, link: /vehicle/005-vehicle_heartbeat-error } - { type: link, link: /vehicle/006-vehicle_errors-error } + - path: /vehicle/fatal_error/emergency_stop + type: and + - path: /vehicle/comfortable_stop type: and list: - { type: link, link: /vehicle/006-vehicle_errors } + + - path: /vehicle/fatal_error/comfortable_stop + type: and + list: - { type: link, link: /vehicle/007-vehicle-emergency-button } - path: /vehicle/pull_over type: and + - path: /vehicle/fatal_error/pull_over + type: and + - path: /vehicle/none type: and diff --git a/autoware_launch/launch/components/tier4_system_component.launch.xml b/autoware_launch/launch/components/tier4_system_component.launch.xml index 027837196d..de430c49f0 100644 --- a/autoware_launch/launch/components/tier4_system_component.launch.xml +++ b/autoware_launch/launch/components/tier4_system_component.launch.xml @@ -34,6 +34,8 @@ + +