Quadcopter control
Sequential Model predictive control in MATLAB
Project aims
Understand State-of-the-art non-linear control methods and apply them to drones!
Unfortunately this was done during my undergrad where my main technical exposure was in MATLAB. Hence most code and visualisations are in this.
Quick overview
- Derived the dynamic model of a Quadcopter following a tutorial, giving me a 9 state State-space model.
- Calculated a Linear-quadratic regulator controller as a baseline.
- Explored a variety of sequential program based controllers
- Model predictive controller with collision avoidance constraint.
- Control barrier functions for collision avoidance
All optimisation based solutions were computed using OSQP, an open source quadratic program solver. I was fustrated with hyperparameter tuning and at some point tried implementing black-box optimizers to automate this. I settled for an Evolutionary algorithm as at the time I was interested in this (Bees algorithm, lol).
Take aways
Got some very cool exposure to sequential controllers design. That is online calculations that have an optimisation that is constantly updated. This also was my first exposure to python! I decided I wanted to learn it after gettting fustrated with MATLAB.