Design of a Quadrotor Drone Following and Landing System on a Mobile Platform

The operational endurance and control precision of unmanned aerial vehicles (UAVs) are critical limiting factors for their widespread application in complex missions. While quadrotor drones are favored for their vertical take-off and landing (VTOL) capabilities, simple control mechanics, and autonomous hovering, their typical flight time of 10-20 minutes severely restricts prolonged operations such as search and rescue, extended surveillance, or large-area inspection. This necessitates a reliable method for autonomous recovery and re-energizing without interrupting the mission flow. Inspired by carrier-based aviation, this work presents the design and implementation of a multi-stage following and landing system for a quadrotor drone onto a moving, unmanned ground vehicle (UGV) platform. The system synergistically combines Global Positioning System (GPS), Ultra-Wideband (UWB) ranging, and machine vision-based guidance to achieve high-precision tracking and safe landing, thereby effectively extending the operational range and mission continuity of the quadrotor drone.

System Architecture and Coordinated Frames

The core of the system is a quadrotor drone and a UGV serving as its mobile landing platform. Precise relative positioning is fundamental to the following and landing maneuver. We define three primary coordinate frames to model the system’s kinematics and control logic, as illustrated in the conceptual diagram below.

The world (or navigation) frame {A} is defined as a North-East-Down (NED) inertial reference frame. The quadrotor drone body frame {B} is attached to its center of mass, with the x-axis pointing forward, y-axis to the right, and z-axis downward. The UGV body frame {C} is attached to the center of its landing platform. The objective is to control the position of frame {B} relative to frame {C}, and ultimately align them for landing. The system employs a multi-sensor fusion approach, where different sensors are dominant in different operational phases. A summary of the system’s layered architecture is presented in Table 1.

Table 1: System Module Architecture and Function
Layer Components Primary Function
Guidance & Navigation GPS Receiver, UWB Module (Tag & Anchors), OpenMV Camera Provide absolute and relative positioning data across long, medium, and short ranges.
Data Fusion & Estimation Onboard Flight Computer Fuse multi-sensor data using a Kalman Filter to generate a robust, optimal state estimate.
Flight Control PID/Other Control Algorithms, Electronic Speed Controllers (ESCs) Translate state estimates and desired trajectories into motor commands for stabilization and tracking.
Mobile Platform Unmanned Ground Vehicle (UGV) with Landing Pad and Visual Marker Act as the moving target and final landing site for the quadrotor drone.

The transformation between these coordinate frames is essential. Let $^A\mathbf{p}_B = [x_B, y_B, z_B]^T$ and $^A\mathbf{p}_C = [x_C, y_C, z_C]^T$ denote the positions of the quadrotor drone and UGV, respectively, expressed in the world frame {A}. The relative position vector from the UGV to the drone in the world frame is:
$$ ^A\mathbf{p}_{B/C} = \, ^A\mathbf{p}_B – \, ^A\mathbf{p}_C $$
For control purposes, we often need this vector in the UGV’s frame {C}. If $^A\mathbf{R}_C$ is the rotation matrix from frame {C} to {A} (describing the UGV’s orientation), then:
$$ ^C\mathbf{p}_{B/C} = \, ^A\mathbf{R}_C^T \cdot \, ^A\mathbf{p}_{B/C} $$
The goal of the landing controller is to drive $^C\mathbf{p}_{B/C}$ to $[0, 0, h_{land}]^T$ and finally to $[0, 0, 0]^T$, where $h_{land}$ is a pre-defined low-altitude hover height above the platform.

Table 2: Coordinate Frame Definitions and Transformations
Frame Symbol Description Key Measurement/Sensor
World / Navigation {A} Inertial NED reference frame. GPS provides $^A\mathbf{p}_B$.
Quadrotor Body {B} Attached to the drone’s center of mass (x-forward, y-right, z-down). IMU provides attitude $^A\mathbf{R}_B$.
UGV / Landing Platform {C} Attached to the center of the UGV’s landing pad. UWB/Visual provides $^A\mathbf{p}_C$ and $^C\mathbf{p}_{B/C}$.

Ultra-Wideband (UWB) Three-Dimensional Positioning System

