3
3
## Overview
4
4
5
5
The diagnostic graph aggregator node subscribes to diagnostic array and publishes aggregated diagnostic graph.
6
- As shown in the diagram below, this node introduces extra diagnostic status for intermediate functional unit.
7
- Diagnostic status dependencies will be directed acyclic graph (DAG).
6
+ As shown in the diagram below, this node introduces extra diagnostic status for intermediate functional units.
8
7
9
8
![ overview] ( ./doc/overview.drawio.svg )
10
9
11
- ## Diagnostics graph message
10
+ ## Diagnostic graph structures
12
11
13
- The diagnostics graph that this node outputs is a combination of diagnostic status and connections between them.
14
- This graph consists of an array of diagnostic nodes, and each node has a status and links.
15
- This link contains an index indicating the position of the node in the graph.
16
- Therefore, the graph can be reconstructed from the array of nodes using links.
17
- The following is an example of a message representing the graph in the overview section.
12
+ The diagnostic graph is actually a set of fault tree analysis (FTA) for each operation mode of Autoware.
13
+ Since the status of the same node may be referenced by multiple nodes, the overall structure is a directed acyclic graph (DAG).
14
+ Each node in the diagnostic graph represents the diagnostic status of a specific functional unit, including the input diagnostics.
15
+ So we define this as "unit", and call the unit corresponding to the input diagnosis "diag unit" and the others "node unit".
18
16
19
- ![ message] ( ./doc/message.drawio.svg )
17
+ Every unit has an error level that is the same as DiagnosticStatus, a unit type, and optionally a unit path.
18
+ In addition, every diag unit has a message, a hardware_id, and values that are the same as DiagnosticStatus.
19
+ The unit type represents how the unit status is calculated, such as AND or OR.
20
+ The unit path is any unique string that represents the functionality of the unit.
21
+
22
+ NOTE: This feature is currently under development.
23
+ The diagnostic graph also supports "link" because there are cases where connections between units have additional status.
24
+ For example, it is natural that many functional units will have an error status until initialization is complete.
20
25
21
26
## Operation mode availability
22
27
@@ -34,11 +39,13 @@ This feature breaks the generality of the graph and may be changed to a plugin o
34
39
35
40
## Interfaces
36
41
37
- | Interface Type | Interface Name | Data Type | Description |
38
- | -------------- | ------------------------------------- | ------------------------------------------------- | ------------------ |
39
- | subscription | ` /diagnostics ` | ` diagnostic_msgs/msg/DiagnosticArray ` | Diagnostics input. |
40
- | publisher | ` /diagnostics_graph ` | ` tier4_system_msgs/msg/DiagnosticGraph ` | Diagnostics graph. |
41
- | publisher | ` /system/operation_mode/availability ` | ` tier4_system_msgs/msg/OperationModeAvailability ` | mode availability. |
42
+ | Interface Type | Interface Name | Data Type | Description |
43
+ | -------------- | ------------------------------------- | ------------------------------------------------- | ---------------------------------- |
44
+ | subscription | ` /diagnostics ` | ` diagnostic_msgs/msg/DiagnosticArray ` | Diagnostics input. |
45
+ | publisher | ` /diagnostics_graph/unknowns ` | ` diagnostic_msgs/msg/DiagnosticArray ` | Diagnostics not included in graph. |
46
+ | publisher | ` /diagnostics_graph/struct ` | ` tier4_system_msgs/msg/DiagGraphStruct ` | Diagnostic graph (static part). |
47
+ | publisher | ` /diagnostics_graph/status ` | ` tier4_system_msgs/msg/DiagGraphStatus ` | Diagnostic graph (dynamic part). |
48
+ | publisher | ` /system/operation_mode/availability ` | ` tier4_system_msgs/msg/OperationModeAvailability ` | Operation mode availability. |
42
49
43
50
## Parameters
44
51
@@ -49,7 +56,6 @@ This feature breaks the generality of the graph and may be changed to a plugin o
49
56
| ` input_qos_depth ` | ` uint ` | QoS depth of input array topic. |
50
57
| ` graph_qos_depth ` | ` uint ` | QoS depth of output graph topic. |
51
58
| ` use_operation_mode_availability ` | ` bool ` | Use operation mode availability publisher. |
52
- | ` use_debug_mode ` | ` bool ` | Use debug output to stdout. |
53
59
54
60
## Examples
55
61
@@ -73,13 +79,12 @@ ros2 launch diagnostic_graph_aggregator example-edit.launch.xml
73
79
74
80
## Debug tools
75
81
76
- - [ dump] ( ./doc/tool/dump.md )
77
- - [ converter] ( ./doc/tool/converter.md )
78
82
- [ tree] ( ./doc/tool/tree.md )
83
+ - [ diagnostic_graph_utils] ( ../diagnostic_graph_utils/README.md )
79
84
80
85
## Graph file format
81
86
82
87
- [ graph] ( ./doc/format/graph.md )
83
88
- [ path] ( ./doc/format/path.md )
84
- - [ node ] ( ./doc/format/node .md )
89
+ - [ unit ] ( ./doc/format/unit .md )
85
90
- [ edit] ( ./doc/format/edit.md )
0 commit comments