1. Introduction
Quadrotor UAVs, commonly known as quadcopters, have become a canonical platform for autonomous flight research owing to their mechanical simplicity, hovering capability, and agility. However, these same properties give rise to a demanding control problem. A quadcopter has four independently actuated rotors but six degrees of freedom, rendering it underactuated: lateral motion can be achieved only by tilting the vehicle, which couples translational and rotational dynamics. The open-loop system is unstable, and its dynamics are highly nonlinear and subject to three categories of disturbances that resist precise modelling: (1) Aerodynamic effects. Blade flapping, induced drag, ground effect, rotor-to-rotor wake interaction, and wind gusts all produce forces and torques that depend on airspeed, rotor speed, and proximity to obstacles in a complex, hard-to-model manner. (2) Parametric uncertainty. The vehicle mass varies as the battery discharges or when a payload is attached, and the thrust and torque coefficients change with rotor speed and air density. (3) Unmodeled dynamics. Flexible structures, the combined electrical and mechanical lag, propeller gyroscopic effects, and battery-voltage sag introduce internal dynamics that are typically neglected in the nominal model. These challenges are amplified for nano-scale quadcopters such as the Crazyflie [
1] (
g, 10 cm wheelbase): the thrust-to-weight margin is modest, and a lateral wind force of just 30 mN—roughly 11% of hover thrust—produces perceptible trajectory deviation.
The most common flight controller for quadcopters is a cascaded proportional-integral-derivative (PID) controller, used, for example, in the official Crazyflie firmware [
1]. PID controllers are intuitive to tune and computationally cheap, but they handle disturbances reactively through integral action, which leads to wind-up, slow rejection, and sensitivity to gain mismatch when plant parameters change. Model-based alternatives such as
synthesis [
2] and model-predictive control (MPC) [
3] offer stronger guarantees but require an accurate linear or nonlinear model and involve solving optimization problems that may be too computationally expensive for a microcontroller running at 1 kHz. Feedback linearization is sensitive to modeling errors in the linearizing terms, since any mismatch propagates directly into the invese dynamics. Sliding-mode control (SMC) [
4,
5], by contrast, is intrinsically robust to matched uncertainty and can be designed with boundary-layer or higher-order sliding modes [
6] to mitigate the chattering associated with the classical first-order discontinuous law; nevertheless, the selection of the sliding surface, the boundary-layer thickness, and the switching gain may require bounds on the uncertainty that may not be available a priori on a nano-quadcopter. Adaptive control and
adaptive control [
7,
8,
9] update an online model of the plant and offer good transient performance, but their adaptation laws require persistent excitation, careful stability analysis for each configuration, and substantial parameterization effort. Recent learning-based approaches—including online reinforcement learning and deep model-reference adaptive control directly from input–output data [
10,
11]—can adapt to faulty actuation and uncertain dynamics without an explicit plant model and embed stability guarantees by construction; their main practical limitations on a nano-platform are the on-board memory and computation required for neural-network inference, and the need for asynchronous task scheduling between the learning loop and the control loop. The proposed ADRC retains the model-free spirit of learning-based control while keeping the on-board computation restricted to a single linear observer per channel, which is what makes it a natural fit for the Crazyflie’s onboard microcontroller.
Active disturbance rejection control (ADRC), introduced by Han [
12] and later cast in linear form with a transparent bandwidth-based tuning procedure by Gao [
13], takes a fundamentally different view of the control problem. ADRC has been successfully applied across a range of domains, from industrial process control [
13] to quadrotor tracking control [
14]. Rather than constructing a high-fidelity plant model and inverting it, ADRC treats every effect not captured by a chosen low-order canonical form— unmodeled dynamics, parametric error, nonlinear coupling, and external disturbances—as a single total disturbance signal acting on each control channel. An extended state observer (ESO) estimates this signal online from input–output measurements alone, and the controller cancels it in a feed-forward fashion before a simple low-order feedback law acts on the resulting near-integrator residual.
In this paper, we propose an ADRC-based flight control approach for quadcopters operating in regimes where accurate aerodynamic models are unavailable, on-board computational budget is limited, and robust disturbance rejection—rather than asymptotic regulation under nominal conditions—is the dominant performance requirement. Although linear and nonlinear ADRC variants have previously been applied to quadrotors (see, e.g., [
14] for a generalized PI-observer-based ADRC for trajectory tracking, and the references therein), the present paper differs from prior work in three concrete aspects:
- (C1)
Per-channel total-disturbance decomposition. For each of the six control axes (
), we derive an explicit analytical decomposition of the total disturbance
into a parametric term arising from mass or inertia mismatch through the input-gain residual
, a nonlinear coupling term (gyroscopic for rotational channels, trigonometric tilt residual for translational channels), and an external term collecting aerodynamic forces/torques (Equations (
27)–(
32)). Unlike [
14] and earlier ADRC quadrotor designs that treat the disturbance as a generic lumped signal, this decomposition allows to predict, before any experiment, which physical effects each ESO will absorb and how.
- (C2)
Quantitative ESO error bound linked to a single bandwidth. We provide an explicit ultimate bound (Lemma 1) of order on the LESO estimation error and a closed-loop tracking bound (Theorems 1 and 2) that vanishes as , together with a separation-principle analysis for the cascaded position/attitude architecture that has not, to our knowledge, been spelled out for the LADRC quadrotor case.
- (C3)
Combined mass-uncertainty/wind-gust validation on a nano-platform. We instantiate the design on the 27 g Crazyflie—a platform whose thrust margin makes it unusually sensitive to the disturbances considered—and demonstrate, in full nonlinear simulation, simultaneous rejection of mass uncertainty and a sustained 30 mN lateral wind gust without re-tuning, gain scheduling, or integrator action. We further verify that the resulting rotor commands remain within the physical RPM saturation limit. To the best of our knowledge, the combination of these two disturbance classes on a nano-quadcopter has not been reported in the prior ADRC literature.
In addition, we demonstrate that the ESO’s third state provides a real-time, physically interpretable estimate of the total disturbance, opening a pathway to in-flight fault detection and graceful degradation—a capability absent from standard PID flight controllers.
Throughout the paper, scalars are unbolded (), vectors are bold lowercase (), and matrices are bold or italic uppercase. denotes the Euclidean () norm of a vector and the induced norm when applied to a matrix. denotes transpose, means symmetric positive definite, and I denotes the identity matrix of the appropriate dimension. For a signal , . The notations , , and denote the first, second, and n-th time derivative, respectively. The hat denotes an estimate of x; the tilde denotes the associated estimation error.
The remainder of this paper is organized as follows.
Section 2 formulates the quadcopter control problem and derives the Crazyflie dynamic model.
Section 3 develops the cascaded ADRC design, including LESO stability analysis and the per-channel total-disturbance formulation.
Section 4 presents simulation results, and
Section 5 concludes.
4. Simulation Results
This section validates the proposed cascaded LADRC design through high-fidelity simulation of the full nonlinear quadcopter dynamics under realistic disturbance conditions. The objective is to demonstrate that the LESO-based cancellation rejects combined mass uncertainty and lateral wind gusts within the bounds established by Lemma 1 and Theorem 1, while exposing the physical interpretation of the ESO disturbance estimates.
4.1. Scenario Setup
The full nonlinear model (
2)–(
8) is integrated with the Crazyflie parameters from
Table 1 using a fourth-order Runge–Kutta solver at a step size of
ms, corresponding to a 500 Hz update rate consistent with the on-board controller. Two disturbances are applied simultaneously to stress-test the ESOs:
The reference trajectory is a figure-eight lemniscate at constant altitude:
with
m and
rad/s, producing a manoeuvre that simultaneously excites all six channels. The yaw reference is held at
. The bandwidths used in the simulation study are summarized in
Table 3. Several constraints shape these choices. First, the cascade separation requirement
is met by the ratio
. Second, the controller bandwidths are kept well below the actuator cut-off (≈100 rad/s for the Crazyflie’s brushed motors). Third, the rule
is applied uniformly; sensor noise on the on-board BMI088 IMU supports up to
rad/s for the attitude loops [
1], leaving a comfortable margin.
A few practical points regarding the bandwidth choices and the real-time implementation deserve emphasis here.
Effect of unmodeled phase lag on . Although the IMU noise spectrum permits
rad/s on the attitude channels, a tighter and typically dominant constraint comes from the lumped motor–ESC delay, which for the Crazyflie’s brushed motors is in the range
–30 ms. At observer bandwidths approaching
, the LESO would attempt to invert dynamics that are themselves delayed, producing a high-frequency oscillation that propagates through (
39). A conservative rule of thumb is therefore
–300 rad/s for attitude. Our choice
rad/s sits at the conservative end of this range and leaves comfortable margin for IMU bias drift (which appears as a slowly varying additive component of
and is therefore absorbed by the ESO rather than amplified by it). Reducing
below 100 rad/s would loosen the Lemma 1 bound proportionally; halving
doubles the ultimate disturbance-estimation error, which in our scenario corresponds to a roughly two-fold increase in attitude tracking error.
Yaw bandwidth mismatch. The asymmetric bandwidth
rad/s reflects the limited yaw control authority on a quadcopter and was the subject of an explicit reviewer query. During an aggressive simultaneous multi-axis manoeuvre, the gyroscopic cross-term
would, in principle, drive a yaw disturbance. For the Crazyflie, however,
(
Table 1), so this term is near zero by construction. For an asymmetric platform, the same cross-term would still be absorbed by the yaw ESO; the bandwidth mismatch would then manifest as a slightly larger transient yaw deviation rather than as instability, since each loop is independently ISS by Theorem 1.
Real-time implementation. The cascaded LADRC was implemented in discrete time at 500 Hz using a fixed-step explicit Euler update for the LESO (
17). In a deployable embedded implementation, the controller would run as a hardware-timer-driven periodic task at the same rate (the Crazyflie firmware uses the STM32F405’s TIM2 with a 2 ms period). The total per-cycle cost of the six LESOs and six LSEF feedback laws is dominated by a handful of multiply-add operations and is well below the 2 ms budget on a 168 MHz Cortex-M4, so no asynchronous decoupling between estimation and control is required—in contrast with online learning controllers, where neural-network inference must be scheduled asynchronously to meet the cycle budget [
11]. The fixed-step integration introduces a small discretization error in the LESO state that, by construction, is absorbed into
at the next sample and therefore does not require separate compensation.
4.2. Trajectory Tracking
Figure 4 shows the closed-loop 3D trajectory of the quadcopter executing the lemniscate under the combined mass-uncertainty and gust disturbances. After a takeoff transient lasting approximately 2.5 s, the vehicle locks onto the reference and traces the figure-eight closely for the remaining 17.5 s of the simulation, with no visible drift between successive laps. The slight thickening of the trajectory near the centre of the figure-eight reflects the high curvature and rapid attitude reversals at the crossing points, which the controller handles without instability.
The per-axis position trajectories are shown in
Figure 5. The horizontal channels track the sinusoidal references with negligible visual deviation, including across the wind-gust interval (shaded), where the lateral disturbance produces no perceptible position offset. The altitude response (bottom panel) reaches the commanded
m within approximately 2.5 s of takeoff and remains essentially flat thereafter, despite the 30% mass excess that the controller does not know about. The fact that the altitude curve is visually indistinguishable from the reference for
s—including during the gust—demonstrates the ESO’s ability to absorb both the parametric gravity mismatch and any cross-coupled vertical effects arising from large attitude excursions.
The corresponding attitude responses are shown in
Figure 6. The roll and pitch references
and
are generated by the position-loop reference generator (
34) from the LADRC outputs
and
, and exhibit oscillations of ±10° during the initial transient that decay to within ±5° once the position loop settles. The actual roll and pitch closely track these references with the small phase lag characteristic of a cascade architecture, in which the inner-loop bandwidth
rad/s finitely upper-bounds the achievable response speed. During the gust interval, both
and
shift slightly to counteract the lateral disturbance—the visible mechanism by which the position loop converts horizontal acceleration commands into attitude tilt. The yaw angle remains at zero throughout the manoeuvre as commanded.
4.3. ESO Disturbance Estimation
A defining feature of ADRC is that the LESO’s third state provides a real-time, physically interpretable estimate of the total disturbance acting on each control channel.
Figure 7 collects all six
signals.
Several observations validate the design analysis of
Section 3.2.
Altitude. The estimate converges within roughly one observer time constant ( ms) to a quasi-constant value of approximately m/s2. With , this signal lumps the gravitational acceleration with the mass-mismatch correction; quantitatively, m/s2 is the mass-corrected gravity contribution, with the residual difference captured by the small-tilt cosine residual that activates whenever the vehicle is banked. The smooth, near-constant character of after the takeoff transient confirms that the LESO is converging to the slowly varying disturbance signal predicted by Lemma 1.
Roll and pitch. The estimates and exhibit oscillatory transients during the initial manoeuvre acquisition phase that decay within 5–10 s as the attitude tracking error shrinks. These transients capture the combined effect of gyroscopic coupling , which is most active when angular rates are large during reference acquisition, and the parametric inertia mismatch term in (30). The fact that both estimates settle near zero in steady state indicates that gyroscopic coupling is small once the attitude error is small.
Yaw. The yaw disturbance estimate remains at the numerical floor ( rad/s2), as expected since no yaw command is issued, no yaw torque disturbance is applied, and averages to zero over the symmetric lemniscate. This is a useful sanity check on the LESO implementation: in the absence of any signal, the third state correctly produces near-zero estimates.
Horizontal position. The estimates and display two distinctive features. During the wind-gust interval s (shaded), both estimates rise to nearly constant plateaus consistent with the applied lateral acceleration : m/s2 for x and m/s2 for y, both matching the figure to within . Outside the gust interval, the estimates exhibit oscillations at the lemniscate frequency that capture the trigonometric residual term from (28): this residual is precisely the gap between the exact tilt-induced acceleration and the small-angle inversion used by the reference generator, and it is proportional to the magnitude of the attitude commands.
In all six channels, the LESO output is a continuous, quantitative record of every aggregate disturbance acting on the vehicle. This real-time visibility is unique to the ADRC structure and, as discussed in the introduction, opens a pathway to on-board fault detection and adaptive scheduling.
4.4. Control Effort
Figure 8 shows the four virtual control inputs
generated by the cascaded LADRC.
The total thrust settles to approximately N, in agreement with the hover-thrust requirement N for the true (heavier) vehicle. The fact that the controller delivers the correct hover thrust without ever being told the true mass illustrates the ADRC mechanism directly: has captured the mass-induced gravity offset, and the cancellation produces the appropriate thrust adjustment automatically.
The roll and pitch torques and exhibit initial transients at the millinewton-metre scale during the takeoff and attitude-acquisition phase, then settle to small bounded values that compensate the residual disturbances detected by and . The yaw torque remains at the numerical floor throughout, mirroring the trivially zero yaw disturbance estimate. None of the control signals show evidence of integrator wind-up or saturation chattering, despite the absence of an explicit integrator anywhere in the architecture.
A direct physical check is whether the rotor commands produced by the control allocation (
9) respect the motor saturation limit of the Crazyflie (
RPM, i.e.,
RPM
2). At hover with
N, each rotor carries
N, corresponding to
RPM
2 or
RPM. The peak attitude torques observed in
Figure 8 are
N·m during the takeoff transient, which add
RPM
2 to the two diagonally opposite rotors. The peak per-rotor command therefore satisfies
RPM, about
of the saturation limit. After the takeoff transient, the peak rotor command stays below
RPM, leaving a comfortable
margin. The combined mass-uncertainty and wind-gust scenario therefore does not drive the Crazyflie’s actuators into saturation at any point in the simulation, and the rotor-level behaviour of the closed-loop system is physically realizable.
4.5. Performance Summary and Discussion
Table 4 aggregates the quantitative tracking metrics over the full simulation horizon.
Three points deserve emphasis. First, the controller was given only the nominal Crazyflie mass and inertias as values; no adaptation, parameter identification, or scheduling was performed. The accurate hover-thrust delivery and the close trajectory tracking are entirely consequences of the ESO-based disturbance estimation.
Second, the bandwidth choices in
Table 3 are deliberately conservative, leaving comfortable margin against the IMU noise floor. Increasing
would tighten the disturbance-estimation bound of Lemma 1 at the cost of higher noise amplification—a classical trade-off that the bandwidth-parameterized LADRC makes transparent to the designer.
The absence of integrator wind-up reported in
Table 4 merits a more careful explanation than the phrase “no integrator was used” suggests. Although there is no explicit integrator in the control law (
19), the LESO third state
functions as an integrating disturbance estimator: it accumulates the steady-state imbalance needed to reject
. Wind-up would therefore have manifested as either (i) saturation of the rotor commands, or (ii) unbounded growth of
when the actuator was unable to deliver the requested thrust. To verify that neither occurred, the rotor commands were clipped at
of
in the allocation output to simulate a hard saturation limit, and
was monitored throughout the run; the rotor clip was never triggered, and
remained bounded by the value predicted by Lemma 1. The practical trade-off is that increasing the position bandwidth
would speed up trajectory tracking at the cost of larger reference attitude angles
(
34), which in turn drives the rotor commands closer to saturation. For the configuration of
Table 3, this margin was deliberately set at ∼
the actuator response, leaving aggressive-manoeuvre performance to future work.
Third, although the simulation captures rigid-body dynamics, nonlinear coupling, and external wind faithfully, several real-platform effects are absent: motor–ESC delay, IMU bias drift, battery-voltage sag, and aerodynamic blade-flapping at high airspeeds. Each of these would manifest as additional contributions to the corresponding and would in principle be absorbed by the ESOs, provided their time derivatives remain bounded; experimental validation on a physical Crazyflie is the natural next step in our future work.
4.6. Shortcomings and Limitations
In what follows, we state some limitations of the proposed cascaded LADRC.
Reliance on the boundedness of . Lemma 1 and Theorems 1 and 2 all require to be bounded by some constant M, with the ultimate-error bound scaling as . Disturbances with high-frequency content (e.g., impulsive contact, sharp gust transients, or first-order-discontinuous motor failure) violate this assumption and would degrade the tracking bound proportionally. A higher-order ESO that augments with as an additional state would relax this requirement at the cost of one more tuning gain per channel.
Lack of explicit input-saturation handling. The LADRC laws (
38)–(
40) make no explicit provision for rotor saturation. The motor-RPM check performed above shows that in the present scenario the limits are not reached, but in more aggressive trajectories or under stronger disturbances, anti-windup logic on
would be required to avoid the ESO “learning” a disturbance that the actuators cannot reject.
Cascade decoupling assumes near-symmetric inertia. The bandwidth choices and the cascade separation analysis in Theorem 2 are simplified by and small attitude. On a highly asymmetric or aggressively manoeuvring platform, gyroscopic cross-coupling and the trigonometric residuals in become large and slow, pushing toward the ceiling assumed in Lemma 1.
Sensor-noise amplification. High
shrinks the estimation error in expectation but amplifies measurement noise as
in the third LESO row (
17). On the Crazyflie’s IMU this places an effective ceiling on
in the attitude channels; on a noisier platform, a low-pass-filtered output of
may be needed before feedback cancellation.
Simulation-only validation. The results in
Section 4 are based on high-fidelity simulation; flight tests on a physical Crazyflie are required to confirm that unmodeled effects (motor–ESC nonlinearity, battery sag, IMU bias, blade-flapping) are indeed absorbed within the LESO bandwidth and that the reported margins translate to hardware.
5. Conclusions
This paper presented a cascaded linear ADRC design for quadcopter flight control. The total-disturbance formulation lumps mass uncertainty, gyroscopic coupling, aerodynamic effects, and external forces into a single signal per channel, which the extended state observer estimates in real time from output measurements alone and the controller cancels before a two-parameter PD feedback acts on the residual. This decomposes the six-DOF problem into six independent SISO designs requiring only nominal mass and inertia values.
Simulation on the full nonlinear Crazyflie model under mass uncertainty and a sustained 30 mN lateral wind gust confirmed the expected behaviour: altitude error remains below 1 cm, attitude tracking stays within ±2°, the gust is rejected without visible position deviation, and the six ESO third-state signals provide a real-time, physically interpretable record of every disturbance acting on the vehicle. No re-tuning, gain scheduling, or integrator action is required.
Future work includes hardware validation on the Crazyflie platform, extension of the ESO to estimate rotor-level faults for active fault-tolerant control, and event-triggered implementations to reduce the on-board computational and communication load.