373. Crash checker
The crash_checker uses the upon_w watcher operator to trigger a crash interval when a collision event is detected between two physical objects in the simulation.
373.0.1 Start condition
The crash_checker monitors all physical objects in the simulation and raises issues when collisions occur between them.
373.0.2 End condition
The crash_checker creates a zero-time interval for every detected collision. This interval starts and ends in the same simulation step, meaning it ends instantly at the moment of collision without requiring a separate end condition.
373.1 Attributes
The following attributes define the behavior and characteristics of the evaluator.
| Checker attribute | Description |
|---|---|
| Parent object | physical_object.global_checkers |
| Issue category | sut or other |
| Issue kind | collision_in_hybrid_control, collision_in_sut_control, collision_in_manual_control |
| Default severity | error |
| Trigger condition | Based on upon_w watcher |
373.2 Configuration parameters
No configuration parameters found.
373.3 Metrics
The following metrics are recorded and tracked by the evaluator.
| Metric item | Unit / Type | Description |
|---|---|---|
side |
enum (front, front_left, left, back_left, back, back_right, right, front_right, other) |
Side of object on which the collision happened |
other_side |
enum (front, front_left, left, back_left, back, back_right, right, front_right, other) |
Side of other object on which the collision happened |
velocity |
kph | Longitudinal velocity at collision, in local coordinate system |
other_velocity |
kph | Longitudinal velocity at collision of the other object, in local coordinate system |
acceleration |
mpsps | Longitudinal acceleration at collision, in local coordinate system |
other_acceleration |
mpsps | Longitudinal acceleration of the other object at collision, in local coordinate system |
delta_v |
kph | Delta-V between this object and the other object it collided with (kph). Relevant only for a collision between two vehicles. In case one of the objects is not a vehicle, the recorded value is -1kph. |
pdof |
degree | PDOF between this object and the other object it collided with. Relevant only for a collision between two vehicles. If one of the objects is not a vehicle, the recorded value is -999degree. |
pdof_side |
enum (front, rear, left, right, not_applicable) |
PDOF side for this object |
crash_severity |
enum (S0, S1, S2, S3, not_applicable) |
Individual crash severity for this object involved in the collision. Relevant only for a collision between two vehicles. If one of the objects is not a vehicle, the recorded value is not_applicable. |
other_crash_severity |
enum (S0, S1, S2, S3, not_applicable) |
Individual crash severity for other object involved in the collision. Relevant only for a collision between two vehicles. If one of the objects is not a vehicle, the recorded value is not_applicable. |
overall_crash_severity |
enum (S0, S1, S2, S3, not_applicable) |
Overall crash severity computed between this_object and other_object. Relevant only for a collision between two vehicles. In case one of the objects is not a vehicle, the recorded value is not_applicable. |
other_category |
enum (car, bus, truck, trailer, bicycle, motorcycle, person, animal, other) |
Category of the other object |
373.4 Log and Error Messages
No error messages found.
373.5 Additional information
- Collision targeting
For compound objects (e.g., truck, trailer), the this_object field identifies the specific part impacted.
-
Delta-V metrics
- Vehicles: Contains the calculated Delta-V value.
- Non-vehicles: Set to -1kph.
-
Disabling options
- Global: Disable for all objects
OSC2 code: disable crash globallyextend physical_object.global_checkers: on @start: override(crash, run_mode: freeze)- Selective: Disable by object subtypes, for example NPCs
OSC2 code: disable crash for subtype npc vehiclesextend npc_vehicle.global_checkers: on @start: override(crash, run_mode: freeze)See Metrics examples for the full examples.
-
Severity control
Use
set_issue()to:- Downgrade all crash issues
OSC2 code: downgrade all crash issuesextend physical_object.global_checkers: set_issue(target_checker: crash, severity: warning)See Metrics examples for the full examples.
- Conditionally modify severity levels
OSC2 code: conditionally downgrade collision issuesextend physical_object.global_checkers: set_issue(target_checker: crash, severity: warning, # In the context of set_issue(), 'it' refers to the 'data' object of the checker condition: it.this_object.is(sut_vehicle) and it.other_object.is(npc_vehicle))See Metrics examples for the full examples.
-
Issue classification
Issues are tagged by the controller at impact:
collision_in_hybrid_controlcollision_in_sut_controlcollision_in_manual_control