We’ve trained ML model(s) to receive commands from a user and execute them, replacing the PID Loop(s) currently in charge of controlling most drones. We achieved this using Reinforcement Learning to train these models. Namely PPO and TD3.
I highly suggest watching the demo (3 min): https://youtu.be/K4AGAfHXH38
These models perform better than a PID Loop, require no tuning, and work in many more situations than a PID Loop. Requiring no tuning also means that the same model is interoperable between multiple different drones/configurations. So it will work directly out of the box!
To make these models work regardless of platform dynamics (E.g. weight, size, power, etc.), we trained it while simulating a massive amount of variation.
The models are lightweight, so most hardware should be able to run them. However, we are still in the process of writing the wrappers for the various hardware/firmware combos. At the moment, we are working on a wrapper for hardware running PX4.
We are hoping to talk with people who want to boost the performance of their drones and remove the headaches of tuning.
If you own, fly, or work with drones and are interested in trying this out, please let us know. We are trying to learn what kinds of drones, what flight controller hardware, and what firmware people are using so we can make something that runs on your system.
If you’d like a good jumping off point to learn more, I highly suggest this repo (and the paper(s) mentioned in the repo): https://github.com/arplaboratory/learning-to-fly
We are also planning on some future features (E.g. giving back some high-level tuning capabilities like prioritizing holding position vs holding orientation). Please tell us what other features you'd like to see!
Thanks!
Discord: https://discord.gg/Pu7XRxJTXa
Email: [email protected]