DJ Drone

home

Air Traffic Controller

Overview

Our Air Traffic controller maintains an api that communicates between the drones and the database. It updates the position of the drones and gives them new destinations and songs when they have finished their songs and otherwise tells them they can RTL if there is nothing pressing to do or they are low on battery. It also manages a collision avoidance program by keep a virtual copy in memory of where each drone is and where it is going.

Streams updates from the database to the drone and vice-versa. We can keep a continuous update so long as the raspberry pi can communicate with the drone in this situation. Once it has lost connection it's job is to return to landing to avoid colliding or crashing anywhere.

Database contains location information about each drone, jobs in system and songs to play. With this information we can give our full service to any drone that might join our network and flawlessly integrate them into our system. It makes it that much easier to fully support all the places and needs for the system that could arise.

Technical Details

The api has a local Drone.py class and a DroneInterface class all under a main air traffic controller. The DroneInterface runs and routes all information about each of the individual drones and maps any new information received by them to the database. In this way we can always have a current and up to date information in the database about the drone to give to other systems that might want to use this information.

Collision

A benefit of having the drones as objects in virtual memory is allowing us to run simulations of where they are predicted to be and what will happen if they continue on their current path. We can pause a drone or reroute it if we simulate where all the drones are supoosed to be in a certain amount of steps from where they are currently. This lets us see when drones might interact and crash and also stop them from doing so.