EventDetector
EventDetectors are executed at the beginning of each timestep. A detector uses its access to the world and the framework to detect specific events. After detection, the event is usually forwarded to the EventNetwork.
There are multiple EventDetectors available, all of them sharing a common interface.
Note
Each instance of an EventDetector can have its own cycle time.
CollisionDetector
The CollisionDetector checks whether a collision has occurred. Moving and stationary objects are taken into account. Objects are considered as collided, if their two-dimensional bounding boxes intersect.
Note
The calculation of the bounding box itself considers a potential inclination by the roll angle of an object (projection onto the xy-plane).
In case of a collision, a CollisionEvent containing the participating object Ids is created. This type of event is picked up by the CollisionManipulator, which updates the state of the collided objects accordingly.
The geometric parameters of the crash configuration in terms of collision angles are determined according to Wagstrom et. al. (https://www-esv.nhtsa.dot.gov/Proceedings/26/26ESV-000177.pdf). In addition, collision velocities are stored.
Furthermore, the CollisionDetector contains an impact evaluation which estimates based on momentum the changes in velocities due to the collision, considering vehicle mass ratio and initial crash configuration, e.h. VelocityChange. The impact model behind these calculations was developed and tested with full-overlap vehicle-to-vehicle collisions.
The concept was described in detail at ESAR 2016 in Kolk et. al. (https://bast.opus.hbz-nrw.de/opus45-bast/frontdoor/deliver/index/docId/1825/file/F117_21.pdf).
The parameters stored for each collision are listed in detail in the table below.
Parameter |
Description |
---|---|
CollisionVelocity |
velocity of host prior to the collision |
CollisionWithAgent |
true (1) / false (0) if collision occured with another agent |
HCPA |
host collision point angle in degree |
HCPAo |
normalized HCPA |
OCPA |
opponent collision point angle |
OCPAo |
normalized OCPA |
OYA |
opponent yaw angle |
OpponentCollisionVelocity |
velocity of opponent prior to the collision |
OpponentPointOfContactLocalX |
X-coordinate of opponent point of contact in local coordinate system |
OpponentPointOfContactLocalY |
Y-coordinate of opponent point of contact in local coordinate system |
OpponentVelocity |
velocity of opponent after the collision |
OpponentVelocityChange |
velocity change of opponent due to collision |
OpponentVelocityDirection |
velocity direction |
OpponentYawVelocity |
opponent yaw velocity |
PointOfContactLocalX |
X-coordinate of point of contact in local coordinate system |
PointOfContactLocalY |
Y-coordinate of opponent point of contact in local coordinate system |
Velocity |
velocity of host after the collision |
VelocityChange |
velocity change of host due to collision |
Note
Both geometric interpretation and impact calculation only work for collisions between two car agents. A more general application is work in progress.