Nonlinear Quadrotor Control
PID, LQR and PPO for Nonlinear Quadrotor Control
Summary
A comparative study of classical and learning-based controllers for a nonlinear twelve-state quadrotor under stochastic disturbances. I derived and implemented the simulator from first principles, trained a PPO policy across a staged curriculum, and evaluated all three controllers across calm, windy, local, long-range, and high-initial-velocity scenarios.
Headline result: Contrary to my original hypothesis, the comparatively simple PID controller produced the strongest overall performance. PPO used less control effort, but settled more slowly and generalised less reliably outside its training distribution.
Problem
[ADD — one paragraph framing the control problem this project addresses and why it’s non-trivial.]
Constraints
[ADD — physical, computational, and time constraints (e.g. 100 Hz control loop requirement, sim-to-real considerations).]
Approach
I built the simulator and evaluation harness from first principles rather than using an off-the-shelf environment, so that the dynamics model, disturbance model, and evaluation protocol were fully under my control and fully understood.
- 12-dimensional nonlinear state model
- 4-dimensional control input
- 100 Hz control loop
- 20 random seeds per scenario
- Approximately 100 million PPO training timesteps across a staged curriculum
Mathematical / Technical Design
[ADD — state-space formulation, equations of motion, PID/LQR derivations, PPO reward design.]
[ADD QUADROTOR DIAGRAM]
Implementation
[ADD — simulator architecture, PPO training setup, curriculum stages.]
Evaluation
Controllers were evaluated across five scenario families — calm, windy, local, long-range, and high-initial-velocity — with 20 random seeds per scenario.
Results
[ADD FINAL RESULTS TABLE — settling rate, crash rate, settling time, steady-state position error, control effort, per controller per scenario.]
What Surprised Me
Contrary to my original hypothesis, the comparatively simple PID controller produced the strongest overall performance across scenarios. PPO used less control effort, but settled more slowly and generalised less reliably outside its training distribution.
Limitations
[ADD]
What I Would Do Next
Planned physical deployment on an NVIDIA Jetson Orin Nano with a Pixhawk 6C Mini flight controller. This is a planned next step, not yet completed.
Links
- Code: https://github.com/HenryR888/robust-rl-quadrotor-control
- Research summary / report: [ADD, once report is finalised]