← All work

Drone team

The drone team holding their trophy at the NJROTC National awards presentation at the U.S. Naval Academy.
NJROTC National champions at the U.S. Naval Academy.

I write Python code for autonomous flight for Troy High School's NJROTC drone program, where I am assistant lead and head coder. The program has ten competition teams, which I help coordinate. I have competed at nationals twice, and our team won NJROTC National.

The drone has to navigate the competition obstacles on its own, and I work on making that flight precise and repeatable. I can run the same code and get different behavior from the drone. The battery level may be different, or sensor noise and the environment may affect the flight. Knowing the path I programmed doesn't tell me exactly where the drone is. I use sensor feedback to correct its movement while it flies.

Colored gates, targets and field boundaries on the drone competition course at nationals in Mississippi.
Competition course at nationals in Mississippi.

I use optical-flow feedback and a PID controller to correct drift. I tune the proportional, integral and derivative gains, which determine how strongly the controller responds to the current error, accumulated error and rate of change of the error, respectively. An aggressive correction can make the drone overshoot its intended position. It may then keep correcting in opposite directions, causing oscillation. I adjust the gains to get a faster response without making the flight unstable.

My partner and I continue developing the autonomous-flight code. My work has included flight control and path planning, while my partner has worked with the barometer and gyroscope readings.

Students learning coding with laptops and small drones at a Drones4Kids workshop.
Teaching students to program drones during a workshop.

Over two years, I have trained about twenty new coders. I prepare documentation and practice materials for programming and drone mechanics, and help them test and debug their flight code. My responsibilities also include organizing practices and coordinating the teams' preparation for competitions.