SoftwarePilot is an open source middleware and API that supports aerial applications. SoftwarePilot allows users to connect consumer DJI drones to programmable Java routines that provide access to the drones flight controller, camera, and navigation system as well as computer vision and deep learning software packages like OpenCV, DLIB, and Tensorflow.
SoftwarePilot comes with a dockerfile and installation scripts for all requisite software, and an Android-x86 VM to communicate with DJI drones from most systems.
SoftwarePilot provides sample routines and demos ranging from simple flight control applications to fully autonomous aerial systems. A simulation framework for fully autonomous aerial systems that use SoftwarePilot is also provided. The simulation framework can be used to aid development and profiling of complicated aerial systems.
The goal of SoftwarePilot is to be as accessible as possible to anyone with a drone. Therefore, it only requires a basic laptop with the following specifications:
- At least 4GB of ram
- A 2GHz processor
- WiFi capabilities
- 10 GB of available disk space
- Linux, Windows, or MacOS
Software prerequisites include:
- DJI-SDK - To interact with DJI drones
- Java - To write the API between DJI drones and our programmable routines
- Python - For machine learning routines and simulation
- Docker - For portability
- VirtualBox - To run our virtual machine
- Tensorflow - For custom deep models
- Dlib - For facial recognition
- OpenCV - For image processing
- Android-x86 - To execute DJI-SDK apps on most hardware
- Android - To use the DJI-SDK
- Jayson Boubin - Lead Developer
- Christopher Stewart
- Shiqi Zhang
- Naveen Tumkur Ramesh Babu
- Zichen Zhang
See also the list of contributors who participated in this project.
This project is licensed under the MIT License - see the License file for details