# 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.