Augmented reality display of air traffic for amateur drones
This post is going to demonstrate how to create an augmented reality-style display of nearby aircraft on an amateur drone's video feed. It combines three of my favorite concepts: ADS-B, software defined radio, and browser-based control of drones. The goal is to show how easy it is to use ADS-B on amateur drones and to show a proof of concept for increasing pilot situational awareness.
Laurent Eschenauer's ardrone-webflight is a browser-based ground control station, similar to mavelous but focused on the specific capabilities of the AR.Drone. The AR.Drone has no GPS, so there are no maps or waypoints, but it does have the ability to transmit a high resolution video feed from its camera over wifi so webflight shows that live video as the primary UI element. webflight also lets you fly your drone with the keyboard: press t
to takeoff, use the arrow keys to yaw left & right or climb & descend, w
/a
/s
/d
to move forward/left/back/right.
The video below shows the plugin in action. I took a drone outside and scanned the Los Angeles sky for aircraft.
Each black square shows the location of air traffic. It displays the callsign (if they're broadcasting one), the ICAO identifier (the unique 24 bit ID assigned to every airframe), speed, altitude and distance.
A few things to note about the video:
I calibrated the drone's compass (webflight has a calibration command), but there was still some drift. Compass drift is visible as a barely perceptible creep of the compass at the bottom of the window and a more significant movement of aircraft markers when the drone is held relatively still.
I know what type of aircraft the drone saw because I looked up the ICAO codes (the 6 digit hex numbers in parentheses) at airframes.org.
The AR.Drone doesn't have GPS so I hardcoded its location for this proof of concept. It shouldn't be hard to add GPS to the AR.drone, and other types of drones (Arducopter/Arduplane/etc.) already have GPS.
For the demo I had the ADS-B receiver connected to my laptop, but you can also connect it directly to the drone; See "Cheap ADS-B on amateur drones" for details.
This demo overlays aircraft on the drone's first-person video in a ground control station, but there are other ways the ADS-B data could be used:
Augmented reality overlays in first-person video goggles.
Markers on map displays in ground control stations ("virtual radar").
Triggering audible (or even spoken) alerts when an aircraft gets too close.
For details on how to try the code yourself, see the webflight-traffic github repository.