You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This command checks whether a diagnostics have risen/fallen at a specific timing.
135
+
This command checks whether a diagnostics have been positive/negative at a specific timing.
136
136
The diagnostics flag to observe should be defined in the input scenario file in the format like below.
137
137
138
138
```yaml
139
139
Evaluation:
140
140
Conditions:
141
141
DiagnosticsFlagCheck:
142
142
pose_is_passed_delay_gate:
143
-
flag: rise
144
-
at_sec: 113
145
-
at_nanosec: 750000000
146
-
```
147
-
148
-
This example means that the diagnostics `pose_is_passed_delay_gate` should rise at 113.75 sec in the rosbag time. To be more specific, the flag should rise within a time window of ±0.2 seconds around the target time.
149
-
150
-
Currently this script is still in development and the number of observable diagnostics will increase.
151
-
Read the actual `diagnostics_flag_check.py` file to know what can be observed and the definition of rise and fall for each diagnostics.
143
+
flag1:
144
+
type: positive
145
+
timing: at
146
+
sec: 113
147
+
nanosec: 750000000
148
+
window: 500000000
149
+
entirely: false
150
+
flag2:
151
+
type: negative
152
+
timing: before
153
+
sec: 110
154
+
nanosec: 0
155
+
entirely: true
156
+
```
157
+
158
+
A diagnostics can have multiple flags and each flag should have the following fields. (Some have exceptions)
| type | "positive" or "negative" | Whether the diagnostics is expected to be "positive" or "negative". "positive" means that the diagnostics is ERROR or WARN, and "negative" is not. |
163
+
| timing | "before", "after", or "at" | This defines the time window to check whether the diagnostics is "positive" or "negative". If the type is "positive" and there was a positive diagnostics in the time window the flag check passes, and the flag check fails if not. If the timing is set to "before", the time window starts from the beginning of the rosbag and ends to the time defined by `sec` and `nanosec`. If the timing is set to "after", the time window starts from the time defined by `sec` and `nanosec` and ends to the finish of the rosbag. If the timing is set to "at", the time window will be `-window` nanoseconds to `+window` nanoseconds with the time defined by `sec` and `nanosec` on the center. |
164
+
| sec | int | The base time to define the time window with `nanosec`. The `sec` part in ROS time must be filled. |
165
+
| nanosec | int | The base time to define the time window with `sec`. The `nanosec` part in ROS time must be filled. |
166
+
| window | int | The nanoseconds of the half wing of the time window. Only used when the `timing` is "at", and it is removable if you are using "before" or "after". |
167
+
| entirely | bool | Whether the target diagnostics should be positive/negative in the entire time window. It is removable and it will be set as "false" by default. |
168
+
169
+
This example means that the diagnostics `pose_is_passed_delay_gate` should rise at 113.75 sec in ROS time. To be more specific, the flag should be positive somewhere within a time window of +/- 0.5 seconds around the target time. Besides, the diagnostics should be negative until it reach 110.0 sec in ROS time.
170
+
171
+
Currently this script supports the following diagnostics. See the actual script to know the concrete definition of positive/negative.
0 commit comments