How Tuning, Reference Preview, Actuator Modeling, and Fallback Policies Change Quadrotor Controller Comparisons: A Reproducible Simulation Study
Organizations: Eastern International University Binh Duong, Vietnam · Industrial University of Ho Chi Minh City Ho Chi Minh City, Vietnam
Abstract
Quadrotor controller comparisons commonly report a single tracking error, although the resulting ranking also depends on tuning effort, reference information, actuator prediction, optimizer fallback, and command timing. We quantify these effects for cascade PID, hover LQR, boundary-layer sliding-mode control (BL-SMC), linear MPC with LQR fallback (LMPC-F), a preview-enabled LMPC-F, and a geometric controller on a common nonlinear plant with rotor gyroscopic coupling, motor lag, and saturation. A primary study (556 episodes at 50Hz) combines matched twelve-candidate tuning, 400 paired evaluation episodes, and a 48-cell MPC factorial; a confirmation study (1462 episodes) repeats the evaluation on 50 fresh realizations with tuning budgets of 12, 24, and 48 candidates. A matched twelve-candidate tuning protocol changed the mean-RMSE ordering obtained with the fixed baseline settings, moving BL-SMC from last to first; the new ordering recurred on the fresh realizations, and a 48-candidate budget left it unchanged. Reference preview substantially reduced MPC tracking error and, on the figure-eight task, removed fallback activity. On an abrupt step, the outcome depended on the interplay between fallback policy, predictor, and actuator authority. Command timing also changed the outcome: replaying measured command-call delays terminated three of four nominal MPC configurations on a desktop computer and all four on a Raspberry Pi5, whereas capping the solver at 100 iterations removed every deadline miss in the tested nominal timing profiles. Controller rankings therefore depend not only on tracking accuracy but also on the tuning protocol, reference information, fallback behavior, and implementation timing. We propose a reporting checklist covering tracking accuracy, tuning effort, completion and failure rates, fallback activity, applied-input variation, and command timing.
Figures & tables
| Framework | Plant | Focus | Evaluation design |
|---|---|---|---|
| Martini et al. [ 20 ] | Nonlinear quadrotor, motor lag and saturation | Linear and nonlinear controllers | Seven architectures, six missions |
| Safe-Control-Gym [ 21 ] | Cart-pole, 1D/2D quadrotor | Constraints, disturbances, safe learning | Reduced-dimensional tasks |
| gym-pybullet-drones [ 22 ] | PyBullet multi-rotor | Learning-based, multi-agent control | Gym environments |
| Zhang et al. [ 23 ] | RotorPy quadrotor | Adaptive vs. non-adaptive control, stress, delays | Control-library comparison |
| This study | 16-state plant with rotor lag, saturation, gyroscopic coupling | Tuning budget, preview, predictor, fallback, tilt constraints, timing | Paired randomized evaluation, factorial MPC contrasts, measured-delay replay |
| Symbol | Value | Unit |
|---|---|---|
| 0.468 | kg | |
| 0.225 | m | |
| 9.81 | m/s 2 | |
| kg m 2 | ||
| kg m 2 | ||
| N s 2 |
| Method | Settings | Dev.+val. | Selected ID | Val. score | Wall min |
|---|---|---|---|---|---|
| PID | 12 | 24 + 3 | 11 | 0.187 | 1.2 |
| LQR | 12 | 24 + 3 | 8 | 0.225 | 1.1 |
| SMC | 12 | 24 + 3 | 10 | 0.119 | 1.2 |
| MPC | 12 | 24 + 3 | 3 | 0.354 | 2.2 |
| Track | Method | Complete | Fail | Failure CI (%) | Mean RMSE [95% CI] (m) | Mean (s -1 ) |
|---|---|---|---|---|---|---|
| fixed | PID | 50/50 | 0/50 | [0.0, 7.1] | 0.372 [0.359, 0.387] | 0.140 |
| fixed | LQR | 50/50 | 0/50 | [0.0, 7.1] | 0.300 [0.285, 0.315] | 1.710 |
| fixed | SMC | 50/50 | 0/50 | [0.0, 7.1] | 1.105 [0.795, 1.453] | 0.474 |
| fixed | MPC | 50/50 | 0/50 | [0.0, 7.1] | 0.396 [0.380, 0.413] | 400.873 |
| tuned | PID | 50/50 | 0/50 | [0.0, 7.1] | 0.226 [0.218, 0.235] | 0.335 |
| tuned | LQR | 50/50 | 0/50 | [0.0, 7.1] | 0.238 [0.226, 0.250] | 1.588 |
| Method | RMSE (m) | 95% CI | (s -1 ) | 95% CI |
|---|---|---|---|---|
| PID | [ , ] | 0.195 | [0.170, 0.224] | |
| LQR | [ , ] | [ , ] | ||
| SMC | [ , ] | 0.738 | [0.634, 0.856] | |
| MPC | [ , ] | [ , 30.538] |
| Method | Fixed: RMSE [CI] (m), Fail | Budget 12 (m) | Budget 24 (m) | Budget 48 (m) | (s -1 ) | FB 12 (%) |
|---|---|---|---|---|---|---|
| PID | 0.385 [0.363, 0.408], 0 | 0.231 [0.219, 0.242] | 0.231 [0.219, 0.242] | 0.223 [0.212, 0.234] | 0.332 | – |
| LQR | 0.295 [0.283, 0.307], 0 | 0.235 [0.225, 0.246] | 0.235 [0.225, 0.246] | 0.235 [0.225, 0.246] | 1.530 | – |
| BL-SMC | 1.096 [0.791, 1.437], 2 | 0.128 [0.113, 0.146] | 0.128 [0.113, 0.146] | 0.128 [0.113, 0.146] | 1.175 | – |
| LMPC-F | 0.385 [0.371, 0.399], 0 | 0.370 [0.356, 0.383] | 0.352 [0.339, 0.364] | 0.351 [0.340, 0.363] | 193.6 | 5.7 |
| LMPC-F+P | 0.301 [0.289, 0.313], 0 | 0.268 [0.257, 0.280] | 0.249 [0.238, 0.259] | 0.249 [0.238, 0.259] | 1.299 | 0.0 |
| Geometric | 0.544 [0.499, 0.593], 0 | 0.341 [0.314, 0.369] | 0.345 [0.317, 0.376] | 0.345 [0.317, 0.376] | 0.171 | – |
| Case | Preview | Predictor | Fallback | Outcome | Post RMSE (m) | FB (%) | Pred. error (m) |
|---|---|---|---|---|---|---|---|
| RA | no | motor | projected | F 3.44 | 2.837 ∗ | 11.6 | 0.00005 |
| RA | no | motor | raw | F 4.32 | 2.521 ∗ | 29.6 | 0.00062 |
| RA | no | rigid | projected | F 3.46 | 2.830 ∗ | 7.5 | 0.00007 |
| RA | no | rigid | raw | F 4.62 | 2.277 ∗ | 30.7 | 0.00205 |
| RA | yes | motor | projected | complete | 0.512 | 1.4 | 0.00001 |
| RA | yes | motor | raw | F 4.36 | 2.387 ∗ | 34.4 | 0.00059 |
| Preview | Tilt policy | Outcome | Post RMSE | Max slack (rad) |
|---|---|---|---|---|
| no | hard-initial | F 4.62 | 2.277 ∗ | 0.00000 |
| no | hard-future | F 4.62 | 2.277 ∗ | 0.00000 |
| no | soft-future | F 4.62 | 2.278 ∗ | 0.00341 |
| yes | hard-initial | F 3.36 | 2.787 ∗ | 0.00000 |
| yes | hard-future | F 3.36 | 2.787 ∗ | 0.00000 |
| yes | soft-future | F 6.44 | 2.679 ∗ | 0.12700 |
| Desktop | Raspberry Pi 5 | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Case | Prev. | Pred. | P99 (ms) | Miss (%) | Window (s) | Replay | Late/used | P99 (ms) | Miss (%) | Window (s) | Replay | Late/used |
| nominal | no | rigid | 101.8 | 8.9 | 20.00 | F 3.56 | 13/178 | 121.1 | 9.6 | 20.00 | F 3.58 | 14/179 |
| nominal | yes | rigid | 100.1 | 6.9 | 20.00 | F 2.88 | 8/144 | 39.3 | 2.1 | 20.00 | F 2.88 | 9/144 |
| nominal | no | motor | 32.2 | 1.5 | 20.00 | complete | 15/1000 | 37.4 | 1.6 | 20.00 | F 3.74–3.80 | 16–17/187–190 |
| nominal | yes | motor | 95.1 | 5.9 | 20.00 | F 3.10 | 26/155 | 147.5 | 11.1 | 20.00 | F 3.60–3.80 | 35–41/180–190 |
| RA | yes | rigid | 43.8 | 7.1 | 3.36 | no F in window | 12/168 | 53.6 | 7.1 | 3.36 | F 3.28 | 12/164 |
| Cap | Prev. | Pred. | P99 (ms) | Max (ms) | Miss (%) | Cap hits | Fallback (%) | No-delay RMSE (m) | Replay (3 runs) | Replay RMSE (m) |
|---|---|---|---|---|---|---|---|---|---|---|
| 4000 | no | rigid | 121.1 | 140.6 | 9.6 | 14 | 3.5 | 0.650 | F 3.58 (3/3) | – |
| 4000 | yes | rigid | 39.3 | 123.9 | 2.1 | 6 | 3.0 | 0.568 | F 2.88 (3/3) | – |
| 4000 | no | motor | 37.4 | 191.6 | 1.6 | 4 | 2.0 | 0.568 | F 3.74–3.80 (3/3) | – |
| 4000 | yes | motor | 147.5 | 221.8 | 11.1 | 9 | 11.5 | 0.606 | F 3.60–3.80 (3/3) | – |
| 400 | no | rigid | 13.3 | 14.0 | 0.0 | 11 | 2.0 | 0.551 | complete (3/3) | 0.555–0.556 |
| 400 | yes | rigid | 13.6 | 14.3 | 0.0 | 34 | 4.0 | 0.537 | complete (3/3) | 0.542–0.550 |
| Report | Evidence in this study |
|---|---|
| Tuning budget, search space, and selection data for every method | Ordering change, reproduced on fresh draws (Tables 4 , 6 ) |
| Reference information (preview, feedforward) per method | Preview: 0.169 0.003 m; no fallback with preview (figure-eight) |
| Completion and failure counts with exact intervals before accuracy | 0/50 primary vs. 2/50 fresh (fixed BL-SMC) |
| Solver acceptance rule and fallback frequency | 9.6% fallback calls; 92.4% of |
| Applied (not requested) input variation, including its distribution | LMPC-F: median 1.7, mean 194 s -1 |
| Fallback policy and its interaction with authority | Raw 4/8 vs. projected 1/8 (step) |
Quadrotor Control
Quadrotor control studies how to stabilize, guide, and adapt aerial robots under demanding flight conditions and physical constraints.
See all 126 papers