top of page
Andreas

Algorithm for collision warnings

This blog post describes the collision warning algorithm used by OCAP. The algorithm has been implemented and simulated over the past couple of weeks and is currently being verified with test flights. We will describe the results in later blog posts. In addition, we're going to publish a first version of the source code for generating and decoding ADS-L packets and for the collision warning algorithm in the coming weeks.


In order to be able to generate collision warnings, we have to recognize whether our flight path will cross the flight path of other objects in the future, i.e. whether we will be in the vicinity of these objects at some point in the future.


Without taking possible optimizations into account, the algorithm could look like this: at certain points in the future, we extrapolate our own position r(A) and the position of other aircraft r(Bi) and check the distance between our own and each other aircraft. If a distance falls below a certain threshold value, we trigger a collision warning.



Extrapolation of flight paths


In the simplest case, we could assume that the objects B(i) are "static", i.e. they are located at a certain point r(i) and remain at this point for the duration of the prediction. This would be sufficient for an obstacle warning of fixed obstacles such as high-voltage pylons etc. and may be even for very slowly moving aircraft, but will not provide a reliable prediction for moving objects B(i).


If we also take into account the velocity vector of all objects, then a more precise prediction of the position is already possible. The following figure shows two flight tracks as an example. A is the own aircraft, B1 an aircraft in our neighborhood.



In the example above, we (A) fly accelerated into a slight right turn, while B1 flies a slight left turn at a constant speed. You can clearly see that the linear extrapolation (dashed line) deviates significantly from the effective flight path (solid line) after a short time. Along the effective flight paths, A and B1 come quite close to each other in about 13 seconds, while along the linearly interpolated paths they would be far apart in the next 20 seconds.


The effect can be seen even more clearly in the following figure. Despite taking the speed vectors into account, the collision would only be detected very late (dashed lines):



To further improve the prediction, we need information on how the trajectories of the objects B(i) follow a curve shape.


For this purpose, we specify that we calculate the collision warning under the hypothesis that the aircraft remain on their trajectory, i.e. that the pilot neither changes the orientation of the aircraft nor accelerates or brakes. This is "the best we can do", as such interventions cannot be predicted or should actually occur as a pilot's reaction to an alarm message.


The shape of the trajectory is described by an acceleration vector. In the reference system of the aircraft, the acceleration can be broken down into two components,

- a tangential component along the direction of flight,

- and a centripetal or radial component at right angles to it.


In the first version of the algorithm, we use three vectors known at the start time, namely the position, the velocity and the virtual center Z of the sphere belonging to the trajectory, to extrapolate our own trajectory and the trajectories of the aircraft in our neighborhood.



Warning criterion


In a first step, we define a simple warning criterion as follows:


The distance d is evaluated for each neighboring flying object and time t:

(The distances and times are examples only).

- If d is less than 300m, a level 1 alarm is triggered.

- If d is less than 200m in less than 15s, a level 2 alarm is triggered.

- If d is less than 100m in less than 10s, a level 3 alarm is triggered.



The criterion will be optimized during testing.


26 views0 comments

Opmerkingen


bottom of page