For medium to close-range relative positioning, GPS lacks the necessary precision and update rate. We employ a UWB positioning system, which offers centimeter-level accuracy and high robustness to multipath interference. The system consists of one UWB tag ($T_0$) mounted on the quadrotor drone and four UWB anchors ($T_1$, $T_2$, $T_3$, $T_4$) mounted at known, fixed positions on the UGV, defining its local coordinate frame {C}.

The fundamental measurement is the distance between the tag and each anchor. We utilize the Double-Sided Two-Way Ranging (DS-TWR) protocol to mitigate clock drift errors. The estimated time-of-flight $\hat{T}_{fab}$ is calculated from the measured round-trip times:

$$ \hat{T}_{fab} = \frac{\hat{R}_a \hat{R}_b – \hat{D}_a \hat{D}_b}{\hat{R}_a + \hat{D}_a + \hat{R}_b + \hat{D}_b} $$
where $\hat{R}_a, \hat{D}_a, \hat{R}_b, \hat{D}_b$ are precise timestamp measurements recorded during the message exchange protocol. The distance $d_{i}$ between the tag and anchor $i$ is then $d_i = c \cdot \hat{T}_{fab}$, where $c$ is the speed of light.

With four anchors, we can perform 3D localization. The position of the tag $\mathbf{p} = (x, y, z)$ in the UGV’s frame {C} satisfies a set of equations:
$$ \sqrt{(x – x_i)^2 + (y – y_i)^2 + (z – z_i)^2} = d_i, \quad i=1,2,3,4 $$
where $(x_i, y_i, z_i)$ is the known position of anchor $i$. To solve this nonlinear system robustly in the presence of measurement noise, we employ a Taylor Series expansion method based on Time Difference of Arrival (TDOA). We define the range difference between anchor $i$ and a reference anchor (e.g., $T_1$) as:
$$ d_{i1} = d_i – d_1 = c \cdot (t_i – t_1), \quad i=2,3,4 $$
Given an initial guess $\mathbf{p}^{(0)} = (x^{(0)}, y^{(0)}, z^{(0)})$, we iteratively compute a correction $\Delta = [\Delta x, \Delta y, \Delta z]^T$. The correction is found by solving the linearized system:
$$ \Delta = (\mathbf{G}^T \mathbf{Q}^{-1} \mathbf{G})^{-1} \mathbf{G}^T \mathbf{Q}^{-1} \mathbf{h} $$
where $\mathbf{Q}$ is the covariance matrix of the TDOA measurements, $\mathbf{h}$ is the vector of measurement mismatches, and the geometry matrix $\mathbf{G}$ is defined as:
$$ \mathbf{G} =
\begin{bmatrix}
\frac{x_1 – x}{d_1} – \frac{x_2 – x}{d_2} & \frac{y_1 – y}{d_1} – \frac{y_2 – y}{d_2} & \frac{z_1 – z}{d_1} – \frac{z_2 – z}{d_2} \\
\frac{x_1 – x}{d_1} – \frac{x_3 – x}{d_3} & \frac{y_1 – y}{d_1} – \frac{y_3 – y}{d_3} & \frac{z_1 – z}{d_1} – \frac{z_3 – z}{d_3} \\
\frac{x_1 – x}{d_1} – \frac{x_4 – x}{d_4} & \frac{y_1 – y}{d_1} – \frac{y_4 – y}{d_4} & \frac{z_1 – z}{d_1} – \frac{z_4 – z}{d_4}
\end{bmatrix} $$
The state is updated $\mathbf{p}^{(k+1)} = \mathbf{p}^{(k)} + \Delta$ until the correction $\Delta$ is sufficiently small, yielding the estimated tag position $^C\mathbf{p}_B$.

Machine Vision for Terminal Guidance and Landing

While UWB provides excellent 3D relative positioning, vision-based methods offer unmatched lateral precision for the final touchdown phase. We equipped the quadrotor drone with a downward-facing OpenMV camera module. A simple, high-contrast visual marker (an “H” pattern) is placed at the center of the UGV’s landing platform. The vision processing pipeline involves image capture, color/grayscale conversion, thresholding, and blob detection to find contours. The largest rectangular contour approximating the known aspect ratio of the “H” marker is identified.

