This repo contains MATLAB/Simulink code that implements a geometric controller on SE(3), based on the analysis and control presented by Lee et al. [1],[2].
As demonstrated in [2], the quadrotor is initialized upside down and is shown to stabilize itself into an upright position, as shown in the animation below.
Link to a presentation of this paper and implementation.
[1] T. Lee, M. Leok, and N. H. Mcclamroch, Geometric Tracking Control of a Quadrotor UAV on SE(3), in Conference on Decision and Control, 2010, pp. 5420–5425.
[2] T. Lee, M. Leok, and N. H. McClamroch, Control of Complex Maneuvers for a Quadrotor UAV using Geometric Methods on SE(3), arXiv:1003.2005v4, 2010.