Skip to content
 
 

Repository files navigation

3lips-contrail

Target localisation for multi-static radar using ellipse intersections. Not a dating app.

Project Components

3lips-contrail is one part of a multi-component passive-radar project:

  • blah2-contrail — the passive radar nodes that produce bistatic range (delay) and Doppler detections, which 3lips-contrail associates and localises.
  • adsb2dd-contrail — generates delay-Doppler data from ADS-B data so ADS-B targets can be plotted on the delay-Doppler map in blah2-contrail.

3lips-contrail example display

Features

  • Provides a JSON API for target geolocation.
  • Uses a MapLibre GL JS web front-end to visualise data.
  • Ability to compare a number of algorithms for target localisation.

Usage

  • Install docker and docker-compose on the host machine.
  • Clone this repository to some directory.
  • Edit the config/config.yml file for scenario.
  • Run the docker compose command.
sudo git clone http://github.com/jomosh/3lips-contrail /opt/3lips-contrail
cd /opt/3lips-contrail
sudo docker compose up -d —build

The API front-end is available at http://localhost:49156.

Method of Operation

The association uses the following algorithm:

  • ADS-B associator will associate the closest target within some delay and Doppler around the truth.

The target localisation uses 1 of the following algorithms:

  • Ellipse parametric samples an ellipse (2D) at 0 altitude. Find intersections between 3 or more ellipses such that the distance to each point is under some threshold.

  • Ellipsoid parametric samples an ellipsoid (3D). Find intersections between 3 or more ellipsoids such that the distance to each point is under some threshold.

  • Spherical intersection a closed form solution which applies when a common receiver or transmitter are used. As described in Two Methods for Target Localization in Multistatic Passive Radar.

The system architecture is as follows:

  • The API server and HTML pages are served through a Flask in Python.
  • An initial API request with a new set of parameters (algorithms or radar nodes) will add these parameters to a common processing loop. This is so fair comparisons can be made on the same input data.
  • A set of API parameters will continue to be processed unless there is no API call in some specified time - see main.py to update. This allows the latest geolocation to be provided, rather than adding to the processing loop and waiting for the update from the next time increment.

Future Work

  • Implement an association algorithm that is not reliant on ADS-B truth.
  • Choose to use detection or track data from each radar.
  • Long term plots to show metrics such as 2D location accuracy to ADS-B, number of aircraft tracked, etc.
  • Scale number of samples in ellipse/ellipsoid to size of shape.

License

MIT

About

Target localisation for multi-static radar

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages