# Tension-based reconfigurable multi-agent formation for aerial load transportation

Vinícius Pacheco Bacheti, Daniel K D Villa, Rogelio Lozano, Mário Sarcinelli-Filho, Pedro Castillo Garcia

## ► To cite this version:

Vinícius Pacheco Bacheti, Daniel K D Villa, Rogelio Lozano, Mário Sarcinelli-Filho, Pedro Castillo Garcia. Tension-based reconfigurable multi-agent formation for aerial load transportation. IEEE Access, 2025, 13, pp.114098-114116. 10.1109/ACCESS.2025.3584623. hal-05385174

HAL Id: hal-05385174

https://cnrs.hal.science/hal-05385174v1

Submitted on 27 Nov 2025

HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d'enseignement et de recherche français ou étrangers, des laboratoires publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
# Tension-based reconfigurable multi-agent formation for aerial load transportation

VINÍCIUS PACHECO BACHETI<fnref n="1" />, DANIEL K. D. VILLA<fnref n="1" />, ROGELIO LOZANO<fnref n="2" />, MÁRIO SARCINELLI-FILHO<fnref n="1" />, AND PEDRO CASTILLO<fnref n="2" />, (Member, IEEE)

Corresponding author: Vinícius Pacheco Bacheti (e-mail: vinicius.bacheti@gmail.com).

This work was supported in part by CNPq – Conselho Nacional de Desenvolvimento Científico e Tecnológico, a Brazilian agency that supports scientific and technological development – and FAPES - Fundação de Amparo à Pesquisa e Inovação do Espírito Santo, an agency of the State of Espírito Santo, Brazil, that supports scientific and technological development. It was also financed in part by the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - Brasil (CAPES) - Finance Code 001.

**ABSTRACT** This paper proposes a trajectory tracking controller for a cable-suspended load transported by *n* unmanned aerial vehicles based on Euler angle states. This is accomplished using the resultant tension on the load as a virtual input and then distributing it to each vehicle, for which low-level controllers generate the correct thrust and torque values. Furthermore, a leader-follower-based control is proposed to securely change the number of agents carrying the load. Numerical simulations are presented to validate the controllers. Finally, experiments show that the proposed method effectively makes the load perform as expected and allows one to change the formation configuration without severely impacting the load navigation.

**INDEX TERMS** Autonomous aerial vehicles, Cooperative systems, Load modeling, Mobile robots, Multi-robot systems

## I. INTRODUCTION

As technology advances and becomes more affordable, the use of robots in different applications increases. Initially developed for military applications, drones are now used in several civil applications, such as disaster management [1], crop monitoring [2], marine fauna detection [3], habitat destruction assessment [4], and many others. Among these applications, one that has received increasingly more attention is the transportation of loads by unmanned aerial vehicles (UAVs). As recent surveys [5], [6] show, multirotor vehicles have several advantages in relation to this kind of application, such as maneuverability, the ability to hover in place and operate in a confined environment, and ease of use. However, they also come with disadvantages, namely short flight time and small payload capacity [7].

Usually, for multirotors, load transportation is achieved using grippers rigidly attached to the body of the multirotor [8], [9] or cables [10], [11]. While the former can increase the vehicle's inertia, making it more sluggish for fast attitude response, the latter increases the degree of under-actuation,

making its control and motion planning more difficult [12]. The use of cables, however, has the significant advantage of enabling multiple multirotors to carry a single load cooperatively.

Teams of drones have been used for a long time to compensate for the drawbacks of a single aircraft, such as to cover a wider area considering simultaneous different viewpoints or to share sensors to reduce the collective system payload [13]. Thus, it is natural to use multiple drones to carry loads. While this makes a difficult problem even more complex, it comes with the benefits of increasing the possible weight of the payload, reducing oscillations, as well as possibly enabling the positioning and orienting of the load, depending on the number of drones and anchor points [14].

Several recent works have tackled this kind of system. In [15], a method to model and optimize cable tensions in a multi-UAV system transporting a payload is proposed. It uses a mass-spring-damper approach to represent the dynamics of flexible cables connecting the UAVs to the payload, accounting for elasticity, damping, and slack conditions. A

<footnote n="1">¹Universidade federal do Espírito Santo, Vitória - ES, Brazil, (e-mail: vinicius.bacheti@gmail.com, daniel.villa@ufes.br, mario.sarcinelli@ufes.br)</footnote>

<footnote n="2">²Heudiasyc Laboratory CNRS UMR 7253, Université de Technologie de Compiegne, Compiegne, France (e-mail: rlozano@hds.utc.fr, castillo@hds.utc.fr)</footnote>
Nonlinear Least Squares (NLS) regression algorithm, based on the Gauss-Newton method, is employed to fine-tune the parameters of the tension model. The methodology also integrates control strategies such as PID and ISMC to stabilize the system during these events.

In [16], the authors present a control approach for a multi-UAV system, named the Fly-Crane setup, designed to manage a cable-suspended load. The methodology prioritizes robust full-pose control (position and orientation) under uncertainties in the model and external disturbances. It simplifies the process by focusing on kinematic parameters, which are easier to measure accurately. The system is divided into inner and outer control loops: the inner loop uses decentralized proportional velocity controllers for each UAV, while the outer loop generates reference velocities for the UAVs to maintain the load's configuration.

Work is also being done with differently shaped loads, such as in [17]–[19], where two drones carry a payload in the shape of a rod. Another recent example is [20], which presents a cooperative control method for two UAVs transporting a bar-shaped payload connected via cables without relying on inter-UAV communication. The leader UAV controls the payload trajectory using sensor data from an inertial measurement unit (IMU) attached to the payload while the follower adjusts its motion to maintain stability. The system models the payload as nonholonomic to restrict certain movements, ensuring that the follower's motion does not interfere with the leader's trajectory tracking. Unscented Kalman Filters estimate forces and positions, which removes the need for physical force sensors.

In [21], a multi-UAV system transporting a payload with flexible cables is considered, addressing how to handle the failure of one UAV during flight. The proposed method involves modeling the system dynamics without simplifications and creating a recovery strategy using PID, Integrative Sliding Mode Control (ISMC), and Consensus-Based control. The system's dynamics include equations for forces, torques, and cable tensions, modeled with a mass-spring-damper approach. The control design ensures that the remaining UAVs redistribute the load and stabilize the payload by directly acting on cable tensions.

In the present work, we have chosen to tackle the problem of controlling a load attached via cables to multiple drones. This will be accomplished using the resultant tension on the load as a virtual control signal and then distributing this tension to each UAV, where low-level controllers will be responsible for generating the correct thrust and torque values. We also discuss modifying the number of agents during mission accomplishment using a leader-follower-based control. Such a modification can be necessary to allow handling agent failures or reduce the robot cluster's size to obey possible environmental physical constraints, for instance.

The failure of a robot could cause it to become part of the payload, making the recovery attempt more difficult. However, if there is a way to detach such UAV from the system, such as [22] hypothesizes, then the controller pre-

sented in this work could be a powerful tool to ensure the complete mission accomplishment. However, this work will focus more on reconfiguring the formation by changing the number of agents carrying the load to obey new environmental constraints, such as flying through a narrow corridor.

The main contributions of this work are a controller for trajectory tracking of a cable-suspended load system with n agents based on Euler angle states, and a leader-follower-based control responsible for securely changing the number of agents carrying the load. It is worth mentioning that the proposed controller can also recover the original formation, as the experiments will show. Furthermore, numerical simulations are also presented to help validate the proposed controllers. Finally, three experiments with different objectives are shown to illustrate and help further validate the proposed theory.

This work continues as follows: in Section II, the problem being addressed is characterized, along with the translational and rotational system models. Section III describes the controllers responsible for tracking the load trajectory, while Section IV discusses how the number of agents is modified. The results are shown in Sections V and VI, the former discussing the simulations carried out and the latter showing the experimental results obtained. Finally, Section VII synthesizes the findings and advances some future work.

## II. PROBLEM DEFINITION

Consider a system of n robots attached to a load via cables, subjected to the following assumptions:

* The load is considered to be a point mass.

* The drones are attached to the load via a single cable attached to its center of mass.

* The cables are considered rigid and subjected to a positive tension force.

* The cables are massless.

Regarding the configuration variables of this system, $x_0 = [x_0 \ y_0 \ z_0]^T \in \mathbb{R}^3$ is the load position relative to the inertial system of coordinates, $x_i = [x_i \ y_i \ z_i]^T \in \mathbb{R}^3$, with $i = 1, 2, ..., n$, is each drone's position, $l_i \in \mathbb{R}$ is the length of the cable connecting drone $i$ to the point mass and $\alpha_i \in \mathbb{S}^2$ is a unitary vector representing the direction of the tension force in $l_i$. In addition, each drone has an orientation represented by $\eta_i = [\phi_i \ \theta_i \ \psi_i]^T \in \mathbb{R}^3$, where each variable stands for the roll, pitch and yaw of the vehicle, respectively. A graphical representation of the system for $n = 3$ is illustrated in Fig. 1.

The dynamic behavior of the load is represented by

$$m_0 \ddot{x}_0 = -m_0 g e_3 - \sum_{i=1}^{n} T_i \alpha_i, \quad (1)$$

