In recent years, quadcopter drone technology has made significant strides in intelligence, with widespread applications in military, commercial, and research fields. However, when transporting external loads, quadcopter drones face challenges such as increased system inertia, sluggish attitude response, and reduced disturbance resistance. To address these issues, I have designed an intelligent cable-suspended load system that enhances the stability and control of quadcopter drones under load. This system integrates advanced perception and control hardware, along with sophisticated software algorithms, to enable precise manipulation of suspended loads. The quadcopter platform is chosen for its agility and maneuverability, but load suspension introduces dynamic complexities that require careful handling. By leveraging a hierarchical control architecture and real-time sensor data, this system aims to mitigate the adverse effects of load inertia and improve overall performance. In this article, I will detail the design, implementation, and key components of this cable-suspended load system for quadcopter drones, emphasizing the use of tables and mathematical formulations to summarize critical aspects.
The overall system design centers on a quadcopter drone suspended with a flexible cable, as illustrated in the figure below. This configuration minimizes the inertial impact of the load on the quadcopter’s motion control, allowing for accurate adjustment of the load’s position and attitude at the cable’s end. This enables the execution of specialized tasks, such as remote operations with end-effectors, in challenging environments. The hardware is divided into an upper perception layer and a lower motion control layer. The upper layer uses a Jetson Nano-based perception controller equipped with a depth camera and LiDAR for target recognition and environmental awareness. The lower layer employs an STM32 microcontroller as the attitude controller, integrating an inertial measurement unit (IMU) and altitude measurement modules for robust motion control. Communication between these layers is facilitated through serial interfaces, ensuring efficient data exchange of perception, state, and control information. This design not only addresses the inherent instability caused by load suspension but also enhances the quadcopter’s ability to perform precise tasks under varying conditions.

