In recent years, quadrotor drones have become increasingly vital in autonomously executing complex tasks across military and civilian domains, thanks to their maneuverability, low cost, and ease of control. A key technology enabling such intelligence is autonomous landing on moving platforms, which involves three core steps: target detection, target tracking, and position prediction followed by landing. In this article, I delve into the methodologies for achieving this, focusing on an improved AprilTags-based algorithm, Kalman filtering, PID control, and trajectory fitting. I aim to provide a comprehensive overview, emphasizing the role of quadrotor drones in these processes, supported by tables and mathematical formulations to summarize key concepts.
The autonomous landing of a quadrotor drone on a moving target poses significant challenges, including high technical difficulty, poor positioning accuracy, control response delays, and slow processing speeds. To address these, the quadrotor drone must rapidly identify the moving target, acquire its three-dimensional pose information, maintain stable tracking, and gradually approach for landing. My research centers on developing a robust method that integrates computer vision, control theory, and trajectory estimation, ensuring the quadrotor drone can perform intelligently in dynamic environments.
To set the stage, let me outline the fundamental principles underlying this technology. Target detection and tracking are critical initial steps. Various algorithms exist, each with strengths and weaknesses, as summarized in Table 1. Traditional methods like frame difference, MeanShift, CamShift, optical flow, and TLD have limitations in real-time performance, three-dimensional information extraction, or adaptability to fast-moving targets. For instance, frame difference is computationally light but suited only to fixed scenes, while optical flow provides 3D motion data but at a high computational cost, making it unsuitable for real-time applications on resource-constrained quadrotor drones.
| Method | Advantages | Disadvantages |
|---|---|---|
| Frame Difference | Low computation, fast | Fixed application scenarios |
| MeanShift | Simple computation, easy implementation | Ineffective for small or fast-moving targets |
| CamShift | Adaptive target region adjustment | Poor performance with low background contrast |
| Optical Flow | Contains 3D motion information | High computation, poor real-time performance |
| TLD Algorithm | Long-term single-target tracking, re-detection capability | Moderate real-time performance, lacks 3D information |
Given these drawbacks, I turned to the AprilTags algorithm, which uses fiducial markers for high-precision pose estimation. AprilTags come in types like 16h5, 25h9, and 36h11, each with distinct recognition distances. The algorithm can quickly identify the tag type and ID, and compute the 3D position (x, y, z) and attitude (roll, pitch, yaw) relative to the camera. However, the standard AprilTags algorithm processes video streams at about 10 frames per second for 1280×720 resolution on embedded hardware like the DJI Manifold, which is insufficient for real-time quadrotor drone operations. To enhance speed, I implemented two strategies: switching from global to local search using position prediction, and reducing video resolution. Specifically, for distances beyond 2 meters, local search via Kalman filtering boosts speed; for closer ranges, lowering resolution maintains performance without sacrificing recognition distance. This improved AprilTags algorithm enables real-time extraction of target pose, crucial for the quadrotor drone’s tracking and landing.
Kalman filtering plays a pivotal role in estimating the target’s future state. By modeling the tracking problem as a discrete control system, the Kalman filter uses state and measurement equations to provide optimal estimates. The state equation is:
$$ X(k) = A X(k-1) + B U(k) + W(k) $$
and the measurement equation is:
$$ Z(k) = H X(k) + V(k) $$
where \(X(k)\) is the state vector, \(Z(k)\) is the measurement, \(A\) and \(B\) are matrices, \(U(k)\) is the control input, and \(W(k)\) and \(V(k)\) represent process and measurement noise, respectively. The filter iterates through prediction and update steps:
$$ X(k|k-1) = A X(k-1|k-1) + B U(k) $$
$$ P(k|k-1) = A P(k-1|k-1) A^T + Q $$
$$ X(k|k) = X(k|k-1) + K_g(k) (Z(k) – H X(k|k-1)) $$
$$ K_g(k) = P(k|k-1) H^T (H P(k|k-1) H^T + R)^{-1} $$
$$ P(k|k) = (I – K_g(k) H) P(k|k-1) $$
Here, \(P\) is the error covariance, \(K_g\) is the Kalman gain, and \(Q\) and \(R\) are noise covariances. In my approach, the Kalman filter estimates the target’s position in the 2D image plane, allowing the AprilTags algorithm to perform local searches, thereby accelerating processing for the quadrotor drone.
For control, I employed PID (Proportional-Integral-Derivative) algorithms to ensure stable and responsive flight of the quadrotor drone. The PID controller outputs based on error signals: proportional term for immediate correction, integral term to eliminate steady-state error, and derivative term to predict error trends and prevent overshoot. The general form is:
$$ u(t) = k_p e(t) + k_i \int e(t) dt + k_d \frac{de(t)}{dt} $$
In the context of a quadrotor drone tracking a moving target, I derived specific control laws. For position control mode, where the input is absolute displacement, a PD controller suffices:
$$ P = k_P \cdot \Delta P + k_D \cdot \Delta V $$
where \(P\) is the position input, \(\Delta P\) is the displacement error between the quadrotor drone and target, and \(\Delta V\) is the velocity error. For velocity control mode, which offers higher sensitivity, a PID controller is used:
$$ V = k_I \cdot \Delta P + k_P \cdot \Delta V + k_D \cdot \Delta a $$
where \(V\) is the velocity input, and \(\Delta a\) is the acceleration error. These control laws enable the quadrotor drone to adapt to target speed changes, ensuring smooth tracking.
Trajectory prediction is essential for handling occlusions or temporary target loss. I utilized fitting functions combined with least squares to approximate the target’s path. For most motions, a quadratic function works well:
$$ f(x) = a x^2 + b x + c $$
For uniform linear motion, a linear function is adequate:
$$ f(x) = k x + d $$
Using the least squares method, parameters are estimated by minimizing the sum of squared errors:
$$ \beta = (X^T X)^{-1} X^T y $$
where \(X\) is the design matrix and \(y\) is the observation vector. By updating the function with the latest 20 data points, the quadrotor drone can interpolate control parameters during target absence, maintaining tracking stability.
Moving to system implementation, coordinate systems are foundational. I defined four frames: image coordinate system \(I\), camera coordinate system \(C\), quadrotor drone coordinate system \(U\), and north-east-down coordinate system \(O\). Transformations between these involve translation and rotation. The conversion from source coordinates \([X_s, Y_s, Z_s]^T\) to target coordinates \([X_t, Y_t, Z_t]^T\) is:
$$ [X_t, Y_t, Z_t]^T = [\Delta X, \Delta Y, \Delta Z]^T + R [X_s, Y_s, Z_s]^T $$
where \(R\) is the rotation matrix derived from Euler angles (roll \(\phi\), pitch \(\theta\), yaw \(\psi\)):
$$ R = \begin{bmatrix}
\cos\psi \cos\theta & -\sin\psi \cos\phi + \cos\psi \sin\theta \sin\phi & \sin\psi \sin\phi + \cos\psi \sin\theta \cos\phi \\
\sin\psi \cos\theta & \cos\psi \cos\phi + \sin\psi \sin\theta \sin\phi & -\cos\psi \sin\phi + \sin\psi \sin\theta \cos\phi \\
-\sin\theta & \cos\theta \sin\phi & \cos\theta \cos\phi
\end{bmatrix} $$
These transformations allow precise calculation of the target’s pose relative to the quadrotor drone.

