In recent years, unmanned systems, particularly quadrotor UAVs, have gained significant attention in military and industrial applications due to their agility, versatility, and ability to operate in challenging environments. These systems are increasingly employed for tasks such as surveillance, reconnaissance, and environmental monitoring. One emerging application involves using quadrotor UAVs to track ground vehicles while providing illumination in scenarios like night-time operations, rugged terrains, or emergency response. This paper explores a model predictive control (MPC) approach to address the tracking and illumination problem, where a quadrotor must follow a ground vehicle and use an onboard light source to illuminate a specific area ahead of the vehicle. The integration of physical constraints related to illumination into the optimization framework ensures stable and efficient performance, enhancing the practicality of quadrotor-based systems in real-world missions.
The quadrotor’s dynamics are inherently nonlinear and coupled, making control design complex. By leveraging MPC, we can account for future system behavior and handle constraints directly, leading to robust tracking and illumination. This work formulates the problem as a linear system model, derives illumination-based constraints, and solves the optimization problem online. Simulation results demonstrate the effectiveness of the proposed method, highlighting improvements in energy efficiency and illumination stability compared to unconstrained approaches. The following sections detail the quadrotor dynamics, state-space representation, MPC formulation, and simulation outcomes, providing a comprehensive framework for quadrotor UAV applications in tracking and illumination tasks.
Quadrotor UAV Dynamic Model
The quadrotor UAV is a versatile aerial vehicle characterized by its four rotors, which generate lift and control moments. Understanding its dynamics is crucial for designing effective control strategies. The quadrotor’s motion is governed by the forces and torques produced by the rotors, and its behavior can be described using Newton-Euler equations. In this section, we derive the dynamic model by considering the quadrotor as a rigid body and defining appropriate coordinate systems.
The total lift and torque forces generated by the rotors are given by:
$$ \begin{bmatrix} T \\ \tau_x \\ \tau_y \\ \tau_z \end{bmatrix} = \begin{bmatrix} b(\omega_1^2 + \omega_2^2 + \omega_3^2 + \omega_4^2) \\ bl(-\omega_2^2 + \omega_4^2) \\ bl(-\omega_1^2 + \omega_3^2) \\ d(-\omega_1^2 + \omega_2^2 – \omega_3^2 + \omega_4^2) \end{bmatrix} $$
where \( T \) is the total thrust, \( \tau_x, \tau_y, \tau_z \) are the torques along the body axes, \( b \) is the thrust coefficient, \( d \) is the drag coefficient, \( \omega_i \) is the angular velocity of rotor \( i \), and \( l \) is the arm length of the quadrotor. This equation forms the basis for control input calculations.
To describe the quadrotor’s orientation, we define two coordinate systems: the Earth-fixed inertial frame \( O_e-x_e y_e z_e \) and the body-fixed frame \( O_b-x_b y_b z_b \). The rotation matrix \( R \in SO(3) \) transforms vectors from the body frame to the inertial frame and is expressed using roll (\( \phi \)), pitch (\( \theta \)), and yaw (\( \psi \)) angles:
$$ R = R(\phi) R(\theta) R(\psi) = \begin{bmatrix} C_\theta C_\psi & S_\theta S_\phi C_\psi – C_\phi S_\psi & S_\theta C_\phi C_\psi + S_\phi S_\psi \\ C_\theta S_\psi & S_\theta S_\phi S_\psi + C_\phi C_\psi & S_\theta C_\phi S_\psi – S_\phi C_\psi \\ -S_\theta & C_\theta S_\phi & C_\theta C_\phi \end{bmatrix} $$
where \( C_\cdot \) and \( S_\cdot \) denote cosine and sine functions, respectively. This matrix is essential for translating forces and moments between frames.
Using Newton-Euler principles, the equations of motion for the quadrotor are derived. The force equation in the inertial frame accounts for thrust, gravity, and aerodynamic drag:
$$ F_e = m \dot{v}_e + \Omega \times v_e $$
where \( m \) is the mass, \( v_e = [u, v, w]^T \) is the linear velocity in the inertial frame, and \( \Omega \) is the angular velocity. The total force \( F_b \) in the body frame includes gravitational force \( F_G = [0, 0, mg]^T \), thrust force \( F_T = [0, 0, -T]^T \), and drag force \( F_D = K_d \zeta \), with \( \zeta = [x, y, z]^T \) being the position vector and \( K_d = \text{diag}(k_{dx}, k_{dy}, k_{dz}) \) the drag coefficient matrix. Thus, the linear acceleration equations are:
$$ \begin{aligned}
\ddot{x} &= \frac{1}{m} \left[ -(S_\theta C_\phi C_\psi + S_\phi S_\psi) T – k_{dx} \dot{x} \right] \\
\ddot{y} &= \frac{1}{m} \left[ -(S_\theta C_\phi S_\psi – S_\phi C_\psi) T – k_{dy} \dot{y} \right] \\
\ddot{z} &= \frac{1}{m} \left[ -(C_\theta C_\phi) T – k_{dz} \dot{z} \right] + g
\end{aligned} $$
For angular motion, the torque equation is:
$$ M_b = J \dot{\Omega} + \Omega \times J \Omega $$
where \( J = \text{diag}(I_{xx}, I_{yy}, I_{zz}) \) is the inertia matrix. The external torques include contributions from rotor thrusts and gyroscopic effects. Simplifying by neglecting small terms like products of angular rates, the angular acceleration equations become:
$$ \begin{aligned}
\dot{p} &= \frac{1}{I_{xx}} \left[ (I_{yy} – I_{zz}) q r – J_r q \omega_G + \tau_x \right] \\
\dot{q} &= \frac{1}{I_{yy}} \left[ (I_{zz} – I_{xx}) p r + J_r p \omega_G + \tau_y \right] \\
\dot{r} &= \frac{1}{I_{zz}} \left[ (I_{xx} – I_{yy}) p q + \tau_z \right]
\end{aligned} $$
where \( p, q, r \) are the body-frame angular rates, \( J_r \) is the rotor inertia, and \( \omega_G = -\omega_1 + \omega_2 – \omega_3 + \omega_4 \). For control purposes, we define the control inputs as:
$$ u = \begin{bmatrix} u_1 \\ u_2 \\ u_3 \\ u_4 \end{bmatrix} = \begin{bmatrix} T \\ \tau_x \\ \tau_y \\ \tau_z \end{bmatrix} $$
leading to the simplified dynamic model:
$$ \begin{aligned}
\ddot{x} &= \frac{1}{m} \left[ -(S_\theta C_\phi C_\psi + S_\phi S_\psi) u_1 – k_{dx} \dot{x} \right] \\
\ddot{y} &= \frac{1}{m} \left[ -(S_\theta C_\phi S_\psi – S_\phi C_\psi) u_1 – k_{dy} \dot{y} \right] \\
\ddot{z} &= \frac{1}{m} \left[ -(C_\theta C_\phi) u_1 – k_{dz} \dot{z} \right] + g \\
\ddot{\phi} &= \frac{1}{I_{xx}} u_2 \\
\ddot{\theta} &= \frac{1}{I_{yy}} u_3 \\
\ddot{\psi} &= \frac{1}{I_{zz}} u_4
\end{aligned} $$
This model captures the essential dynamics of the quadrotor and serves as the foundation for control design. The nonlinearities and couplings are addressed through linearization for MPC implementation.
State-Space Representation
To facilitate controller design, the quadrotor dynamics are linearized and expressed in state-space form. This representation allows for the application of linear control techniques, such as MPC, by defining state variables that encompass position, velocity, orientation, and angular rates. The state vector is chosen as:
$$ \chi = [x, \dot{x}, y, \dot{y}, z, \dot{z}, \phi, \dot{\phi}, \theta, \dot{\theta}, \psi, \dot{\psi}]^T = [x_1, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_{10}, x_{11}, x_{12}]^T $$
The state-space equations are:
$$ \begin{aligned}
\dot{\chi} &= A \chi + B u \\
y &= C \chi
\end{aligned} $$
where \( A \) is the system matrix, \( B \) is the input matrix, and \( C \) is the output matrix. For the quadrotor, these matrices are block-diagonal due to the decoupled nature of the linearized dynamics:
$$ A = \text{diag}(A_x, A_y, A_z, A_e, A_e, A_e) $$
with submatrices defined as:
$$ A_x = \begin{bmatrix} 0 & 1 \\ 0 & -\frac{k_{dx}}{m} \end{bmatrix}, \quad A_y = \begin{bmatrix} 0 & 1 \\ 0 & -\frac{k_{dy}}{m} \end{bmatrix}, \quad A_z = \begin{bmatrix} 0 & 1 \\ 0 & -\frac{k_{dz}}{m} \end{bmatrix}, \quad A_e = \begin{bmatrix} 0 & 1 \\ 0 & 0 \end{bmatrix} $$
The input matrix \( B \) is structured to reflect the effect of control inputs on state derivatives:
$$ B = \begin{bmatrix} B_x \\ B_y \\ B_z \\ B_\phi \\ B_\theta \\ B_\psi \end{bmatrix} $$
where:
$$ \begin{aligned}
B_x &= \begin{bmatrix} 0 \\ -\frac{\theta}{m} \end{bmatrix}, \quad B_y = \begin{bmatrix} 0 \\ \frac{\phi}{m} \end{bmatrix}, \quad B_z = \begin{bmatrix} 0 \\ -\frac{1}{m} \end{bmatrix}, \\
B_\phi &= \begin{bmatrix} 0 \\ \frac{1}{I_{xx}} \end{bmatrix}, \quad B_\theta = \begin{bmatrix} 0 \\ \frac{1}{I_{yy}} \end{bmatrix}, \quad B_\psi = \begin{bmatrix} 0 \\ \frac{1}{I_{zz}} \end{bmatrix}
\end{aligned} $$
The output matrix \( C \) selects the position states for tracking:
$$ C = \begin{bmatrix} 1 & 0 & 0 & 0 & 0 & 0 & \cdots & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & \cdots & 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & \cdots & 0 \end{bmatrix} $$
This linear state-space model enables the use of MPC for trajectory tracking and illumination control, as it provides a tractable framework for optimization.
Model Predictive Control for Tracking and Illumination
Model predictive control is a powerful strategy for handling multivariable systems with constraints. In this work, MPC is applied to a quadrotor UAV to track a ground vehicle while ensuring that an onboard light source illuminates a specific area ahead of the vehicle. The illumination task introduces additional state and input constraints, which are incorporated into the optimization problem. This section outlines the problem formulation, constraint derivation, and MPC solution.
The tracking and illumination scenario involves a quadrotor following a ground vehicle at a certain height, with a light fixed to the quadrotor’s body pointing downward. The goal is to illuminate a point at a distance \( l_d \) ahead of the vehicle, considering the light’s beam angle \( \alpha \) and intensity \( I_0 \). Let the vehicle position be \( (x_c, y_c, 0) \) and the quadrotor position be \( (x_b, y_b, z_b) \). The illumination center on the ground is determined by the quadrotor’s position and orientation, particularly the pitch angle \( \theta \).
To achieve effective illumination, physical constraints are imposed. First, the quadrotor must not stray too far from the vehicle:
$$ x_b – x_c \leq l_x $$
where \( l_x \) is a maximum horizontal offset. The illumination distance must be within the light’s range:
$$ z_b \tan(\alpha + \theta) + (x_b – x_c) \leq l_{d_{\text{max}}} $$
which simplifies to:
$$ z_b \tan(\alpha + \theta) \leq l_{d_{\text{max}}} – l_x $$
Additionally, the ground illuminance \( E \) must exceed a minimum value \( E_0 \). Using the inverse-square law and cosine effect for a directional light:
$$ \frac{I_0 \cos^3(\theta + \alpha)}{z_b^2} \geq E_0 $$
Simplifying, we get:
$$ z_b \leq \sqrt{\frac{I_0}{E_0}} \cos(\theta + \alpha) $$
Since \( \theta \) is small, this can be approximated as:
$$ z_b \leq \frac{\sqrt{I_0 / E_0}}{\cos \alpha} $$
Combining these, the pitch angle constraint is:
$$ \theta \leq \theta_0 = \arcsin\left( \frac{l_{d_{\text{max}}} – l_x}{\sqrt{I_0 / E_0}} \right) – \alpha $$
Thus, the state constraints for illumination are:
$$ \begin{aligned}
z &\leq \frac{\sqrt{I_0 / E_0}}{\cos \alpha} \\
\theta &\leq \theta_0
\end{aligned} $$
Control inputs are constrained by actuator limits, such as maximum rotor speeds:
$$ u_{\text{min}} \leq u \leq u_{\text{max}} $$
where \( u_{\text{min}} = -u_{\text{max}} \) for symmetric bounds.
In MPC, we define a prediction horizon \( P \) and control horizon \( M \). At each time step \( k \), the optimization problem minimizes a cost function subject to constraints. The cost function penalizes deviations from the reference trajectory and control effort:
$$ J(k) = \sum_{i=1}^{N} Q_i (\chi_i(k) – \chi_{i,\text{ref}})^2 + \sum_{i=0}^{N-1} R_i \Delta u^2(k+i) $$
where \( Q_i \) and \( R_i \) are weight matrices, \( \chi_{i,\text{ref}} \) is the reference state (e.g., vehicle position), and \( \Delta u \) is the control increment. The constraints are expressed in matrix form for efficient solving. Input constraints are:
$$ \Delta U_{\text{min}} \leq \hat{B} \Delta U_M(k) \leq \Delta U_{\text{max}} $$
where \( \hat{B} \) is a block-diagonal matrix of integrators, and \( \Delta U_{\text{min}}, \Delta U_{\text{max}} \) are derived from \( u_{\text{min}}, u_{\text{max}} \). State constraints are:
$$ \hat{A} \Delta \chi_M(k) \leq \Delta \chi_{\text{max}} $$
with \( \hat{A} \) constructed from the state-space matrices. The optimization problem is:
$$ \begin{aligned}
\min_{\Delta U_M(k)} \quad & J(k) \\
\text{subject to} \quad & \Delta U_{\text{min}} \leq \hat{B} \Delta U_M(k) \leq \Delta U_{\text{max}} \\
& \hat{A} \Delta \chi_M(k) \leq \Delta \chi_{\text{max}}
\end{aligned} $$
This formulation ensures that the quadrotor tracks the vehicle while adhering to illumination constraints, leading to stable and efficient performance.
Simulation and Results
To validate the proposed MPC approach, simulations were conducted in a dynamic environment. The quadrotor model and controller were implemented, and the tracking illumination task was evaluated under various constraints. This section describes the simulation setup, parameters, and results, demonstrating the benefits of incorporating illumination constraints.
The simulation model includes the quadrotor dynamics, state-space representation, and MPC solver. Key parameters are summarized in the table below:
| Parameter | Value |
|---|---|
| Mass (kg) | 1.4 |
| Gravity (m/s²) | 9.8 |
| Arm Length (m) | 0.45 |
| Inertia Ixx (kg·m²) | 0.0211 |
| Inertia Iyy (kg·m²) | 0.0219 |
| Inertia Izz (kg·m²) | 0.0366 |
| Rotor Inertia (kg·m²) | 0.000129 |
| Beam Angle α (degrees) | 6 |
| Light Intensity I0 (cd) | 10000 |
| Minimum Illuminance E0 (lx) | 250 |
| Max Horizontal Offset lx (m) | 0 |
| Max Illumination Distance ld_max (m) | 20 |
| Thrust Coefficient b (N·s²) | 0.000031 |
| Drag Coefficient d (N·m·s²) | 0.0000075 |
| Control Input Limits umax (N) | [47.32, 23.66, 23.66, 11.83] |
The simulations compared two cases: unconstrained tracking and constrained tracking with illumination requirements. In the unconstrained case, the quadrotor aggressively tracks the vehicle, leading to high control efforts and overshoots. For example, the thrust input \( u_1 \) converges within 1 second, but with significant oscillations, and the position states \( x, y, z \) reach the reference quickly but exhibit instability. The yaw angle \( \psi \) stabilizes at \( \pi/2 \), but the illumination point fluctuates wildly, as shown in the results.

