Over the course of the last few months, the robotics team at Bell High School has been building & working on aerial vehicles with the generous support of HobbyKing.

There are a variety of projects underway, from a long-range plane to a racing drone, to an autonomous quadcopter platform. I will specifically be talking about the autonomous quadcopter in this article, a project that consists of building a quadcopter and the software to power it from the ground up without things like a dedicated flight controller.

This project is being completed in stages. The initial stage is manual control. To control the drone, we are building a fast and reliable interface between the Raspberry Pi controlling the drone and a laptop controller connected over a wireless network.

In this stage, we are learning about networking, the WebSocket protocol, and the Linux operating system. The Raspberry Pi is running a real-time operating system to minimize latency. This is especially important in drone flight because of the fast response times required to maintain a stable and safe flight.

This software is built almost entirely in Python. The most important part of this project is the drone itself. We carefully chose the parts of our drone in a way that allows us the most modularity in the future. The S500 frame was the obvious choice given the size and variety of mounting points for various sensors and other key parts.

In addition to that, the S500 supports camera mounts if we decide to integrate video feeds and image recognition into our autonomous algorithms in the future. HobbyKing also provided us with high-quality speed controllers, motors, and batteries.

The other key aspect of this project is the autonomous control of the drone. Our first goal is to have an effective hovering algorithm. We would like the quadcopter to be able to auto-stabilize when disturbed. Over the last few months, we have been focused on building a complete simulation of the quadcopter to train and test our algorithms on.

This has not been an easy task, as the physics behind quadcopter flight is very complex and we require a reasonably sophisticated model to reliably train our control algorithms. In this process, we are learning about physics and how to apply theory to the real world. Initially, we are training and testing a deep reinforcement learning algorithm and a PID (Proportional, Integral, Derivative) controller.

Learning about and building deep reinforcement learning algorithms is a very interesting and complex process. Autonomous control is the main goal of the project and we are learning a lot about these kinds of control schemes.

This project has proven to be a challenging learning experience for all members of the team. We are learning about so many different kinds of technology, from the building of drones to the software powering them, to the control algorithms that modern drones use.

Without the support of HobbyKing, this kind of hands-on STEM learning would not be possible for us. Thank you HobbyKing!

- article contributed by Alan Guan.