Inspiration

We were inspired by the future of internet of things, where many separate devices will have to communicate and work collaboratively. While this system is specifically targeted at drones, the same concept can be used for a variety of types of device "swarms".

What it does

This is an api that keeps track of drone locations and provides the user with functions to determine where each individual drone should move. First, the user registers and updates the location of each drone they have in the air. Next, the user decides what actions the drones should perform. For example, if the user wants all of the drones to move to position (-1, 0 1), then they make a request to ourUrl/moveFleetToPosition. Our api will return the optimal position for each individual drone in order to get close to that point while staying a specified distance away from other drones.

How I built it

We built the api using Python and Flask to control a Mongo database. When the api gets a request, it queries the database for drone positions, then calculates the optimal new positions with Python, then returns those positions with the corresponding IDs of each drone.

Challenges I ran into

Since we did not have much experience with MongoDB, we had a lot of trouble setting it up and getting used to it. Additionally, since the code for computing optimal positions was originally written in C# (for Unity), it had to be rewritten in Python. Since there are different packages in the different languages, there were a variety of bugs.

Accomplishments that I'm proud of

I'm proud that we were able to get the MongoDB set up and working correctly. It was a very tedious process, but I think it'll be very useful for us to know in the future.

What I learned

I learned a lot about setting up databases and web development in Python, as well as a bunch of Python specific things that improve workflow.

What's next for Drone Fleet Organizer

If we continue to work on it, the main goal will be adding stability/flexibility, and adding more functions. For example, we'd like the user to be able to specify shapes like circle, square, etc, with their rotations and sizes, and have the drones be able to forms those shapes. We believe this has a lot of potential for the future of drone swarms.

Share this project:

Updates