Autonomous Quadrotor Control
Manual and autonomous control of a quadrotor, using PID control and computer vision.
This project was associated with Northwestern University ME 410: Quadrotor Design and Control (Spring 2025).
Introduction
Objective and Project Description
The goal of this project was to achieve both manual and autonomous control of a pre-designed quadrotor, and also to learn the industry standard principles behind quadrotor design and control. The project was completed in teams of 2 students.
Process Outline
We broke the process up into 1 week milestones, over the span of an entire quarter. Our controller design had the following features:
- High-pass and complementary IMU filtering for stable readings.
- Drone orientation safety limits to prevent damage.
- Low-level PID control of thrust, roll, pitch, and yaw.
- Control of thrust, roll, pitch, and yaw with a manual dual-joystick controller.
- Camera integration and ArUco Marker recognition.
- Semi-autonomous stable flight with high-level PID control and computer vision techniques.
Below you can see a plot of the roll signal from our IMU during a testing sequence. The plot compares the signal before and after our filtering setup.
Results
Despite being terribly unskilled pilots, we were able to achieve stable manual flight with the dual-joystick controller in both ground-effect and above ground domains. Additionally, we were able to achieve somewhat stable autonomous flight by holding the ArUco Marker in steady view of the on-board camera.
Potential improvements would include further PID tuning, a better camera attachment design for more even weight distribution, and improved filtering techniques for more robust state estimation with the camera setup. Unfortunately, we only had around 2 weeks to practice flying, and the on-board battery had a very short life. I would’ve liked to be able to get better at piloting before testing our design.