The hardware composition of the cable-suspended load system consists of two main subsystems: the navigation perception system and the flight attitude control system. The navigation perception system is responsible for path tracking and obstacle avoidance, while the flight control system provides fundamental attitude stabilization and motion capabilities for the quadcopter. The navigation perception system includes components such as obstacle avoidance path planners, trajectory tracking controllers, and altitude controllers. For instance, the obstacle avoidance path planner takes global waypoints and obstacle coordinates from the camera to generate real-time local paths, which are then tracked by the trajectory controller using feedback from positioning modules. The altitude controller maintains the quadcopter’s height by compensating for attitude changes and using desired height inputs. The flight control system, on the other hand, relies on an STM32F103 microcontroller, along with sensors like optical flow, ultrasonic, barometer, and IMU, to process attitude and altitude data. This enables precise control of motor speeds through electronic speed controllers (ESCs), ensuring stable flight even with suspended loads. The integration of these hardware elements allows the quadcopter to handle the dynamic challenges of load suspension effectively.
To better illustrate the hardware components, Table 1 summarizes the key elements of the navigation perception and flight control systems, along with their functions.
| Component | Subsystem | Function |
|---|---|---|
| Jetson Nano | Navigation Perception | Processes data from depth camera and LiDAR for environmental awareness |
| Depth Camera | Navigation Perception | Captures visual data for obstacle detection and target recognition |
| LiDAR | Navigation Perception | Provides 3D environmental mapping and distance measurements |
| STM32F103 Microcontroller | Flight Control | Executes attitude and motion control algorithms |
| Inertial Measurement Unit (IMU) | Flight Control | Measures acceleration and angular velocity for attitude estimation |
| Barometer | Flight Control | Estimates altitude based on atmospheric pressure |
| Ultrasonic Sensor | Flight Control | Provides precise height measurements close to the ground |
| Optical Flow Sensor | Flight Control | Tracks motion over surfaces for velocity estimation |
The navigation perception system operates through a series of control loops that integrate sensor data to guide the quadcopter. For example, the obstacle avoidance path planner uses input from the depth camera and LiDAR to dynamically adjust the quadcopter’s path, avoiding obstacles while following a predefined trajectory. The trajectory tracking controller then uses the quadcopter’s current position, obtained from GPS or other positioning modules, to compute control signals that adjust the attitude. This is mathematically represented by a PID controller for trajectory tracking. Let the desired trajectory be \( \mathbf{p}_d(t) = [x_d(t), y_d(t), z_d(t)]^T \), and the current position be \( \mathbf{p}(t) = [x(t), y(t), z(t)]^T \). The error vector is \( \mathbf{e}(t) = \mathbf{p}_d(t) – \mathbf{p}(t) \). The control output for trajectory tracking can be expressed as:
$$ \mathbf{u}_{track}(t) = K_p \mathbf{e}(t) + K_i \int_0^t \mathbf{e}(\tau) d\tau + K_d \frac{d\mathbf{e}(t)}{dt} $$
where \( K_p \), \( K_i \), and \( K_d \) are the proportional, integral, and derivative gains, respectively. Similarly, the altitude controller maintains the quadcopter’s height by compensating for attitude changes. If the desired altitude is \( h_d \), and the current altitude is \( h \), the error is \( e_h(t) = h_d – h(t) \). The control output for altitude is:
$$ u_h(t) = K_{p,h} e_h(t) + K_{i,h} \int_0^t e_h(\tau) d\tau + K_{d,h} \frac{de_h(t)}{dt} $$
These controllers ensure that the quadcopter can navigate complex environments while carrying a suspended load, enhancing the overall stability and responsiveness of the system.
The flight control system for the quadcopter is designed with multiple nested control loops to handle attitude stabilization and motion control. The primary loops include attitude control and stabilization control. The attitude control loop uses sensor feedback on Euler angles (roll, pitch, yaw) to adjust the quadcopter’s orientation through PID algorithms. For instance, the desired roll angle \( \phi_d \), pitch angle \( \theta_d \), and yaw angle \( \psi_d \) are compared with the current angles \( \phi \), \( \theta \), and \( \psi \). The control signals for each axis are computed as follows:
$$ u_\phi(t) = K_{p,\phi} e_\phi(t) + K_{i,\phi} \int_0^t e_\phi(\tau) d\tau + K_{d,\phi} \frac{de_\phi(t)}{dt} $$
$$ u_\theta(t) = K_{p,\theta} e_\theta(t) + K_{i,\theta} \int_0^t e_\theta(\tau) d\tau + K_{d,\theta} \frac{de_\theta(t)}{dt} $$
$$ u_\psi(t) = K_{p,\psi} e_\psi(t) + K_{i,\psi} \int_0^t e_\psi(\tau) d\tau + K_{d,\psi} \frac{de_\psi(t)}{dt} $$
where \( e_\phi(t) = \phi_d – \phi(t) \), \( e_\theta(t) = \theta_d – \theta(t) \), and \( e_\psi(t) = \psi_d – \psi(t) \). The stabilization control loop, or angular velocity loop, uses feedback from gyroscopes to ensure rapid response to disturbances. If the desired angular velocities are \( \dot{\phi}_d \), \( \dot{\theta}_d \), and \( \dot{\psi}_d \), and the current angular velocities are \( \dot{\phi} \), \( \dot{\theta} \), and \( \dot{\psi} \), the control outputs are:
$$ u_{\dot{\phi}}(t) = K_{p,\dot{\phi}} e_{\dot{\phi}}(t) + K_{i,\dot{\phi}} \int_0^t e_{\dot{\phi}}(\tau) d\tau + K_{d,\dot{\phi}} \frac{de_{\dot{\phi}}(t)}{dt} $$
$$ u_{\dot{\theta}}(t) = K_{p,\dot{\theta}} e_{\dot{\theta}}(t) + K_{i,\dot{\theta}} \int_0^t e_{\dot{\theta}}(\tau) d\tau + K_{d,\dot{\theta}} \frac{de_{\dot{\theta}}(t)}{dt} $$
$$ u_{\dot{\psi}}(t) = K_{p,\dot{\psi}} e_{\dot{\psi}}(t) + K_{i,\dot{\psi}} \int_0^t e_{\dot{\psi}}(\tau) d\tau + K_{d,\dot{\psi}} \frac{de_{\dot{\psi}}(t)}{dt} $$
These control signals are then combined in a power distribution module that converts them into PWM signals for the four motors, based on the quadcopter’s X-configuration motion model. The dynamics of a quadcopter can be described by Newton-Euler equations. Let \( m \) be the mass of the quadcopter, \( \mathbf{g} = [0, 0, g]^T \) be the gravity vector, and \( \mathbf{F} \) be the total thrust force. The translational motion is given by:
$$ m \ddot{\mathbf{p}} = \mathbf{F} – m \mathbf{g} $$
where \( \mathbf{F} = [F_x, F_y, F_z]^T \) is derived from the motor thrusts. For a quadcopter with motors generating thrusts \( T_1, T_2, T_3, T_4 \), the total thrust in the body frame is \( F_z = T_1 + T_2 + T_3 + T_4 \), and the moments around the axes are related to the differences in thrust. The rotational motion is described by:
$$ I \dot{\boldsymbol{\omega}} + \boldsymbol{\omega} \times I \boldsymbol{\omega} = \boldsymbol{\tau} $$
where \( I \) is the inertia tensor, \( \boldsymbol{\omega} = [p, q, r]^T \) is the angular velocity vector, and \( \boldsymbol{\tau} = [\tau_\phi, \tau_\theta, \tau_\psi]^T \) is the torque vector. This mathematical foundation allows for precise control of the quadcopter’s attitude and position, even when dealing with the additional dynamics of a suspended load.
The software system design for the cable-suspended load system involves hierarchical control strategies to manage the quadcopter and the suspended load. The upper perception controller handles environment perception, obstacle avoidance, cable-suspended load control, and end-effector control. It sends attitude commands to the lower motion controller, which executes quadcopter attitude control and load state control. The cable-suspended load system comprises the quadcopter本体 and a load end equipped with an IMU and positioning device. To achieve precise control of the load’s attitude and position, a dedicated load controller is designed, consisting of load attitude control and load position control. The load attitude control aims to achieve and maintain the desired motion attitude of the suspended load by computing the quadcopter’s attitude. The load position control ensures that the load tracks a desired trajectory by adjusting the quadcopter’s position. This forms a cascaded control structure where the load controller takes the desired load position as input, computes control signals for both load position and attitude, and feeds the results into the quadcopter’s attitude control loop. For a load with mass \( m_l \) suspended by a cable of length \( L \), the dynamics can be modeled using Lagrangian mechanics. The position of the load in the inertial frame is \( \mathbf{p}_l = \mathbf{p} + L \mathbf{q} \), where \( \mathbf{p} \) is the quadcopter’s position and \( \mathbf{q} \) is a unit vector along the cable. The equations of motion for the load involve forces due to gravity and cable tension. The control law for load position can be derived as:
$$ \mathbf{u}_l = K_{p,l} (\mathbf{p}_{l,d} – \mathbf{p}_l) + K_{d,l} (\dot{\mathbf{p}}_{l,d} – \dot{\mathbf{p}}_l) $$
where \( \mathbf{p}_{l,d} \) is the desired load position, and \( K_{p,l} \) and \( K_{d,l} \) are control gains. This approach enables the quadcopter to manipulate the load accurately, addressing challenges such as swing damping and trajectory tracking.
Table 2 provides a summary of the key control loops and their parameters in the software system, highlighting the integration of load control with quadcopter attitude control.
| Control Loop | Inputs | Outputs | Key Parameters |
|---|---|---|---|
| Trajectory Tracking | Desired position \( \mathbf{p}_d \), Current position \( \mathbf{p} \) | Attitude control signals | \( K_p, K_i, K_d \) gains |
| Altitude Control | Desired height \( h_d \), Current height \( h \) | Throttle control | \( K_{p,h}, K_{i,h}, K_{d,h} \) gains |
| Attitude Control | Desired angles \( \phi_d, \theta_d, \psi_d \), Current angles \( \phi, \theta, \psi \) | Motor PWM signals | Axis-specific PID gains |
| Load Position Control | Desired load position \( \mathbf{p}_{l,d} \), Current load position \( \mathbf{p}_l \) | Quadcopter attitude adjustments | \( K_{p,l}, K_{d,l} \) gains |
| Load Attitude Control | Desired load attitude, Current load attitude | Cable tension adjustments | Attitude error gains |
The attitude self-stabilization system is crucial for maintaining the quadcopter’s stability, especially when carrying a suspended load. The flight control system employs a cascaded PID structure for height, attitude, and velocity control. For height control, the outer loop takes the desired height \( h_d \) from the remote controller and uses a PID controller to compute the desired vertical velocity \( \dot{h}_d \). This is then fed into an inner velocity loop that calculates the desired vertical acceleration \( \ddot{h}_d \), and finally, an acceleration loop outputs the throttle value. Mathematically, this can be represented as:
$$ \dot{h}_d = K_{p,h} e_h + K_{i,h} \int e_h dt + K_{d,h} \frac{de_h}{dt} $$
$$ \ddot{h}_d = K_{p,\dot{h}} (\dot{h}_d – \dot{h}) + K_{i,\dot{h}} \int (\dot{h}_d – \dot{h}) dt + K_{d,\dot{h}} \frac{d(\dot{h}_d – \dot{h})}{dt} $$
$$ u_{throttle} = K_{p,\ddot{h}} (\ddot{h}_d – \ddot{h}) + K_{i,\ddot{h}} \int (\ddot{h}_d – \ddot{h}) dt + K_{d,\ddot{h}} \frac{d(\ddot{h}_d – \ddot{h})}{dt} $$
For horizontal motion, the desired horizontal velocity \( \mathbf{v}_{d,hor} = [v_{d,x}, v_{d,y}]^T \) is input into a velocity PID controller, which outputs the desired attitude angles \( \phi_d \) and \( \theta_d \). These are then processed by the attitude control loops described earlier. The yaw control follows a similar structure, with a desired yaw angle \( \psi_d \) input into an angle PID controller that outputs a desired yaw rate \( \dot{\psi}_d \), which is then handled by a rate PID controller. All these control signals are combined in the power distribution module, which maps them to PWM signals for the four motors based on the quadcopter’s dynamics. The power distribution for an X-configuration quadcopter can be represented as:
$$ \begin{bmatrix} T_1 \\ T_2 \\ T_3 \\ T_4 \end{bmatrix} = \begin{bmatrix} 1 & 1 & -1 & -1 \\ 1 & -1 & -1 & 1 \\ 1 & -1 & 1 & -1 \\ 1 & 1 & 1 & 1 \end{bmatrix} \begin{bmatrix} u_{throttle} \\ u_\phi \\ u_\theta \\ u_\psi \end{bmatrix} $$
where \( T_1 \) to \( T_4 \) are the thrusts of the four motors, and \( u_{throttle} \), \( u_\phi \), \( u_\theta \), and \( u_\psi \) are the control outputs for throttle, roll, pitch, and yaw, respectively. This comprehensive control architecture ensures that the quadcopter remains stable and responsive, even when subjected to the disturbances caused by a suspended load.
In conclusion, the design of a cable-suspended load system for quadcopter drones addresses the limitations of traditional load-carrying methods, which often reduce maneuverability and control precision. By implementing a hierarchical control system with advanced perception and motion control hardware, along with cascaded PID controllers and load-specific control algorithms, this system enhances the quadcopter’s ability to handle suspended loads efficiently. The integration of sensors like IMUs, depth cameras, and LiDAR enables real-time environmental awareness and precise load manipulation. Mathematical models and control formulations, such as those for trajectory tracking and attitude stabilization, provide a solid foundation for system performance. This approach not only improves the quadcopter’s stability and responsiveness but also opens up new possibilities for applications in remote operations, such as inspection, delivery, and search-and-rescue missions. Future work could focus on optimizing control gains through machine learning techniques or extending the system to handle multiple loads or more complex environments. Overall, this design represents a significant step forward in leveraging quadcopter technology for sophisticated tasks involving suspended loads.