In the constrained case, the MPC incorporates illumination constraints, resulting in smoother behavior. The control inputs \( u_1 \) and \( u_4 \) converge within 2.3 seconds, with reduced magnitudes. The position states approach the reference more gradually, minimizing overshoot and conserving energy. The pitch angle \( \theta \) remains within \( \theta_0 \), and the height \( z \) satisfies the illuminance-based limit. The illumination center evolves smoothly, staying within 12.3 meters, compared to excessive deviations in the unconstrained case. This enhances safety by avoiding sudden light changes, which is critical in scenarios like mountain roads or forests.
The performance metrics highlight the trade-offs: constrained MPC sacrifices some response speed for improved stability and energy efficiency. The cost function \( J(k) \) shows lower control effort and better constraint satisfaction. These results underscore the importance of integrating illumination constraints into quadrotor control for practical applications.
Conclusion
This paper presented a model predictive control framework for quadrotor UAV tracking and illumination tasks. By linearizing the quadrotor dynamics and formulating state-space models, we enabled efficient MPC implementation. The illumination constraints were derived from physical principles and incorporated into the optimization problem, ensuring that the quadrotor maintains optimal lighting while tracking a ground vehicle. Simulation results demonstrated that the constrained MPC approach reduces control effort, minimizes overshoot, and provides stable illumination compared to unconstrained methods. Future work could explore adaptive MPC for varying environments and real-time implementation on quadrotor platforms. This research contributes to the advancement of quadrotor UAV applications in complex missions, highlighting the value of integrated constraint handling in control design.