where $m_0$ is the mass of the load, $g$ is the gravitational acceleration, $e_3 = [0 \ 0 \ 1]^T$ is a unitary vector pointing in the z direction, and $T_i \in \mathbb{R}$ is the tension in cable $i$.
<figure><img src="image_2.png" /><figcaption>FIGURE 1: Graphical representation of the system agents and the configuration variables for $n = 3$.</figcaption></figure>

From Fig. 1, and the fact that the cables are rigid with constant length $l_i$, notice that the load is subjected to the restriction

$$x_i = x_0 - l_i \alpha_i, \quad (2)$$

concerning each UAV. As for the dynamic behavior of the drones, due to the premise that the cables are attached to their center of mass and to the decoupled nature of the dynamics of $x_i$ and $\eta_i$ coordinates [23], it is possible to claim without loss of generality that the tension force does not impact the angular dynamics directly, and thus, based on [24], it is possible to write the translational dynamic equation of the drones as

$$m_i \ddot{x}_i = f_i \mathbf{R}(\eta_i) e_3 - m_i g e_3 + T_i \alpha_i, \quad (3)$$

where $m_i$ is the mass of the $i^{th}$ vehicle, $f_i \in \mathbb{R}$ is the thrust it generates, and $\mathbf{R}(\eta_i) \in SO(3)$ is its forward kinematic matrix, given by

$$\mathbf{R}(\eta_i) = \begin{bmatrix} c_{\theta_i} & c_{\psi_i} & s_{\phi_i} & s_{\theta_i} & c_{\psi_i} - c_{\phi_i} & s_{\psi_i} & s_{\phi_i} & s_{\psi_i} + c_{\phi_i} & s_{\theta_i} & c_{\psi_i} \\ c_{\theta_i} & s_{\psi_i} & c_{\phi_i} & c_{\psi_i} + s_{\phi_i} & s_{\theta_i} & s_{\psi_i} & c_{\phi_i} & s_{\theta_i} & s_{\psi_i} - s_{\phi_i} & c_{\psi_i} \\ -s_{\theta_i} & s_{\phi_i} & c_{\theta_i} & c_{\phi_i} & c_{\theta_i} & c_{\psi_i} - s_{\phi_i} & c_{\phi_i} & c_{\theta_i} & c_{\psi_i} & c_{\phi_i} \end{bmatrix}, \quad (4)$$

where $c_x$ and $s_x$ correspond to $\cos x$ and $\sin x$, respectively.

Regarding angular dynamics, let $\Omega_i \in \mathbb{R}^3$ represent the angular velocities of drone $i$ in its reference system, which relates to the angular velocity in the inertial system $\eta_i$ through the expression $\Omega_i = \mathbf{W}_{\eta_i} \eta_i$, where

$$\mathbf{W}_{\eta_i} = \begin{bmatrix} 1 & 0 & -s_{\theta_i} \\ 0 & c_{\phi_i} & s_{\phi_i} & c_{\theta_i} \\ 0 & -s_{\phi_i} & c_{\phi_i} & c_{\theta_i} \end{bmatrix}. \quad (5)$$

In our analysis, the Euler angle coordinates convention is the following: the x-axis points in the forward direction, and the z-axis points up, obtaining $[\phi_i \ \theta_i \ \psi_i]$.

With these definitions, the rotational dynamics of the drones can be written as

$$\ddot{\eta}_i = \tilde{\tau}_i, \quad (6)$$

where $\tilde{\tau}_i = [\tilde{\tau}_\phi \ \tilde{\tau}_\theta \ \tilde{\tau}_\psi]^T \in \mathbb{R}^3$ are the rolling, pitching and yawning moments, respectively, which are related to the input torques $\tau_i$ by

$$\tilde{\tau}_i = \mathbf{J}^{-1}(\tau_i - \mathbf{C}(\eta, \dot{\eta})\dot{\eta}), \quad (7)$$

where $\mathbf{J}$ is the inertia matrix of the drone expressed in the generalized coordinates $\eta$, and $\mathbf{C}(\eta, \dot{\eta})$ is the Coriolis term, which is

$$\mathbf{J} = \mathbf{W}_{\eta}^{T} \mathbf{I} \mathbf{W}_{\eta}, \quad (8)$$

and

$$\mathbf{C}(\eta, \dot{\eta}) = \dot{\mathbf{J}} - \frac{1}{2} \frac{\partial}{\partial \eta} (\dot{\eta}^T \mathbf{J}). \quad (9)$$

Finally, this work considers the trajectory tracking by the load, which means that the controller should be able to reduce position and velocity errors when the load follows a moving target. The following section discusses how this is accomplished.

### III. LOAD CONTROLLER

This section describes in detail the controller developed for load trajectory tracking, guaranteeing the stability of the whole system. The Point of Interest (POI) for the controller is always the load position, and all trajectories are defined in its space.

Considering that the real input of the system is the thrust $f_i$ of each drone and their torques $\tau_i = [\tau_{\phi_i} \ \tau_{\theta_i} \ \tau_{\psi_i}]^T$, the main idea of this work is to virtually control the load through considering the resultant tension in the cables as a virtual input. Then, this resultant tension is distributed among all the available UAVs, which, to generate the required tension on the cable, must assume a particular position in space, given by the desired tension vector and the length of the cable $l_i$, and a combination of a desired thrust and attitude. It is assumed that the desired attitude is reached fast enough so that the UAVs converge to their desired position, which, in turn, generates the desired tensions in the cables, which ultimately leads to the control of the load. Figure 2 shows an overview of the control system.

The following subsections describe each of the individual steps of the controller, beginning with the load control and ending with the attitude controller based on Euler angles.

#### A. LOAD TENSION CONTROL

Consider the control law

$$\mathbf{u}_0 = m_0(\mathbf{g}\mathbf{e}_3 + \mathbf{v}_0), \quad (10)$$

based on feedback linearization, where $\mathbf{v}_0$ is defined as

$$\mathbf{v}_0 = \ddot{\mathbf{x}}_{0d} + \mathbf{K}_{p0} \ddot{\mathbf{x}}_0 + \mathbf{K}_{d0} \dot{\ddot{\mathbf{x}}}_0, \quad (11)$$

where $\ddot{\mathbf{x}}_{0d}$ is the desired acceleration of the trajectory, $\mathbf{K}_{p0}$, $\mathbf{K}_{d0} > 0$ are diagonal gain matrices and $\ddot{\mathbf{x}}_0$ is the tracking error of the load, given by

$$\ddot{\mathbf{x}}_0 = \mathbf{x}_{0d} - \mathbf{x}_0, \quad (12)$$
<figure><img src="image_3.png" /><figcaption>FIGURE 2: Control diagram of the n-multi-agent carrying a load.</figcaption></figure>

while $\dot{\tilde{x}}_0$ is its derivative, given by

$$ \dot{\tilde{x}}_0 = \dot{x}_{0d} - \dot{x}_0. \quad (13) $$

Finally, $\mathbf{x}_{0d}$ and $\dot{\mathbf{x}}_{0d}$ are the desired positions and velocities of the load, respectively.

Notice from (1) that the resultant tension on the load cannot be directly generated. Therefore, it can be considered as a virtual control input resulting from the tension forces of the cables, defined as the sum of all the tension forces on the cables. Hence, from (1) we can propose the control law

$$ \mathbf{u}_0 = -\sum_{i=1}^{n} T_{id} \alpha_{id}, \quad (14) $$

where the minus sign comes from the fact that the tension forces were considered positive at the other end of the cable, as shown in Fig 1, and $T_{id} \alpha_{id}$ are the desired tension vectors generated by each drone.

Now, define the tension error as the difference between the actual tension in the cable and the desired tension. Thus,

$$ \mathbf{e}_i^T = T_i \alpha_i - T_{id} \alpha_{id}. \quad (15) $$

Then, by introducing (10), (14) and (15) into (1), the closed-loop equation takes the form

$$ m_0 \ddot{\mathbf{x}}_0 = m_0 \boldsymbol{\nu}_0 - \sum_{i=1}^{n} \mathbf{e}_i^T. \quad (16) $$

However, if the assumption is made that the initial conditions of the system are well posed, such that the UAVs are near their ultimately desired positions relative to the load, and also that the desired positions and velocities of the load are described by smooth functions, with relatively small accelerations, one could argue that the tension error is bounded and slowly-varying, i.e., $||\mathbf{e}_i^T|| \le \delta$ and $\dot{\mathbf{e}}_i^T \approx 0$, where $\delta > 0$.

Observe from (16) that if $\mathbf{e}_i^T \to 0$, then

$$ \ddot{\mathbf{x}}_0 = \boldsymbol{\nu}_0. \quad (17) $$

Therefore, using (11), such an equation can be rewritten as

$$ \ddot{\tilde{\mathbf{x}}}_0 + \mathbf{K}_{d0} \dot{\tilde{\mathbf{x}}}_0 + \mathbf{K}_{p0} \tilde{\mathbf{x}}_0 = 0, \quad (18) $$

which is a linear form that guarantees that the velocity error $\dot{\tilde{x}}_0$ and the position error $\tilde{x}_0$ converge asymptotically to zero when time goes to infinity.

Thus, as (18) suggests, if the UAVs can generate, through (14), the correct tension vector in the load, given by (10), and $\mathbf{e}_i^T \to 0$, then the load will accomplish the trajectory tracking task. The following section discusses how this task is accomplished.

## B. GENERATING THE DESIRED TENSION FORCE

In this subsection, the controller responsible for generating the required tension force for each drone ($\mathbf{e}_i^T \to 0$) is proposed.

To do so, consider the control law

$$ \mathbf{u}_i = m_i(g\mathbf{e}_3 + \boldsymbol{\nu}_i) - T_{id} \alpha_{id}. \quad (19) $$

Observe that $\mathbf{u}_i$ is the tridimensional force vector that the drone generates through its thrust and attitude, and so it can be written as

$$ \mathbf{u}_i = f_{id} \mathbf{R}(\eta_{id}) \mathbf{e}_3, \quad (20) $$

where $f_{id} = ||\mathbf{u}_i||$ is the desired thrust force of each drone and $\eta_{id}$ is its desired attitude.

By defining the UAV force vector error as the difference between the actual force generated by the combination of thrust and attitude and the desired force, it is possible to write

$$ \mathbf{e}_i^u = f_i \mathbf{R}(\eta_i) \mathbf{e}_3 - f_{id} \mathbf{R}(\eta_{id}) \mathbf{e}_3. \quad (21) $$

This way, by combining (21) with the model given in (3), the closed-loop equation is given by

$$ m_i \ddot{\mathbf{x}}_i = m_i \boldsymbol{\nu}_i + \mathbf{e}_i^u + \mathbf{e}_i^T. \quad (22) $$
Notice that if $e_i^T$, $e_i^u \to 0$, which will be later discussed, (22) becomes

$$ \ddot{x}_i = \nu_i. \qquad (23) $$

Then, to get good behavior it is proposed that

$$ \nu_i = \ddot{x}_{id} + \mathbf{K}_{pi} \tilde{x}_i + \mathbf{K}_{di} \dot{\tilde{x}}_i, \qquad (24) $$

where $\ddot{x}_{id}$ is the desired acceleration of the trajectory, $\mathbf{K}_{pi}$, $\mathbf{K}_{di} > 0$ are diagonal gain matrices and the position and velocity errors $\tilde{x}_i$ and $\dot{\tilde{x}}_i$, respectively, are defined as

$$ \tilde{x}_i = \mathbf{x}_{0d} - l_i \alpha_{id} - \mathbf{x}_i, \qquad (25) $$

and

$$ \dot{\tilde{x}}_i = \dot{\mathbf{x}}_{0d} - l_i \dot{\alpha}_{id} - \dot{\mathbf{x}}_i. \qquad (26) $$

Introducing (24) into (23), one gets

$$ \ddot{\tilde{x}}_i + \mathbf{K}_{di} \dot{\tilde{x}}_i + \mathbf{K}_{pi} \tilde{x}_i = 0, \qquad (27) $$

from which it becomes clear that the position and velocity errors converge asymptotically to zero, which indicates that the UAVs converge to their desired positions.

### C. ATTITUDE CONTROLLER

To control the attitude of the aerial vehicles, it is crucial to define the desired angle values for each drone. These desired values are related to $\mathbf{u}_i$, in such a way that the z-axis of the UAV coincides with the direction of $\mathbf{u}_i$.

For the application discussed in this work, notice that all movements in the yaw orientation of the drone would only twist the cables, so the yaw is considered to remain constant throughout the movement. Pitch and roll, on the other hand, are very closely related to the direction of the thrust force of each drone.

Thus, to achieve the desired attitude, the desired pitch and roll angles of each drone, considering $\psi_i = 0$, are written as

$$ \phi_{id}^0 = - \arcsin \frac{u_{iy}}{\|\mathbf{u}_i\|}, \qquad (28) $$

$$ \theta_{id}^0 = \left( \frac{\pi}{2} - \arctan \frac{u_{iz}}{u_{ix}} \right) \operatorname{sgn}\left( \arctan \frac{u_{iz}}{u_{ix}} \right), \qquad (29) $$

where sgn is the sign function, which returns 1 if its argument is positive and -1 if its argument is negative (0 otherwise) and $\|\mathbf{u}_i\|$ is the norm of the desired thrust vector. The superscript zero indicates that these values are considering the heading of the drone aligned with the inertial axis, but they can be easily modified to fit a UAV with a different yaw through the equation

$$ \begin{bmatrix} \phi_{id} \\ \theta_{id} \end{bmatrix} = \begin{bmatrix} c_{\psi_i} & s_{\psi_i} \\ -s_{\psi_i} & c_{\psi_i} \end{bmatrix} \begin{bmatrix} \phi_{id}^0 \\ \theta_{id}^0 \end{bmatrix}, \qquad (30) $$

where $\phi_{id}$ and $\theta_{id}$ are the real desired pitch and roll of each UAV, regardless of their current heading, which can be any value and will be kept constant to not twist the cables. Thus, the desired attitude vector can be written as

$$ \eta_{id} = \begin{bmatrix} \phi_{id} \\ \theta_{id} \\ \psi_{id} \end{bmatrix}. \qquad (31) $$

By assuming that the drones are attached to the load via a single cable attached to its center of mass, the attitude dynamics can be considered to be decoupled from the payload dynamics. Therefore, one can consider the control law

$$ \tilde{\tau}_i = \nu_i^\eta, \qquad (32) $$

for stabilizing the decoupled attitude dynamics (6), where the desired behavior is given by

$$ \nu_i^\eta = \ddot{\eta}_{id} + \mathbf{K}_{pi}^\eta \tilde{\eta}_i + \mathbf{K}_{di}^\eta \dot{\tilde{\eta}}_i, \qquad (33) $$

where $\mathbf{K}_{pi}^\eta$, $\mathbf{K}_{di}^\eta > 0$ are diagonal gain matrices and the attitude and angular speed errors $\tilde{\eta}_i$ and $\dot{\tilde{\eta}}_i$, respectively, are defined as

$$ \tilde{\eta}_i = \eta_{id} - \eta_i, \qquad (34) $$

and

$$ \dot{\tilde{\eta}}_i = \dot{\eta}_{id} - \dot{\eta}_i. \qquad (35) $$

The relationship between the controller input $\tilde{\tau}_i$ and the actual input $\tau_i$ is the inverse of (7), and is written as

$$ \tau_i = J\tilde{\tau}_i + C(\eta, \dot{\eta})\dot{\eta}. \qquad (36) $$

Therefore, it follows that

$$ \ddot{\tilde{\eta}}_i + \mathbf{K}_{pi}^\eta \tilde{\eta}_i + \mathbf{K}_{di}^\eta \dot{\tilde{\eta}}_i = 0. \qquad (37) $$

Observe that attitude and angular velocity errors converge asymptotically to zero, indicating that the UAVs converge to their desired attitudes. In addition, since the thrust of the vehicles is an input, $f_{id}$ can be obtained directly as long as the desired values are within the vehicle's actuator limits; thus, $e_i^u \to 0$ in (22).

### D. STABILITY ANALYSIS

For each vehicle, the dynamics considering the payload and cable tension disturbances are given by (22). Here, we analyze the remaining assumption, $e_i^T \to 0$ asymptotically. The closed-loop dynamics for each vehicle can be rewritten as

$$ \ddot{\tilde{x}}_i + \mathbf{K}_{di} \dot{\tilde{x}}_i + \mathbf{K}_{pi} \tilde{x}_i = - \frac{1}{m_i} \mathbf{e}_i^T, \qquad (38) $$

Therefore, one can propose

$$ V = \frac{1}{2} \tilde{\mathbf{x}}^T \mathbf{K}_{pi} \tilde{\mathbf{x}} + \frac{1}{2} \dot{\tilde{\mathbf{x}}}^T \dot{\tilde{\mathbf{x}}} \qquad (39) $$

as the Lyapunov candidate function to analyze the stability of the i-th vehicle. Its time derivative can be written as

$$ \dot{V} = \tilde{\mathbf{x}}^T \mathbf{K}_{pi} \dot{\tilde{\mathbf{x}}}^T + \dot{\tilde{\mathbf{x}}}^T (-\mathbf{K}_{di} \dot{\tilde{\mathbf{x}}} - \mathbf{K}_{pi} \tilde{\mathbf{x}} - \frac{1}{m} \mathbf{e}^T) \qquad (40) $$

which, with some manipulation, can be simplified to

$$ \begin{aligned} \dot{V} &= -\dot{\tilde{\mathbf{x}}}^T \mathbf{K}_{di} \dot{\tilde{\mathbf{x}}} - \frac{1}{m} \dot{\tilde{\mathbf{x}}}^T \mathbf{e}^T \\ &\leq -\lambda_{min}(\mathbf{K}_{di}) \|\dot{\tilde{\mathbf{x}}}\|^2 + \frac{1}{m} \|\dot{\tilde{\mathbf{x}}}\| \|\mathbf{e}^T\| \end{aligned} $$

from where a sufficient condition to guarantee that $\dot{V}$ is negative semi-definite is $\|\dot{\tilde{\mathbf{x}}}\| \geq \frac{\delta/m}{\lambda_{min}(\mathbf{K}_{di})} \in \Omega$.
Since $\dot{V}$ is negative semi-definite in $\Omega$, $V$ is bounded, thus, trajectories starting in $||\dot{\bar{x}}|| < \frac{\delta/m}{\lambda_{min}(K_d)}$, i.e., in the complement of $\Omega$, are also bounded. In addition, since the system is autonomous and the above-mentioned inequalities hold for $t \ge t_0$, $\Omega$ is an invariant set, and, according to LaSalle Invariance Principle, every trajectory starting in $\Omega$ approaches the set $M = \{(\bar{x}, \dot{\bar{x}}) : \dot{V} = 0\} \subseteq \Omega$ as $t \to \infty$.