Once detected, the image coordinates $(u_c, v_c)$ of the contour’s center are obtained. Let $(u_0, v_0)$ be the principal point (image center) of the camera. The pixel error vector $\mathbf{e}_{pix} = [u_c – u_0, v_c – v_0]^T$ is directly proportional to the lateral offset of the quadrotor drone from the marker in the camera frame. Using a simple pinhole camera model and assuming the drone is hovering at a known altitude $z_{cam}$ above the ground (from UWB or a barometer), we can convert this pixel error to a metric relative position in the body frame {B}:
$$ ^B\mathbf{p}_{C}^{vis} =
\begin{bmatrix}
X_{vis} \\
Y_{vis}
\end{bmatrix} = z_{cam} \cdot
\begin{bmatrix}
(u_c – u_0) / f_x \\
(v_c – v_0) / f_y
\end{bmatrix} $$
where $f_x$ and $f_y$ are the camera’s focal lengths in pixels. This $[X_{vis}, Y_{vis}]^T$ measurement provides a very accurate estimate of the lateral offset $^C\mathbf{p}_{B/C}$ for the final descent, complementing the UWB’s vertical ($z$) estimate.

Multi-Sensor Data Fusion via Kalman Filter

The measurements from GPS, UWB, and vision have different noise characteristics, update rates, and coordinate frames. To generate a single, optimal, and smooth estimate of the quadrotor drone‘s state relative to the UGV, we implement a discrete-time Kalman Filter (KF) for data fusion. The state vector for the filter tracking the relative position in frame {C} is defined as $\mathbf{x}_k = [\,^Cx, \,^Cy, \,^Cz, \,^C\dot{x}, \,^C\dot{y}, \,^C\dot{z}\,]^T_k$.

The system dynamics are modeled with a constant velocity model:
$$ \mathbf{x}_{k|k-1} = \mathbf{F} \mathbf{x}_{k-1|k-1} + \mathbf{w}_{k-1} $$
where $\mathbf{F}$ is the state transition matrix, and $\mathbf{w}_{k-1}$ is process noise with covariance $\mathbf{Q}$. The measurement model is:
$$ \mathbf{z}_k = \mathbf{H} \mathbf{x}_k + \mathbf{v}_k $$
where $\mathbf{H}$ is the observation matrix, and $\mathbf{v}_k$ is measurement noise with covariance $\mathbf{R}$. The standard Kalman Filter recursive equations are:

$$
\begin{aligned}
\text{Prediction:} & \\
\mathbf{\hat{x}}_{k|k-1} &= \mathbf{F} \mathbf{\hat{x}}_{k-1|k-1} \\
\mathbf{P}_{k|k-1} &= \mathbf{F} \mathbf{P}_{k-1|k-1} \mathbf{F}^T + \mathbf{Q} \\[6pt]
\text{Update:} & \\
\mathbf{K}_k &= \mathbf{P}_{k|k-1} \mathbf{H}^T (\mathbf{H} \mathbf{P}_{k|k-1} \mathbf{H}^T + \mathbf{R})^{-1} \\
\mathbf{\hat{x}}_{k|k} &= \mathbf{\hat{x}}_{k|k-1} + \mathbf{K}_k (\mathbf{z}_k – \mathbf{H} \mathbf{\hat{x}}_{k|k-1}) \\
\mathbf{P}_{k|k} &= (\mathbf{I} – \mathbf{K}_k \mathbf{H}) \mathbf{P}_{k|k-1}
\end{aligned}
$$

In our implementation, we run parallel KFs for the x, y, and z axes independently, as their dynamics and noise are largely uncorrelated. This simplifies tuning and computation. The sensor fusion strategy is stage-dependent:

  1. Long-Range Phase (>10m): GPS on the quadrotor drone and UGV provide coarse absolute positions. The KF fuses these to estimate $^A\mathbf{p}_{B/C}$, guiding the drone towards the general vicinity of the UGV. The measurement $\mathbf{z}_k$ for this phase is derived from the difference of GPS coordinates.
  2. Medium-Range Phase (10m to ~2m): The UWB system becomes active. The KF seamlessly switches its measurement update to use the precise 3D relative position $^C\mathbf{p}_B$ provided by the UWB Taylor series algorithm.
  3. Short-Range / Terminal Phase (<2m): The vision system detects the “H” marker. The KF now uses the high-precision lateral measurements $[X_{vis}, Y_{vis}]^T$ from the camera, while the UWB continues to provide the crucial vertical (z-axis) measurement which is not reliably available from the monocular camera alone.
