This repository contains the source code used for the research results in Ref. [1]. The publication is about passive fault-tolerant control of quadrotors subject to complete rotor failures. Passive means that the error does not have to be detected. The controller presented here is based on the methods of Incremental Nonlinear Dynamic Inversion (INDI) and Control Allocation (CA) with prioritization of roll and pitch attitude over yaw. This code can be used to reproduce the figures from Ref. [1], on the one hand, and to investigate other rotor failures in simulation, on the other. For further information see Ref. [1].
If you use this code in an academic work, please cite:
@inproceedings{beyer2022incremental,
title={Incremental Passive Fault-Tolerant Control for Quadrotors With up to Three Successive Rotor Failures},
author={Beyer, Yannic, G\"ucker, Fabian, Bremers, Eike, Steen, Meiko and Hecker, Peter},
booktitle={6th CEAS Conference on Guidance, Navigation and Control (EuroGNC) 2022},
year={2022}
}
MATLAB:
This repository:
Clone this project including the submodules LADAC and LADAC-Example-Data:
git clone --recursive https://github.com/iff-gsc/ftc_quadrotor_eurognc_2022.git
FlightGear (optional; for visualization):
ArduPilot SITL (optional; for software in the loop (SITL) tests):
git clone --recursive -b EuroGNC_2022_flight_test https://github.com/ybeyer/ardupilot.git
Open and run paper_plots
in _
If you want to visualize the quadrotor, start FlightGear by executing runfg_IRIS.sh
(Linux) or runfg_IRIS.bat
which are located in _
Customize simulation:
init_Minnie_Loiter_FTC
in _failure_...
in order to create different failure scenarios.ArduCopter SITL:
init_Minnie_ArduPilot_SITL
in the scripts subfolder.QuadcopterSimModel_ArduPilot_SITL
.Tools/autotest/sim_vehicle.py --vehicle=ArduCopter --add-param-file=../ftc_quadrotor_eurognc_2022/ardupilot_implementation/params/Minnie.parm --model=gazebo
mode 29
ArduCopter_MinnieLoiterFtc
).Update ArduCopter controller:
initInterfacesBuses
ArduCopter_MinnieLoiterFtc
located in the _ArduCopter_MinnieLoiterFtc
.If something does not work or if you get stuck, please submit an issue.