Actuator-Aware Observer Inputs for Cascade ADRC of Quadrotors Under Rotor Lag, Measurement Delay and Sensor Noise
Organizations: Eastern International University, Binh Duong, Vietnam · Industrial University of Ho Chi Minh City, Ho Chi Minh City, Vietnam
Abstract
In sampled cascade linear active disturbance rejection control (LADRC) of quadrotors, the extended-state observer typically receives the instantaneous command, although the delayed measurement reflects an earlier, rotor-filtered acceleration. This paper proposes actuator-aware (AA) observer inputs: altitude and attitude observers use limited virtual inputs filtered by an assumed rotor model and aligned with the measurement delay, and horizontal observers use acceleration reconstructed from measured attitude. Fixed gains are selected on the discrete-time model under sensitivity and step-response requirements and stationary covariance ceilings on each channel's control variance and increment and on the noise-induced inner-loop increment of the full cascade. In paired set-point trials, PID-Budget, AA-Budget and AA-HalfGain reach mean RMSEs of 65.5, 19.2 and 16.9mm; under a stricter common cascade ceiling, the AA designs reach 29.9 and 26.4mm versus 72.3mm for a PID that uses roughly double their rotor-command increment. PX4 software-in-the-loop runs reproduce these results. Behind EKF2, a noise model fitted to the estimation errors predicts the roll/pitch and yaw increments within 5% on held-out and out-of-sample runs and the total rotor-command increment within 14%. Redesigned for this stack under the same sensitivity and response specification and estimator-aware ceilings, AA-Budget-E reduces the set-point RMSE from 59.1mm (PID-E) to 44.0~mm with a lower rotor-command increment in every paired set-point and lemniscate run (mean S6 rotor-command-increment reductions relative to PID-E: 45% before and 15% after output quantization); AA-HalfGain-E beats PID-E only on the lemniscate. The evidence is simulation-based, and the ceilings are nominal tuning constraints.
Figures & tables
| Study | Method | Noise | Actuator dynamics | Delay | limit | Cascade path | Tuning/design | Validation |
|---|---|---|---|---|---|---|---|---|
| [ 5 ] | LADRC/GPI cascade | – | – | – | – | – | observer poles | flight |
| [ 16 ] | ADRC | – | – | – | – | – | Kriging surrogate | HIL |
| [ 17 ] | LADRC/fuzzy | – | – | – | – | – | modified crayfish | simulation |
| [ 19 ] | TD3–ADRC | – | sim. a | – | – b | – | TD3 | bench |
| [ 25 ] | model-based ESO | – | yes | – | – | – | actuator-model ESO | simulation |
| [ 26 ] | RADRC/RESO | – | – | yes e | – | – | delay synchronization | analysis |
| Parameter | Symbol | Value |
|---|---|---|
| Mass, arm length a | , | 0.468 kg, 0.225 m |
| Thrust coeff. a | N s 2 | |
| Drag-torque coeff. a | N m s 2 | |
| Inertia a | , | kg m 2 |
| Rotor inertia, linear drag a | , | kg m 2 , 0.25 kg/s |
| Rotor time constant c | 30 ms |
| Controller | Architecture | Common constraints | Increment ceiling | Tuning |
|---|---|---|---|---|
| PID-Budget | 2-DOF PID | variance, , OS, | none | multistart + joint cascade |
| AA-Budget | actuator-aware RO-LADRC | variance, , OS, | PID local value | bandwidth/ratio selection |
| RO-HalfGain | commanded inner/altitude ESO | variance, , OS, | PID local value | predictive half-gain + bandwidth |
| AA-HalfGain | actuator-aware half-gain ESO | variance, , OS, | PID local value | predictive half-gain + bandwidth |
| A1-Commanded | commanded inner/altitude RO-ESO | same as AA-Budget | same | redesign |
| A2-Unaligned | lag-model RO-ESO, | same as AA-Budget | same | redesign |
| Controller | RMSE | CI | Inc. | Fail | ||
|---|---|---|---|---|---|---|
| [mm] | mean SD [mm] | [mm] | [rad/s] | |||
| PID-Budget | 132.9 | 1.978 | 65.5 7.0 | 2.62 | 9.91 | 0/30 |
| AA-Budget | 32.2 | 1.974 | 19.2 1.5 | 0.58 | 7.46 | 0/30 |
| RO-HalfGain | 300.5 | 1.963 | 226.4 13.4 | 5.00 | 0.80 | 0/30 |
| AA-HalfGain | 27.8 | 1.974 | 16.9 1.3 | 0.50 | 7.58 | 0/30 |
| Controller | Pred. | Meas. | Ratio | Ratio |
|---|---|---|---|---|
| PID-Budget | 1.380 | 1.382 | 0.998 | 1.003 |
| AA-Budget | 0.937 | 0.938 | 0.985 | 1.002 |
| AA-HalfGain | 1.023 | 1.024 | 0.982 | 1.001 |
| Design | Ceil. | Pred. | Meas. | S6 RMSE | Rotor inc. |
|---|---|---|---|---|---|
| [rad/s 2 ] | [mm] | [rad/s] | |||
| PID-Budget | 1.382 | 1.380 | 1.382 | 65.5 7.0 | 9.91 |
| AA-Budget | 1.382 | 0.937 | 0.938 | 19.2 1.5 | 7.46 |
| AA-HalfGain | 1.382 | 1.023 | 1.024 | 16.9 1.3 | 7.58 |
| PID-Budget-S | 0.598 | 0.592 | 0.592 | 72.3 7.5 | 9.23 |
| AA-Budget-S | 0.598 | 0.496 | 0.497 | 29.9 2.6 | 4.67 |
| Design | RMSE [mm] | CI [mm] | Inc. | Paired change [mm] |
|---|---|---|---|---|
| A1-Commanded | 176.6 14.0 | 5.21 | 2.10 | 157.4 4.9 |
| A2-Unaligned | 19.2 1.5 | 0.58 | 7.70 | 0.0132 0.0034 |
| A3-NoIncrement | 15.9 1.3 | 0.47 | 8.25 | -3.28 0.11 |
| A4, fixed gains a | 129.1 6.9 | 2.56 | 7.84 | 109.9 2.7 |
| A4, reselected | 275.7 42.2 | 15.75 | 7.16 | 256 16 |
| Condition | PID-Budget | AA-Budget | RO-HalfGain | AA-HalfGain |
|---|---|---|---|---|
| RMSE [mm] [rotor-command increment, rad/s] | ||||
| Reference | 68.3 7.6 [9.91] | 19.6 1.3 [7.45] | 227.4 19.4 [0.79] | 17.2 1.1 [7.57] |
| Noise | 68.4 7.6 [4.96] | 19.6 1.3 [3.73] | 227.5 19.4 [0.40] | 17.2 1.1 [3.79] |
| Noise | 68.3 7.6 [19.84] | 19.7 1.3 [14.92] | 227.3 19.3 [1.59] | 17.3 1.1 [15.15] |
| Noise | 68.3 7.7 [39.76] | 20.0 1.2 [29.91] | 227.2 19.1 [3.18] | 17.7 1.0 [30.39] |
| Delay 0–10 ms | 68.3 7.6 [9.86] | 19.6 1.3 [7.42] | 227.8 19.4 [0.79] | 17.2 1.1 [7.53] |
| Controller | Lag [ms] | Runs | Fail | Threshold |
|---|---|---|---|---|
| PID-Budget | 15–60 | 120 | 0 | 0 |
| PID-Budget | 75–120 | 120 | 30 | 0 |
| AA-Budget | 15–60 | 120 | 0 | 0 |
| AA-Budget | 75–120 | 120 | 7 | 93 |
| AA-HalfGain | 15–60 | 120 | 0 | 0 |
| AA-HalfGain | 75–120 | 120 | 31 | 79 |
| Controller | RMSE | 95% CI | Inc. | Max. error | Fail |
|---|---|---|---|---|---|
| [mm] | [mm] | [rad/s] | [mm] | ||
| PID-Budget | 276.5 7.7 | 2.88 | 9.92 | 464.0 32.0 | 0/30 |
| AA-Budget | 22.7 1.7 | 0.64 | 7.46 | 94.9 14.5 | 0/30 |
| RO-HalfGain | 217.3 16.2 | 6.04 | 0.79 | 641.2 86.6 | 0/30 |
| AA-HalfGain | 20.4 1.5 | 0.55 | 7.58 | 91.6 13.2 | 0/30 |
| Case | Design | MATLAB | PX4 SITL |
|---|---|---|---|
| S6 | PID-Budget | 65.5 7.0 | 65.0 6.7 |
| AA-Budget | 19.2 1.5 | 20.5 1.3 | |
| RO-HalfGain | 226.4 13.4 | 227.1 12.9 | |
| AA-HalfGain | 16.9 1.3 | 18.3 1.3 | |
| S6 strict | PID-Budget-S | 72.3 7.5 | 72.2 7.2 |
| AA-Budget-S | 29.9 2.6 | 30.8 2.6 |
| Group | Runs | Skip | Steps (max) | Par. |
|---|---|---|---|---|
| Hover 60 s, -E designs (refit) | 30 | 7 | 9 (3) | 24 |
| S6, -E designs | 90 | 10 | 11 (2) | 0 |
| S5, -E designs | 30 | 2 | 2 (1) | 0 |
| Hover 300 s, -E designs | 30 | 11 | 16 (3) | 0 |
| Hover 300 s, primary and strict | 60 | 35 | 68 (9) | 3 |
| S6, PID-Budget-S | 30 | 9 | 22 (6) | 9 |
| (a) per design | (b) pooled | (c) design stage | |||
|---|---|---|---|---|---|
| Quantity | fit | h.o. | fit | h.o. | h.o. |
| , | 0.98–1.00 | 0.98–1.00 | 0.96–1.01 | 0.95–1.01 | 0.97–1.01 |
| , | 1.00 | 1.00–1.01 | 0.99–1.00 | 1.00–1.01 | 1.01–1.02 |
| , | 0.98–1.06 | 0.96–1.06 | 0.83–1.07 | 0.81–1.07 | 0.83–1.07 |
| 0.98–1.03 | 0.97–1.03 | 0.87–1.04 | 0.86–1.04 | 0.93–1.04 | |
| , | 0.81–0.97 | 0.81–0.97 | 0.81–0.97 | 0.81–0.97 | 0.87–0.93 |
| Design | cas. | ||||
|---|---|---|---|---|---|
| pred./meas. | pred./meas. | meas. | pred./meas. | ||
| PID-Budget | 1.94/1.81/2.04/1.99 | 0.0065/0.0066 | 4.75/4.74 | 5.0 | –/0.0259 |
| PID-E | 1.98/1.81/1.98/1.98 | 0.0064/0.0067 | 4.22/4.21 | 4.8 | 0.0236/0.0254 |
| AA-Budget-E | 1.98/1.46/1.96/1.97 | 0.0059/0.0059 | 4.31/4.24 | 7.0 | 0.0302/0.0290 |
| AA-HalfGain-E | 1.98/1.58/1.81/1.97 | 0.0064/0.0064 | 3.99/3.93 | 7.4 | 0.0317/0.0305 |
| S6 | S5 | |||||||
| Design | RMSE | vs PID-B. | vs PID-E | RMSE | ||||
| [mm] | [mm] | [mm] | [rad/s] | [rad/s] | [mm] | [rad/s] | [rad/s] | |
| PID-Budget | 65.0 6.7 | – | – | 0.084 | 0.224 | 278.4 8.3 | 0.222 | 0.273 |
| PID-E | 59.1 6.3 | (30) | – | 0.089 | 0.231 | 335.8 6.6 | 0.228 | 0.294 |
| AA-Budget-E | 44.0 4.0 | (30) | (30) | 0.049 | 0.196 | 49.5 5.6 | 0.111 | 0.205 |
| AA-HalfGain-E | 84.7 8.2 | (0) | (0) | 0.047 | 0.192 | 90.6 11.9 | 0.097 | 0.194 |
Quadrotor Control
Quadrotor control studies how to stabilize, guide, and adapt aerial robots under demanding flight conditions and physical constraints.
See all 131 papers