Although $\dot{V}$ is equal to zero in $\dot{\bar{x}} = 0$ and $\dot{\bar{x}} = -\frac{1}{m}K_d^{-1}e^T$, one can conclude that the later solution does not stay in $M$. Therefore, considering the solution $\dot{\bar{x}} = 0$ in the system dynamics of (38), we conclude that the largest invariant set is given by $M = [\frac{\dot{\bar{x}}}{\dot{\bar{x}}}] = [-\frac{1}{m}K_p^{-1}e^T]$. Finally, one can conclude that since $||e^T||$ is bounded by $\delta$, the error dynamics for each quadrotor is ultimately bounded. Moreover, since $K_p$ and $K_d$ can be arbitrarily chosen, the convergence bound can be chosen to be conveniently small. Therefore, the assumption of asymptotic convergence of $e_i^T \to 0$ holds, in this case configuring what is called practical stability in the literature [25].

## IV. MODIFICATION OF THE NUMBER OF AGENTS

In our analysis, we consider modifying the number of UAVs that carry the load. This change could be necessary for many reasons, such as passage through narrow corridors, obstacle avoidance, or failure of one of the agents. To accomplish this, the premise that the cables are rigid is relaxed. This makes practical sense, as the cables used are usually wire-like materials that are pretty close to rigid when under tension from the load but can bend freely when this tension is removed. So, the method by which this work changes the number of agents in the formation is simply by making the desired removed vehicles move closer to the load. This eliminates the tension force on the respective cable, thus eliminating its contribution to the virtual controller moving the load and redistributing the weight to the other agents.

This, of course, if done carelessly, may introduce oscillation in the system. That is why, if possible, a reconfiguration of the current geometric configuration of the formation is carried out, to try eliminating most of the agent-to-be-removed influence on the load prior to the approach maneuver. To illustrate, notice the situation shown in Fig. 1, with three agents, where the UAV 3 is being removed from the formation. The algorithm would first move UAV 2 to align it with UAV 1 in a plane passing through $x_0$, $x_1$ and $x_2$. At the same time, UAV 3 would move to a new position perpendicular to the aforementioned plane. The situation described can be seen in Fig. 3.

This change virtually eliminates the influence of the UAV 3 on the load, redistributing its weight to the cables of the other two agents. Then, the third agent can move closer to the load with minimal impact on the system.

A question remains, however: how should the agent, or agents, that left the formation position themselves? It is clear that they have to respect the physical restrictions of the system, such as being closer to the load than the length of

<figure><img src="image_4.png" /><figcaption>FIGURE 3: Graphical representation of the system agents and the configuration variables for $n = 3$ preparing to change to $n = 2$.</figcaption></figure>

their cables, also avoiding other cables, but other than that, these agents are free to position themselves in many ways. Thus, this work proposes a leader-follower structure between each free agent and the load.

### A. CONTROLLER OF THE FREE AGENTS

Some ideas from [26] are taken for the leader-follower structure. It is used here to make sure that each free agent can reach and maintain a relative position to the load. As each free agent is a separate follower, from now on this work will deal with a single free agent, which has position $x_f$ and orientation $\eta_f$, where the subscript $f$ refers to its role as a follower.

The desired position for the free agent is defined as

$$x_{fd} = x_0 + R_l x_{off}, \quad (41)$$

where $x_0$ is the current position of the load, acting as the leader, $x_{off}$ is a vector with the Cartesian desired offset between the leader and follower and $R_l$ is a rotation matrix defined as

$$R_l = \begin{bmatrix} c_{\psi_l} & -s_{\psi_l} & 0 \\ s_{\psi_l} & c_{\psi_l} & 0 \\ 0 & 0 & 1 \end{bmatrix}, \quad (42)$$

where $\psi_l$ is a pseudo orientation for the load and the subscript $l$ refers to its role as related to the leader. The reason for this pseudo-orientation is that it may be easier to position the free agent in a relative position to the load, regardless of the positions of the rest of the formation, and it is chosen depending on the geometric configuration of the system.

As an example, consider the situation depicted in Fig. 3, where $\psi_l$ is the angle of the plane passing through $x_0$, $x_1$ and $x_2$ in the inertial $z$-axis. If one were to place the free agent a fixed distance to the left of the load, where it is free of any other cables, and then rotate the whole system in a way that the load stays still, but the UAVs 1 and 2 describe a circle around the $z$-axis, the controller with the pseudo-orientation
would make sure that the free agent would navigate to the relative position to the left of the load, describing a smaller circle around the load, which will be free of the cables of the other agents.

Now, in order to find the desired velocity, (41) is differentiated, yielding to

$$ \dot{x}_{fd} = \dot{x}_0 + \mathbf{R}_l \dot{x}_{off} + \dot{\mathbf{R}}_l \mathbf{x}_{off}. \quad (43) $$

Then, consider the model of the follower shown in (3) without the influence of the tension force, or

$$ m_f \ddot{x}_f = f_f \mathbf{R}(\boldsymbol{\eta}_f) \mathbf{e}_3 - m_f g \mathbf{e}_3, \quad (44) $$

and, by expanding it, it is possible to write

$$ m_f \ddot{x}_f = f_f(\sin \phi_f \sin \psi_f + \cos \phi_f \sin \theta_f \cos \psi_f) \quad (45) $$

$$ m_f \ddot{y}_f = f_f(\cos \phi_f \sin \theta_f \sin \psi_f - \sin \phi_f \cos \psi_f) \quad (46) $$

$$ m_f \ddot{z}_f = f_f \cos \phi_f \cos \theta_f - m_f g, \quad (47) $$

which is the expanded translational model of the follower robot.

Now, consider the control law

$$ f_f = \frac{m_f(\nu_z + g)}{\cos \phi_f \cos \theta_f}, \quad (48) $$

where

$$ \nu_z = \ddot{z}_{fd} + k_{dz}^f \dot{\tilde{z}}_f + k_{pz}^f \tilde{z}_f, \quad (49) $$

for the thrust, where $k_{dz}^f$ and $k_{pz}^f$ are positive constants, and $\tilde{z}_f$, $\dot{\tilde{z}}_f$ are the position and velocity errors, respectively, defined as $\tilde{z}_f = z_{fd} - z_f$ and $\dot{\tilde{z}}_f = \dot{z}_{fd} - \dot{z}_f$.

By introducing (48) into (45)-(47), one gets

$$ \ddot{x}_f = (\nu_z + g)\left(\frac{\tan \phi_f}{\cos \theta_f} \sin \psi_f + \tan \theta_f \cos \psi_f\right), \quad (50) $$

$$ \ddot{y}_f = (\nu_z + g)\left(\tan \theta_f \sin \psi_f - \frac{\tan \phi_f}{\cos \theta_f} \cos \psi_f\right), \quad (51) $$

$$ \ddot{z} = \ddot{z}_{fd} + k_{dz}^f \dot{\tilde{z}}_f + k_{pz}^f \tilde{z}_f, \quad (52) $$

and by choosing the desired roll and pitch angles as

$$ \phi_d = \arctan \frac{(\nu_x \sin \psi_f - \nu_y \cos \psi_f) \cos \theta_f}{\nu_z + g}, \quad (53) $$

$$ \theta_d = \arctan \frac{(\nu_x \cos \psi_f + \nu_y \sin \psi_f)}{\nu_z + g}, \quad (54) $$

where

$$ \nu_x = \ddot{x}_{fd} + k_{dx}^f \dot{\tilde{x}}_f + k_{px}^f \tilde{x}_f \quad (55) $$

and

$$ \nu_y = \ddot{y}_{fd} + k_{dy}^f \dot{\tilde{y}}_f + k_{py}^f \tilde{y}_f, \quad (56) $$

equations (50)-(52) become

$$ \ddot{x}_f + k_{dx} \dot{x}_f + k_{px} \tilde{x}_f = 0, \quad (57) $$

$$ \ddot{y}_f + k_{dy} \dot{y}_f + k_{py} \tilde{y}_f = 0, \quad (58) $$

$$ \ddot{z}_f + k_{dz} \dot{z}_f + k_{pz} \tilde{z}_f = 0, \quad (59) $$

which shows that the position and velocity errors converge asymptotically to zero when time converges to infinity. Ultimately, this means that the follower will reach its desired

relative position to the leader, i.e., the free agent will position itself in a desired position in space, relative to the load.

Now, all that remains is to make sure that the follower free-agent reaches the desired angle values. This is accomplished through the same control law as in section III-C. The difference is that now the desired values of roll and pitch angles are given by (53) and (54), while the desired yaw value is free.

## V. SIMULATIONS

This section describes the simulations that were conducted to validate the approach described in the previous sections. To do so, two situations were devised, the first one showing the load controller alone, following a circular trajectory, while the second one follows a line trajectory with the modification of the number of agents. These simulations were performed using the software Matlab and their results are shown in the following subsections.

### A. CIRCULAR TRAJECTORY

As previously mentioned, this simulation shows the system following a circular trajectory. The chosen trajectory is described by

$$ \mathbf{x}_{0d} = \begin{bmatrix} 1 - \cos \omega t \\ \sin \omega t \\ \frac{1}{2} - \frac{1}{2} \cos \omega t \end{bmatrix}, \quad (60) $$

