Skip to content

Commit

Permalink
feat: add autoware_error_monitor package (autowarefoundation#10)
Browse files Browse the repository at this point in the history
* release v0.4.0

* Change localization diag namespace (autowarefoundation#718)

* Change default value of output_diagnostics_topic

Signed-off-by: Kenji Miyake <[email protected]>

* Remove localization_diagnostic.js from web_controller

Signed-off-by: Kenji Miyake <[email protected]>

* Integrate localization diag to diagnostic_aggregator

Signed-off-by: Kenji Miyake <[email protected]>

* Delete old and unused publisher

Signed-off-by: Kenji Miyake <[email protected]>

* remove ROS1 packages temporarily

Signed-off-by: mitsudome-r <[email protected]>

* Revert "remove ROS1 packages temporarily"

This reverts commit 63dc7f4e1defe5fd908eeefc7a2cdfac7cb47022.

Signed-off-by: mitsudome-r <[email protected]>

* add COLCON_IGNORE to ros1 packages

Signed-off-by: mitsudome-r <[email protected]>

* Rename launch files to launch.xml (autowarefoundation#28)

* ROS2 Porting: autoware_error_monitor (autowarefoundation#42)

* Temporary add the autoware_error_monitor package for conversion

* Renaming to adhere to convention
 - Modify CMakeList to compile using ROS2
 - TODO: fix FMT import

* Replace node implementation with ROS2 version
 - Rename core
 - Fix FMT library linking and ROS-related compilation erros
 - Add Readme
 - Add publisher and subscribers
 - Add timer

* Launch configurationse
 - Add ROS2 launch file
 - Modify config file with ROS2 conventions
 - Convert package.xml
 - Fix CMakelist
 - Bug fixes
   - Launch file correct indentation
   - Fix param.yaml to not use nested lists
   - Use as_string_array() when getting string array parameters

* Remove old files

* Fix cmake and package xml
 - Use ament cmake auto

* Fix parameters
 - Use dots as delimiters for nested parameter names
 - Move parameter declaration to constructor initialization list where possible
 - Update parameter file
 - Update launch files

* Fix launch and param files
 - Aggregator node doesn't appear to be working as expected with the launch files...
 - Fix cmake
 - Aggregator doesn't seem to allow multiple top level diagnostics

* Fix config

* Add rqt_robot_monitor to exec depends in package.xml

* Update rate should be converted to a period

Co-authored-by: Ryohsuke Mitsudome <[email protected]>

* Address PR comment:
 - Change top level namespace to autoware

* Remove commented out code

* Address PR comment:
 - Fix root for keys
 - Correct update rate

Co-authored-by: Ryohsuke Mitsudome <[email protected]>

* Adjust copyright notice on 532 out of 699 source files (autowarefoundation#143)

* Use quotes for includes where appropriate (autowarefoundation#144)

* Use quotes for includes where appropriate

* Fix lint tests

* Make tests pass hopefully

* Add linter tests (autowarefoundation#204)

* Ros2 v0.8.0 autoware error monitor (autowarefoundation#281)

* Rename ROS-related .yaml to .param.yaml (autowarefoundation#352)

* Rename ROS-related .yaml to .param.yaml

Signed-off-by: Kenji Miyake <[email protected]>

* Remove prefix 'default_' of yaml files

Signed-off-by: Kenji Miyake <[email protected]>

* Rename vehicle_info.yaml to vehicle_info.param.yaml

Signed-off-by: Kenji Miyake <[email protected]>

* Rename diagnostic_aggregator's param files

Signed-off-by: Kenji Miyake <[email protected]>

* Fix overlooked parameters

Signed-off-by: Kenji Miyake <[email protected]>

* Ros2 v0.8.0 fix packages2 (autowarefoundation#354)

* fix topic name

* fix duration rate

* fix sensing.yaml

* fix topic name

* add latch-option to autoware_state_monitor

* fix timer callback

* fix autoware state monitor config

* fix sensing.yaml

* Fix autoware error monitor (autowarefoundation#362)

* Remove cpu_load_average

Signed-off-by: Kenji Miyake <[email protected]>

* Disable resource monitoring in planning_simulator

Signed-off-by: Kenji Miyake <[email protected]>

* Fix diagnostic_aggregator's params

Signed-off-by: Kenji Miyake <[email protected]>

* Apply format

Signed-off-by: Kenji Miyake <[email protected]>

* [Update v0.9.0] system monitor (autowarefoundation#365)

* Disable CPU Load Average warning. (autowarefoundation#1147)

Signed-off-by: mitsudome-r <[email protected]>

* Fix cpu_monitor respawning forever. (autowarefoundation#1150)

* Disable cpu_temperature in planning simulation (autowarefoundation#1151)

Signed-off-by: mitsudome-r <[email protected]>

* Net Monitor: Handle as an error if specified device not exist. (autowarefoundation#1152)

* Handled as an error if specified device not exist.

* Disable network diags in simulation

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Kenji Miyake <[email protected]>

* apply ament_uncrustify

Signed-off-by: mitsudome-r <[email protected]>

* Disable resource monitoring in planning_simulator (autowarefoundation#1172)

Signed-off-by: Kenji Miyake <[email protected]>

* Treat logging errors as safe faults (autowarefoundation#1164)

Signed-off-by: Kenji Miyake <[email protected]>

* Fix test code of system_monitor (autowarefoundation#1178)

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: ito-san <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>

* Import v0.9.1 (autowarefoundation#431)

* add local optimal solution ocillation check to ndt_scan_matcher (autowarefoundation#1182)

* Add obstacle_crush diagnostic (autowarefoundation#1186)

Signed-off-by: Kenji Miyake <[email protected]>

* Fix diagnostics api (autowarefoundation#1185)

* Fix diagnostics api

Signed-off-by: Kenji Miyake <[email protected]>

* Don't overwrite level

Signed-off-by: Kenji Miyake <[email protected]>

* Overwrite level of No Fault diagnostics

Signed-off-by: Kenji Miyake <[email protected]>

* Add missing diag in autoware_error_monitor.yaml (autowarefoundation#1187)

Signed-off-by: Kenji Miyake <[email protected]>

* Filter hazard_status (autowarefoundation#1191)

* Filter hazard_status

Signed-off-by: Kenji Miyake <[email protected]>

* Filter leaf diagnostics

Signed-off-by: Kenji Miyake <[email protected]>

* Fix wrong calculation of available memory. (autowarefoundation#1168)

* Fixed wrong calculation of available memory.

* Added comments about output example of free -tb command.

* Change monitoring method to get HDD temperature and usage per specified device. (autowarefoundation#1195)

* Changed monitoring method to get temperature and usage per specified device.

* Fixed test codes.

* Removed unnecessary (void) parameter.

* return input pointcloud when ground plane not found (autowarefoundation#1190)

* fix yaw-smoothing bug (autowarefoundation#1198)

* Fix lint

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Taichi Higashide <[email protected]>
Co-authored-by: ito-san <[email protected]>
Co-authored-by: tkimura4 <[email protected]>

* Fix typo in system module (autowarefoundation#434)

* Fix typo in system module

* Change variable name

* Move comments

* Apply uncrustify

* add use_sim-time option (autowarefoundation#454)

* Treat NTP offset error as safe fault (autowarefoundation#1220)

Signed-off-by: Kenji Miyake <[email protected]>

* Fix for rolling (autowarefoundation#1226)

* Replace doc by description

Signed-off-by: Kenji Miyake <[email protected]>

* Replace ns by push-ros-namespace

Signed-off-by: Kenji Miyake <[email protected]>

* Fix/fix porting miss (autowarefoundation#1254)

* Fix porting miss of vehicle_cmd_gate

Signed-off-by: Kenji Miyake <[email protected]>

* Fix mistake of autoware_error_monitor.yaml

Signed-off-by: Kenji Miyake <[email protected]>

* Remove use_sim_time for set_parameter (autowarefoundation#1260)

Signed-off-by: wep21 <[email protected]>

* error monitor for foa controller (autowarefoundation#1369)

Signed-off-by: wep21 <[email protected]>

* Add diagnostics config for ros2_socketcan (autowarefoundation#1447)

* Add markdownlint and prettier (autowarefoundation#1661)

* Add markdownlint and prettier

Signed-off-by: Kenji Miyake <[email protected]>

* Ignore .param.yaml

Signed-off-by: Kenji Miyake <[email protected]>

* Apply format

Signed-off-by: Kenji Miyake <[email protected]>

* fix typo (autowarefoundation#1711)

* suppress warnings for declare parameters (autowarefoundation#1724)

* fix for lanelet2_extension

* fix for traffic light ssd fine detector

* fix for topic_state_monitor

* fix for dummy diag publisher

* fix for remote cmd converter

* fix for vehicle_info_util

* fix for multi object tracker

* fix for freespace planner

* fix for autoware_error_monitor

* add Werror for multi object tracker

* fix for multi object tracker

* add Werror for liraffic light ssd fine detector

* add Werror for topic state monitor

* add Werror

* add Werror

* add Werror

* add Werror

* fix style

* Fix -Wunused-parameter (autowarefoundation#1836)

* Fix -Wunused-parameter

Signed-off-by: Kenji Miyake <[email protected]>

* Fix mistake

Signed-off-by: Kenji Miyake <[email protected]>

* fix spell

* Fix lint issues

Signed-off-by: Kenji Miyake <[email protected]>

* Ignore flake8 warnings

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Hiroki OTA <[email protected]>

* enable autonomous recovery (autowarefoundation#1904)

* add aggregator config at planing error monitor (autowarefoundation#1955) (autowarefoundation#1963)

* add trajectory monitoring setting (autowarefoundation#2018)

* Fix typo `obstacle_crush` to `obstacle_crash` (autowarefoundation#2031)

* Use EmergencyState instead of deprecated EmergencyMode (autowarefoundation#2030)

* Use EmergencyState instead of deprecated EmergencyMode

Signed-off-by: Kenji Miyake <[email protected]>

* Use stamped type

Signed-off-by: Kenji Miyake <[email protected]>

* add sort-package-xml hook in pre-commit (autowarefoundation#1881)

* add sort xml hook in pre-commit

* change retval to exit_status

* rename

* add prettier plugin-xml

* use early return

* add license note

* add tier4 license

* restore prettier

* change license order

* move local hooks to public repo

* move prettier-xml to pre-commit-hooks-ros

* update version for bug-fix

* apply pre-commit

* Sync rc v1.5.0 (autowarefoundation#2058)

* Cleanup autoware_error_monitor launch (autowarefoundation#2143)

* Improve diagnostic tree for future extensions (autowarefoundation#2153)

* change resource monitoring group

* implement diagnostic tree proposal

* rename v2x param file

* add v2x to launch

* add dummy analyzer to avoid format error

* modify external control

* rename vehicle_ecu_errors

* fixup

* remove num_items

* fix error

* add heartbeat to external command selector

* Restore sensing/node_alive_monitoring

* Update system/autoware_error_monitor/config/diagnostic_aggregator/sensing.param.yaml

Co-authored-by: Kenji Miyake <[email protected]>

* add sensor_kit arg for diagnostic_agg

* change sensor_kit's default value

* add _ prefix to hide parameter file

* delete dummy parameter

* change to use update_functions

* add extra_agg_config_file_vehicle

* change initializer

* remove line

* Update system/autoware_error_monitor/config/diagnostic_aggregator/system.param.yaml

Co-authored-by: Kenji Miyake <[email protected]>

* change hearbeat diag

* add clock group

* update sensing diag

* Remove discard and v2x

Signed-off-by: Kenji Miyake <[email protected]>

* Fix heartbeat name

Signed-off-by: Kenji Miyake <[email protected]>

* Add remote_external_control

Signed-off-by: Kenji Miyake <[email protected]>

* Add external_control

Signed-off-by: Kenji Miyake <[email protected]>

* Rename remote_control to external_control

Signed-off-by: Kenji Miyake <[email protected]>

* Rename command_gate to control_command_gate

Signed-off-by: Kenji Miyake <[email protected]>

* Simplify resource monitoring

Signed-off-by: Kenji Miyake <[email protected]>

* Remove sensing from autoware_error_monitor.param.yaml

Signed-off-by: Kenji Miyake <[email protected]>

* Remove trajectory_deviation

Signed-off-by: Kenji Miyake <[email protected]>

* Remove vehicle specific settings

Signed-off-by: Kenji Miyake <[email protected]>

* Add blank lines

Signed-off-by: Kenji Miyake <[email protected]>

* Ignore matching_score error

Signed-off-by: Kenji Miyake <[email protected]>

* Remove debug_data_logger

Signed-off-by: Kenji Miyake <[email protected]>

* Add trajectory_validation

Signed-off-by: Kenji Miyake <[email protected]>

* Specify children for performance_monitoring

Signed-off-by: Kenji Miyake <[email protected]>

* Comment out route_validation

Signed-off-by: Kenji Miyake <[email protected]>

* Revert "Remove trajectory_deviation"

This reverts commit 199132f1a6c7083440f0ef9a956b0663d45f4531.

* Remove control_command_topic_status

Signed-off-by: Kenji Miyake <[email protected]>

* Disable some diagnostics for planning simulator

Signed-off-by: Kenji Miyake <[email protected]>

* Add TODO comment

Signed-off-by: Kenji Miyake <[email protected]>

* Enable /autoware/vehicle/node_alive_monitoring in planning simulator

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>

* Change autoware_error_monitor config format (autowarefoundation#2244)

* Change autoware_error_monitor config file

use automatically_declare_parameters_from_overrides

Change yaml format

replace default value

move nodeoption to core

simplify parameter splitting code

use set

fix to use at function

merge for loop

add explanation for new format

fix default value

replace DiagLevel

Update system/autoware_error_monitor/src/autoware_error_monitor_core.cpp

Co-authored-by: Kazuki Miyahara <[email protected]>

Update system/autoware_error_monitor/src/autoware_error_monitor_core.cpp

Co-authored-by: Kazuki Miyahara <[email protected]>

use fmt

change to use uniform initialization

* Change autoware_error_monitor config file

* Fix format

Signed-off-by: Kenji Miyake <[email protected]>

Co-authored-by: Kenji Miyake <[email protected]>

* Change formatter to clang-format and black (autowarefoundation#2332)

* Revert "Temporarily comment out pre-commit hooks"

This reverts commit 748e9cdb145ce12f8b520bcbd97f5ff899fc28a3.

* Replace ament_lint_common with autoware_lint_common

Signed-off-by: Kenji Miyake <[email protected]>

* Remove ament_cmake_uncrustify and ament_clang_format

Signed-off-by: Kenji Miyake <[email protected]>

* Apply Black

Signed-off-by: Kenji Miyake <[email protected]>

* Apply clang-format

Signed-off-by: Kenji Miyake <[email protected]>

* Fix build errors

Signed-off-by: Kenji Miyake <[email protected]>

* Fix for cpplint

* Fix include double quotes to angle brackets

Signed-off-by: Kenji Miyake <[email protected]>

* Apply clang-format

Signed-off-by: Kenji Miyake <[email protected]>

* Fix build errors

Signed-off-by: Kenji Miyake <[email protected]>

* Add COLCON_IGNORE (autowarefoundation#500)

Signed-off-by: Kenji Miyake <[email protected]>

* support .auto message (autowarefoundation#529)

* remove VehicleStateReport/VehicleStateCommand/VehicleControlCommand (autowarefoundation#549)

* fix autoware_error_monitor

* fix state monitor

* fix emergency handler(vehicle_state_report)

* fix emergency Handler(vehicle_state_command)

* fix shift_decider

* fix emergency_handler(vehicle_control_command)

* fix topic name

* fix readme

* Update system/autoware_state_monitor/Readme.md

Co-authored-by: taikitanaka3 <[email protected]>

* fix format

* Update system/autoware_state_monitor/launch/autoware_state_monitor.launch.xml

Co-authored-by: taikitanaka3 <[email protected]>

* fix typo

Co-authored-by: taikitanaka3 <[email protected]>

* Fix autoware monitors readme (autowarefoundation#629)

* Fix readme of autoware_state_monitor

* Fix readme of autoware_error_monitor

Co-authored-by: mitsudome-r <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Nikolai Morin <[email protected]>
Co-authored-by: Jilada Eccleston <[email protected]>
Co-authored-by: Ryohsuke Mitsudome <[email protected]>
Co-authored-by: Daisuke Nishimatsu <[email protected]>
Co-authored-by: ito-san <[email protected]>
Co-authored-by: Kenji Miyake <[email protected]>
Co-authored-by: Taichi Higashide <[email protected]>
Co-authored-by: Kazuki Miyahara <[email protected]>
Co-authored-by: s-murakami-esol <[email protected]>
Co-authored-by: Hiroki OTA <[email protected]>
Co-authored-by: Takamasa Horibe <[email protected]>
Co-authored-by: Keisuke Shima <[email protected]>
Co-authored-by: taikitanaka3 <[email protected]>
Co-authored-by: Takagi, Isamu <[email protected]>
Co-authored-by: Takeshi Miura <[email protected]>
  • Loading branch information
18 people authored Dec 2, 2021
1 parent 7c1ad06 commit 374c896
Show file tree
Hide file tree
Showing 20 changed files with 1,655 additions and 0 deletions.
39 changes: 39 additions & 0 deletions system/autoware_error_monitor/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
cmake_minimum_required(VERSION 3.5)
project(autoware_error_monitor)

### Compile options
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()

### Dependencies
find_package(ament_cmake_auto REQUIRED)
ament_auto_find_build_dependencies()

# Target
## autoware_error_monitor_node
set(AUTOWARE_ERROR_MONITOR_SRC
src/autoware_error_monitor_core.cpp
)

ament_auto_add_executable(${PROJECT_NAME}
src/autoware_error_monitor_node.cpp
${AUTOWARE_ERROR_MONITOR_SRC}
)

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

# Install
## executables and libraries
ament_auto_package(INSTALL_TO_SHARE
launch
config
)
144 changes: 144 additions & 0 deletions system/autoware_error_monitor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# autoware_error_monitor

## Purpose

Autoware Error Monitor has two main functions.

1. It is to judge the system hazard level from the aggregated diagnostic information of each module of Autoware.
2. It enables automatic recovery from the emergency state.

## Inner-workings / Algorithms

### State Transition

```plantuml
@startuml
hide empty description
state "Not Emergency" as N
state "Emergency" as E
[*] --> N
N -down-> E : found critical errors
E -up-> N : emergency status is cleared
note right of E
If the emergency hold is enabled, a service call is required to clear the emergency status.
If not, the emergency status will automatically clear when errors recover.
end note
@enduml
```

### updateEmergencyHoldingCondition Flow Chart

```plantuml
@startuml
title updateEmergencyHoldingCondition Flow Chart
(*) --> "Check emergency holding condition"
note right : emergency_holding is initialized with false
if "" then
-->[false] "emergency is not held"
else
-->[true] "Check use emergency hold condition"
endif
if "" then
-->[true] "emergency is held"
else
-->[false] "Check emergency condition"
endif
if "" then
-->[false] "emergency is not held"
else
-->[true] "Check auto recovery setting"
endif
if "" then
-->[not approved auto recovery] "emergency is held"
else
-->[approved auto recovery] "Check Emergency Duration"
endif
if "" then
-->[within recovery timeout] "emergency is not held"
else
-->[over recovery timeout] "Check Control Mode"
endif
if "" then
-->[autonomous driving] "emergency is held"
else
-->[manual driving] "Check use emergency hold in manual driving condition"
endif
if "" then
-->[true] "emergency is held"
else
-->[false] "emergency is not held"
endif
@enduml
```

## Inputs / Outputs

### Input

| Name | Type | Description |
| ---------------------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/diagnostics_agg` | `diagnostic_msgs::msg::DiagnosticArray` | Diagnostic information aggregated based [diagnostic_aggregator setting](https://github.com/tier4/autoware.iv/tree/main/system/autoware_error_monitor/config/diagnostic_aggregator) is used to |
| `/autoware/state` | `autoware_auto_system_msgs::msg::AutowareState` | Required to ignore error during Route, Planning and Finalizing. |
| `/control/current_gate_mode` | `autoware_control_msgs::msg::GateMode` | Required to select the appropriate module from `autonomous_driving` or `external_control` |
| `/vehicle/control_mode` | `autoware_auto_vehicle_msgs::msg::ControlModeReport` | Required to not hold emergency during manual driving |

### Output

| Name | Type | Description |
| --------------------------------- | ----------------------------------------------------- | ------------------------------------------------------------------------------------ |
| `/system/emergency/hazard_status` | `autoware_auto_system_msgs::msg::HazardStatusStamped` | HazardStatus contains system hazard level, emergency hold status and failure details |
| `/diagnostics_err` | `diagnostic_msgs::msg::DiagnosticArray` | This has the same contents as HazardStatus. This is used for visualization |

## Parameters

### Node Parameters

| Name | Type | Default Value | Explanation |
| ---------------------------- | ------ | ------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `ignore_missing_diagnostics` | bool | `false` | If this parameter is turned off, it will be ignored if required modules have not been received. |
| `add_leaf_diagnostics` | bool | `true` | Required to use children diagnostics. |
| `diag_timeout_sec` | double | `1.0` (sec) | If required diagnostic is not received for a `diag_timeout_sec`, the diagnostic state become STALE state. |
| `data_ready_timeout` | double | `30.0` | If input topics required for autoware_error_monitor are not available for `data_ready_timeout` seconds, autoware_state will translate to emergency state. |

### Core Parameters

| Name | Type | Default Value | Explanation |
| -------------------------------------- | ------ | ------------- | ----------------------------------------------------------------------------------------------------- |
| `hazard_recovery_timeout` | double | `5.0` | The vehicle can recovery to normal driving if emergencies disappear during `hazard_recovery_timeout`. |
| `use_emergency_hold` | bool | `false` | If it is false, the vehicle will return to normal as soon as emergencies disappear. |
| `use_emergency_hold_in_manual_driving` | bool | `false` | If this parameter is turned off, emergencies will be ignored during manual driving. |
| `emergency_hazard_level` | int | `2` | If hazard_level is more than emergency_hazard_level, autoware state will translate to emergency state |

### YAML format for autoware_error_monitor

The parameter key should be filled with the hierarchical diagnostics output by diagnostic_aggregator. Parameters prefixed with `required_modules.autonomous_driving` are for autonomous driving. Parameters with the `required_modules.remote_control` prefix are for remote control. If the value is `default`, the default value will be set.

| Key | Type | Default Value | Explanation |
| ------------------------------------------------------------------- | ------ | ------------- | ---------------------------------------------------------------------------------------------------------- |
| `required_modules.autonomous_driving.DIAGNOSTIC_NAME.sf_at` | string | `"none"` | Diagnostic level where it becomes Safe Fault. Available options are `"none"`, `"warn"`, `"error"`. |
| `required_modules.autonomous_driving.DIAGNOSTIC_NAME.lf_at` | string | `"warn"` | Diagnostic level where it becomes Latent Fault. Available options are `"none"`, `"warn"`, `"error"`. |
| `required_modules.autonomous_driving.DIAGNOSTIC_NAME.spf_at` | string | `"error"` | Diagnostic level where it becomes Single Point Fault. Available options are `"none"`, `"warn"`, `"error"`. |
| `required_modules.autonomous_driving.DIAGNOSTIC_NAME.auto_recovery` | string | `"true"` | Determines whether the system will automatically recover when it recovers from an error. |
| `required_modules.remote_control.DIAGNOSTIC_NAME.sf_at` | string | `"none"` | Diagnostic level where it becomes Safe Fault. Available options are `"none"`, `"warn"`, `"error"`. |
| `required_modules.remote_control.DIAGNOSTIC_NAME.lf_at` | string | `"warn"` | Diagnostic level where it becomes Latent Fault. Available options are `"none"`, `"warn"`, `"error"`. |
| `required_modules.remote_control.DIAGNOSTIC_NAME.spf_at` | string | `"error"` | Diagnostic level where it becomes Single Point Fault. Available options are `"none"`, `"warn"`, `"error"`. |
| `required_modules.remote_control.DIAGNOSTIC_NAME.auto_recovery` | string | `"true"` | Determines whether the system will automatically recover when it recovers from an error. |

## Assumptions / Known limits

TBD.
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Description:
# name: diag name
# sf_at: diag level where it becomes Safe Fault
# lf_at: diag level where it becomes Latent Fault
# spf_at: diag level where it becomes Single Point Fault
# auto_recovery: Determines whether the system will automatically recover when it recovers from an error.
#
# Note:
# empty-value for sf_at, lf_at and spf_at is "none"
# default values are:
# sf_at: "none"
# lf_at: "warn"
# spf_at: "error"
# auto_recovery: "true"
---
/**:
ros__parameters:
required_modules:
autonomous_driving:
/autoware/control/autonomous_driving/node_alive_monitoring: default
/autoware/control/autonomous_driving/performance_monitoring/lane_departure: default
/autoware/control/control_command_gate/node_alive_monitoring: default

/autoware/localization/node_alive_monitoring: default
/autoware/localization/performance_monitoring/matching_score: { sf_at: "warn", lf_at: "none", spf_at: "none" }
/autoware/localization/performance_monitoring/localization_accuracy: default

/autoware/map/node_alive_monitoring: default

/autoware/perception/node_alive_monitoring: default

/autoware/planning/node_alive_monitoring: default
/autoware/planning/performance_monitoring/trajectory_validation: default

/autoware/sensing/node_alive_monitoring: default

/autoware/system/node_alive_monitoring: default
/autoware/system/emergency_stop_operation: default
/autoware/system/resource_monitoring: { sf_at: "warn", lf_at: "none", spf_at: "none" }

/autoware/vehicle/node_alive_monitoring: default

external_control:
/autoware/control/control_command_gate/node_alive_monitoring: default
/autoware/control/external_control/external_command_selector/node_alive_monitoring: default

/autoware/system/node_alive_monitoring: default
/autoware/system/emergency_stop_operation: default

/autoware/vehicle/node_alive_monitoring: default
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Description:
# name: diag name
# sf_at: diag level where it becomes Safe Fault
# lf_at: diag level where it becomes Latent Fault
# spf_at: diag level where it becomes Single Point Fault
# auto_recovery: Determines whether the system will automatically recover when it recovers from an error.
#
# Note:
# empty-value for sf_at, lf_at and spf_at is "none"
# default values are:
# sf_at: "none"
# lf_at: "warn"
# spf_at: "error"
# auto_recovery: "true"
---
/**:
ros__parameters:
required_modules:
autonomous_driving:
/autoware/control/autonomous_driving/node_alive_monitoring: default
/autoware/control/autonomous_driving/performance_monitoring/lane_departure: default
/autoware/control/control_command_gate/node_alive_monitoring: default

/autoware/localization/node_alive_monitoring: default
# /autoware/localization/performance_monitoring/matching_score: { sf_at: "warn", lf_at: "none", spf_at: "none" }
# /autoware/localization/performance_monitoring/localization_accuracy: default

/autoware/map/node_alive_monitoring: default

/autoware/perception/node_alive_monitoring: default

/autoware/planning/node_alive_monitoring: default
/autoware/planning/performance_monitoring/trajectory_validation: default

/autoware/sensing/node_alive_monitoring: default

/autoware/system/node_alive_monitoring: default
/autoware/system/emergency_stop_operation: default
# /autoware/system/resource_monitoring: { sf_at: "warn", lf_at: "error", spf_at: "none" }

/autoware/vehicle/node_alive_monitoring: default

external_control:
/autoware/control/control_command_gate/node_alive_monitoring: default
/autoware/control/external_control/external_command_selector/node_alive_monitoring: default

/autoware/system/node_alive_monitoring: default
/autoware/system/emergency_stop_operation: default

/autoware/vehicle/node_alive_monitoring: default
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
/**:
ros__parameters:
control:
type: diagnostic_aggregator/AnalyzerGroup
path: control
analyzers:
control_command_gate:
type: diagnostic_aggregator/AnalyzerGroup
path: control_command_gate
analyzers:
node_alive_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: node_alive_monitoring
analyzers:
heartbeat:
type: diagnostic_aggregator/GenericAnalyzer
path: heartbeat
contains: ["vehicle_cmd_gate: heartbeat"]
timeout: 1.0

autonomous_driving:
type: diagnostic_aggregator/AnalyzerGroup
path: autonomous_driving
analyzers:
node_alive_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: node_alive_monitoring
analyzers:
topic_status:
type: diagnostic_aggregator/GenericAnalyzer
path: topic_status
contains: [": control_topic_status"]
timeout: 1.0

performance_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: performance_monitoring
analyzers:
lane_departure:
type: diagnostic_aggregator/GenericAnalyzer
path: lane_departure
contains: [": lane_departure"]
timeout: 1.0

trajectory_deviation:
type: diagnostic_aggregator/GenericAnalyzer
path: trajectory_deviation
contains: [": trajectory_deviation"]
timeout: 1.0

external_control:
type: diagnostic_aggregator/AnalyzerGroup
path: external_control
analyzers:
external_command_selector:
type: diagnostic_aggregator/AnalyzerGroup
path: external_command_selector
analyzers:
node_alive_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: node_alive_monitoring
analyzers:
heartbeat:
type: diagnostic_aggregator/GenericAnalyzer
path: heartbeat
contains: ["external_cmd_selector: heartbeat"]
timeout: 1.0

local_external_control:
type: diagnostic_aggregator/AnalyzerGroup
path: local_external_control
analyzers:
device_connection:
type: diagnostic_aggregator/AnalyzerGroup
path: device_connection
analyzers:
joy_controller_connection:
type: diagnostic_aggregator/GenericAnalyzer
path: joy_controller_connection
contains: [": joy_controller_connection"]
timeout: 1.0

remote_external_control:
type: diagnostic_aggregator/AnalyzerGroup
path: remote_external_control
analyzers:
network_connection:
type: diagnostic_aggregator/AnalyzerGroup
path: network_connection
analyzers:
remote_control_topic_status:
type: diagnostic_aggregator/GenericAnalyzer
path: remote_control_topic_status
contains: [": remote_control_topic_status"]
timeout: 1.0
Loading

0 comments on commit 374c896

Please sign in to comment.