In recent years, vertical take-off and landing (VTOL) drones have garnered significant attention due to their versatility in applications ranging from surveillance to logistics. Among these, tailsitter VTOL drones stand out for their ability to combine the hover capabilities of multirotors with the efficient cruise of fixed-wing aircraft. However, during vertical flight phases, these VTOL drones are highly susceptible to crosswind disturbances, which can cause substantial position deviations and attitude instability. This issue is exacerbated by the large frontal area of the drone’s body, leading to significant lateral forces. In this article, I present a novel trajectory tracking control method designed specifically for tailsitter VTOL drones experiencing time-varying crosswind disturbances. The approach integrates an advanced attitude extraction algorithm that leverages roll freedom to mitigate wind effects, a backstepping-based control law with input saturation handling, and a command filter to address derivative estimation challenges. Through rigorous stability analysis and simulations, I demonstrate that the tracking error can be made arbitrarily small with sufficient filter tuning, ensuring robust performance in challenging wind conditions.

The core challenge in controlling VTOL drones under crosswind lies in the interplay between aerodynamic forces and the drone’s attitude. Traditional control methods often assume bounded disturbances, but for VTOL drones with large surfaces, this assumption may not hold due to thrust limitations. My work addresses this by developing a mathematical model that captures the relationship between crosswind and drone attitude, enabling a proactive reduction of disturbance forces. The VTOL drone is modeled as a rigid body with dynamics described in inertial and body frames. Let $\mathbf{p} \in \mathbb{R}^3$ and $\mathbf{v} \in \mathbb{R}^3$ denote the position and linear velocity in the inertial frame $\{i\}$. The attitude is represented by a unit quaternion $\mathbf{Q} \triangleq (\eta, \mathbf{q}^T)^T$, where $\eta \in \mathbb{R}$ is the scalar part and $\mathbf{q} \in \mathbb{R}^3$ is the vector part, satisfying $\eta^2 + \mathbf{q}^T\mathbf{q} = 1$. The rotation matrix from $\{i\}$ to the body frame $\{b\}$ is $\mathbf{R}(\mathbf{Q}) \in SO(3)$. The dynamics of the VTOL drone are given by:
$$
\dot{\mathbf{p}} = \mathbf{v}, \quad \dot{\mathbf{v}} = g\mathbf{e}_3 – \frac{T}{m}\mathbf{R}(\mathbf{Q})^T\mathbf{e}_3 + \mathbf{z},
$$
where $g$ is gravity acceleration, $T$ is the main thrust along the body axis, $m$ is the mass, and $\mathbf{z}$ is the crosswind disturbance force in $\{i\}$. The rotational dynamics are:
$$
\dot{\mathbf{Q}} = \frac{1}{2} \begin{bmatrix} -\mathbf{q}^T \\ \eta\mathbf{I}_3 + S(\mathbf{q}) \end{bmatrix} \boldsymbol{\omega}, \quad \mathbf{I}\dot{\boldsymbol{\omega}} = \boldsymbol{\tau} – S(\boldsymbol{\omega})\mathbf{I}\boldsymbol{\omega},
$$
with $\boldsymbol{\omega} \in \mathbb{R}^3$ as the angular velocity in $\{b\}$, $\mathbf{I}$ as the inertia matrix, $\boldsymbol{\tau}$ as the control torque, and $S(\cdot)$ denoting the skew-symmetric matrix for cross products.
To model crosswind, let $\mathbf{w} \in \mathbb{R}^3$ be the unit wind direction vector in $\{i\}$ and $K_w \in \mathbb{R}$ the wind speed. The disturbance force $\mathbf{z}$ is decomposed into a dominant component normal to the drone’s body plane and a smaller parallel component. Focusing on the normal force, which arises from wind impact on the flat body surface, we have:
$$
\mathbf{z} \approx K_1 \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1, \quad K_1 = K_a K_w \mathbf{w}^T \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1,
$$
where $K_a = \rho_a S_a$ with $\rho_a$ air density and $S_a$ the body planar area. This shows that $K_1$ depends on the dot product between wind direction and the body plane normal. By adjusting attitude to make $\mathbf{w}^T \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1 \to 0$, the disturbance magnitude $K_1$ can be minimized, which is key to my approach. The wind is assumed time-varying with bounded derivatives: $|K_w| \leq \lambda_K$, $\|\mathbf{w}\| \leq \lambda_w$, and similarly for their first and second derivatives.
The control objective is to track a desired trajectory $\mathbf{p}_d(t)$ with bounded derivatives, despite crosswind. Defining tracking errors $\tilde{\mathbf{p}} = \mathbf{p} – \mathbf{p}_d$ and $\tilde{\mathbf{v}} = \mathbf{v} – \dot{\mathbf{p}}_d$, the error dynamics become:
$$
\dot{\tilde{\mathbf{p}}} = \tilde{\mathbf{v}}, \quad \dot{\tilde{\mathbf{v}}} = \mathbf{F} – \ddot{\mathbf{p}}_d – f(\mathbf{Q}, \mathbf{Q}_d) + K_1 \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1,
$$
where $\mathbf{F} \triangleq g\mathbf{e}_3 – \frac{T_d}{m}\mathbf{R}(\mathbf{Q}_d)^T\mathbf{e}_3$ is an intermediate control input, $T_d$ is the desired thrust, $\mathbf{Q}_d$ is the desired attitude quaternion, and $f(\mathbf{Q}, \mathbf{Q}_d) \triangleq \frac{T}{m}\mathbf{R}(\mathbf{Q})^T\mathbf{e}_3 – \frac{T_d}{m}\mathbf{R}(\mathbf{Q}_d)^T\mathbf{e}_3$. The term $K_1 \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1$ represents crosswind disturbance. The control design involves three steps: (1) design $\mathbf{F}$ for position tracking with thrust saturation, (2) extract $\mathbf{Q}_d$ to reduce $K_1$, and (3) design $\boldsymbol{\tau}$ for attitude tracking.
For position control, I employ a backstepping approach with nested saturation functions to handle thrust bounds. The control law is:
$$
\mathbf{F} = \ddot{\mathbf{p}}_d – \boldsymbol{\sigma}_2(\tilde{\mathbf{v}} + \boldsymbol{\sigma}_1(\tilde{\mathbf{p}})),
$$
where $\boldsymbol{\sigma}_i(\mathbf{x}) = [\sigma_i(x_1), \sigma_i(x_2), \sigma_i(x_3)]^T$ for $i=1,2$, and $\sigma_i(x)$ are smooth saturation functions defined as:
$$
\sigma_i(x) =
\begin{cases}
k_i x & \text{for } |x| \leq l_i, \\
M_i \text{sign}(x) & \text{for } |x| \geq L_i,
\end{cases}
$$
with parameters $k_i, l_i, M_i, L_i > 0$ satisfying $M_i > k_i l_i$ and $L_i > l_i$. These functions ensure that the control input remains within limits, and the desired thrust $T_d = m\|g\mathbf{e}_3 – \mathbf{F}\|$ satisfies $|T_d| \leq \lambda_T$, where $\lambda_T$ is the maximum thrust. The parameters are chosen to meet conditions that guarantee bounded tracking errors.
The novel attitude extraction algorithm computes $\mathbf{Q}_d$ to minimize $K_1$. Starting from a traditional minimum-rotation quaternion $\mathbf{Q}_t$ that aligns the thrust vector as per $\mathbf{F}$, the body plane normal in this attitude is $\mathbf{D}_m = \mathbf{R}(\mathbf{Q}_t)^T\mathbf{e}_1$. The desired normal $\mathbf{D}_n$ is set perpendicular to both wind direction $\mathbf{w}$ and the thrust direction $\mathbf{D}_t = \mathbf{R}(\mathbf{Q}_t)^T\mathbf{e}_3$:
$$
\mathbf{D}_n = \mathbf{w} \times \mathbf{D}_t.
$$
A rotation quaternion $\mathbf{Q}_r$ from $\mathbf{D}_m$ to $\mathbf{D}_n$ is computed, and the final desired attitude is $\mathbf{Q}_d = \mathbf{Q}_r \odot \mathbf{Q}_t$. This ensures $\mathbf{w}^T \mathbf{R}(\mathbf{Q}_d)^T\mathbf{e}_1 = 0$, effectively nullifying the dominant crosswind term when $\mathbf{Q} \to \mathbf{Q}_d$. The desired Euler angles $\boldsymbol{\theta}_d = [\theta_{1d}, \theta_{2d}, \theta_{3d}]^T$ are derived from $\mathbf{Q}_d$, but their derivatives are unknown due to time-varying wind. To address this, a command filter is used:
$$
\dot{\mathbf{c}}_1 = \mathbf{c}_2, \quad \dot{\mathbf{c}}_2 = -2\xi\omega_n \mathbf{c}_2 – \omega_n^2 (\mathbf{c}_1 – \boldsymbol{\theta}_d),
$$
with damping ratio $\xi$ and frequency $\omega_n$. The filter outputs $\boldsymbol{\theta}_c = \mathbf{c}_1$, $\dot{\boldsymbol{\theta}}_c = \mathbf{c}_2$, and $\ddot{\boldsymbol{\theta}}_c = -2\xi\omega_n \mathbf{c}_2 – \omega_n^2 (\mathbf{c}_1 – \boldsymbol{\theta}_d)$, which provide estimates for the desired angular velocity $\boldsymbol{\omega}_c$ and acceleration $\dot{\boldsymbol{\omega}}_c$. The attitude tracking error is defined as $\tilde{\mathbf{Q}} = \mathbf{Q}_c^{-1} \odot \mathbf{Q}$, where $\mathbf{Q}_c$ is the quaternion from $\boldsymbol{\theta}_c$. The error dynamics are:
$$
\dot{\tilde{\mathbf{Q}}} = \frac{1}{2} \begin{bmatrix} -\tilde{\mathbf{q}}^T \\ \tilde{\eta}\mathbf{I}_3 + S(\tilde{\mathbf{q}}) \end{bmatrix} \tilde{\boldsymbol{\omega}}, \quad \mathbf{I}\dot{\tilde{\boldsymbol{\omega}}} = \boldsymbol{\tau} – S(\boldsymbol{\omega})\mathbf{I}\boldsymbol{\omega},
$$
with $\tilde{\boldsymbol{\omega}} = \boldsymbol{\omega} – \mathbf{R}(\tilde{\mathbf{Q}})\boldsymbol{\omega}_c$. A PD-plus-feedforward control law is designed:
$$
\boldsymbol{\tau} = -k_p \tilde{\mathbf{q}} – k_v \tilde{\boldsymbol{\omega}} + \mathbf{R}(\tilde{\mathbf{Q}})\boldsymbol{\omega}_c \times \mathbf{I}\mathbf{R}(\tilde{\mathbf{Q}})\boldsymbol{\omega}_c + \mathbf{I}\mathbf{R}(\tilde{\mathbf{Q}})\dot{\boldsymbol{\omega}}_c,
$$
where $k_p, k_v > 0$ are gains. This ensures asymptotic attitude tracking.
Stability analysis shows that the overall closed-loop system achieves bounded position and velocity tracking errors. Key lemmas and theorems establish that with sufficiently high filter frequency $\omega_n$, the errors can be made arbitrarily small. The proof leverages input-to-state stability properties and the fact that the disturbance term $K_1 \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1$ diminishes due to the attitude extraction algorithm. Specifically, Theorem 1 states that if the combined disturbance $\| -f(\mathbf{Q}, \mathbf{Q}_d) + K_1 \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1 \|$ is bounded by a small constant $\epsilon$, then tracking errors are ultimately bounded by $O(\epsilon)$. Theorem 2 extends this, proving that with large $\omega_n$, the bound reduces to $O(1/\omega_n)$, highlighting the effectiveness of the command filter.
To validate the method, I conducted simulations in SIMULINK using parameters from a realistic tailsitter VTOL drone. The VTOL drone had mass $m = 28.8\, \text{kg}$, maximum thrust $\lambda_T = 400\, \text{N}$, inertia matrix $\mathbf{I} = \text{diag}(20, 17, 15)\, \text{kg} \cdot \text{m}^2$, and body area $S_a = 3.25\, \text{m}^2$. Crosswind was modeled as $K_w(t) = 0.5\sin(0.2t)\, \text{m/s}$ and $\mathbf{w}(t) = [\cos(0.01t+1), \sin(0.01t+1), 0]^T$. The desired trajectory was $\mathbf{p}_d(t) = [\cos(0.2t+2), \sin(0.2t+2.4), 0.2t]^T\, \text{m}$. Controller parameters included saturation function bounds, gains $k_1=0.66$, $k_2=0.86$, $k_p=200$, $k_v=300$, and filter $\xi=0.7$, $\omega_n=100$. The results demonstrated rapid convergence of tracking errors, with position errors reducing to near zero within seconds. A comparison with traditional attitude extraction showed significantly better performance under crosswind, as summarized in Table 1.
| Parameter | Value | Description |
|---|---|---|
| Mass ($m$) | 28.8 kg | VTOL drone mass |
| Max Thrust ($\lambda_T$) | 400 N | Maximum engine thrust |
| Body Area ($S_a$) | 3.25 m² | Frontal area for wind impact |
| Wind Speed ($K_w$) | $0.5\sin(0.2t)$ m/s | Time-varying crosswind |
| Control Gain $k_p$ | 200 | Attitude proportional gain |
| Filter Frequency ($\omega_n$) | 100 rad/s | Command filter frequency |
| Position Error Bound | $O(10^{-3})$ m | Steady-state tracking error |
The simulation outcomes underscore the efficacy of the proposed control scheme for VTOL drones. The novel attitude extraction algorithm successfully reduced crosswind forces by utilizing roll freedom, while the nested saturation handled thrust limits without compromising stability. The command filter mitigated derivative estimation issues, enabling smooth attitude tracking. These elements collectively ensure that the VTOL drone can operate reliably in environments with unpredictable wind patterns, a critical requirement for real-world applications.
In terms of broader implications, this work advances the control of VTOL drones by addressing a common yet challenging scenario. Traditional methods often rely on robust control with conservative bounds, but my approach proactively cancels disturbances through attitude adjustment. This is particularly beneficial for tailsitter VTOL drones, which have unique aerodynamic characteristics. The integration of saturation functions also provides a practical solution for input constraints, common in physical systems. Future research could extend this framework to more complex wind models, perhaps incorporating turbulence or gust effects, and validate it with experimental tests on actual VTOL drone platforms.
To further illustrate the mathematical formulation, consider the key equations in a consolidated form. The overall closed-loop dynamics for the VTOL drone can be summarized as:
$$
\begin{aligned}
\dot{\tilde{\mathbf{p}}} &= \tilde{\mathbf{v}}, \\
\dot{\tilde{\mathbf{v}}} &= \ddot{\mathbf{p}}_d – \boldsymbol{\sigma}_2(\tilde{\mathbf{v}} + \boldsymbol{\sigma}_1(\tilde{\mathbf{p}})) – \ddot{\mathbf{p}}_d – f(\mathbf{Q}, \mathbf{Q}_d) + K_1 \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1, \\
\dot{\tilde{\mathbf{Q}}} &= \frac{1}{2} \begin{bmatrix} -\tilde{\mathbf{q}}^T \\ \tilde{\eta}\mathbf{I}_3 + S(\tilde{\mathbf{q}}) \end{bmatrix} \tilde{\boldsymbol{\omega}}, \\
\mathbf{I}\dot{\tilde{\boldsymbol{\omega}}} &= -k_p \tilde{\mathbf{q}} – k_v \tilde{\boldsymbol{\omega}} + \mathbf{R}(\tilde{\mathbf{Q}})\boldsymbol{\omega}_c \times \mathbf{I}\mathbf{R}(\tilde{\mathbf{Q}})\boldsymbol{\omega}_c + \mathbf{I}\mathbf{R}(\tilde{\mathbf{Q}})\dot{\boldsymbol{\omega}}_c – S(\boldsymbol{\omega})\mathbf{I}\boldsymbol{\omega}.
\end{aligned}
$$
The stability hinges on the smallness of $f(\mathbf{Q}, \mathbf{Q}_d)$ and $K_1 \mathbf{R}(\mathbf{Q})^T\mathbf{e}_1$, achieved through attitude tracking and the extraction algorithm. A Lyapunov analysis confirms global asymptotic stability for the attitude loop and ultimate boundedness for the position loop. The command filter ensures that $\boldsymbol{\theta}_c \to \boldsymbol{\theta}_d$ as $\omega_n \to \infty$, making the overall system robust to wind variations.
In conclusion, the trajectory tracking control method presented here offers a comprehensive solution for VTOL drones facing time-varying crosswind disturbances. By innovatively combining attitude extraction, saturation-based control, and filtering techniques, it achieves precise tracking while respecting physical limits. This contributes to the growing body of work on autonomous VTOL drone navigation, paving the way for more resilient and adaptable systems. The simulation results validate the theoretical developments, highlighting its potential for deployment in challenging environments. As VTOL drone technology continues to evolve, such advanced control strategies will be essential for unlocking their full capabilities.