where $t$ is the time elapsed since the beginning of the simulation, and $\omega = \frac{2\pi}{T}$, where $T = 20s$ is the period of the trajectory.

As for the desired tensions, they can be generated by (10) and (14), but this results in a system with infinite solutions. To choose one solution, additional constraints are necessary. These can be chosen in many ways, but in this work it was chosen to make the desired tensions for the second and third robots constant. This results in a system where the first robot acts as the agent of movement while the other agents act as more stabilizing forces. With that in mind, the desired tensions are defined as

$$ T_{1d} \alpha_{1d} = -\mathbf{u}_0 - T_{2d} \alpha_{2d} - T_{3d} \alpha_{3d}, \quad (61) $$

$$ T_{2d} \alpha_{2d} = -\frac{m_0}{3} \mathbf{R}(0, -\pi/6, -\pi/4) \mathbf{e}_3, \quad (62) $$

$$ T_{3d} \alpha_{3d} = -\frac{m_0}{3} \mathbf{R}(0, -\pi/6, \pi/4) \mathbf{e}_3. \quad (63) $$

As for the initial positions, they are defined as $\mathbf{x}_0 = [0 \ 0 \ 0]^T$ for the load and

$$ \mathbf{x}_1 = l_1 \mathbf{R}(0, \pi/6, 0) [0 \ 0 \ 1]^T, \quad (64) $$

$$ \mathbf{x}_2 = l_2 \mathbf{R}(0, -\pi/6, \pi/4) [0 \ 0 \ 1]^T, \quad (65) $$

$$ \mathbf{x}_3 = l_3 \mathbf{R}(0, -\pi/6, -\pi/4) [0 \ 0 \ 1]^T, \quad (66) $$

for the drones. In section III-A, it was said that the initial conditions must be well posed, and indeed, by comparing (62)-(63) to (65)-(66) it is possible to see that the second and third agents are already at the desired tension angle. Furthermore, it is possible to observe that when $t = 0$, Eq. (60) is equal to $\mathbf{x}_0$, meaning that the load is already
positioned at the beginning of the trajectory. Moreover, (64)-(66) follow the template of (2), meaning that all drones are already correctly positioned around the load, with the cables taut.

Finally, the remaining initial conditions are

$$
\begin{align*}
m_0 &= 0.139 \text{Kg}, \\
m_i &= 0.5 \text{Kg}, \\
l_i &= 1 \text{m}, \\
\mathbf{K}_{p0} &= \text{diag}[0.075 \quad 0.075 \quad 0.075], \\
\mathbf{K}_{d0} &= \text{diag}[0.03 \quad 0.03 \quad 0.03], \\
\mathbf{K}_{pi} &= \text{diag}[2 \quad 2 \quad 2], \\
\mathbf{K}_{di} &= \text{diag}[1 \quad 1 \quad 1], \\
\mathbf{K}_{pi}^{\eta} &= \text{diag}[5 \quad 5 \quad 5], \\
\mathbf{K}_{di}^{\eta} &= \text{diag}[3 \quad 3 \quad 3].
\end{align*}
$$

The complete navigation of the system can be watched at https://youtu.be/BKxDFHOPgAI, while a snapshot of the navigation can be seen in Fig. 4. In this figure, it is possible to observe that the load, represented in solid black, converges to its desired position, depicted in dashed black. It is also possible to observe the transient at the beginning of the movement, where the load had to accelerate to catch up.

<figure><img src="image_5.png" /><figcaption>FIGURE 4: Depiction of the navigation in a simulation of a circular trajectory.</figcaption></figure>

To better observe the load errors, their time evolution is represented in Fig. 5. Regarding the x- and z-axes, we have maximum errors in the order of two to three centimeters, while in the y-axis the maximum error is in the order of twenty centimeters. This happens due to the intrinsic characteristics of the trajectory, as it requests maximum velocity in y when t = 0 and zero velocity for x and z. Nevertheless, all errors converge to values close to zero, as shown in the smaller rectangles, which depict the zoomed-in errors after the system reaches the trajectory and the transient is over.

Continuing with the controllers, Fig. 6 shows the tension forces in each agent. Here, different from the previous figure,

<figure><img src="image_6.png" /><figcaption>FIGURE 5: Performance of the load errors in a simulation of a circular trajectory.</figcaption></figure>

the actual and desired tension forces are shown, instead of their difference, the error. This is done purposely to illustrate that the desired tension forces in the agents 2 and 3 remain constant throughout the movement, while the desired tension forces in the first agent change to create the desired movement. This is consistent with equations (61)-(63). Furthermore, it is possible to observe that all the tension values converge to their desired values.

<figure><img src="image_7.png" /><figcaption>FIGURE 6: Performance of the actual and desired tension forces in a simulation of a circular trajectory.</figcaption></figure>

Finally, Fig. 7 shows the roll and pitch errors. The yaw error was omitted to avoid cluttering since the heading of the drones has little impact on the movements being observed. It is possible to see that, much like the load errors, the errors quickly converge to values near zero after the first few seconds. Again, the smaller boxes show the magnitude of the errors after the transient is over, around 0.01 degrees.

Thus, the video and the graphics shown allow the conclusion that the load effectively tracks the desired trajectory, in
<figure><img src="image_8.png" /><figcaption>FIGURE 7: Behavior of the attitude errors in a simulation of a circular trajectory.</figcaption></figure>

accordance to the theory presented so far in this work.

## B. LINE TRAJECTORY CHANGING THE NUMBER OF AGENTS

This simulation was made to show the modification of the number of agents. To showcase its capabilities, a line trajectory was chosen to emulate a task that would have the formation go through a narrow corridor. The task is divided into three phases: in the first phase, the formation will begin the movement in the same configuration as the previous simulation. The second phase is transitioning, where the second and third agents reposition themselves, just like the example described in section IV. In the last phase, since its influence has been removed, the third agent will move closer to the load, making the formation much smaller in the y direction, allowing its navigation through narrow corridors.

The chosen trajectory is described by

$$ \mathbf{x}_{0d} = \begin{bmatrix} \frac{t}{10} \\ 0 \\ 0 \end{bmatrix}, \qquad (67) $$

and the phase transitions happen when $t = 10s$ and $t = 15s$. The desired tensions for the first phase are the same as described in (61)-(63), and for the second phase, they are defined as

$$ T_{1d}\alpha_{1d} = -\mathbf{u}_0 - T_{2d}\alpha_{2d}, \qquad (68) $$

$$ T_{2d}\alpha_{2d} = -\frac{m_0}{2}\mathbf{R}(0, -\pi/6, 0)e_3, \qquad (69) $$

$$ T_{3d}\alpha_{3d} = -\frac{m_0}{10}\mathbf{R}(0, -\pi/6, \pi/2)e_3. \qquad (70) $$

Although similar, there are a few notable differences in these new values: the first one in (68) is that the influence of the third agent has been removed from the first agent, i.e., the one who actively creates the movement. The second difference is in (69), where before it had a 45° angle in the z-axis, now it has a 0° angle, meaning it will position itself

directly behind the first agent. Another difference related to the last one is that the desired angle in the z-axis of the third agent is now 90°, meaning that it will position itself at the side of the formation. With these changes, the formation will change from the one depicted in Fig. 1 to the one shown in Fig. 3. Lastly, the magnitude of the desired tension has been changed from one-third to each agent, to one-half for agents 1 and 2, and to one-tenth for agent 3 (the desired tension should be zero in the last agent, but to transition it using the same controller it has been found that it is necessary to have a small contribution in the desired tension).

For the last phase, the desired tensions described in (68)-(69) remain, and as the last agent uses a different controller, it does not have a desired or actual tension value anymore. Instead, it seeks to keep an offset value with respect to the load, defined as

$$ \mathbf{x}_{off} = \begin{bmatrix} 0 \\ 0 \\ 0.5 \end{bmatrix}. \qquad (71) $$

This means that the desired position of the third agent is directly on top of the load, at the height of 50 centimeters above it. The initial conditions are all the same as the last simulation, except for the gains of the free agent controller, which was not present in the previous example. These gains are defined as

$$ \mathbf{K}_{p_z}^f = \text{diag}[5 \ 5 \ 5], $$

$$ \mathbf{K}_{d_z}^f = \text{diag}[3 \ 3 \ 3]. $$

The simulation can be watched at https://youtu.be/_3gZoJvbnBI, while three views of the movement can be seen in Fig. 8. These different perspectives of the simulation show that the free agent could position itself in the middle of the other agents, reducing the system's width. Indeed, looking at the view from the back, it is possible to observe that by the end of the movement, the formation profile has been reduced to positions around $y = 0$. Furthermore, looking at the lateral view, it is shown that the free agent has positioned itself correctly between the others.

The evolution in time of the load errors is presented in Fig. 9. A solid rectangle marks the transitioning period, while rectangular boxes show a zoomed-in view of the errors after the system has reached a steady state. Due to the nature of the trajectory, which has velocity pointing only in the x-axis direction, we see a maximum initial error of around 5 centimeters, which is quickly reduced to values near zero. Meanwhile, on the y-axis, the initial error is quite small. Interestingly, even though there was no change in the desired height, the initial acceleration caused an error in z, but that was also quickly reduced.

