In recent years, quadrotor drones have emerged as a focal point of research, gaining widespread application in military, civilian, and scientific domains due to their compact size, portability, and agile maneuverability. However, the miniaturization of these drones, while offering advantages, inevitably leads to a drastic reduction in energy storage capacity, resulting in shortened endurance and degraded operational effectiveness. The endurance parameters of current micro-drones, as illustrated in Table 1, highlight this limitation, with flight times typically around 20-30 minutes. To address this critical issue, I explore a bio-inspired strategy known as vertical surface perching, derived from the perching behavior of birds. This maneuver allows a quadrotor drone to land on a vertical wall using a perching mechanism, enabling it to balance gravity via interaction forces with the surface without requiring motor operation, thereby significantly reducing energy consumption and extending mission time. This paper presents a comprehensive approach employing “trajectory planning + tracking control” to achieve vertical surface perching for a quadrotor drone. I begin by developing a dynamic model and restricting the analysis to two-dimensional longitudinal motion. Subsequently, based on this model, a trajectory planning method considering perching motion constraints is established. Finally, to mitigate the effects of external disturbances and internal parameter inaccuracies in actual flight, a geometric tracking control method is adopted and improved according to the characteristics of the perching problem. Simulation results in Simulink demonstrate that the improved control method effectively addresses the perching problem, achieving precise tracking control of the predefined trajectory.

