The control of unmanned aerial vehicles, specifically quadrotor drones, represents a significant area of research due to their unique capabilities such as vertical take-off and landing (VTOL) and hovering. These attributes make them invaluable for a wide range of civilian and military applications, including surveillance, inspection, delivery, and search-and-rescue operations. However, the practical deployment of quadrotor drones in complex missions is often hindered by their inherent under-actuated and strongly coupled dynamics. The system has six degrees of freedom (position and orientation in 3D space) but only four independent control inputs (the thrusts of the four rotors). This under-actuation necessitates a hierarchical control strategy where the attitude is controlled to achieve desired translational motion. Furthermore, the dynamics are highly nonlinear and susceptible to various uncertainties and disturbances.
One particularly challenging scenario is when the quadrotor drone operates with a time-varying payload. This is common in missions like aerial cargo transport, where payloads are picked up or released during flight. The sudden change in mass and potentially the center of gravity introduces significant model uncertainties. Coupled with external disturbances such as wind gusts, these factors can severely degrade flight performance and tracking accuracy, potentially leading to instability. Therefore, designing a robust trajectory tracking controller that can adapt to mass variations and reject external disturbances is crucial for the reliable operation of quadrotor drones in real-world conditions.

Many control strategies have been explored for quadrotor drones. Early approaches relied heavily on linear controllers like PID, applied to linearized models around hover conditions. While effective for stabilization and simple maneuvers, their performance degrades under aggressive trajectories or significant perturbations. More advanced nonlinear control techniques have been investigated to address these limitations. Sliding mode control (SMC) is popular for its robustness to matched uncertainties. Backstepping control offers a systematic way to handle nonlinearities. However, designing controllers that simultaneously handle under-actuation, strong coupling, parameter variation (like mass), and external disturbances remains an active research topic.
This article presents a composite control strategy for trajectory tracking of a quadrotor drone subject to time-varying payloads and external disturbances. The design adopts a widely used inner-outer loop control structure that exploits the time-scale separation between the fast rotational dynamics and the slower translational dynamics. For the outer loop, responsible for position and trajectory tracking, an adaptive sliding mode controller (ASMC) is developed. This controller not only provides robustness but also incorporates an adaptive law to estimate the total mass of the quadrotor drone online, including its payload. For the inner attitude control loop, an Active Disturbance Rejection Control (ADRC) technique is employed. ADRC is well-suited for this application as it treats the combined effects of model coupling, unmodeled dynamics, and external torque disturbances as a “total disturbance,” which is estimated and compensated in real-time by an Extended State Observer (ESO). The synergy of ASMC and ADRC aims to achieve precise trajectory tracking for the quadrotor drone despite payload changes and environmental disturbances.
Mathematical Modeling of the Quadrotor Drone
To design an effective controller, a realistic mathematical model of the quadrotor drone dynamics is essential. We define two coordinate frames: the inertial frame $\{I\}$ (earth-fixed) and the body-fixed frame $\{B\}$ attached to the quadrotor drone’s center of mass. The state of the quadrotor drone is described by its position $\boldsymbol{\xi} = [X, Y, Z]^T$ in $\{I\}$, its orientation defined by Euler angles $\boldsymbol{\eta} = [\phi, \theta, \psi]^T$ (roll, pitch, yaw), its linear velocity $\mathbf{v} = [\dot{X}, \dot{Y}, \dot{Z}]^T$, and its angular velocity $\boldsymbol{\omega} = [p, q, r]^T$ expressed in $\{B\}$.
The kinematic equations relate the time derivatives of position and orientation to the velocities:
$$
\begin{align}
\dot{\boldsymbol{\xi}} &= \mathbf{v} \\
\dot{\boldsymbol{\eta}} &= \mathbf{W}(\boldsymbol{\eta}) \boldsymbol{\omega}
\end{align}
$$
where the transformation matrix $\mathbf{W}(\boldsymbol{\eta})$ is given by:
$$
\mathbf{W}(\boldsymbol{\eta}) =
\begin{bmatrix}
1 & \sin\phi \tan\theta & \cos\phi \tan\theta \\
0 & \cos\phi & -\sin\phi \\
0 & \sin\phi / \cos\theta & \cos\phi / \cos\theta
\end{bmatrix}
$$
The dynamic equations are derived using the Newton-Euler formalism. The translational dynamics, considering a time-varying total mass $m(t)$ and external force disturbance $\mathbf{F}_{ext}$, are:
$$
m(t) \dot{\mathbf{v}} = -m(t)g \mathbf{e}_3 + \mathbf{F}_{ext} + T \mathbf{R}(\boldsymbol{\eta}) \mathbf{e}_3
$$
Here, $g$ is gravitational acceleration, $\mathbf{e}_3 = [0,0,1]^T$, $T$ is the total thrust generated by the four rotors, and $\mathbf{R}(\boldsymbol{\eta})$ is the rotation matrix from $\{B\}$ to $\{I\}$:
$$
\mathbf{R}(\boldsymbol{\eta}) = \begin{bmatrix}
c_\theta c_\psi & s_\phi s_\theta c_\psi – c_\phi s_\psi & c_\phi s_\theta c_\psi + s_\phi s_\psi \\
c_\theta s_\psi & s_\phi s_\theta s_\psi + c_\phi c_\psi & c_\phi s_\theta s_\psi – s_\phi c_\psi \\
-s_\theta & s_\phi c_\theta & c_\phi c_\theta
\end{bmatrix}
$$
where $c_x = \cos(x)$ and $s_x = \sin(x)$. The total thrust $T$ is a scalar control input related to the squares of rotor speeds $\Omega_i$: $T = b \sum_{i=1}^{4} \Omega_i^2$, where $b$ is the thrust coefficient.
The rotational dynamics are described by:
$$
\mathbf{I} \dot{\boldsymbol{\omega}} = -\boldsymbol{\omega} \times \mathbf{I} \boldsymbol{\omega} – \mathbf{G}_a + \boldsymbol{\tau}_{ext} + \boldsymbol{\tau}
$$
where $\mathbf{I}$ is the inertia matrix (which can also vary with payload), $\mathbf{G}_a$ represents gyroscopic moments, $\boldsymbol{\tau}_{ext}$ is an external torque disturbance, and $\boldsymbol{\tau} = [\tau_\phi, \tau_\theta, \tau_\psi]^T$ is the control torque vector. The control torques are also functions of rotor speeds:
$$
\begin{aligned}
\tau_\phi &= l b (\Omega_4^2 – \Omega_2^2) \\
\tau_\theta &= l b (\Omega_3^2 – \Omega_1^2) \\
\tau_\psi &= d (\Omega_2^2 + \Omega_4^2 – \Omega_1^2 – \Omega_3^2)
\end{aligned}
$$
with $l$ being the arm length and $d$ the drag coefficient. The equations clearly show the under-actuated nature: the four control inputs $(T, \tau_\phi, \tau_\theta, \tau_\psi)$ must control the six output states $(\boldsymbol{\xi}, \boldsymbol{\eta})$. The coupling is evident as the thrust direction, governed by $\mathbf{R}(\boldsymbol{\eta})$, links attitude control to translational motion.
Controller Design Methodology
The proposed control architecture for the quadrotor drone is based on a cascaded inner-outer loop structure, as depicted in the conceptual diagram. This structure leverages the natural time-scale separation, where the inner attitude loop is designed to be significantly faster than the outer position loop. The outer loop generates a desired total thrust $T_d$ and desired attitude angles $(\phi_d, \theta_d)$ based on position and trajectory errors. The inner loop then tracks these desired attitude angles and the desired yaw angle $\psi_d$ by calculating the required control torques $\boldsymbol{\tau}$.
Outer Loop: Adaptive Sliding Mode Control (ASMC)
The outer loop controls the translational dynamics of the quadrotor drone. Combining the kinematic and translational dynamic equations yields:
$$
m(t) \ddot{\boldsymbol{\xi}} = -m(t)g \mathbf{e}_3 + T \mathbf{R}(\boldsymbol{\eta}) \mathbf{e}_3 + \boldsymbol{\Delta}_1
$$
where $\boldsymbol{\Delta}_1 = \mathbf{F}_{ext}$ aggregates external force disturbances. For trajectory tracking, we define a desired trajectory $\boldsymbol{\xi}_d(t)$, $\dot{\boldsymbol{\xi}}_d(t)$, and $\ddot{\boldsymbol{\xi}}_d(t)$. The tracking error is $\mathbf{e}_\xi = \boldsymbol{\xi} – \boldsymbol{\xi}_d$. A sliding surface $\mathbf{s} \in \mathbb{R}^3$ is defined to shape the error dynamics:
$$
\mathbf{s} = \dot{\mathbf{e}}_\xi + \boldsymbol{\Lambda} \mathbf{e}_\xi
$$
where $\boldsymbol{\Lambda} = \text{diag}(\lambda_1, \lambda_2, \lambda_3)$ is a positive definite diagonal matrix. Differentiating the sliding surface and substituting the dynamics gives:
$$
\dot{\mathbf{s}} = \frac{T \mathbf{R}(\boldsymbol{\eta}) \mathbf{e}_3 + \boldsymbol{\Delta}_1}{m(t)} – g\mathbf{e}_3 – \ddot{\boldsymbol{\xi}}_d + \boldsymbol{\Lambda} \dot{\mathbf{e}}_\xi
$$
We define a virtual control input $\mathbf{U}_1 = T \mathbf{R}(\boldsymbol{\eta}) \mathbf{e}_3$. The control objective is to drive $\mathbf{s}$ to zero. To handle the unknown time-varying mass $m(t)$ and disturbance $\boldsymbol{\Delta}_1$, we design $\mathbf{U}_1$ using estimates $\hat{m}$ and $\hat{\boldsymbol{\Delta}}_1$:
$$
\mathbf{U}_1 = \hat{m} \bar{\mathbf{U}}_1 – \hat{\boldsymbol{\Delta}}_1
$$
where the nominal control $\bar{\mathbf{U}}_1$ is chosen as:
$$
\bar{\mathbf{U}}_1 = g\mathbf{e}_3 + \ddot{\boldsymbol{\xi}}_d – \boldsymbol{\Lambda} \dot{\mathbf{e}}_\xi – \mathbf{K} \mathbf{s}
$$
with $\mathbf{K} = \text{diag}(c_1, c_2, c_3) > 0$. Substituting this control law into the $\dot{\mathbf{s}}$ dynamics leads to a closed-loop form. To ensure stability and convergence, we select adaptive laws for the estimates. Considering a Lyapunov function candidate $V_1 = \frac{1}{2} \mathbf{s}^T \mathbf{s} + \frac{1}{2m} \tilde{\boldsymbol{\Delta}}_1^T \boldsymbol{\Gamma}_1^{-1} \tilde{\boldsymbol{\Delta}}_1 + \frac{1}{2 m \gamma_2} \tilde{m}^2$, where $\tilde{\boldsymbol{\Delta}}_1 = \boldsymbol{\Delta}_1 – \hat{\boldsymbol{\Delta}}_1$ and $\tilde{m} = m – \hat{m}$, its derivative can be made negative semi-definite with the following adaptation rules:
$$
\begin{aligned}
\dot{\hat{\boldsymbol{\Delta}}}_1 &= \boldsymbol{\Gamma}_1 \mathbf{s} \\
\dot{\hat{m}} &= \text{Proj}_{\hat{m}} \left( -\gamma_2 \mathbf{s}^T \bar{\mathbf{U}}_1 \right)
\end{aligned}
$$
where $\boldsymbol{\Gamma}_1 > 0$ and $\gamma_2 > 0$ are adaptation gains. The projection operator $\text{Proj}$ is used to bound the mass estimate within known physical limits $[m_{\min}, m_{\max}]$, ensuring robustness during payload pick-up/drop-off transients. With these laws, one can show $\dot{V}_1 \leq -\mathbf{s}^T \mathbf{K} \mathbf{s} \leq 0$, guaranteeing the boundedness of all signals and the convergence of the sliding variable $\mathbf{s}$ to zero, implying trajectory tracking.
From the computed $\mathbf{U}_1 = [U_{1x}, U_{1y}, U_{1z}]^T$, the desired thrust $T_d$ and the desired roll/pitch angles $(\phi_d, \theta_d)$ for the inner loop can be extracted, assuming yaw $\psi_d$ is given separately:
$$
\begin{aligned}
T_d &= \frac{U_{1z}}{\cos\phi_d \cos\theta_d} \\
\phi_d &= \arctan\left( \cos\theta_d \cdot \frac{U_{1x} \sin\psi_d – U_{1y} \cos\psi_d}{U_{1z}} \right) \\
\theta_d &= \arctan\left( \frac{U_{1x} \cos\psi_d + U_{1y} \sin\psi_d}{U_{1z}} \right)
\end{aligned}
$$
Inner Loop: Active Disturbance Rejection Control (ADRC)
The inner loop’s task is to ensure the quadrotor drone’s attitude $\boldsymbol{\eta}$ tracks the desired angles $\boldsymbol{\eta}_d = [\phi_d, \theta_d, \psi_d]^T$ generated by the outer loop. The attitude dynamics are rewritten in a simplified form suitable for ADRC design. Differentiating the kinematic equation $\dot{\boldsymbol{\eta}} = \mathbf{W}(\boldsymbol{\eta}) \boldsymbol{\omega}$ and substituting the rotational dynamics yields a second-order system for each Euler angle channel (index $i$ for $\phi, \theta, \psi$):
$$
\ddot{\eta}_i = f_i(\boldsymbol{\eta}, \boldsymbol{\omega}) + b_{0i} \tau_i + d_i(t)
$$
Here, $f_i(\cdot)$ represents the known nominal coupling and nonlinear terms, $b_{0i}$ is a known approximate control gain (e.g., based on nominal inertia), $\tau_i$ is the respective control torque, and $d_i(t)$ is the “total disturbance” aggregating all uncertain terms: model errors due to inertia changes, gyroscopic effects, external torques $\tau_{ext}$, and coupling from other channels. The core idea of ADRC is to estimate and cancel this total disturbance $d_i(t)$ in real-time.
For each decoupled channel, a third-order Extended State Observer (ESO) is designed. It treats the total disturbance as an extended state $x_{3i} = d_i$. The plant model for the ESO is:
$$
\begin{aligned}
\dot{x}_{1i} &= x_{2i} \\
\dot{x}_{2i} &= x_{3i} + b_{0i} \tau_i \\
\dot{x}_{3i} &= h_i(t) \\
y_i &= x_{1i}
\end{aligned}
$$
where $x_{1i} = \eta_i$, $x_{2i} = \dot{\eta}_i$, and $h_i(t)$ is the unknown derivative of the disturbance. A linear or nonlinear ESO can be constructed to estimate these states. A common linear ESO form is:
$$
\begin{aligned}
e_i &= z_{1i} – \eta_i \\
\dot{z}_{1i} &= z_{2i} – \beta_{1i} e_i \\
\dot{z}_{2i} &= z_{3i} – \beta_{2i} e_i + b_{0i} \tau_i \\
\dot{z}_{3i} &= -\beta_{3i} e_i
\end{aligned}
$$
The observer gains $\beta_{1i}, \beta_{2i}, \beta_{3i}$ are chosen to place all poles of the observer characteristic polynomial $s^3 + \beta_{1i} s^2 + \beta_{2i} s + \beta_{3i}$ in the left-half plane, typically as $(s + \omega_o)^3$, where $\omega_o$ is the observer bandwidth. With properly tuned gains, the estimates converge: $z_{1i} \rightarrow \eta_i$, $z_{2i} \rightarrow \dot{\eta}_i$, and crucially, $z_{3i} \rightarrow d_i(t)$.
Using these estimates, the control law for each channel is designed as:
$$
\tau_i = \frac{-z_{3i} + u_{0i}}{b_{0i}}
$$
This actively cancels the estimated total disturbance. The remaining control signal $u_{0i}$ is designed for setpoint tracking. A simple but effective choice is a proportional-derivative (PD) controller based on the ESO’s state estimates:
$$
u_{0i} = k_{pi}(\eta_{d,i} – z_{1i}) + k_{di}(\dot{\eta}_{d,i} – z_{2i})
$$
where $\dot{\eta}_{d,i}$ can be obtained from a tracking differentiator (TD), another component of the ADRC framework that provides a smooth estimate of the derivative of the desired signal. The combined control law simplifies the compensated plant to approximately $\ddot{\eta}_i \approx u_{0i}$, which is easy to control with linear methods. This decouples the channels and robustifies the inner loop of the quadrotor drone against model variations and disturbances.
Simulation Analysis and Performance Evaluation
To validate the proposed composite adaptive sliding mode and ADRC (ASMC-ADRC) controller for the quadrotor drone, numerical simulations were conducted under challenging conditions involving payload changes and persistent external disturbances. The quadrotor drone parameters for an empty state are listed in the table below.
| Parameter | Symbol | Value |
|---|---|---|
| Nominal Mass | $m_0$ | 0.875 kg |
| Moment of Inertia (xx/yy) | $I_{xx}, I_{yy}$ | 9.506e-3 kg·m² |
| Moment of Inertia (zz) | $I_{zz}$ | 1.658e-2 kg·m² |
| Thrust Coefficient | $b$ | 1.079e-5 N·s²/rad² |
| Drag Coefficient | $d$ | 1.899e-7 N·m·s²/rad² |
| Rotor Inertia | $J_r$ | 6.0e-5 kg·m² |
| Arm Length | $l$ | 0.225 m |
The controller parameters were tuned for performance and robustness. For the outer ASMC: $\boldsymbol{\Lambda} = \text{diag}(0.1, 0.2, 2.3)$, $\mathbf{K} = \text{diag}(6.3, 6.1, 3.9)$, $\boldsymbol{\Gamma}_1 = \text{diag}(0.7, 0.7, 0.4)$, $\gamma_2 = 0.1$, with mass bounds $[0.875, 5.0]$ kg. For the inner ADRC loops, a bandwidth parameterization was used. The observer bandwidth $\omega_o$ was set to 50-70 rad/s, and the controller bandwidth $\omega_c$ was set to 15-20 rad/s for the roll and pitch channels, and slightly different for yaw.
Scenario: The quadrotor drone starts from the origin at hover. The desired trajectory is to take off vertically to Z = 2 m, then follow a helical path in 3D space defined by $X_d(t) = 2\sin(0.2t)$, $Y_d(t) = 2\cos(0.2t)$, $Z_d(t) = 2 + 0.05t$, with a constant desired yaw $\psi_d = 0$. A persistent wind-like disturbance force $\mathbf{F}_{ext} = [\sin(0.1t), \sin(0.1t), \sin(0.1t)]$ N and disturbance torque $\boldsymbol{\tau}_{ext} = [0.3\sin(0.1t), 0.3\sin(0.1t), 0.5\sin(0.1t)]$ N·m are applied. To simulate a cargo mission, the quadrotor drone’s mass changes abruptly: it starts with a 3 kg payload. At t=30s, it releases 1.5 kg. At t=55s, it picks up a 1 kg payload. Finally, at t=80s, it releases the remaining 2.5 kg payload.
Results and Discussion: The simulation results demonstrate the effectiveness of the proposed control scheme for the quadrotor drone.
- Trajectory Tracking: The quadrotor drone successfully tracks the complex helical reference path despite the disturbances and mass variations. The position errors remain bounded and small. The vertical take-off and transition to the helical path are smooth.
- Mass Adaptation: The adaptive law in the outer loop successfully estimates the changing total mass. The estimate $\hat{m}$ reacts to each payload change, tracking the step changes in actual mass $m(t)$. The use of the projection operator keeps the estimate within the predefined bounds. The bounded estimation error contributes to the robustness of the sliding mode controller.
- Disturbance Rejection: The ADRC-based inner loop effectively maintains attitude stability. The ESOs accurately estimate and compensate for the total disturbances stemming from both the external torque disturbances and the internal coupling effects exacerbated by the outer loop’s commands and mass changes. The attitude tracking errors for roll, pitch, and yaw are minimal.
- Control Signals: The total thrust $T$ and control torques $\boldsymbol{\tau}$ show aggressive but feasible responses during mass transition events, counteracting the sudden change in dynamics. The control activity also reflects the ongoing compensation for the sinusoidal disturbances.
The performance can be quantitatively summarized in the following table, showing maximum absolute tracking errors during steady-state tracking phases (excluding the transient moments of mass change):
| Performance Metric | X Error | Y Error | Z Error | Attitude Error |
|---|---|---|---|---|
| Max Steady-State Error | < 0.08 m | < 0.08 m | < 0.05 m | < 0.5° |
These results confirm that the integrated ASMC-ADRC strategy provides a robust solution for trajectory tracking of a quadrotor drone operating under realistic conditions of payload variation and environmental disturbances. The outer loop’s adaptation handles large-scale parameter uncertainty (mass), while the inner loop’s disturbance estimation and rejection handle unmodeled dynamics, coupling, and external perturbations.
Conclusion and Future Work
This article has addressed the challenging problem of accurate trajectory tracking for a quadrotor drone subject to time-varying payloads and external disturbances. The proposed solution leverages a dual-degree-of-freedom robust control architecture. An adaptive sliding mode controller forms the outer loop, ensuring trajectory tracking for the quadrotor drone’s position while actively estimating the total mass online. This adaptation is crucial for handling the significant model uncertainty introduced by payload pick-up and release. For the inner attitude loop, Active Disturbance Rejection Control was employed. ADRC’s strength lies in its ability to estimate and cancel the “total disturbance” – a lumped term encompassing model inaccuracies, inter-axis coupling, gyroscopic effects, and external torques – without requiring a precise dynamic model. This makes the quadrotor drone’s attitude control highly robust.
The simulation studies under a demanding scenario with sinusoidal force/torque disturbances and multiple abrupt payload changes validated the design. The quadrotor drone maintained precise tracking of a 3D helical path, demonstrating the controller’s effectiveness, adaptability, and strong disturbance rejection capabilities. The combination of adaptation for low-frequency parametric changes (mass) and disturbance estimation for broader-spectrum uncertainties proves to be a powerful paradigm for controlling quadrotor drones in practical, variable-condition environments.
Future work will focus on several extensions. Firstly, experimental validation on a physical quadrotor drone platform is essential to test the controller’s performance with real-world noise, actuator saturation, and communication delays. Secondly, the adaptation mechanism could be extended to estimate other varying parameters, such as the inertia matrix, especially if the payload significantly shifts the center of gravity. Thirdly, investigating the integration of this control framework with higher-level path planning algorithms for fully autonomous quadrotor drone missions in dynamic environments would be a logical next step. Finally, optimizing the tuning process for the multiple controller and observer parameters (ASMC gains, ADRC bandwidths) using systematic or learning-based methods could improve accessibility and performance.