Once the transition phase begins, the errors increase, but those are also quickly controlled and are shown to go to zero after the end of the transition period. The error in y is around 20 centimeters due to the oscillation of the load. Finally, after the transitioning period, all errors are quickly reduced to really small values, as the zoomed-in boxes show. Interestingly,
<figure><img src="image_9.png" /><figcaption>FIGURE 8: Navigation of the system following a linear trajectory, shown in three different views: bird's eye, behind, and lateral.</figcaption></figure>

<figure><img src="image_10.png" /><figcaption>FIGURE 9: Performance of the load errors in a simulation of a linear trajectory.</figcaption></figure>

<figure><img src="image_11.png" /><figcaption>FIGURE 10: Performance of the actual and desired tension forces in a simulation of a linear trajectory.</figcaption></figure>

the graph in *y* shows a steady error. This is probably caused by the fact that some DOFs were lost when changing the formation to two agents, and now the cable's tension forces cannot freely control the *y*-axis direction perpendicular to their plane.

Figure 10 shows the tension values in each agent, and again, the blue rectangle marks the transitioning period. It is possible to see that after the transition begins, the desired tensions for the agents 1 and 2 increase accordingly, and the actual tension values follow them, enabling the load to continue following the trajectory. Conversely, the desired tension for the third agent decreases and ultimately goes to zero, as it no longer impacts its movement or formation.

Finally, Fig. 11 shows the attitude errors in each agent. This graph showcases each agent's different roles in the different phases. For the first agent, it does not change its role in the entire movement, which is reflected in the small errors shown. However, the second and third agents move their relative positions to the load once the transition period begins, reflected in an increase in errors around the 10-second mark. Finally, after the transition period ends, the third agent

<figure><img src="image_12.png" /><figcaption>FIGURE 11: Behavior of the attitude errors in a simulation of a line trajectory.</figcaption></figure>

moves to the middle, which changes its desired position suddenly, causing the errors to spike around the 15-second
mark. Nonetheless, throughout all the movement, the attitude errors are always quickly reduced to values near zero and remain there, as the zoomed-in boxes show.

This simulation has shown the capacity of the system to make the load follow a trajectory while changing the number of agents responsible for its movement.

## VI. EXPERIMENTS

This section describes the real-world experiments conducted to validate the work and the simulations presented so far. To achieve that, two experiments similar to the simulations shown were done, and their results are presented in this section. Furthermore, a last experiment is presented, where heavy external disturbance is introduced into the system by a pole to test the system's stability.

These experiments were conducted at the Heudiasyc laboratory in Compiègne, France. The drones used were AR Drones from Parrot, and the position feedback of the objects was obtained via the motion capture system Optitrack. FL-Air (Framework libre AIR) was used to control the whole system, which is responsible for managing each robot and the information from the motion capture system.

In these experiments, a change had to be made to reflect the system's needs. In simulation, the drones can start already in the air with the cable taut, but this is impossible in an experiment. Because of this, a take-off in a safe mode was used. This means the drones will take off using their embedded controller, ignoring the load, and position themselves directly on top of their takeoff positions at a pre-configured height. Only after the drones reach their desired height and are stable with the load already in the air and the cable taut does the load controller take charge, and the experiment begins. For this to work, the drones are positioned so that the cables are stretched, and their positions are close to the initial positions required by the experiment to keep the premise of well-posed initial conditions valid. The videos presented in each section illustrate this situation quite well.

### A. CIRCULAR TRAJECTORY

This first experiment closely follows the simulation of tracking a circular trajectory of the previous section. However, since the safe takeoff will leave the load in an uncertain position, the desired trajectory was changed to reflect this, now being described by

$$ \mathbf{x}_{0d} = \begin{bmatrix} 1 - \cos \omega t \\ \sin \omega t \\ \frac{1}{2}(1 - \cos \omega t) \end{bmatrix} + \mathbf{x}_{0}^{st}, \quad (72) $$

where $\mathbf{x}_{0}^{st}$ is the current position of the load once the safe take-off finishes and the load controller takes over. This means that for $t = 0$, $\mathbf{x}_{0d} = \mathbf{x}_{0}^{st}$, which means that the trajectory starts at the current position of the load, avoiding large initial accelerations to be required by the trajectory. The trajectory period is 20 seconds, as in the simulation.

As for the desired tensions, they are equal to the ones in (61)-(63), and the remaining initial conditions are

$$ m_0 = 0.139 \text{Kg}, $$

$$ m_i = 0.5 \text{Kg}, $$

$$ l_i = 1.5m, $$

$$ \mathbf{K}_{p0} = \text{diag} \begin{bmatrix} 1 & 1 & 0.5 \end{bmatrix}, $$

$$ \mathbf{K}_{d0} = \text{diag} \begin{bmatrix} 0.2 & 0.2 & 0.2 \end{bmatrix}, $$

$$ \mathbf{K}_{pi} = \text{diag} \begin{bmatrix} 0.5 & 0.5 & 0.5 \end{bmatrix}, $$

$$ \mathbf{K}_{di} = \text{diag} \begin{bmatrix} 0.2 & 0.2 & 0.2 \end{bmatrix}. $$

Notice that the gains for the attitude controller were not shown. This is because the FL-Air platform already has a well-tuned low-level controller that transforms desired attitudes into torques.

The experiment can be watched at https://youtu.be/TtLddVnEIOE, where it is possible to see smooth navigation in a relatively fast movement. Figure 12 shows the complete navigation of the experiment, where it can be seen that the load successfully followed a circular trajectory, even though it shows some distance to the desired trajectory.

<figure><img src="image_13.png" /><figcaption>FIGURE 12: Navigation performance of the real time experiments when the drones follow a circular trajectory.</figcaption></figure>

The error evolution in time can be seen in Fig. 13. As the image shows, a larger periodic error is present in the $x-$ and $y-$ directions in the order of 20 centimeters. However, smaller errors in the $z-$direction are presented, usually less than 5 centimeters.

Finally, the desired and actual tensions are shown in Fig. 14. Unlike the simulation, however, where the actual tension was a deterministic value necessary to calculate the future iterations of the simulation, in the experiments the actual tension is never used in the controller. Due to this, the actual tension values shown in Fig. 14 are estimated using the acceleration of the load, its mass, gravity, and the relative position of the drones. This, however, especially the acceleration of the load, which is not directly measured but obtained through the double differentiation of the load position given by the
<figure><img src="image_14.png" /><figcaption>FIGURE 13: Performance of the load errors in an experiment of a circular trajectory.</figcaption></figure>

motion capture system, introduces some noise in the results, which is difficult to measure.

Nevertheless, it is possible to see that the behavior presented in Fig. 6 is broadly followed in Fig. 14. Furthermore, the tension values show small errors concerning the desired values. This indicates that the controller achieved the desired tension values in the cables. Additionally, it can be seen that the tensions for the first agent present more significant oscillations. This is because, unlike the other agents where the desired tensions are constant, the desired tensions for the first agent vary slightly over time. It is also the agent responsible for responding to the acceleration changes of the trajectory.

<figure><img src="image_15.png" /><figcaption>FIGURE 14: Performance of the actual and desired tension forces in an experiment of a circular trajectory.</figcaption></figure>

Ultimately, it can be said that although errors around 20 centimeters are present in the trajectory following, the load could track the general behavior expected of it. If a slower trajectory had been selected, these errors would be much

smaller. However, this work wanted to show that, even though the approach demands low accelerations, it can be used in applications with significant travel speeds. Some future work to mitigate experimental errors and more robust options to deal with uncertainties are discussed in the conclusion of this work.

## B. LINE TRAJECTORY CHANGING THE NUMBER OF AGENTS

Like the first experiment in the previous section, this one also tries closely following the simulation to present a better contrast. However, unlike the simulation, where there is unlimited space for the formation to move, in an experiment, the room's physical constraints must be considered. Therefore, the merely linear navigation of the simulation was changed to a periodic wave in one direction, which means the system will go back and forth in a linear direction. Thus, the desired trajectory for the load is described by

$$ \mathbf{x}_{0d} = \begin{bmatrix} \frac{3}{4}(1 - \cos \omega t) \\ 0 \\ 0 \end{bmatrix} + \mathbf{x}_{0}^{st}. \quad (73) $$

where, once again, $\mathbf{x}_{0}^{st}$ is the current position of the load after the safe take-off. The period, however, is changed to $T = 10$ seconds.

Furthermore, also different from the simulation, where the formation began with three agents and finished navigation with two, in the experiment, the formation begins with three agents, changes to two, and then has a second transition back to three agents. This was done to illustrate that the original formation can be recuperated once the need for changing the number of agents has passed. In the experiment the first phase of the transition, where the robots assume the position depicted in Fig. 3 was triggered manually, via joystick, while the second phase, where the third agent moves to the center of the platform happens 5 seconds later. The transitioning times were around $t = 6s$ and $t = 42s$.

The complete experiment is shown in the video at https://youtu.be/qWt172HGMsc. There, it is possible to see the different phases of the experiment. First, there is a safe take-off in order to arrive in a stable condition where all the cables are taut. After, the agents assume the desired relative poses to the load before beginning to follow the trajectory. Then, the first transition begins, while the camera films from behind, showing the system's behavior and the three robots in the same line, making a narrow formation. Afterward, the camera moves to a lateral view to show that the free agent is safely positioned between the other two agents, clear from their cables. Finally, from an oblique view, a new transition occurs, whereupon the agents assume their original relative position, and after a few seconds, the drones and the load land successfully. It is important to note that, throughout all these transitions, the load keeps following the trajectory, traveling back and forth.