The landing process involves specialized target design and phased procedures. I designed a landing target combining large and small AprilTags: one 36h11 tag (39 cm × 39 cm) for long-range recognition and seven 16h5 tags (6 cm × 6 cm) for close-range precision. The large tag guides the quadrotor drone from afar, while the small tags, arranged with redundancy (IDs 0-6 around a central tag ID 1), ensure stability during final approach. This design mitigates issues like target loss when the quadrotor drone is near, as any redundant tag can compute the center position.
The autonomous landing workflow is decomposed into stages. Initially, the quadrotor drone identifies the large 36h11 tag and tracks it using Kalman filtering and PID control, descending to 2 meters above the target. Then, it switches to tracking the small 16h5 tag (ID 1). The quadrotor drone adjusts vertically and horizontally within error bounds, employing fitting functions if the target is occluded. Upon reaching the landing plane, the propellers stop. This process leverages the improved AprilTags for real-time pose estimation, with PID ensuring responsive flight. Table 2 summarizes the control parameters used in my experiments for the quadrotor drone.
| Control Mode | Proportional Gain (\(k_P\)) | Integral Gain (\(k_I\)) | Derivative Gain (\(k_D\)) | Application |
|---|---|---|---|---|
| Position Control | 0.8 | 0 | 0.3 | Long-range tracking |
| Velocity Control | 1.2 | 0.1 | 0.5 | Close-range and landing |
Experimental validation was conducted using a DJI Matrice 100 quadrotor drone equipped with an onboard Manifold computer (NVIDIA Tegra K1, 2 GB RAM, Ubuntu 14.10) and a Zenmuse X3 camera streaming 1280×720 video. The software was developed via DJI Onboard SDK, with OpenCV 2.4.11 for image processing. Simulations used DJI Assistant. In mobile target tracking tests, the improved AprilTags algorithm with Kalman filtering achieved over 50 frames per second at 1280×720 resolution for distances beyond 2 meters, enabling stable tracking of vehicles moving at 30 km/h in straight lines, S-curves, and right-angle turns. For closer ranges, reducing resolution to 640×360 maintained about 30 fps. Table 3 compares processing speeds, highlighting the efficacy of my approach for quadrotor drone operations.
| Algorithm | Drone Altitude (m) | Video Resolution | Frame Rate (fps) | Tracking Performance |
|---|---|---|---|---|
| Standard AprilTags | 5 | 4K | 0.15 | Very poor |
| Improved with Kalman | 5 | 4K | 5 | Moderate |
| Standard AprilTags | 5 | 1280×720 | 5 | Moderate |
| Improved with Kalman | 5 | 1280×720 | >50 | Excellent |
| Standard AprilTags | 2 | 640×360 | 20 | Good |
| Improved with Kalman | 2 | 640×360 | ≈30 | Good |
In landing experiments, the quadrotor drone successfully landed on both slow-moving platforms and a truck traveling at approximately 30 km/h. For slow landings, position control sufficed, while velocity control with PID was used for high-speed scenarios to compensate for latency. The Kalman filter was initialized after 20 frames to avoid large initial errors, and PID gains were tuned experimentally for optimal performance. The integration of fitting functions allowed continuous operation during brief occlusions, demonstrating robustness. These results validate that the quadrotor drone can achieve intelligent recognition, stable tracking, and autonomous landing on moving targets.
To further illustrate the mathematical underpinnings, let me expand on the PID control derivation. For a quadrotor drone, the dynamics in the horizontal plane can be simplified as:
$$ m \ddot{x} = u_x – d_x $$
$$ m \ddot{y} = u_y – d_y $$
where \(m\) is mass, \(\ddot{x}\) and \(\ddot{y}\) are accelerations, \(u_x\) and \(u_y\) are control inputs, and \(d_x\) and \(d_y\) are drag forces. Using error terms \(e_x = x_{target} – x_{drone}\) and \(e_y = y_{target} – y_{drone}\), the PID controller for velocity control mode becomes:
$$ u_x = k_{Px} e_x + k_{Ix} \int e_x dt + k_{Dx} \dot{e}_x $$
$$ u_y = k_{Py} e_y + k_{Iy} \int e_y dt + k_{Dy} \dot{e}_y $$
These equations ensure that the quadrotor drone minimizes positional and velocity discrepancies. Similarly, for altitude control during landing, a separate PID loop manages vertical velocity based on height error.
The AprilTags pose estimation relies on solving the perspective-n-point (PnP) problem. Given known tag geometry and detected corners in the image, the rotation matrix \(R\) and translation vector \(t\) are computed. The projection equation is:
$$ s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} = K [R | t] \begin{bmatrix} X \\ Y \\ Z \\ 1 \end{bmatrix} $$
where \((u,v)\) are image coordinates, \((X,Y,Z)\) are world coordinates of tag corners, \(K\) is the camera intrinsic matrix, and \(s\) is a scale factor. This yields the quadrotor drone’s relative pose, which is filtered through Kalman for smoother estimates.
In terms of trajectory fitting, the least squares solution for a quadratic model involves constructing matrices. Suppose we have \(n\) data points \((t_i, p_i)\) where \(p_i\) is position. For \(f(t) = a t^2 + b t + c\), the parameter vector \(\beta = [a, b, c]^T\) is found by:
$$ \beta = (T^T T)^{-1} T^T P $$
with \(T = \begin{bmatrix} t_1^2 & t_1 & 1 \\ \vdots & \vdots & \vdots \\ t_n^2 & t_n & 1 \end{bmatrix}\) and \(P = [p_1, \dots, p_n]^T\). This method provides a best-fit curve for predicting the target’s path, aiding the quadrotor drone in anticipation.
My experiments also involved analyzing error metrics. The root mean square error (RMSE) between the quadrotor drone’s position and the target’s position was calculated over trials. For a quadrotor drone tracking at 5 meters altitude, the RMSE was below 0.2 meters in horizontal plane and 0.1 meters vertically, demonstrating high precision. Additionally, the response time of the quadrotor drone to target accelerations was under 0.5 seconds, thanks to the derivative term in PID control.
Challenges encountered include lighting variations and fast maneuvers. To address these, I incorporated adaptive thresholding in the AprilTags detection and tuned the Kalman filter noise parameters online. The quadrotor drone’s onboard processing limited complex computations, hence the emphasis on efficient algorithms. Future work could integrate deep learning for more robust target detection without fiducial markers, but for now, the AprilTags-based approach offers reliability.
In conclusion, the autonomous landing of a quadrotor drone on moving targets is feasible through an integrated system combining improved AprilTags for real-time pose estimation, Kalman filtering for state prediction, PID control for stable flight, and fitting functions for trajectory interpolation. This method enables the quadrotor drone to perform intelligently in dynamic environments, with experimental validation confirming its effectiveness. The quadrotor drone’s ability to track and land on fast-moving platforms opens avenues for applications like delivery, surveillance, and rescue. Further enhancements could focus on pure vision-based approaches to reduce dependency on markers, but the current framework provides a solid foundation for quadrotor drone autonomy.
Throughout this exploration, the quadrotor drone has been central to the discussion, highlighting its versatility and the technical intricacies involved in autonomous operations. By leveraging mathematical tools and algorithmic optimizations, we can push the boundaries of what quadrotor drones can achieve, making them more adaptive and intelligent in real-world scenarios.
