Skip to content

30hours/3lips

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

65 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

3lips

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

See a live instance at http://3lips.30hours.dev.

3lips example display

Features

  • Provides a JSON API for geolocation of targets given blah2 radar nodes.
  • Uses a CesiumJS 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/30hours/3lips /opt/3lips
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