A snapshot of the navigation when $t = 22s$ is shown in Fig. 15. This particular time was chosen for the instant the
<figure><img src="image_16.png" /><figcaption>FIGURE 15: Still of the navigation of the system following a linear trajectory at $t = 22s$, shown in three different views: bird's eye, behind, and lateral.</figcaption></figure>

formation is altered, changing to only two agents. It is possible to observe in the view from behind and in the video that the formation is indeed much narrower. Imagining a corridor with walls at $y = 0$ and $y = 1$, the whole formation could navigate through it. However, before this change, agents 2 and 3 would crash. This shows that momentarily sacrificing control of the formation in the $y$-axis can be advantageous, since the movement is mostly in the $x$-direction, which does not cause much oscillation in the $y$-direction. The lateral view again shows that the free agent has positioned itself correctly between the two others.

The evolution of the load errors is presented in Fig. 16. Like the simulated results, solid rectangles mark the transitioning period. Once again, initially, there are larger errors in the $x$-axis direction since that is the direction of maximum change in the trajectory. The error is around 15 centimeters in the $x$-axis, while in the other directions, it depends on the navigation phase. In this experiment, it is harder to identify the steady error in the $y$-axis in the simulation since the larger disturbances obscure it. However, the error seems to hover below the origin more than above.

<figure><img src="image_17.png" /><figcaption>FIGURE 16: Performance of the load errors in an experiment of a linear trajectory.</figcaption></figure>

The desired and the actual tensions are shown in Fig. 17, where it can be seen that they have similar behavior as the tension forces in the previous experiment, shown in Fig. 14. Once again, there is little difference between the desired and actual values. Unlike the previous experiment, however, the present one has two transition phases where the desired tension has a discontinuity for all the agents. Nonetheless, the figure shows that the system could adjust and follow these new desired values. Finally, for agent 3, the desired and actual tensions go to zero between the two transition periods. This happens because its cable is not taut anymore, so it has no impact in the actual tension on the load.

<figure><img src="image_18.png" /><figcaption>FIGURE 17: Performance of the actual and desired tension forces in a simulation of a circular trajectory.</figcaption></figure>

Finally, this experiment shows that it is possible to use the controllers presented in this work to change the configuration of the formation to adapt to physical restrictions without much impact in the navigation of the load.

### C. CIRCULAR TRAJECTORY IN THE PRESENCE OF EXTERNAL DISTURBANCES

As a last experiment, it was decided to test if the system was resistant to external disturbances. To do so, the same
conditions as the first experiment were repeated, with the
difference being that a pole would be used to physically
"push" elements of the formation, either the load itself or one
of the drones. This would prevent the formation achieving the
desired trajectory, and once the disturbance was removed, the
controller would have to rectify the errors.

The complete experiment can be watched at https://yout
u.be/bfZiwmLaWTU for a better understanding. It shows
the load following a circular trajectory while a researcher
repeatedly uses a pole to disturb different elements. Visually,
the system is somewhat malleable to the disturbance but
quickly snaps back to its correct position once the physical
restriction is lifted. Figure 18 shows a depiction of the com-
plete navigation, where the disturbances are visually present
for all the agents of the formation.

<figure><img src="image_19.png" /><figcaption>FIGURE 18: Navigation performance of the real time experi-
ments when the drones follow a circular trajectory with heavy
disturbances.</figcaption></figure>

The error evolution in time is present in Fig. 19. There,
it can be seen that, even though the disturbances are very
large in the video, they do not impact the errors in the x-
and y-directions much. Their behavior are pretty similar
to the one shown in Fig. 13, except that this experiment is
longer. The errors in z, however, show that this axis was
heavily impacted by the disturbance. Nonetheless, once the
disturbance was removed, the controller quickly got the error
under control, and it hovered near zero, with less than 10
centimeters of error.

The actual and desired tensions are shown in Fig. 20,
where, as in the load errors graph, it shows similar behavior to
the tensions of the first experiment. Once again, the first agent
has a more oscillatory response due to being the most active
agent. Furthermore, while it can be seen that there were some
disturbances, they are not as apparent as the ones in Fig. 19,
showing the capacity of the controller to resist to some level
of real world disturbances.

Finally, as the experiment video and Figures 18-20 show,
the formation was able to be malleable enough to not diverge

<figure><img src="image_20.png" /><figcaption>FIGURE 19: Performance of the load errors in an experiment of a circular trajectory, with heavy disturbances.</figcaption></figure>

<figure><img src="image_21.png" /><figcaption>FIGURE 20: Performance of the actual and desired tension forces in an experiment of a circular trajectory, with heavy disturbances.</figcaption></figure>

once it was affected by external disturbances, and to return
to its desired trajectory once these disturbances were gone. It
also presented minimal performance loss, as can be attested
by comparing this experiment to the one in section VI-A.

VII. CONCLUSION

The paper proposed a controller for trajectory tracking of a
load carried by multiple drones via cables. This was done
using the resultant tension in the load as a virtual input,
which was then transmitted to each aerial vehicle according
to the desired geometric configuration. This in turn was
transformed into a desired position and attitude to each drone,
which was accomplished through low-level local controllers.
Furthermore, a leader-follower based controller was used to
safely reconfigure the UAV formation carrying the load to
conform to physical constraints. It dealt with the load as
the leader, and each free agent was a separate follower. The agents would position themselves in a desired offset from the leader while following the whole formation.

The simulations showed promising results, with the system behaving as predicted and being able to accomplish the missions. In the first experiment, the load tracking error was around 20 centimeters for the x- and y-axes, and around 5 centimeters for the z-axis. The tension values also behaved similarly to those presented in the simulation. The second experiment, on the other hand, showed a successful application of reconfiguring the formation and changing the number of agents during the mission. It also showed that the reconfiguration of the formation did not hinder the navigation of the load, with the errors having a similar magnitude as the previous experiment. Lastly, the third experiment showed that the system can handle a certain degree of disturbance without compromising its performance too much.

Finally, as part of future work, it is planned to expand the load controller to compensate for its shortcomings, i.e., the lack of adaptation and robustness. For example, currently, the mass of the load has to be a known quantity and cannot change during the mission without compromising the trajectory tracking. An adaptation term could react to online changes in the model parameters. Furthermore, new sensors are being explored to take the experiments outdoors, bringing them closer to a real-world application.

## ACKNOWLEDGMENTS

The authors thank CNPq – Conselho Nacional de Desenvolvimento Científico e Tecnológico, a Brazilian agency that supports scientific and technological development – and FAPES – Fundação de Amparo à Pesquisa e Inovação do Espírito Santo, an agency of the State of Espírito Santo, Brazil, that supports scientific and technological development – for financing this work and for the scholarship granted to the first author. They also thank UFES – Universidade Federal do Espírito Santo and UTC – Université de Technologie de Compiègne for their support of the development of the work. This study was financed in part by the Coordenação de Aperfeiçoamento de Pessoal de Nível Superior – Brasil (CAPES) – Finance Code 001.

## REFERENCES

[1] S. M. S. M. Daud, M. Y. P. M. Yusof, C. C. Heo, L. S. Khoo, M. K. C. Singh, M. S. Mahmood, and H. Nawawi, "Applications of drone in disaster management: A scoping review," Science & Justice, vol. 62, no. 1, pp. 30–42, 2022.

[2] J. Bendig, A. Bolten, S. Bennertz, J. Broscheit, S. Eichfuss, and G. Bareth, "Estimating biomass of barley using crop surface models (csms) derived from UAV-based RGB imaging," Remote sensing, vol. 6, no. 11, pp. 10 395–10 412, 2014.

[3] A. P. Colefax, P. A. Butcher, D. E. Pagendam, and B. P. Kelaher, "Reliability of marine faunal detections in drone-based monitoring," Ocean & coastal management, vol. 174, pp. 108–115, 2019.

[4] A. F. Barnas, B. J. Darby, G. S. Vandeberg, R. F. Rockwell, and S. N. Ellis-Felege, "A comparison of drone imagery and ground-based methods for estimating the extent of habitat destruction by lesser snow geese (anser caerulescens caerulescens) in la pérouse bay," PLoS One, vol. 14, no. 8, p. e0217049, 2019.

[5] D. K. D. Villa, A. S. Brandão, and M. Sarcinelli-Filho, "A survey on load transportation using multirotor UAVs," Journal of Intelligent & Robotic Systems, vol. 98, no. 2, p. 267–296, 2020.

[6] J. Estevez, G. Garate, J. M. Lopez-Guede, and M. Larrea, "Review of aerial transportation of suspended-cable payloads with quadrotors," Drones, vol. 8, no. 2, p. 35, 2024.

[7] P. Garg, "Characterisation of fixed-wing versus multirotors UAVs/drones," Journal of Geomatics, vol. 16, no. 2, pp. 152–159, 2022.

[8] P. Taschner, A. Lehner, and W. Sihn, "Mechatronic gripper system and delivery platform for the autonomous cargo transport with unmanned aerial vehicles," Transportation Research Procedia, vol. 72, pp. 72–79, 2023.

[9] M. Lieret, J. Lukas, M. Nikol, and J. Franke, "A lightweight, low-cost and self-diagnosing mechatronic jaw gripper for the aerial picking with unmanned aerial vehicles," Procedia Manufacturing, vol. 51, pp. 424–430, 2020.