Table 3: Sensor Characteristics and Fusion Strategy
Sensor Measurement Accuracy Update Rate Operational Phase KF Role
GPS (Drone & UGV) Absolute Position $^A\mathbf{p}$ ~1-3 m 1-10 Hz Long-Range Homing Primary measurement for $^A\mathbf{p}_{B/C}$.
UWB System Relative Position $^C\mathbf{p}_B$ ~0.1 m 10-100 Hz Medium to Close Range Primary 3D measurement for precise tracking.
OpenMV Camera Lateral Offset $[X_{vis}, Y_{vis}]^T$ ~0.01 m (depends on altitude) 10-30 Hz Terminal Landing (low altitude) Primary measurement for lateral (x,y) control.
IMU (Accel/Gyro) Acceleration, Angular Rate – 100-500 Hz All Phases Used internally by the flight controller for attitude stabilization; not fused in this navigation KF.

Experimental Results and Analysis

A prototype system was built and tested. The UGV measured 100 cm x 55 cm with a landing area of 5500 cm². The quadrotor drone had a diagonal motor-to-motor distance of approximately 40 cm. The UWB anchors were placed on the corners of the UGV. The UGV was programmed to follow a predefined rectangular path, and the drone was commanded to take off, locate, and follow the UGV at a safe altitude before initiating the landing sequence.

The raw sensor data (especially from UWB) exhibited high-frequency noise and occasional outliers. The effectiveness of the axis-wise Kalman Filter was evaluated by comparing the filtered trajectory against the raw UWB measurements and the known UGV path. Figure 4 in the original paper shows the filtering results for the x, y, and z axes separately. The KF successfully attenuated noise and provided a smooth estimate of the quadrotor drone‘s position.

The key performance metric is the following error, defined as the distance between the estimated drone position and the UGV’s position. The Root-Mean-Square Error (RMSE) was calculated for both the raw UWB data and the KF-estimated data over a test run. As summarized in the original Figure 5, the Kalman Filter significantly reduced the positioning error. For instance, the lateral (x-y plane) RMSE was reduced by approximately 40-50%, and the vertical (z-axis) RMSE was reduced by over 60%. This directly translates to a more stable and precise hover over the moving platform.

A comparative plot of the UGV’s trajectory and the quadrotor drone‘s trajectory (both raw and filtered) clearly demonstrates the improvement. The KF-smoothed trajectory adheres much more closely to the UGV’s path, with reduced oscillation and overshoot (as shown conceptually in the original Figure 6). The multi-stage guidance strategy was successfully demonstrated: the drone initially used GPS to approach the general area, then locked onto the UGV using UWB for precise following, and finally, upon descending to a low altitude, used the OpenMV camera to center itself accurately over the “H” marker for a soft landing, as depicted in the original Figure 7.

The transition between sensors was managed by logic gates based on distance thresholds and sensor validity flags (e.g., UWB range validity, visual marker detection confidence). This ensured a robust handover, preventing the system from relying on an unavailable or degraded sensor source.

Conclusion

This work presented a comprehensive design and implementation of a following and landing system for a quadrotor drone on a mobile platform. By integrating GPS, UWB, and machine vision in a staged, complementary manner and fusing their data through a Kalman Filter, the system achieves robust and high-precision tracking. The quadrotor drone successfully transitions from long-range homing to medium-range precise following, and finally to terminal visual landing. The experimental results confirm that the Kalman Filter effectively reduces sensor noise and improves the accuracy of the relative state estimate, leading to a stable follow-flight and a safe, accurate landing. This system directly addresses the critical endurance limitation of small quadrotor drones by enabling autonomous recovery on a mobile charging or battery-swapping station, thereby greatly extending potential mission durations for applications like extended search and rescue, persistent surveillance, and large-scale inspection. Future work will focus on optimizing the fusion algorithm (e.g., using an Extended Kalman Filter for nonlinearities), improving the vision system for more robust marker detection under varying lighting conditions, and integrating dynamic path planning for the UGV-drone pair in obstacle-rich environments.

Scroll to Top