The vertical surface perching maneuver for a quadrotor drone involves using its机动 capabilities to pitch towards the vertical surface during approach, with an attached perching device oriented toward the wall. Upon contact, the drone’s body rotates to 90 degrees while maintaining a certain velocity. The perching device absorbs the remaining impact energy, enabling stable perching. The entire process, from receiving the perching command to stable attachment, involves trajectory planning and control. The core challenge lies in designing a dynamically feasible trajectory and a robust controller to track it under uncertainties. In this work, I focus on the longitudinal motion to simplify the problem, as the perching maneuver can be effectively analyzed in two dimensions. The quadrotor drone relies on four rotating propellers to generate lift, with horizontal motion achieved by tilting the body to produce thrust components. The dynamics of this quadrotor drone are fundamental to both trajectory planning and control design.
Dynamic Modeling of the Quadrotor Drone
To model the quadrotor drone, I consider it as a rigid body. The thrust and torque generated by each propeller are given by:
$$F_i = C_F \omega_i^2, \quad i = 1, 2, 3, 4$$
$$M_i = C_m \omega_i^2, \quad i = 1, 2, 3, 4$$
where \(C_F\) and \(C_m\) are the thrust and torque coefficients, respectively, and \(\omega_i\) is the rotational speed of the \(i\)-th propeller. Two coordinate systems are used: the ground frame \(O_g x_g y_g z_g\) and the body frame \(O_b x_b y_b z_b\). The transformation between these frames is described by roll \(\phi\), pitch \(\theta\), and yaw \(\psi\) angles. For longitudinal motion, I neglect displacement along the \(y_g\)-axis and consider only motion in the \(x_g\) and \(z_g\) directions and rotation about the \(y_g\)-axis. Assuming \(\phi = 0\) and \(\psi = 0\), the simplified longitudinal dynamics are derived.
The position dynamics in the ground frame are:
$$F_x = \left( \sum F_i \right) \sin\theta = m \frac{\partial U}{\partial t}$$
$$F_z = \left( \sum F_i \right) \cos\theta – mg = m \frac{\partial W}{\partial t}$$
where \(m\) is the mass of the quadrotor drone, \(g\) is gravitational acceleration, \(U\) and \(W\) are the velocity components in the ground frame along \(x_g\) and \(z_g\), respectively, and \(\sum F_i\) is the total thrust from all propellers. The attitude dynamics for pitch rotation are:
$$M = (F_3 + F_4 – F_1 – F_2) \frac{l}{2} = I \frac{\partial q}{\partial t} + I q^2$$
where \(I\) is the moment of inertia about the \(y_b\)-axis, \(M\) is the total moment, \(l\) is the distance between adjacent propellers (arm length), and \(q\) is the pitch angular velocity. The control inputs are the individual thrusts \(F_1\) to \(F_4\). This simplified model captures the essential dynamics for perching analysis and is used for trajectory planning and control design.
Trajectory Planning Method for Quadrotor Drone Perching
Trajectory planning aims to generate a dynamically feasible flight path that satisfies perching motion constraints, providing a reference input for the tracking control algorithm. I propose an “open-loop trajectory + initial point assembly” approach. This method designs the trajectory based on open-loop dynamics responses and then assembles the initial state to meet perching constraints. While the resulting trajectory is not optimal, it is computationally efficient and ensures dynamic feasibility.
The perching motion imposes several constraints:
- Pitch angle/angular velocity constraint: The pitch angle must rotate from 0 to \(\pi/2\) (or the local incline angle for sloped surfaces), with zero angular velocity at perching to reduce dynamic loads.
- Normal velocity constraint: The velocity perpendicular to the wall at contact should be within a specified range (e.g., 0.5 to 1.5 m/s) to ensure the perching device functions effectively without excessive impact.
- Tangential velocity constraint: The velocity parallel to the wall should be minimal (e.g., -0.2 to 0.2 m/s) to maximize the perching device’s performance envelope.
- Angular acceleration/thrust constraint: The angular acceleration must be within the quadrotor drone’s actuation limits, determined by motor capabilities and maximum thrust.
The trajectory planning procedure involves three steps:
Step 1: Flight Time Estimation
Given the quadrotor drone’s mass \(m\), gravitational acceleration \(g\), moment of inertia \(I\), maximum thrust per motor \(F_{\text{max}}\), and motor arm length \(A\), the maximum angular acceleration \(\beta_{\text{max}}\) is:
$$\beta_{\text{max}} = \frac{2 F_{\text{max}} A}{I}$$
For a desired pitch rotation \(\theta_{\text{des}}\) (e.g., \(\pi/2\)), the minimum time \(T\) to achieve this rotation under maximum acceleration is:
$$T = \sqrt{\frac{2 \theta_{\text{des}}}{\beta_{\text{max}}}}$$
To ensure thrust constraints are not exceeded, a safety factor \(D > 1\) is applied, yielding an estimated design time \(T_{\text{est}} = D T\).
Step 2: Pitch Angle Time Sequence Generation
A pitch angle time sequence \(\theta(t)\) is generated such that at \(t = 0\), \(\theta = 0\) and \(\dot{\theta} = 0\), and at \(t = T_{\text{est}}\), \(\theta = \theta_{\text{des}}\) and \(\dot{\theta} = 0\). Using spline methods, a smooth curve satisfying these boundary conditions is obtained, as shown in Figure 7 of the reference (conceptual plot).
Step 3: Open-Loop Trajectory Generation
Assuming the total thrust equals the weight \(mg\) constant, the accelerations in the ground frame are derived from the pitch sequence:
$$\frac{\partial U}{\partial t} = -g \sin\theta(t)$$
$$\frac{\partial W}{\partial t} = g \cos\theta(t) – g$$
Integrating these with initial velocities \(U_0\) and \(W_0\) yields velocity profiles \(U(t)\) and \(W(t)\), and further integration with initial positions \(x_0\) and \(z_0\) gives position trajectories \(x(t)\) and \(z(t)\).
Step 4: Initial Point Assembly
Given a target perching position \((x_{\text{des}}, z_{\text{des}})\) and velocity constraints \((U_{\text{des}}, W_{\text{des}})\), the initial state is computed. From the open-loop trajectory, the total displacement \((\Delta x, \Delta z)\) and velocity change \((\Delta U, \Delta W)\) over \(T_{\text{est}}\) are calculated. The initial velocities are:
$$U_0 = U_{\text{des}} – \Delta U$$
$$W_0 = W_{\text{des}} – \Delta W$$
The initial positions are:
$$x_0 = x_{\text{des}} – \Delta x$$
$$z_0 = z_{\text{des}} – \Delta z – W_0 T_{\text{est}}$$
This assembly ensures the quadrotor drone starts from a computed initial point to meet perching constraints at the target.
To illustrate, consider a quadrotor drone with parameters listed in Table 2. Setting \(F_{\text{max}} = 1.8 \times 0.25 mg = 1.05 \, \text{N}\), \(\beta_{\text{max}} = 78.75 \, \text{rad/s}^2\), and \(\theta_{\text{des}} = \pi/2\), the estimated time \(T_{\text{est}}\) is chosen as 0.4 s. The pitch sequence is generated, and open-loop responses yield \(\Delta x = 0.895 \, \text{m}\), \(\Delta z = -0.16 \, \text{m}\), \(\Delta U = -2.5 \, \text{m/s}\), and \(\Delta W = -1.6 \, \text{m/s}\). For a target perching velocity \(U_{\text{des}} = 0.8 \, \text{m/s}\) and \(W_{\text{des}} = 0 \, \text{m/s}\) at position \((0, 0)\), the initial state is \(U_0 = 3.3 \, \text{m/s}\), \(W_0 = 1.6 \, \text{m/s}\), \(x_0 = -0.895 \, \text{m}\), and \(z_0 = -0.48 \, \text{m}\). This example demonstrates the planning method’s application for the quadrotor drone.
| Model | Takeoff Weight (g) | Size (cm) | Endurance (min) |
|---|---|---|---|
| OS4 | 650 | 20 | 30 |
| MD4-200 | 900 | 50 | 20 |
| Dragonflyer X4 | 680 | 64.5 | 30 |
| AR.DRONE | 360 | 52.5 | 15 |
| Parameter | Value |
|---|---|
| Mass \(m\) (kg) | 0.235 |
| Moment of Inertia \(I\) (kg·m²) | 0.002 |
| Arm Length \(l\) (m) | 0.075 |
| Gravitational Acceleration \(g\) (N/kg) | 9.82 |
Control Design for Quadrotor Drone Perching
The perching process requires control that tracks not only position and velocity but also attitude angle and angular velocity. I employ a geometric tracking control (GTC) method and propose an improvement to enhance robustness. The GTC method uses error signals to generate control outputs, ensuring the quadrotor drone follows the planned trajectory.
The error signals are defined as:
- Position error: \( \mathbf{e}_p = \mathbf{x} – \mathbf{x}_d \)
- Velocity error: \( \mathbf{e}_v = \dot{\mathbf{x}} – \dot{\mathbf{x}}_d \)
- Attitude error: \( \mathbf{e}_R = \frac{1}{2} (R_d^T R – R^T R_d)^\vee \)
- Angular velocity error: \( \mathbf{e}_\Omega = \Omega – R^T R_d \Omega_d \)
where \(\mathbf{x}\), \(\dot{\mathbf{x}}\), \(R\), and \(\Omega\) are the actual position, velocity, rotation matrix, and angular velocity of the quadrotor drone, and \(\mathbf{x}_d\), \(\dot{\mathbf{x}}_d\), \(R_d\), and \(\Omega_d\) are the desired values from the trajectory. The operator \(\vee\) extracts the vector from a skew-symmetric matrix.
The control outputs are the desired total thrust vector \(\mathbf{f}_{\text{des}}\) and total moment vector \(\mathbf{M}\):
$$\mathbf{f}_{\text{des}} = -k_p \mathbf{e}_p – k_v \mathbf{e}_v + mg \mathbf{z}_g + m \ddot{\mathbf{x}}_d$$
$$\mathbf{M} = -k_R \mathbf{e}_R – k_\Omega \mathbf{e}_\Omega + \Omega \times I \Omega$$
where \(k_p\), \(k_v\), \(k_R\), and \(k_\Omega\) are positive gain coefficients. This feedback structure ensures stability, as analyzed via Lyapunov methods, driving errors to zero over time.
However, in perching applications, external disturbances and initial condition errors can degrade performance. Specifically, when the initial horizontal velocity deviates from the planned value, the traditional time-based GTC may cause premature trajectory termination, leading to significant errors at contact. To address this, I propose a modified control method that uses spatial-domain error signals instead of time-domain signals for position and velocity errors. Since the planned trajectory has a fixed flight distance, using the current horizontal position to interpolate desired states from the trajectory ensures consistent tracking regardless of velocity perturbations. The modified error signals are:
- Position error: Interpolate \(\mathbf{x}_d\) based on current \(x\) coordinate.
- Velocity error: Interpolate \(\dot{\mathbf{x}}_d\) based on current \(x\) coordinate.
- Attitude and angular velocity errors: Remain time-based as they are less sensitive to spatial deviations.
This approach maintains the flight duration and allows the control algorithm to fully execute the trajectory, improving accuracy under disturbances.
Simulation Analysis and Results
I implemented the trajectory planning and control methods in Simulink to evaluate performance. The simulation framework includes the planned trajectory input, the quadrotor drone dynamic model, and the controller. The parameters are set as \(k_p = 3\), \(k_v = 2\), \(k_R = 3\), and \(k_\Omega = 2\). The nominal trajectory starts from \((x_0, z_0) = (0, 0)\) with \(U_0 = 3 \, \text{m/s}\) and \(W_0 = 0 \, \text{m/s}\). To test controller robustness, various initial condition errors are introduced, as summarized in Table 3.
The simulation results compare the traditional GTC and the modified method. Key performance metrics include the actual perching time \(T_{\text{att}}\), final position \(z\), final velocities \(U\) and \(W\), and final pitch angle \(\theta\). The results are presented in Table 4. For cases with horizontal velocity errors (e.g., Case 1 and Case 2), the modified method reduces final velocity errors significantly. For instance, in Case 1 with \(U_0 = 2.8 \, \text{m/s}\) (0.2 m/s lower than nominal), the modified method achieves a final horizontal velocity of 1.010 m/s compared to 1.263 m/s with GTC, bringing it closer to the desired 0.8 m/s. Similarly, for vertical velocity and position errors, the modified method shows comparable or better performance, demonstrating its efficacy in handling perturbations for the quadrotor drone.
The improved performance stems from the spatial-error formulation, which ensures that the quadrotor drone tracks the trajectory based on position rather than time, preventing early termination and allowing full execution of the perching maneuver. This is crucial for the quadrotor drone to achieve the required contact conditions for successful perching.
| Case | \(z_0\) (m) | \(U_0\) (m/s) | \(W_0\) (m/s) |
|---|---|---|---|
| Original | -0.48 | 3.0 | 1.574 |
| Case 1 | -0.48 | 2.8 | 1.574 |
| Case 2 | -0.48 | 3.2 | 1.574 |
| Case 3 | -0.48 | 3.0 | 1.374 |
| Case 4 | -0.48 | 3.0 | 1.774 |
| Case 5 | -0.46 | 3.0 | 1.574 |
| Case 6 | -0.50 | 3.0 | 1.574 |
| Case | \(T_{\text{att}}\) (s) | \(z\) (m) | \(U\) (m/s) | \(W\) (m/s) | \(\theta\) (rad) |
|---|---|---|---|---|---|
| Original | 0.4 | 0.002 | 0.659 | 0.000 | -1.571 |
| Case 0-GTC | 0.4 | 0.002 | 0.661 | 0.012 | -1.573 |
| Case 0-Mod | 0.4 | -0.005 | 0.618 | 0.009 | -1.557 |
| Case 1-GTC | 0.343 | 0.000 | 1.263 | 0.344 | -1.515 |
| Case 1-Mod | 0.348 | 0.004 | 1.010 | 0.149 | -1.509 |
| Case 2-GTC | 0.4 | -0.017 | 0.655 | -0.063 | -1.555 |
| Case 2-Mod | 0.4 | -0.034 | 0.858 | -0.115 | -1.514 |
| Case 3-GTC | 0.39 | 0.026 | 0.769 | 0.143 | -1.573 |
| Case 3-Mod | 0.385 | 0.013 | 0.765 | 0.102 | -1.551 |
| Case 4-GTC | 0.4 | -0.024 | 0.653 | -0.019 | -1.568 |
| Case 4-Mod | 0.393 | -0.025 | 0.711 | 0.051 | -1.555 |
| Case 5-GTC | 0.397 | 0.017 | 0.691 | 0.007 | -1.572 |
| Case 5-Mod | 0.389 | 0.012 | 0.737 | 0.003 | -1.554 |
| Case 6-GTC | 0.399 | -0.013 | 0.671 | 0.007 | -1.572 |
| Case 6-Mod | 0.389 | -0.024 | 0.738 | 0.001 | -1.554 |
Conclusion
In this work, I have addressed the vertical surface perching problem for quadrotor drones through an integrated approach of trajectory planning and tracking control. The trajectory planning method, based on open-loop dynamics and initial point assembly, generates dynamically feasible paths that satisfy perching constraints, providing a reliable reference for control. The geometric tracking control method ensures precise trajectory tracking, and its modified version, utilizing spatial-domain error signals, enhances robustness against initial velocity disturbances. Simulation results confirm that the proposed methods enable the quadrotor drone to achieve successful perching with minimized errors in contact conditions. This research contributes to extending the endurance and operational versatility of quadrotor drones, paving the way for applications in surveillance, inspection, and other missions requiring prolonged presence. Future work may involve experimental validation, adaptation to three-dimensional motions, and integration with advanced perching mechanisms for real-world deployment of the quadrotor drone.