[10] A. Delbene, M. Baglietto, and E. Simetti, "Visual servoed autonomous landing of an UAV on a catamaran in a marine environment," Sensors, vol. 22, no. 9, p. 3544, 2022.

[11] V. P. Bacheti, D. K. D. Villa, A. S. Brandão, and M. Sarcinelli-Filho, "A load compensation controller for off-the-shelf unmanned aerial vehicles," in 2023 International Conference on Unmanned Aircraft Systems (ICUAS). IEEE, 2023, pp. 1343–1348.

[12] P. Kotaru, G. Wu, and K. Sreenath, "Differential-flatness and control of quadrotor (s) with a payload suspended through flexible cable (s)," in 2018 Indian Control Conference (ICC). IEEE, 2018, pp. 352–357.

[13] B. Rinner, C. Bettstetter, H. Hellwagner, and S. Weiss, "Multidrone systems: More than the sum of the parts," Computer, vol. 54, no. 5, pp. 34–43, 2021.

[14] N. Michael, J. Fink, and V. Kumar, "Cooperative manipulation and transportation with aerial robots," Autonomous Robots, vol. 30, pp. 73–86, 2011.

[15] A. Delbene and M. Baglietto, "Cables tension modeling for multi-UAV payload transportation," in 2024 IEEE 20th International Conference on Automation Science and Engineering (CASE). IEEE, 2024, pp. 212–218.

[16] D. Sanalitro, H. J. Savino, M. Tognon, J. Cortés, and A. Franchi, "Full- pose manipulation control of a cable-suspended load with multiple UAVs under uncertainties," IEEE Robotics and Automation Letters, vol. 5, no. 2, pp. 2185–2191, 2020.

[17] G. Loianno and V. Kumar, "Cooperative transportation using small quadrotors using monocular vision and inertial sensing," IEEE Robotics and Automation Letters, vol. 3, no. 2, pp. 680–687, 2017.

[18] D. K. D. Villa, A. S. Brandão, R. Carelli, and M. Sarcinelli-Filho, "Cooperative load transportation with two quadrotors using adaptive control," IEEE Access, vol. 9, pp. 129 148–129 160, 2021.

[19] M. Gassner, T. Cieslewski, and D. Scaramuzza, "Dynamic collaboration without communication: Vision-based cable-suspended load transport with two quadrotors," in 2017 IEEE International Conference on Robotics and Automation (ICRA). IEEE, 2017, pp. 5196–5202.

[20] P.-X. Wu, C.-C. Yang, and T.-H. Cheng, "Cooperative transportation of UAVs without inter-UAV communication," IEEE/ASME Transactions on Mechatronics, vol. 28, no. 4, pp. 2340–2351, 2023.

[21] A. Delbene and M. Baglietto, "Recovery techniques for a multi-UAV system transporting a payload," in 2024 IEEE 20th International Conference on Automation Science and Engineering (CASE). IEEE, 2024, pp. 559–566.

[22] L. Saiella, A. Cristofaro, M. Ferro, and M. Vendittelli, "Fault-tolerant formation control of a team of quadrotors with a suspended payload," in 2021 International Conference on Unmanned Aircraft Systems (ICUAS). IEEE, 2021, pp. 1–9.

[23] L. R. García Carrillo, A. E. Dzul López, R. Lozano, and C. Pégard, "Modeling the quad-rotor mini-rotorcraft," Quad Rotorcraft Control: Vision-Based Hovering and Navigation, pp. 23–34, 2013.

[24] F. Oliva-Palomo, D. Mercado-Mercado, and P. Castillo, "Aerial transportation control of suspended payloads with multiple agents," Journal of the Franklin Institute, p. 106787, 2024.

[25] J. La Salle and S. Lefschetz, "4. Extensions of Liapunov's Method," in Stability by Liapunov's Direct Method with Applications, ser. Mathematics in Science and Engineering, J. La Salle and S. Lefschetz, Eds. Elsevier, 1961, vol. 4, pp. 107–130.

[26] V. P. Bacheti, A. S. Brandão, and M. Sarcinelli-Filho, "Leader-follower UGV-UAV formation as control paradigm for package delivery," in
2022 International Conference on Unmanned Aircraft Systems (ICUAS).
IEEE, 2022, pp. 772–778.

<figure><img src="image_22.png" /></figure>

VINÍCIUS PACHECO BACHETI received the B.S. degree in electrical engineering from the Federal University of Viçosa, Brazil, in 2016, and the M.Sc. degree in electrical engineering from the Federal University of Espírito Santo, Brazil, in 2021, where he is currently pursuing the Ph.D. degree in electrical engineering. His research interest includes control of multi-robot systems applied to load transportation with aerial robots.

<figure><img src="image_23.png" /></figure>

DANIEL K. D. VILLA is a professor in the Department of Electrical Engineering at the Federal University of Espírito Santo (UFES). He holds a degree in Electrical Engineering from the Federal University of Viçosa (UFV), where he conducted research in control and automation. In 2017, he completed a master's degree in Agricultural Engineering at UFV, focusing on synthesizing and implementing controllers for precision agriculture. In 2022, he earned his Ph.D. in Electrical Engineering from UFES, specializing in adaptive and sliding mode control applied to aerial robots, particularly cargo transportation. He is an expert in robotics, control, and automation, with research interests that include control of multi-robot systems, nonlinear control, optimal control, and state estimation.

<figure><img src="image_24.png" /></figure>

ROGELIO LOZANO was born in Monterrey, Mexico, in 1954. He received the B.S. degree in electronic engineering from the National Polytechnic Institute, Mexico City, Mexico, in 1975, the M.S. degree in electrical engineering from the Centro de Investigación y de Estudios Avanzados (CINVESTAV), Mexico City, in 1977, and the Ph.D. degree in automatic control from the Laboratoire d'Automatique de Grenoble, Grenoble, France, in 1981. From 1981 to 1989, he was with the Department of Electrical Engineering, CINVESTAV, where he was the Head of the Section of Automatic Control, from 1985 to 1987. He held visiting positions at The University of Newcastle, Australia, from 1983 to 1984, the NASA Langley Research Center, Langley, VA, USA, from 1987 to 1988, and the Laboratoire d'Automatique de Grenoble, from 1989 to 1990. He was promoted to first-class CNRS Research Director, in 1997. From 1995 to 2007, he was the Head of the Laboratory Heudiasyc, UMR 6599, CNRS University of Technology of Compiègne (UTC), Compiègne, France. Since 1990, he has been the CNRS Research Director of UTC. He is currently the Head of the Laboratorio Franco-Mexicano de Informática y Automática Aplicada, UMI CNRS, CINVESTAV. His current research interests include adaptive control of linear and nonlinear systems, robot manipulators, passive systems, teleoperation, and unmanned aerial vehicles. From 1987 to 2000, he was an Associate Editor of Automatica. He has been an Associate Editor of the International Journal of Adaptive Control and Signal Processing since 1993.

<figure><img src="image_25.png" /></figure>

MÁRIO SARCINELLI-FILHO received a B.S. degree in Electrical Engineering from the Federal University of Espírito Santo, Brazil, in 1979, and the M. Sc. and Ph. D. degrees, also in Electrical Engineering from the Federal University of Rio de Janeiro, Brazil, in 1983 and 1990, respectively. He has been with the Department of Electrical Engineering, Federal University of Espírito Santo, Brazil, since 1979, where he is currently a professor. He is also a researcher of the Brazilian National Council for Scientific and Technological Development (CNPq), a member of the Executive Advisory Board of the Journal of Intelligent and Robotic Systems, an Associate Editor of the Journal of Control, Automation and Electrical Systems, both published by Springer, and a member of the International Advisory Committee of the International Conference on Unmanned Aircraft Systems (ICUAS). He has authored two books and co-authored over 75 journal papers, over 380 conference papers, and 17 book chapters. Considering the citations of his papers, his h-index is 24 in the Web of Science database, 30 in the SCOPUS database, and 36 in the Google Scholar database. He has also advised 22 Ph.D. and 28 M.Sc. students. His research interests are nonlinear control, mobile robot navigation, coordinated control of mobile robots, unmanned aerial vehicles, multi-articulated robotic vehicles, and coordinated control of ground and aerial robots.

<figure><img src="image_26.png" /></figure>

PEDRO CASTILLO (Member, IEEE) received the B.Sc. degree in electromechanic engineering from the Instituto Tecnológico de Zacatepec, Zacatepec, Mexico, in 1997, the M.Sc. degree in electrical engineering from the Centro de Investigación y de Estudios Avanzados (CINVESTAV), Mexico City, Mexico, in 2000, and the Ph.D. degree in automatic control from the Université de Technologie de Compiègne (UTC), Compiègne, France, in 2004. He has held several visiting positions at The University of Sydney, Sydney, NSW, Australia, Massachusetts Institute of Technology (MIT), Cambridge, MA, USA, the Polytechnic University of Valencia, Valencia, Spain, Virginia Tech, Blacksburg, VA, USA, and LAFMIA UMI CNRS, Mexico City. He currently holds a research director position at the Heudiasyc Laboratory, UTC, French National Research Center (CNRS). His research topics include nonlinear control, delay systems, predictors, observers, autonomous vehicles, data fusion, robust navigation, real-time control, and robotics.

<figure><img src="image_27.png" /></figure>