Geometric controllers developed at FDCL for UAVs
This includes the geometric controller in SE(3) we use in the Flight Dynamics and Control Lab, in different programming languages. We use two main versions of the controller:
The main difference between those two is that the second one decouples the yaw control in the attitude controller. This leads to better tracking performance, especially at the presence of large yaw angles, but at the expense of some additinal computations and slightly delayed yaw error convergence. Please check Geometric Controls of a Quadrotor with a Decoupled Yaw Control for more comparisons.
Variants of both the controllers have been used in various numerical and experimental research tasks. A summary of these can be found in Publications section.
The following controller/language combinations are available in this repository. The documenteds for some of the languages can be found here. Other languages are documented directly in the source files.
Language | Standard [1] | Decoupled-Yaw [2] |
---|---|---|
C++ | :white_check_mark: | :white_check_mark: |
Python | :white_check_mark: | :white_check_mark:** |
Matlab | :white_check_mark: | :white_check_mark: |
Note:
cpp
directory.If you use either of the controllers, please use the relevant citatations:
@inproceedings{Lee2010,
author={T. {Lee} and M. {Leok} and N. H. {McClamroch}},
booktitle={IEEE Conference on Decision and Control},
title={Geometric tracking control of a quadrotor UAV on SE(3)},
year={2010},
pages={5420-5425},}
@inproceedings{Gamagedara2019,
title={Geometric controls of a quadrotor uav with decoupled yaw control},
author={Gamagedara, Kanishke and Bisheban, Mahdis and Kaufman, Evan and Lee, Taeyoung},
booktitle={2019 American Control Conference (ACC)},
pages={3285--3290},
year={2019},
organization={IEEE}
}
A selected list of publications that use implementations of the above controllers with/without slight variations:
git checkout docs
master
branch, merge it to the docs
branch: git merge master
cd docs/cpp/
# Linux
sudo apt-get install -y doxygen graphviz
# Mac
brew install graphviz doxygen
doxygen Doxygen