Rotor-fault detection and recovery for a quadrotor
Teaches a small quadrotor to notice a damaged or lost rotor within a fraction of a second and keep flying.
My partSole author
In short
A reproducible study of rotor-fault tolerance for a 5-inch quadrotor: estimate how well each rotor still works, detect and isolate a loss within tens of milliseconds, and recover, including from the complete loss of one rotor. Validated offline on PX4 software-in-the-loop flights; the test on the real vehicle is prepared, not done.
- What it is
- A detect, isolate and recover pipeline for rotor faults on a small quadrotor, built and evaluated in a 6-DOF simulator and then replayed on PX4 software-in-the-loop flights.
- Why it matters
- A quadrotor has no spare actuators. A chipped propeller or failing motor has to be noticed and compensated within tens of milliseconds, and a rotor that stops entirely can only be survived by giving up control of yaw. Flight software for small quadrotors mostly just disarms.
- My part
- I wrote the models, the algorithms, the simulator and the experiments, automated the PX4 software-in-the-loop runs, and wrote the paper.

Step by step
- 1
Model
A 5-inch FPV-class vehicle, about 0.64 kg with a thrust-to-weight ratio of 3.6, with sensor noise, 10 ms motion-capture latency, parameter spread and light turbulence.
- 2
Diagnose
Effectiveness regression with one common filter on every signal, a Kalman filter, a learned healthy baseline, and a CUSUM bank tuned for 15, 30 and 60 % losses and calibrated on separate fault-free flights.

How fast a fault is caught: a 30 ms median over 200 simulated faults, and 120–132 ms in PX4 software-in-the-loop, where PX4’s own detector took 664 ms. - 3
Recover
Thrust re-allocation for partial losses; a numerically solved relaxed-hover equilibrium and gain-scheduled LQR for a complete loss, accepting a spin of about 23 rad/s.

Simulation: up to 60 % loss, the pipeline holds position as well as a controller told the true fault. - 4
Stress
Monte-Carlo experiments with passive and oracle baselines, an ablation, and robustness sweeps over actuator delay, motor lag and turbulence to find where recovery breaks.
- 5
Validate
110 headless PX4 software-in-the-loop flights of the x500 model in Gazebo, with motor faults injected in the simulated ESC and the diagnoser replayed offline on the flight logs. The log pipeline for Betaflight blackbox data and a tethered-test protocol are ready for the real quad.

PX4 software-in-the-loop: on every complete loss the diagnoser alarms long before the vehicle tilts past 90°; PX4’s own detector triggers after it.
Results
- 200 / 200
- Detection, simulation
- 20–90 % losses detected and isolated to the right rotor; median 30 ms, 95th percentile 58 ms
- 56 / 56
- Complete losses recovered, simulation
- 32 in hover, 24 during a 3.3 m/s figure-eight; the nominal controller lost every one
- 56 / 56
- Detection, PX4 SITL
- 40 partial and 16 complete losses; median 120 and 132 ms. PX4’s own detector flagged no partial loss
- 0
- False alarms
- in 32 min of fault-free simulated flight and 22 min of fault-free SITL flight
For engineersHow it is built, its limits, and its keywords.
How it works
A Kalman filter estimates each rotor’s remaining effectiveness from a filtered rigid-body regression on gyro, accelerometer and velocity data, against a baseline learned in the first seconds of hover. A bank of CUSUM tests decides when a loss has happened and which rotor it hit. Partial losses are handled by re-allocating thrust; a complete loss switches to a gain-scheduled yaw-relaxed LQR controller after Mueller and D’Andrea.
Limits
- The analysis panels are verified on simulated signals with known noise, vibration and distortion (the Noise Lab recovers the simulated white noise to within 1 %); long captures from the real unit are still to come.
- Everything is simulation or software-in-the-loop. Nothing has flown with a fault yet, and the vehicle parameters are assumed rather than identified on a real frame.
- Simulated and Gazebo sensors are far cleaner than a vibrating 5-inch frame, so the false-alarm numbers are optimistic.
- In PX4 software-in-the-loop the diagnoser ran offline on the flight logs; no fault-tolerant controller ran inside PX4.
- Complete-loss recovery started to fail at 24 ms of actuator delay (2 ms assumed), motors 3.2 times slower than modelled, and three times the default turbulence.
- The tethered test on the real quadrotor is planned, not done.
Keywords
- rotor fault detection
- fault-tolerant control
- quadrotor
- CUSUM
- Kalman filter
- PX4 SITL