diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/autoware.planning_simulator.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/autoware.planning_simulator.yaml new file mode 100644 index 0000000000..72b4c30aa0 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/autoware.planning_simulator.yaml @@ -0,0 +1,47 @@ +files: + - { path: $(dirname)/map.yaml } + - { path: $(dirname)/planning.yaml } + - { path: $(dirname)/control.yaml } + +# Exclude paths that does not need on planning simulator +edits: + - path: /map/001-topic_status/pointcloud_map-error + type: remove + - path: /map/001-topic_status/pointcloud_map + type: remove + +nodes: + - path: /autoware/modes/local + type: stale + + - path: /autoware/modes/remote + type: stale + + # Stop is always available + - path: /autoware/modes/stop + type: ok + + - path: /autoware/modes/autonomous + type: and + list: + - { type: link, link: /map/autonomous_available } + - { type: link, link: /planning/autonomous_available } + - { type: link, link: /control/autonomous_available } + + - path: /autoware/modes/pull_over + type: and + list: + - { type: link, link: /map/pull_over_available } + - { type: link, link: /planning/pull_over_available } + - { type: link, link: /control/pull_over_available } + + - path: /autoware/modes/comfortable_stop + type: and + list: + - { type: link, link: /map/comfortable_stop_available } + - { type: link, link: /planning/comfortable_stop_available } + - { type: link, link: /control/comfortable_stop_available } + + # Emergency stop is always available + - path: /autoware/modes/emergency_stop + type: ok diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/autoware.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/autoware.yaml new file mode 100644 index 0000000000..ee16bc9819 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/autoware.yaml @@ -0,0 +1,68 @@ +files: + - { path: $(dirname)/hardware.yaml } + - { path: $(dirname)/sensing.yaml } + - { path: $(dirname)/map.yaml } + - { path: $(dirname)/localization.yaml } + - { path: $(dirname)/planning.yaml } + - { path: $(dirname)/perception.yaml } + - { path: $(dirname)/control.yaml } + - { path: $(dirname)/vehicle.yaml } + - { path: $(dirname)/system.yaml } + - { path: $(dirname)/others.yaml } + +nodes: + - path: /autoware/modes/local + type: stale + + - path: /autoware/modes/remote + type: stale + + # Stop is always available + - path: /autoware/modes/stop + type: ok + + - path: /autoware/modes/autonomous + type: and + list: + - { type: link, link: /hardware/autonomous_available } + - { type: link, link: /sensing/autonomous_available } + - { type: link, link: /map/autonomous_available } + - { type: link, link: /localization/autonomous_available } + - { type: link, link: /planning/autonomous_available } + - { type: link, link: /perception/autonomous_available } + - { type: link, link: /control/autonomous_available } + - { type: link, link: /vehicle/autonomous_available } + - { type: link, link: /system/autonomous_available } + - { type: link, link: /others/autonomous_available } + + - path: /autoware/modes/pull_over + type: and + list: + - { type: link, link: /hardware/pull_over_available } + - { type: link, link: /sensing/pull_over_available } + - { type: link, link: /map/pull_over_available } + - { type: link, link: /localization/pull_over_available } + - { type: link, link: /planning/pull_over_available } + - { type: link, link: /perception/pull_over_available } + - { type: link, link: /control/pull_over_available } + - { type: link, link: /vehicle/pull_over_available } + - { type: link, link: /system/pull_over_available } + - { type: link, link: /others/pull_over_available } + + - path: /autoware/modes/comfortable_stop + type: and + list: + - { type: link, link: /hardware/comfortable_stop_available } + - { type: link, link: /sensing/comfortable_stop_available } + - { type: link, link: /map/comfortable_stop_available } + - { type: link, link: /localization/comfortable_stop_available } + - { type: link, link: /planning/comfortable_stop_available } + - { type: link, link: /perception/comfortable_stop_available } + - { type: link, link: /control/comfortable_stop_available } + - { type: link, link: /vehicle/comfortable_stop_available } + - { type: link, link: /system/comfortable_stop_available } + - { type: link, link: /others/comfortable_stop_available } + + # Emergency stop is always available + - path: /autoware/modes/emergency_stop + type: ok diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/control.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/control.yaml new file mode 100644 index 0000000000..1df804359b --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/control.yaml @@ -0,0 +1,96 @@ +nodes: + - path: /control/autonomous_available + type: and + list: + - { type: link, link: /control/emergency_stop } + - { type: link, link: /control/pull_over } + - { type: link, link: /control/comfortable_stop } + + - path: /control/pull_over_available + type: and + list: + - { type: link, link: /control/emergency_stop } + - { type: link, link: /control/comfortable_stop } + + - path: /control/comfortable_stop_available + type: and + list: + - { type: link, link: /control/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /control/emergency_stop + type: and + list: + - { type: link, link: /control/001-topic_status/control_command-error } + - { type: link, link: /control/004-lane_departure-error } + - { type: link, link: /control/005-trajectory_deviation-error } + - { type: link, link: /control/010-max_distance_deviation-error } + + - path: /control/comfortable_stop + type: and + + - path: /control/pull_over + type: and + + - path: /control/none + type: and + list: + - { type: link, link: /control/003-gate_heartbeat } + - { type: link, link: /control/007-external_command_converter_heartbeat } + - { type: link, link: /control/008-external_command_selector_heartbeat } + + # Intermediate paths + - path: /control/001-topic_status/control_command-error + type: warn-to-ok + list: + - { type: link, link: /control/001-topic_status/control_command } + + - path: /control/004-lane_departure-error + type: warn-to-ok + list: + - { type: link, link: /control/004-lane_departure } + + - path: /control/005-trajectory_deviation-error + type: warn-to-ok + list: + - { type: link, link: /control/005-trajectory_deviation } + + - path: /control/010-max_distance_deviation-error + type: warn-to-ok + list: + - { type: link, link: /control/010-max_distance_deviation } + + # Diagnostics paths + - path: /control/001-topic_status/control_command + diag: "topic_state_monitor_control_command_control_cmd: control_topic_status" + type: diag + + - path: /control/003-gate_heartbeat + diag: "vehicle_cmd_gate: heartbeat" + type: diag + + - path: /control/004-lane_departure + diag: "lane_departure_checker_node: lane_departure" + type: diag + + - path: /control/005-trajectory_deviation + diag: "lane_departure_checker_node: trajectory_deviation" + type: diag + + - path: /control/007-external_command_converter_heartbeat + diag: "external_cmd_converter: remote_control_topic_status" + type: diag + + - path: /control/008-external_command_selector_heartbeat + diag: "external_cmd_selector: heartbeat" + type: diag + + - path: /control/010-max_distance_deviation + diag: "control_validator: control_validation_max_distance_deviation" + type: diag + + # - path: /control/011-slip_detection + # diag: "slip_detection: " + # type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/hardware.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/hardware.yaml new file mode 100644 index 0000000000..c228442c64 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/hardware.yaml @@ -0,0 +1,297 @@ +nodes: + - path: /hardware/autonomous_available + type: and + list: + - { type: link, link: /hardware/emergency_stop } + - { type: link, link: /hardware/pull_over } + - { type: link, link: /hardware/comfortable_stop } + + - path: /hardware/pull_over_available + type: and + list: + - { type: link, link: /hardware/emergency_stop } + - { type: link, link: /hardware/comfortable_stop } + + - path: /hardware/comfortable_stop_available + type: and + list: + - { type: link, link: /hardware/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /hardware/emergency_stop + type: and + list: + - { type: link, link: /hardware/cpu/002-usage-error } + - { type: link, link: /hardware/cpu/004-throttling-error } + - { type: link, link: /hardware/hdd/001-temperature-error } + - { type: link, link: /hardware/hdd/003-connection-error } + - { type: link, link: /hardware/hdd/006-soft_error-error } + - { type: link, link: /hardware/hdd/007-load-error } + - { type: link, link: /hardware/memory/001-usage-error } + - { type: link, link: /hardware/memory/002-ecc-error } + - { type: link, link: /hardware/network/003-crc-error } + - { type: link, link: /hardware/network/004-packet_reassembles-error } + - { type: link, link: /hardware/gpu/001-temperature-error } + - { type: link, link: /hardware/gpu/002-usage-error } + - { type: link, link: /hardware/gpu/003-memory-error } + - { type: link, link: /hardware/gpu/004-throttling-error } + - { type: link, link: /hardware/gpu/005-frequency-error } + + - path: /hardware/pull_over + type: and + list: + - { type: link, link: /hardware/hdd/002-usage-error } + + - path: /hardware/comfortable_stop + type: and + + - path: /hardware/none + type: and + list: + - { type: link, link: /hardware/cpu/001-temperature } + - { type: link, link: /hardware/cpu/003-load_average } + - { type: link, link: /hardware/cpu/005-frequency } + - { type: link, link: /hardware/hdd/004-total_written } + - { type: link, link: /hardware/hdd/005-warranty_period } + - { type: link, link: /hardware/network/001-usage } + - { type: link, link: /hardware/network/002-traffic } + - { type: link, link: /hardware/ntp/001-sync } + - { type: link, link: /hardware/process/001-summary } + - { type: link, link: /hardware/process/002-load } + - { type: link, link: /hardware/process/003-memory } + - { type: link, link: /hardware/bios/001-battery } + + # Intermediate paths + - path: /hardware/cpu/002-usage-error + type: warn-to-ok + list: + - { type: link, link: /hardware/cpu/002-usage } + + - path: /hardware/cpu/004-throttling-error + type: warn-to-ok + list: + - { type: link, link: /hardware/cpu/004-throttling } + + - path: /hardware/hdd/001-temperature-error + type: warn-to-ok + list: + - { type: link, link: /hardware/hdd/001-temperature } + + - path: /hardware/hdd/002-usage-error + type: warn-to-ok + list: + - { type: link, link: /hardware/hdd/002-usage } + + - path: /hardware/hdd/003-connection-error + type: warn-to-ok + list: + - { type: link, link: /hardware/hdd/003-connection } + + - path: /hardware/hdd/006-soft_error-error + type: warn-to-ok + list: + - { type: link, link: /hardware/hdd/006-soft_error } + + - path: /hardware/hdd/007-load-error + type: warn-to-ok + list: + - { type: link, link: /hardware/hdd/007-load } + + - path: /hardware/memory/001-usage-error + type: warn-to-ok + list: + - { type: link, link: /hardware/memory/001-usage } + + - path: /hardware/memory/002-ecc-error + type: warn-to-ok + list: + - { type: link, link: /hardware/memory/002-ecc } + + - path: /hardware/network/003-crc-error + type: warn-to-ok + list: + - { type: link, link: /hardware/network/003-crc } + + - path: /hardware/gpu/001-temperature-error + type: warn-to-ok + list: + - { type: link, link: /hardware/gpu/001-temperature } + + - path: /hardware/gpu/002-usage-error + type: warn-to-ok + list: + - { type: link, link: /hardware/gpu/002-usage } + + - path: /hardware/gpu/003-memory-error + type: warn-to-ok + list: + - { type: link, link: /hardware/gpu/003-memory } + + - path: /hardware/gpu/004-throttling-error + type: warn-to-ok + list: + - { type: link, link: /hardware/gpu/004-throttling } + + - path: /hardware/gpu/005-frequency-error + type: warn-to-ok + list: + - { type: link, link: /hardware/gpu/005-frequency } + + - path: /hardware/network/004-packet_reassembles-error + type: warn-to-ok + list: + - { type: link, link: /hardware/network/004-packet_reassembles } + + - path: /hardware/hdd/007-load + type: and + list: + - { type: link, link: /hardware/hdd/007-load/read_rate } + - { type: link, link: /hardware/hdd/007-load/read_iops } + - { type: link, link: /hardware/hdd/007-load/write_rate } + - { type: link, link: /hardware/hdd/007-load/write_iops } + + - path: /hardware/process/002-load + type: and + list: + - { type: link, link: /hardware/process/002-load/proc-0 } + - { type: link, link: /hardware/process/002-load/proc-1 } + - { type: link, link: /hardware/process/002-load/proc-2 } + - { type: link, link: /hardware/process/002-load/proc-3 } + - { type: link, link: /hardware/process/002-load/proc-4 } + + - path: /hardware/process/003-memory + type: and + list: + - { type: link, link: /hardware/process/003-memory/proc-0 } + - { type: link, link: /hardware/process/003-memory/proc-1 } + - { type: link, link: /hardware/process/003-memory/proc-2 } + - { type: link, link: /hardware/process/003-memory/proc-3 } + - { type: link, link: /hardware/process/003-memory/proc-4 } + + # Diagnostics paths + - path: /hardware/cpu/001-temperature + diag: "cpu_monitor: CPU Temperature" + type: diag + - path: /hardware/cpu/002-usage + diag: "cpu_monitor: CPU Usage" + type: diag + - path: /hardware/cpu/003-load_average + diag: "cpu_monitor: CPU Load Average" + type: diag + - path: /hardware/cpu/004-throttling + diag: "cpu_monitor: CPU Thermal Throttling" + type: diag + - path: /hardware/cpu/005-frequency + diag: "cpu_monitor: CPU Frequency" + type: diag + + - path: /hardware/hdd/001-temperature + diag: "hdd_monitor: HDD Temperature" + type: diag + - path: /hardware/hdd/002-usage + diag: "hdd_monitor: HDD Usage" + type: diag + - path: /hardware/hdd/003-connection + diag: "hdd_monitor: HDD Connection" + type: diag + - path: /hardware/hdd/004-total_written + diag: "hdd_monitor: HDD TotalDataWritten" + type: diag + - path: /hardware/hdd/005-warranty_period + diag: "hdd_monitor: HDD PowerOnHours" + type: diag + - path: /hardware/hdd/006-soft_error + diag: "hdd_monitor: HDD RecoveredError" + type: diag + - path: /hardware/hdd/007-load/read_rate + diag: "hdd_monitor: HDD ReadDataRate" + type: diag + - path: /hardware/hdd/007-load/write_rate + diag: "hdd_monitor: HDD WriteDataRate" + type: diag + - path: /hardware/hdd/007-load/read_iops + diag: "hdd_monitor: HDD ReadIOPS" + type: diag + - path: /hardware/hdd/007-load/write_iops + diag: "hdd_monitor: HDD WriteIOPS" + type: diag + + - path: /hardware/memory/001-usage + diag: "mem_monitor: Memory Usage" + type: diag + - path: /hardware/memory/002-ecc + diag: "mem_monitor: Memory ECC" + type: diag + + - path: /hardware/network/001-usage + diag: "net_monitor: Network Usage" + type: diag + - path: /hardware/network/002-traffic + diag: "net_monitor: Network Traffic" + type: diag + - path: /hardware/network/003-crc + diag: "net_monitor: Network CRC Error" + type: diag + - path: /hardware/network/004-packet_reassembles + diag: "net_monitor: IP Packet Reassembles Failed" + type: diag + + - path: /hardware/ntp/001-sync + diag: "ntp_monitor: NTP Offset" + type: diag + + - path: /hardware/process/001-summary + diag: "process_monitor: Tasks Summary" + type: diag + - path: /hardware/process/002-load/proc-0 + diag: "process_monitor: High-load Proc[0]" + type: diag + - path: /hardware/process/002-load/proc-1 + diag: "process_monitor: High-load Proc[1]" + type: diag + - path: /hardware/process/002-load/proc-2 + diag: "process_monitor: High-load Proc[2]" + type: diag + - path: /hardware/process/002-load/proc-3 + diag: "process_monitor: High-load Proc[3]" + type: diag + - path: /hardware/process/002-load/proc-4 + diag: "process_monitor: High-load Proc[4]" + type: diag + - path: /hardware/process/003-memory/proc-0 + diag: "process_monitor: High-mem Proc[0]" + type: diag + - path: /hardware/process/003-memory/proc-1 + diag: "process_monitor: High-mem Proc[1]" + type: diag + - path: /hardware/process/003-memory/proc-2 + diag: "process_monitor: High-mem Proc[2]" + type: diag + - path: /hardware/process/003-memory/proc-3 + diag: "process_monitor: High-mem Proc[3]" + type: diag + - path: /hardware/process/003-memory/proc-4 + diag: "process_monitor: High-mem Proc[4]" + type: diag + + - path: /hardware/gpu/001-temperature + diag: "gpu_monitor: GPU Temperature" + type: diag + - path: /hardware/gpu/002-usage + diag: "gpu_monitor: GPU Usage" + type: diag + - path: /hardware/gpu/003-memory + diag: "gpu_monitor: GPU Memory Usage" + type: diag + - path: /hardware/gpu/004-throttling + diag: "gpu_monitor: GPU Thermal Throttling" + type: diag + - path: /hardware/gpu/005-frequency + diag: "gpu_monitor: GPU Frequency" + type: diag + + - path: /hardware/bios/001-battery + diag: "voltage_monitor: CMOS Battery Status" + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/localization.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/localization.yaml new file mode 100644 index 0000000000..a0e263c256 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/localization.yaml @@ -0,0 +1,96 @@ +nodes: + - path: /localization/autonomous_available + type: and + list: + - { type: link, link: /localization/emergency_stop } + - { type: link, link: /localization/pull_over } + - { type: link, link: /localization/comfortable_stop } + + - path: /localization/pull_over_available + type: and + list: + - { type: link, link: /localization/emergency_stop } + - { type: link, link: /localization/comfortable_stop } + + - path: /localization/comfortable_stop_available + type: and + list: + - { type: link, link: /localization/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /localization/emergency_stop + type: and + list: + - { type: link, link: /localization/001-topic_status/initialpose-error } + - { type: link, link: /localization/001-topic_status/pose_twist_fusion_filter-error } + - { type: link, link: /localization/002-tf-error } + - { type: link, link: /localization/003-matching_score-error } + - { type: link, link: /localization/004-accuracy-error } + - { type: link, link: /localization/005-accuracy_lateral-error } + + - path: /localization/comfortable_stop + type: and + + - path: /localization/pull_over + type: and + + - path: /localization/none + type: and + + # Intermediate paths + - path: /localization/001-topic_status/initialpose-error + type: warn-to-ok + list: + - { type: link, link: /localization/001-topic_status/initialpose } + + - path: /localization/001-topic_status/pose_twist_fusion_filter-error + type: warn-to-ok + list: + - { type: link, link: /localization/001-topic_status/pose_twist_fusion_filter } + + - path: /localization/002-tf-error + type: warn-to-ok + list: + - { type: link, link: /localization/002-tf } + + - path: /localization/003-matching_score-error + type: warn-to-ok + list: + - { type: link, link: /localization/003-matching_score } + + - path: /localization/004-accuracy-error + type: warn-to-ok + list: + - { type: link, link: /localization/004-accuracy } + + - path: /localization/005-accuracy_lateral-error + type: warn-to-ok + list: + - { type: link, link: /localization/005-accuracy_lateral } + + # Diagnostics paths + - path: /localization/001-topic_status/initialpose + diag: "topic_state_monitor_initialpose3d: localization_topic_status" + type: diag + + - path: /localization/001-topic_status/pose_twist_fusion_filter + diag: "topic_state_monitor_pose_twist_fusion_filter_pose: localization_topic_status" + type: diag + + - path: /localization/002-tf + diag: "topic_state_monitor_transform_map_to_base_link: localization_topic_status" + type: diag + + - path: /localization/003-matching_score + diag: ndt_scan_matcher + type: diag + + - path: /localization/004-accuracy + diag: "localization_error_monitor: localization_accuracy" + type: diag + + - path: /localization/005-accuracy_lateral + diag: "localization_error_monitor: localization_accuracy_lateral_direction" + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/map.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/map.yaml new file mode 100644 index 0000000000..ad6479ef76 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/map.yaml @@ -0,0 +1,56 @@ +nodes: + - path: /map/autonomous_available + type: and + list: + - { type: link, link: /map/emergency_stop } + - { type: link, link: /map/pull_over } + - { type: link, link: /map/comfortable_stop } + + - path: /map/pull_over_available + type: and + list: + - { type: link, link: /map/emergency_stop } + - { type: link, link: /map/comfortable_stop } + + - path: /map/comfortable_stop_available + type: and + list: + - { type: link, link: /map/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /map/emergency_stop + type: and + list: + - { type: link, link: /map/001-topic_status/vector_map-error } + - { type: link, link: /map/001-topic_status/pointcloud_map-error } + + - path: /map/comfortable_stop + type: and + + - path: /map/pull_over + type: and + + - path: /map/none + type: and + + # Intermediate paths + - path: /map/001-topic_status/vector_map-error + type: warn-to-ok + list: + - { type: link, link: /map/001-topic_status/vector_map } + + - path: /map/001-topic_status/pointcloud_map-error + type: warn-to-ok + list: + - { type: link, link: /map/001-topic_status/pointcloud_map } + + # Diagnostics paths + - path: /map/001-topic_status/vector_map + diag: "topic_state_monitor_vector_map: map_topic_status" + type: diag + + - path: /map/001-topic_status/pointcloud_map + diag: "topic_state_monitor_pointcloud_map: map_topic_status" + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/others.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/others.yaml new file mode 100644 index 0000000000..8bab9f68b3 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/others.yaml @@ -0,0 +1,118 @@ +nodes: + - path: /others/autonomous_available + type: and + list: + - { type: link, link: /others/emergency_stop } + - { type: link, link: /others/pull_over } + - { type: link, link: /others/comfortable_stop } + + - path: /others/pull_over_available + type: and + list: + - { type: link, link: /others/emergency_stop } + - { type: link, link: /others/comfortable_stop } + + - path: /others/comfortable_stop_available + type: and + list: + - { type: link, link: /others/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /others/emergency_stop + type: and + list: + - { type: link, link: /others/002-blockage_validation-error } + - { type: link, link: /others/004-concat_status } + - { type: link, link: /others/005-visibility_validation-error } + + - path: /others/comfortable_stop + type: and + list: + - { type: link, link: /others/010-emergency_vehicle-error } + + - path: /others/pull_over + type: and + + - path: /others/none + type: and + + # Intermediate paths + - path: /others/002-blockage_validation + type: and + list: + - { type: link, link: /others/002-blockage_validation/front_lower } + - { type: link, link: /others/002-blockage_validation/front_upper } + - { type: link, link: /others/002-blockage_validation/left_lower } + - { type: link, link: /others/002-blockage_validation/left_upper } + - { type: link, link: /others/002-blockage_validation/right_lower } + - { type: link, link: /others/002-blockage_validation/right_upper } + - { type: link, link: /others/002-blockage_validation/rear_lower } + - { type: link, link: /others/002-blockage_validation/rear_upper } + + - path: /others/005-visibility_validation + type: and + list: + - { type: link, link: /others/005-visibility_validation/left_upper } + - { type: link, link: /others/005-visibility_validation/right_upper } + + - path: /others/002-blockage_validation-error + type: warn-to-ok + list: + - { type: link, link: /others/002-blockage_validation } + + - path: /others/005-visibility_validation-error + type: warn-to-ok + list: + - { type: link, link: /others/005-visibility_validation } + + - path: /others/010-emergency_vehicle-error + type: warn-to-ok + list: + - { type: link, link: /others/010-emergency_vehicle } + + # Diagnostics paths + - path: /others/002-blockage_validation/front_lower + diag: "blockage_return_diag: /sensing/lidar/front_lower: blockage_validation" + type: diag + - path: /others/002-blockage_validation/front_upper + diag: "blockage_return_diag: /sensing/lidar/front_upper: blockage_validation" + type: diag + - path: /others/002-blockage_validation/left_lower + diag: "blockage_return_diag: /sensing/lidar/left_lower: blockage_validation" + type: diag + - path: /others/002-blockage_validation/left_upper + diag: "blockage_return_diag: /sensing/lidar/left_upper: blockage_validation" + type: diag + - path: /others/002-blockage_validation/right_lower + diag: "blockage_return_diag: /sensing/lidar/right_lower: blockage_validation" + type: diag + - path: /others/002-blockage_validation/right_upper + diag: "blockage_return_diag: /sensing/lidar/right_upper: blockage_validation" + type: diag + - path: /others/002-blockage_validation/rear_lower + diag: "blockage_return_diag: /sensing/lidar/rear_lower: blockage_validation" + type: diag + - path: /others/002-blockage_validation/rear_upper + diag: "blockage_return_diag: /sensing/lidar/rear_upper: blockage_validation" + type: diag + + - path: /others/004-concat_status + diag: "concatenate_data: concat_status" + type: diag + + - path: /others/005-visibility_validation/left_upper + diag: "dual_return_filter: /sensing/lidar/left_upper: visibility_validation" + type: diag + - path: /others/005-visibility_validation/right_upper + diag: "dual_return_filter: /sensing/lidar/right_upper: visibility_validation" + type: diag + + - path: /others/010-emergency_vehicle + diag: "emergency_vehicle_detector: emergency_vehicle" + type: diag + + - path: /others/011-daytime_monitor + diag: "daytime_monitor: daytime_status" + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/perception.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/perception.yaml new file mode 100644 index 0000000000..e6b9ad5aa3 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/perception.yaml @@ -0,0 +1,76 @@ +nodes: + - path: /perception/autonomous_available + type: and + list: + - { type: link, link: /perception/emergency_stop } + - { type: link, link: /perception/pull_over } + - { type: link, link: /perception/comfortable_stop } + + - path: /perception/pull_over_available + type: and + list: + - { type: link, link: /perception/emergency_stop } + - { type: link, link: /perception/comfortable_stop } + + - path: /perception/comfortable_stop_available + type: and + list: + - { type: link, link: /perception/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /perception/emergency_stop + type: and + list: + - { type: link, link: /perception/001-topic_status/traffic_signals-error } + - { type: link, link: /perception/001-topic_status/objects-error } + - { type: link, link: /perception/001-topic_status/pointcloud-error } + - { type: link, link: /perception/002-detection_delay-error } + + - path: /perception/comfortable_stop + type: and + + - path: /perception/pull_over + type: and + + - path: /perception/none + type: and + + # Intermediate paths + - path: /perception/001-topic_status/traffic_signals-error + type: warn-to-ok + list: + - { type: link, link: /perception/001-topic_status/traffic_signals } + + - path: /perception/001-topic_status/objects-error + type: warn-to-ok + list: + - { type: link, link: /perception/001-topic_status/objects } + + - path: /perception/001-topic_status/pointcloud-error + type: warn-to-ok + list: + - { type: link, link: /perception/001-topic_status/pointcloud } + + - path: /perception/002-detection_delay-error + type: warn-to-ok + list: + - { type: link, link: /perception/002-detection_delay } + + # Diagnostics paths + - path: /perception/001-topic_status/traffic_signals + diag: "topic_state_monitor_traffic_light_recognition_traffic_signals: perception_topic_status" + type: diag + + - path: /perception/001-topic_status/objects + diag: "topic_state_monitor_object_recognition_objects: perception_topic_status" + type: diag + + - path: /perception/001-topic_status/pointcloud + diag: "topic_state_monitor_obstacle_segmentation_pointcloud: perception_topic_status" + type: diag + + - path: /perception/002-detection_delay + diag: "multi_object_tracker: Perception delay check from original header stamp" + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/planning.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/planning.yaml new file mode 100644 index 0000000000..e41e7d5c22 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/planning.yaml @@ -0,0 +1,171 @@ +nodes: + - path: /planning/autonomous_available + type: and + list: + - { type: link, link: /planning/emergency_stop } + - { type: link, link: /planning/pull_over } + - { type: link, link: /planning/comfortable_stop } + + - path: /planning/pull_over_available + type: and + list: + - { type: link, link: /planning/emergency_stop } + - { type: link, link: /planning/comfortable_stop } + + - path: /planning/comfortable_stop_available + type: and + list: + - { type: link, link: /planning/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /planning/emergency_stop + type: and + list: + - { type: link, link: /planning/001-topic_status/route-error } + - { type: link, link: /planning/001-topic_status/trajectory-error } + - { type: link, link: /planning/003-trajectory_finite_validation-error } + - { type: link, link: /planning/004-trajectory_interval_validation-error } + - { type: link, link: /planning/005-trajectory_curvature_validation-error } + - { type: link, link: /planning/006-trajectory_relative_angle_validation-error } + - { type: link, link: /planning/007-trajectory_lateral_acceleration_validation-error } + - { type: link, link: /planning/008-trajectory_acceleration_validation-error } + - { type: link, link: /planning/009-trajectory_deceleration_validation-error } + - { type: link, link: /planning/010-trajectory_steering_validation-error } + - { type: link, link: /planning/011-trajectory_steering_rate_validation-error } + - { type: link, link: /planning/012-trajectory_velocity_deviation_validation-error } + - { type: link, link: /planning/013-collision_checker-error } + + - path: /planning/comfortable_stop + type: and + + - path: /planning/pull_over + type: and + + - path: /planning/none + type: and + + # Intermediate paths + - path: /planning/001-topic_status/route-error + type: warn-to-ok + list: + - { type: link, link: /planning/001-topic_status/route } + + - path: /planning/001-topic_status/trajectory-error + type: warn-to-ok + list: + - { type: link, link: /planning/001-topic_status/trajectory } + + - path: /planning/003-trajectory_finite_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/003-trajectory_finite_validation } + + - path: /planning/004-trajectory_interval_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/004-trajectory_interval_validation } + + - path: /planning/005-trajectory_curvature_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/005-trajectory_curvature_validation } + + - path: /planning/006-trajectory_relative_angle_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/006-trajectory_relative_angle_validation } + + - path: /planning/007-trajectory_lateral_acceleration_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/007-trajectory_lateral_acceleration_validation } + + - path: /planning/008-trajectory_acceleration_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/008-trajectory_acceleration_validation } + + - path: /planning/009-trajectory_deceleration_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/009-trajectory_deceleration_validation } + + - path: /planning/010-trajectory_steering_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/010-trajectory_steering_validation } + + - path: /planning/011-trajectory_steering_rate_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/011-trajectory_steering_rate_validation } + + - path: /planning/012-trajectory_velocity_deviation_validation-error + type: warn-to-ok + list: + - { type: link, link: /planning/012-trajectory_velocity_deviation_validation } + + - path: /planning/013-collision_checker-error + type: warn-to-ok + list: + - { type: link, link: /planning/013-collision_checker } + + # Diagnostics paths + - path: /planning/001-topic_status/route + diag: "topic_state_monitor_mission_planning_route: planning_topic_status" + type: diag + + - path: /planning/001-topic_status/trajectory + diag: "topic_state_monitor_scenario_planning_trajectory: planning_topic_status" + type: diag + + # Not implemented + # - path: /planning/002-trajectory_size_validation + # diag: "planning_validator: trajectory_validation_size" + # type: diag + + - path: /planning/003-trajectory_finite_validation + diag: "planning_validator: trajectory_validation_finite" + type: diag + + - path: /planning/004-trajectory_interval_validation + diag: "planning_validator: trajectory_validation_interval" + type: diag + + - path: /planning/005-trajectory_curvature_validation + diag: "planning_validator: trajectory_validation_curvature" + type: diag + + - path: /planning/006-trajectory_relative_angle_validation + diag: "planning_validator: trajectory_validation_relative_angle" + type: diag + + - path: /planning/007-trajectory_lateral_acceleration_validation + diag: "planning_validator: trajectory_validation_lateral_acceleration" + type: diag + + - path: /planning/008-trajectory_acceleration_validation + diag: "planning_validator: trajectory_validation_acceleration" + type: diag + + - path: /planning/009-trajectory_deceleration_validation + diag: "planning_validator: trajectory_validation_deceleration" + type: diag + + - path: /planning/010-trajectory_steering_validation + diag: "planning_validator: trajectory_validation_steering" + type: diag + + - path: /planning/011-trajectory_steering_rate_validation + diag: "planning_validator: trajectory_validation_steering_rate" + type: diag + + - path: /planning/012-trajectory_velocity_deviation_validation + diag: "planning_validator: trajectory_validation_velocity_deviation" + type: diag + + - path: /planning/013-collision_checker + diag: "collision_checker: collision_check" + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/sensing.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/sensing.yaml new file mode 100644 index 0000000000..e7b47368c4 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/sensing.yaml @@ -0,0 +1,263 @@ +nodes: + - path: /sensing/autonomous_available + type: and + list: + - { type: link, link: /sensing/emergency_stop } + - { type: link, link: /sensing/pull_over } + - { type: link, link: /sensing/comfortable_stop } + + - path: /sensing/pull_over_available + type: and + list: + - { type: link, link: /sensing/emergency_stop } + - { type: link, link: /sensing/comfortable_stop } + + - path: /sensing/comfortable_stop_available + type: and + list: + - { type: link, link: /sensing/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /sensing/emergency_stop + type: and + list: + - { type: link, link: /sensing/imu/001-monitor-error } + - { type: link, link: /sensing/imu/002-connection } + - { type: link, link: /sensing/lidar/pndr/001-connection } + - { type: link, link: /sensing/lidar/pndr/002-temperature-error } + - { type: link, link: /sensing/lidar/pndr/003-ptp } + - { type: link, link: /sensing/camera/001-connection } + - { type: link, link: /sensing/radar/001-connection } + + - path: /sensing/pull_over + type: and + list: + - { type: link, link: /sensing/lidar/pndr/002-temperature } + - { type: link, link: /sensing/gnss/001-connection-error } + + - path: /sensing/comfortable_stop + type: and + + - path: /sensing/none + type: and + list: + - { type: link, link: /sensing/imu/003-gyro_bias } + - { type: link, link: /sensing/gnss/002-quality } + + # Intermediate paths + - path: /sensing/lidar/pndr/002-temperature-error + type: warn-to-ok + list: + - { type: link, link: /sensing/lidar/pndr/002-temperature } + + - path: /sensing/imu/001-monitor-error + type: warn-to-ok + list: + - { type: link, link: /sensing/imu/001-monitor } + + - path: /sensing/gnss/001-connection-error + type: warn-to-ok + list: + - { type: link, link: /sensing/gnss/001-connection } + + - path: /sensing/lidar/pndr/001-connection + type: and + list: + - { type: link, link: /sensing/lidar/front_lower/connection } + - { type: link, link: /sensing/lidar/front_upper/connection } + - { type: link, link: /sensing/lidar/left_lower/connection } + - { type: link, link: /sensing/lidar/left_upper/connection } + - { type: link, link: /sensing/lidar/right_lower/connection } + - { type: link, link: /sensing/lidar/right_upper/connection } + - { type: link, link: /sensing/lidar/rear_lower/connection } + - { type: link, link: /sensing/lidar/rear_upper/connection } + + - path: /sensing/lidar/pndr/002-temperature + type: and + list: + - { type: link, link: /sensing/lidar/front_lower/temperature } + - { type: link, link: /sensing/lidar/front_upper/temperature } + - { type: link, link: /sensing/lidar/left_lower/temperature } + - { type: link, link: /sensing/lidar/left_upper/temperature } + - { type: link, link: /sensing/lidar/right_lower/temperature } + - { type: link, link: /sensing/lidar/right_upper/temperature } + - { type: link, link: /sensing/lidar/rear_lower/temperature } + - { type: link, link: /sensing/lidar/rear_upper/temperature } + + - path: /sensing/lidar/pndr/003-ptp + type: and + list: + - { type: link, link: /sensing/lidar/front_lower/ptp } + - { type: link, link: /sensing/lidar/front_upper/ptp } + - { type: link, link: /sensing/lidar/left_lower/ptp } + - { type: link, link: /sensing/lidar/left_upper/ptp } + - { type: link, link: /sensing/lidar/right_lower/ptp } + - { type: link, link: /sensing/lidar/right_upper/ptp } + - { type: link, link: /sensing/lidar/rear_lower/ptp } + - { type: link, link: /sensing/lidar/rear_upper/ptp } + + - path: /sensing/camera/001-connection + type: and + list: + - { type: link, link: /sensing/camera/0/connection } + - { type: link, link: /sensing/camera/1/connection } + - { type: link, link: /sensing/camera/2/connection } + - { type: link, link: /sensing/camera/3/connection } + - { type: link, link: /sensing/camera/4/connection } + - { type: link, link: /sensing/camera/5/connection } + - { type: link, link: /sensing/camera/6/connection } + - { type: link, link: /sensing/camera/7/connection } + + - path: /sensing/radar/001-connection + type: and + list: + - { type: link, link: /sensing/radar/front_center/connection } + - { type: link, link: /sensing/radar/front_left/connection } + - { type: link, link: /sensing/radar/front_right/connection } + - { type: link, link: /sensing/radar/rear_center/connection } + - { type: link, link: /sensing/radar/rear_left/connection } + - { type: link, link: /sensing/radar/rear_right/connection } + + # Diagnostics paths + - path: /sensing/imu/001-monitor + diag: "imu_monitor: yaw_rate_status" + type: diag + - path: /sensing/imu/002-connection + diag: "topic_state_monitor_imu_data: sensing_topic_status" + type: diag + - path: /sensing/imu/003-gyro_bias + diag: "gyro_bias_estimator: gyro_bias_validator" + type: diag + + - path: /sensing/gnss/001-connection + diag: "topic_state_monitor_gnss_pose: sensing_topic_status" + type: diag + - path: /sensing/gnss/002-quality + diag: "septentrio_driver: Quality indicators" + type: diag + + - path: /sensing/lidar/front_lower/connection + diag: "pandar_monitor: /sensing/lidar/front_lower: pandar_connection" + type: diag + - path: /sensing/lidar/front_lower/ptp + diag: "pandar_monitor: /sensing/lidar/front_lower: pandar_ptp" + type: diag + - path: /sensing/lidar/front_lower/temperature + diag: "pandar_monitor: /sensing/lidar/front_lower: pandar_temperature" + type: diag + + - path: /sensing/lidar/front_upper/connection + diag: "pandar_monitor: /sensing/lidar/front_upper: pandar_connection" + type: diag + - path: /sensing/lidar/front_upper/ptp + diag: "pandar_monitor: /sensing/lidar/front_upper: pandar_ptp" + type: diag + - path: /sensing/lidar/front_upper/temperature + diag: "pandar_monitor: /sensing/lidar/front_upper: pandar_temperature" + type: diag + + - path: /sensing/lidar/left_lower/connection + diag: "pandar_monitor: /sensing/lidar/left_lower: pandar_connection" + type: diag + - path: /sensing/lidar/left_lower/ptp + diag: "pandar_monitor: /sensing/lidar/left_lower: pandar_ptp" + type: diag + - path: /sensing/lidar/left_lower/temperature + diag: "pandar_monitor: /sensing/lidar/left_lower: pandar_temperature" + type: diag + + - path: /sensing/lidar/left_upper/connection + diag: "pandar_monitor: /sensing/lidar/left_upper: pandar_connection" + type: diag + - path: /sensing/lidar/left_upper/ptp + diag: "pandar_monitor: /sensing/lidar/left_upper: pandar_ptp" + type: diag + - path: /sensing/lidar/left_upper/temperature + diag: "pandar_monitor: /sensing/lidar/left_upper: pandar_temperature" + type: diag + + - path: /sensing/lidar/right_lower/connection + diag: "pandar_monitor: /sensing/lidar/right_lower: pandar_connection" + type: diag + - path: /sensing/lidar/right_lower/ptp + diag: "pandar_monitor: /sensing/lidar/right_lower: pandar_ptp" + type: diag + - path: /sensing/lidar/right_lower/temperature + diag: "pandar_monitor: /sensing/lidar/right_lower: pandar_temperature" + type: diag + + - path: /sensing/lidar/right_upper/connection + diag: "pandar_monitor: /sensing/lidar/right_upper: pandar_connection" + type: diag + - path: /sensing/lidar/right_upper/ptp + diag: "pandar_monitor: /sensing/lidar/right_upper: pandar_ptp" + type: diag + - path: /sensing/lidar/right_upper/temperature + diag: "pandar_monitor: /sensing/lidar/right_upper: pandar_temperature" + type: diag + + - path: /sensing/lidar/rear_lower/connection + diag: "pandar_monitor: /sensing/lidar/rear_lower: pandar_connection" + type: diag + - path: /sensing/lidar/rear_lower/ptp + diag: "pandar_monitor: /sensing/lidar/rear_lower: pandar_ptp" + type: diag + - path: /sensing/lidar/rear_lower/temperature + diag: "pandar_monitor: /sensing/lidar/rear_lower: pandar_temperature" + type: diag + + - path: /sensing/lidar/rear_upper/connection + diag: "pandar_monitor: /sensing/lidar/rear_upper: pandar_connection" + type: diag + - path: /sensing/lidar/rear_upper/ptp + diag: "pandar_monitor: /sensing/lidar/rear_upper: pandar_ptp" + type: diag + - path: /sensing/lidar/rear_upper/temperature + diag: "pandar_monitor: /sensing/lidar/rear_upper: pandar_temperature" + type: diag + + - path: /sensing/camera/0/connection + diag: "topic_state_monitor_camera0: sensing_topic_status" + type: diag + - path: /sensing/camera/1/connection + diag: "topic_state_monitor_camera1: sensing_topic_status" + type: diag + - path: /sensing/camera/2/connection + diag: "topic_state_monitor_camera2: sensing_topic_status" + type: diag + - path: /sensing/camera/3/connection + diag: "topic_state_monitor_camera3: sensing_topic_status" + type: diag + - path: /sensing/camera/4/connection + diag: "topic_state_monitor_camera4: sensing_topic_status" + type: diag + - path: /sensing/camera/5/connection + diag: "topic_state_monitor_camera5: sensing_topic_status" + type: diag + - path: /sensing/camera/6/connection + diag: "topic_state_monitor_camera6: sensing_topic_status" + type: diag + - path: /sensing/camera/7/connection + diag: "topic_state_monitor_camera7: sensing_topic_status" + type: diag + + - path: /sensing/radar/front_center/connection + diag: "topic_state_monitor_radar_front_center: sensing_topic_status" + type: diag + - path: /sensing/radar/front_left/connection + diag: "topic_state_monitor_radar_front_left: sensing_topic_status" + type: diag + - path: /sensing/radar/front_right/connection + diag: "topic_state_monitor_radar_front_right: sensing_topic_status" + type: diag + - path: /sensing/radar/rear_center/connection + diag: "topic_state_monitor_radar_rear_center: sensing_topic_status" + type: diag + - path: /sensing/radar/rear_left/connection + diag: "topic_state_monitor_radar_rear_left: sensing_topic_status" + type: diag + - path: /sensing/radar/rear_right/connection + diag: "topic_state_monitor_radar_rear_right: sensing_topic_status" + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/system.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/system.yaml new file mode 100644 index 0000000000..f64a1029c7 --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/system.yaml @@ -0,0 +1,78 @@ +nodes: + - path: /system/autonomous_available + type: and + list: + - { type: link, link: /system/emergency_stop } + - { type: link, link: /system/pull_over } + - { type: link, link: /system/comfortable_stop } + + - path: /system/pull_over_available + type: and + list: + - { type: link, link: /system/emergency_stop } + - { type: link, link: /system/comfortable_stop } + + - path: /system/comfortable_stop_available + type: and + list: + - { type: link, link: /system/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /system/emergency_stop + type: and + list: + - { type: link, link: /system/001-topic_status-error } + - { type: link, link: /system/002-emergency_stop_operation-error } + + - path: /system/comfortable_stop + type: and + + - path: /system/pull_over + type: and + list: + - { type: link, link: /system/005-fms_connection-error } + + - path: /system/none + type: and + list: + - { type: link, link: /system/003-bagpacker_status } + - { type: link, link: /system/004-bagpacker_disk_space } + + # Intermediate paths + - path: /system/001-topic_status-error + type: warn-to-ok + list: + - { type: link, link: /system/001-topic_status } + + - path: /system/002-emergency_stop_operation-error + type: warn-to-ok + list: + - { type: link, link: /system/002-emergency_stop_operation } + + - path: /system/005-fms_connection-error + type: warn-to-ok + list: + - { type: link, link: /system/005-fms_connection } + + # Diagnostics paths + - path: /system/001-topic_status + diag: "topic_state_monitor_system_emergency_control_cmd: system_topic_status" + type: diag + + - path: /system/002-emergency_stop_operation + diag: "vehicle_cmd_gate: emergency_stop_operation" + type: diag + + - path: /system/003-bagpacker_status + diag: bagpacker_state + type: diag + + - path: /system/004-bagpacker_disk_space + diag: bagpacker_state/disk_usage + type: diag + + - path: /system/005-fms_connection + diag: edge_core_internet_connection + type: diag diff --git a/autoware_launch/config/system/diagnostic_graph_aggregator/vehicle.yaml b/autoware_launch/config/system/diagnostic_graph_aggregator/vehicle.yaml new file mode 100644 index 0000000000..6a31c5510e --- /dev/null +++ b/autoware_launch/config/system/diagnostic_graph_aggregator/vehicle.yaml @@ -0,0 +1,76 @@ +nodes: + - path: /vehicle/autonomous_available + type: and + list: + - { type: link, link: /vehicle/emergency_stop } + - { type: link, link: /vehicle/pull_over } + - { type: link, link: /vehicle/comfortable_stop } + + - path: /vehicle/pull_over_available + type: and + list: + - { type: link, link: /vehicle/emergency_stop } + - { type: link, link: /vehicle/comfortable_stop } + + - path: /vehicle/comfortable_stop_available + type: and + list: + - { type: link, link: /vehicle/emergency_stop } + + # ******************************************************************************* + # NOTE: Please modify this section according to your environment and requirements. + # ******************************************************************************* + - path: /vehicle/emergency_stop + type: and + list: + - { type: link, link: /vehicle/001-topic_status/velocity-error } + - { type: link, link: /vehicle/001-topic_status/steering-error } + - { type: link, link: /vehicle/005-vehicle_heartbeat-error } + - { type: link, link: /vehicle/006-vehicle_errors-error } + + - path: /vehicle/comfortable_stop + type: and + + - path: /vehicle/pull_over + type: and + + - path: /vehicle/none + type: and + + # Intermediate paths + - path: /vehicle/001-topic_status/velocity-error + type: warn-to-ok + list: + - { type: link, link: /vehicle/001-topic_status/velocity } + + - path: /vehicle/001-topic_status/steering-error + type: warn-to-ok + list: + - { type: link, link: /vehicle/001-topic_status/steering } + + - path: /vehicle/005-vehicle_heartbeat-error + type: warn-to-ok + list: + - { type: link, link: /vehicle/005-vehicle_heartbeat } + + - path: /vehicle/006-vehicle_errors-error + type: warn-to-ok + list: + - { type: link, link: /vehicle/006-vehicle_errors } + + # Diagnostics paths + - path: /vehicle/001-topic_status/velocity + diag: "topic_state_monitor_vehicle_status_velocity_status: vehicle_topic_status" + type: diag + + - path: /vehicle/001-topic_status/steering + diag: "topic_state_monitor_vehicle_status_steering_status: vehicle_topic_status" + type: diag + + - path: /vehicle/005-vehicle_heartbeat + diag: "j6_interface: vehicle_heartbeat_errors" + type: diag + + - path: /vehicle/006-vehicle_errors + diag: "j6_interface: vehicle_errors" + type: diag