Load Transportation by Quadrotors in Crowded Workspaces

Load transportation by unmanned aerial vehicles has many advantages in comparison with load transportation by unmanned ground vehicles. With the vehicle in the air obstacles in the ground and hard terrains are not a problem anymore, for instance. Moreover, higher speeds can be developed, allowing faster task accomplishment. The disadvantage is the possibility of load oscillations during the flight, which should be compensated through using suitable controllers. Furthermore, aiming at a real application, such as the delivery of medical kits for victims of disasters, the control system responsible for the navigation should embed an obstacle avoidance technique that works in harmony with the compensation of the load oscillations. In this work a load delivery task in an environment crowded with obstacles is addressed, in which the aerial vehicle should deliver the cargo at a specified target point. Euler-Lagrange equations are used to model the vehicle-load system, and a feedback-linearization controller is designed based on such a model, which is able to reject the load oscillations. The obstacle avoidance module embedded in the controller is also concerned to the efficiency in the task accomplishment, such that it avoids abrupt movements and reduction of the forward velocity of the vehicle. Several real experiments in which the proposed control system is adopted have been run, some of them presented here, whose results validate the proposed controller.


I. INTRODUCTION
The advance in electronics, which made possible the miniaturization of embedded systems and the reduction of component prices, has allowed designing micro unmanned aerial vehicles (UAVs). As part of such boom several multi-rotor vehicles, amongst which the quadrotors are predominant, are nowadays available from several manufacturers, at quite affordable prices, and many applications have been implemented using such vehicles. As a result, quadrotors have become part of robotics and control research, commerce and entertainment as well. The influence of the advances in electronic devices and systems becomes clear when checking The associate editor coordinating the review of this manuscript and approving it for publication was Ning Sun . the assembled small quadrotors: their four small rotors with the correspondent propellers and speed controllers are located in opposite sides of a small-size rigid cross or X frame, thus building a small rotary wing aircraft, keeping and even increasing the payload capacity, in comparison with standard miniature helicopters, for instance.
One outstanding characteristic of quadrotors is their mobility. They are true omnidirectional vehicles, able to takeoff and land vertically, stay in the air in a fixed position (hovering flight), and turnaround without moving aside or forward/backward. In terms of translation, they can move forward-backward, upward-downward, leftward-rightward or even combining such directions. Because of such flexibility, either for commercial or research purposes, quadrotors have proven to be useful in many applications, such as VOLUME 8, 2020 This work is licensed under a Creative Commons Attribution 4.0 License. For more information, see https://creativecommons.org/licenses/by/4.0/ management of natural hazards [1], [2], public safety [3], intervention in hostile environments [4], [5], search and rescue missions [6], precision agriculture [7] and load transportation [8], [9], for instance. In terms of control, a quadrotor has six degrees of freedom (DoFs), the three angles θ, φ, and ψ, referred to as the attitude of the aircraft, and the 3D coordinates defining its position in the working space. However, it has just four actuators, the four pairs rotor-propellers. Therefore, a quadrotor is an under-actuated vehicle, what makes it hard to model and control. Nevertheless, researchers all around the world have devoted effort to create models for such vehicles and controllers to guide them, resulting in techniques which has proven to be effective for such objectives [10]- [14].
In particular, the mobility of quadrotors makes them quite suitable for load transportation, as they can overcome obstacles more easily and take more suitable routes, in comparison with ground vehicles, for instance. This is exactly the focus of this work, load transportation by a quadrotor, and the text is hereinafter entirely devoted to this topic.
Two approaches can be adopted to carry a load with a quadrotor. The load can be grasped by the vehicle or attached to it through flexible cables. The grasping transportation approach [15]- [17] keeps the load attached to the vehicle body, thus increasing its inertia and slowing down its attitude response. Also, to take and deliver a cargo, the UAV should land and take-off, what can be dangerous sometimes. Another drawback is the shift in the center of gravity of the vehicleload body, since the load can be attached in different points of the vehicle [15] or have its mass not symmetrically coupled.
The use of a cable to attach the load to the UAV neither does interfere with the attitude response of the vehicle nor does change its center of gravity. However, it adds two more under-actuated degrees of freedom, associated to the load oscillations, to be also indirectly controlled by the four propellers. The drawback is that the load oscillations affect the movements and stability of the quadrotor, with the risk of leading it to a crash. However, such oscillations can be avoided selecting a smoother or swing-free trajectory to be tracked by the UAV, or even can be rejected using an appropriate control technique in connection with a suitable UAV-load model, preventing accidents and assuring a smoother and safer flight.
Many models and controllers have been proposed in the literature, when considering a quadrotor carrying a load. In [18], for instance, Euler-Lagrange equations are used to obtain the UAV-load dynamic model, and the Interconnection and Damping Assignment-Passivity Based Control (IDA-PBC) controller is proposed, which incorporates a total energyshaping. There, with modifications in the closed-loop inertia matrices, the authors control the system in trajectory-tracking tasks. They also use a localization system based on data provided by a monocular camera fused with inertial sensors, aiming at minimizing load oscillations. By its turn, the authors of [19] propose to use an H ∞ controller to reduce the load oscillations, considering the actuated and non-actuated DoFs of the system.
Newton-Euler equations are used in [20], with a backstepping controller with integral action to guide the UAV while suppressing the load disturbance. The controller requires smooth trajectories, that are generated considering the UAV constraints. Stability proofs are also presented for such a system. The same modeling technique is used in [21], now in connection with a geometric controller. The main feature is the control of the UAV-load system with load angles up to 50 degrees. Motion capture cameras are used to estimate the load state relative to the vehicle.
A different approach is presented in [22], where attention is given to the load lift sub-task. When the load loses contact with the ground a considerable non-linearity arises. To achieve local stability, a nonlinear geometric control is used. The same occurs in [23], but the authors considers an approximation for a flexible cable, modeling it as a set of small serially connected rigid links of nonzero mass. The stability is achieved when the links and cable are in the vertical position, just below the vehicle (the neutral position, thinking on the cable-load as a pendulum). In [24] there is an extension of this work, now regarding cooperation involving multiple vehicles.
For a real application, it is necessary, besides suitable models and controllers, to include an obstacle avoidance technique in the whole control system. In unstructured environments this becomes imperative for a safe and successful flight. One out of many possibilities is the use of potential fields, which consists of creating a field of rejection forces around the obstacles, pushing away the vehicle when it gets too close to them. The closer to the obstacle the vehicle gets, the stronger a fictitious force created to prevent that the vehicle crashes against the obstacle [25]. In [26] a potential field is used to avoid collisions and the optimization of a cost function generates feasible paths, in an environment containing static and dynamic obstacles. In [27] the potential field, considered as a rejection field, was used not to avoid obstacles but just to keep the shape of the formation of two quadrotors, keeping them in a safe distance one from the other, thus preventing any collision between the two quadrotors while they cooperate to carry a suspended load attached to them through cables (notice that the force exerted by the load tends to pull the vehicles one against the other, in that case).
In such a context, this work proposes an extension of the result discussed in [28] to a real scenario. An UAV-cargo system, with the cargo connected to the UAV through cables, is considered, flying throughout an environment containing obstacles. The load oscillations are rejected by using a nonlinear controller, based on a system model derived using the Euler-Lagrange equations. The contributions of the paper are three-fold: the development of a nonlinear dynamic model of the system composed by a quadrotor with a cable-suspended load, the proposition of a rejection field created to avoid collisions with obstacles in the environment, whose shape is here adapted to make the UAV to avoid any obstacle not lowering meaningfully its forward velocity (which is the main contribution of the paper), and the proposal of a nonlinear controller based on feedback linearization, responsible for rejecting the load disturbances while guiding the whole system in accomplishment of the mission. To validate the proposal, some real experiments are presented and discussed, which allow concluding that the model and the controller here proposed, including the obstacle deviation module implemented, are efficient in accomplishing the task of transporting a slung load by a quadrotor, even in environments containing obstacles.
To address these topics, the paper is hereinafter split in a few sections. The first section after this introduction is Section II, which describes the problem addressed, the control strategy adopted and how the disturbance avoidance technique should be applied. Following, Section III presents an overview of the quadrotor-load system model, discussing the model of the UAV (Subsection III-A) and the load dynamics (Subsection III-B), emphasizing the control variables and the degrees of freedom available. In the sequel, in Section IV the UAV model is represented in the under-actuated format, and a controller designed using partial feedback linearization is proposed to guide it, whereas in Section V it is described how the forces pushing the quadrotor away close obstacles are created, as a function of the distance UAV-obstacle. Then, Section VI presents and discusses experimental results for a single quadrotor carrying a slung load in environments containing one or more obstacles, and, finally, Section VII highlights the main conclusions of the work.

II. PROBLEM CHARACTERIZATION
The problem herein addressed consists in a quadrotor carrying a slung load navigating straightforwardly from a starting point to a destination one, possibly facing obstacles in its path. The context is the delivery of first aid kits to people lost in a forest, which is an environment crowded of vertical obstacles (the tree trunks), among which the quadrotor should fly to reach the target point (defined considering sound source localization, for instance). To deal with such an application three basic assumptions are here considered: a) the target point is inside a forest having a high density of treetops, so that the quadrotor is unable to flyover; b) it is safer to fly below the treetops, because of possible unstable weather condition or heavy wind gusts, and c) the drone flies at a predefined constant height, sufficient to prevent any crash against bushes, treetops, twigs and branches. Therefore, the navigational environment contains just tree trunks, which are vertical obstacles to be avoided by the UAV when navigating towards the target point. This way, the controller should change the yaw angle of the quadrotor accordingly, when close to a tree trunk.
Furthermore, it is quite important to deliver the package as fast as possible, disregarding the number of obstacles to be avoided. Because of this the trajectory to be tracked by the quadrotor is defined as the straight line in the XY plane linking the starting and target points, since the quadrotor keeps a constant altitude. Then the quadrotor turns over to take the orientation of the trajectory, and after this starts flying forwardly to the target point with a constant velocity in the X direction and zero velocity in the Y direction. Still because the quadrotor should reach the final destination in the shortest time possible, it should start any collision-avoidance maneuver in advance, prioritizing to preserve its forward velocity as much as possible. The problem then becomes to navigate the UAV-load system straightforwardly to the target with a constant velocity, avoiding any obstacle in its way, preferably not losing forward velocity. Figure 2 illustrates such an idea. There it is shown the desired trajectory (the black dashed line), over which an obstacle is found during the navigation (represented by a black circle, mimicking the cross section of a tree trunk). As one can see in the figure, the path followed by the quadrotor when navigating towards the target point (the dotted line over which the quadrotor icon is) is changed to allow the quadrotor to avoid the obstacle, starting the necessary maneuver much before getting too close to the obstacle, thus assuring a smooth maneuver, for which the forward linear velocity is not too much lowered. More details about this obstacle avoidance strategy are available ahead, in Section V, where a force exerted by the obstacle over the quadrotor, pushing it away of the obstacle, is proposed to be managed by the controller adopted to guide the UAV-load system. Therefore, while navigating in an environment with several obstacles, such as a forest, the UAV will be exposed to various repulsive forces, each one correspondent to an obstacle in its vicinity. Such forces start at zero and grows up when the UAV gets closer to the obstacle than a certain safety distance. With various obstacles closer to the vehicle than such a distance, there will be a set of repulsive forces, one caused by each obstacle, acting on the then, besides the forward force imposed by the thrusts. Then, the resultant of such forces is the vector sum of all forces acting on the vehicle, causing changes in its direction and its forward velocity if the UAV advances in its trajectory. An example showing a UAV navigating in an environment containing five obstacles is depicted in Figure 2. There one can perceive that if two obstacles are too close one to the other, the combination of the repulsive forces created by their presence will prevent the UAV of flying in between them. This corresponds somewhat to consider two close obstacles as a single larger one, and the vehicle should look for another path to avoid the two obstacles, thus allowing guaranteeing safer flights. This can be observed considering the two last upper obstacles in the figure. In this case the UAV does not pass between these two obstacles, once the repulsive force correspondent to one of those obstacles pushes the vehicle to the other one and viceversa, thus not allowing it to advance by that narrow passage.
Therefore, considering the repulsive forces associate to all obstacles in the environment creates a navigational map, with zones that are free to fly-through and no-fly zones. In this application, however, the quadrotor does not need to know  the map of the entire environment, but only to identify the nearest obstacles (closer to it than a predefined distance) and deal with the repulsive forces caused by them (a local map).
In addition, the effect of the repulsive forces on the UAV should not interfere in the flight safety. This is an important point to emphasize in load transportation because the suspended load affects the stability of the vehicle. A special case is when abrupt maneuvers are performed, which tend to generate load oscillations of larger magnitudes. Therefore, abrupt UAV maneuvers are not allowed when accomplishing obstacle avoidance, what is guaranteed by the strategy illustrated in Figures 1 and 2.

III. THE MODEL OF THE UAV-LOAD SYSTEM
The quadrotor used in this work is the ParrotAR.Drone2.0 R one, whose propellers are fixed to a frame, in a direction normal to it. Each one of its four propellers generates a force f i (t) = C f ω 2 i , i = 1, 2, 3, 4 normal to the surface of the vehicle, which is a function of the rotational speed ω, in turns per second, of the rotor. As for C f , it is the aerodynamic constant relating the propulsion force to the rotational speed of the propellers, which is dependent on the number, the width and the shape of the rotor blades, the inner and outer radius of the airflow through the rotor, and the air density, among other phenomena. An important detail is that the arms of the base frame of such a quadrotor are not aligned with the b x and b y axes ( b stands for the coordinate frame of the vehicle, whose origin is in its center of gravity), which would correspond to a cross frame. Instead, the whole frame is turned 45 • around the b z axis, configuring an X-frame. Thereby, lateral and longitudinal movements are performed by a combination of the rotations of all the four engines, in pairs. A representation of the structure of such a quadrotor, with its body reference system, is shown in Figure 3.
Before modeling the UAV-load system, the inertial frame e , the body frame b , the frame s , whose axes are parallel  to the axes of the inertial frame and whose origin coincides with the origin of the body frame, and the frame l , which refers to the reference system origin in the center of gravity of the load (see Figure 4, which shows the UAV and the slung load attached to it). The pose of the vehicle in the inertial coordinate frame is characterized as q = [ξ η] T . This includes ξ = [x y z] T , the current position of the UAV in e and η = [φ θ ψ] T , whose entries correspond to the roll, pitch and yaw angles in the reference system s (note that s has the same orientation of e , so that s η ≡ e η) (such variables are also characterized in Figure 4).
The pose of the load is defined as where the index c is associated to the load variables (see Figure 4). The load can move freely in the 3D space according to its own dynamics, but its movement is limited by the cable length, which keeps the load at a determined distance from the UAV but affecting its movements. The cable connecting the load to the quadrotor is considered rigid, inelastic and massless, such as in [18], [19] and [20], thus with negligible aerodynamic effects. Considering a transportation task, as depicted in Figure 4, it is not necessary to consider either the cargo yaw angle or its spin. This angle is considered constant along the flight, with the load always pointing forward.

A. THE UAV MODEL
The total energy of the UAV-Load system can be expressed by the Lagrangian where K corresponds to the kinetic energy and U corresponds to the potential energy associated to the UAV-load rigid body in the 3D space. The kinetic energy K , which can be split into translational and rotational energies, is given by In such equation K T corresponds to the translational energy and K Rot corresponds to the rotational energy, whereas represents the angular velocity given in the b frame, whose representation in generalized coordinates is given by with c x standing for cos(x) and s x standing for sin(x). By its turn, J ∈ R 3×3 is the matrix of moments of inertia of the UAV, given by where I xy = I yx , I xz = I zx and I yz = I zy for a symmetric shape, what is quite usual. By its turn, the potential energy U is given by As for the load position, it can be expressed in terms of the quadrotor position, the cable length l and the pan φ c and tilt θ c load angles. The result is that The force vector f represents the total propulsion generated, what means the sum of the forces generated by the four propellers, projected on the axes of the frame e through the vehicle attitude, and is given by where R is the rotational matrix, considering the roll, pitch and yaw angles, obtained as the angles from the inertial frame e to the body frame b . Such a matrix is given by By its turn, A t relates the generated propulsion to the total force, and for a quadrotor it is From A t one can perceive that the total propulsion is the sum of the forces generated by each propeller, each one in the positive b z direction, as previously mentioned. Therefore, to change the resultant propulsion vector for the quadrotor, one should change the rotation matrix in (7), or, in other words, the attitude of the aircraft. In a similar way, the torque vector τ is given by where the matrix A r is given by In such a matrix k 1 represents the distance between the origin of the b reference system and the point where the force is applied, i.e., where the propellers are installed (see Figure 3), whereas k 2 represents the relationship between motor torque and rotorcraft torque.
The Lagrangian function (1) is subject to the Euler-Lagrange constraint Entering (2) and (4) in (9), the high level model, in the inertial reference system, is given by M(q)q + C(q,q)q + F(q) + G(q) = bu + D, where q is the vector of generalized coordinates, M(q) is the matrix of inertia, C(q,q) denotes the matrix of Coriolis and centrifugal forces, F(q) is the vector of friction forces, D is the vector of disturbances and u is the external input signal.
In the underactuated form [29], the system described in (10) can be represented as where, I 3 ∈ R 3×3 is the identity matrix, and M r (η) = W T η JW η ∈ R 3×3 is the matrix of rotational inertia. By their turn, C r (η,η) =Ṁ r − 1 2η T ∂M r ∂η ∈ R 3×3 are the matrices of Coriolis and centrifugal forces, and G = [0 0 mg] T is the vector of gravitational force. Finally, D t and D r are the load translational and rotational effects, respectively. VOLUME 8, 2020

B. THE LOAD AS A MODELED DISTURBANCE
The load sustained by a cable behaves as a pendulum. The neutral position is when the load is aligned with the z axis of the UAV. In this position, the quadrotor should just compensate the load weight, simply increasing the propulsion in its z axis. As the load oscillates, varying the angles θ c and φ c , the disturbance vector applied to the vehicle through the cable changes. In such a case the UAV should also compensate extra forces in its x and y axes in order to cancel these angles and lead the load back to its neutral position. The bigger such angles are, the stronger the lateral and/or longitudinal forces exerted by the load on the UAV are, becoming more difficult to control the UAV. As a matter of fact, if such oscillations are not constrained to small values, they can even lead the UAV to a crash.
Another meaningful detail is that abrupt movements create oscillations of large magnitude, due to the load inertia. Fast oscillations are also a problem for the controller since it is hard to quickly reject them. In fact, it is quite important to quickly reject the load oscillations, preventing them of increasing and thus affecting the vehicle in an undesirable way.
In order to improve the system performance and simplify the model and thus the control objective, a module is added to compensate the gravitational force associated to the load and its oscillations. The load is then considered as a modeled disturbance characterized as when regarding translation, where a = s φ c c θ c + c φ c s θ c and b = s φ c s θ c − c φ c c θ c . As there is no interference of the load in any rotational movement, one can simply consider D r = 0, what is done here.

IV. CONTROL STRATEGIES
As the load is considered as a modeled disturbance, the controller designed should minimize its effect over the UAV, through reducing its oscillations and keeping it the neutral position. Thus, the control objective is to make the system variables q = [z φ θ ψ x y] T to converge to the desired values q d , such that the errorq = q d − q → 0 when t → ∞. Simultaneously the controller should reject the perturbation caused by the suspended load, leading the load to a position for which η c → 0. To guarantee that the UAV will not collide to any obstacle, the controller should also include the capability of avoiding potential collisions, what is here implemented using the previously mentioned potential field technique.
To design such a controller, the model in (11) is split in two parts, corresponding to the active variables (those with the index a) and the passive ones (those with the index p), where q a = [z φ θ ψ] T and q p = [x y] T .
The force vector F = [f 1 f 2 f 3 f 4 ] T contains the forces produced by the propellers of the quadrotor, which are in the reference system s of the aircraft. It can be written as (13) with A # being the left Moore-Penrose pseudo-inverse. It is not possible to straightforwardly apply the feedback linearization technique to an underactuated system. In such cases the system should be split into active and passive parts and then a partial feedback linearization technique is applied, as described in [29], where the stability proof is also presented.
Splitting the system so far described in its active and passive parts one gets where E a = D a + G a and E p = D p + G p . Isolatingq p in (14), it comes thaẗ Then, replacing (15) in (14) one gets Applying partial feedback linearization the control law is designed, where η a is an additional control input to be defined. Now, replacing (17) in (16), one gets whereM aa =M aa +M aa andÊ a =Ē a +Ẽ a , withM aa and E a being the estimated error matrices. Establishing y ad = q ad (t) as the desired position to be reached or the desired trajectory profile for the active degrees of freedom, the control law is proposed, where K a1 , K a2 , K a3 , K a4 ∈ R 4 are diagonal positive definite gain matrices.
In a similar way, regarding y pd = q pd (t) for the passive variables, the correspondent control signal is (20) where K p1 , K p2 , K p3 , K p4 ∈ R 2 are also diagonal positive definite gain matrices.
Therefore, concatenating η a and η p and working on the result, one gets the closed-loop equatioñ q + K 1 tanh(K 2q ) + K 3 tanh(K 4q ) = 0, for the system under analysis, where K i ∈ R 6 , i = 1, · · · , 4, are positive diagonal matrices whose entries are the entries of K ai and K pi , in this sequence. As the gain matrices are all positive definite, from such equation it is guaranteed that q andq converge to zero asymptotically (see [29] for more details).

V. THE REPULSIVE FORCES
The controller previously designed has the versatility of dealing with forces, including those resulting of the method proposed to avoid obstacles that may appear in the UAV trajectory. As aforementioned, whenever the vehicle gets closer to an obstacle an increasing fictitious force pushing it away of the obstacle is generated. The x and y components of such forces will change the total forces acting on the vehicle, thus changing the force vector F (see (13)). The result is that the quadrotor momentarily changes its path, to pass aside the obstacle. Taking into account that time is quite important when delivering first aid kits to people lost in forests, such force field is generated in a way that minimizes the loss of UAV velocity towards the target. Thus, the profile of the safe path the UAV should follow to avoid any obstacle is the one exemplified in Figures 1 and 2, which resembles a circumference stretched in the direction of movement of the UAV. In this section it is proposed a way to generate repulsive forces that are able to guide the quadrotor along a path passing aside the obstacles, while preserving at most the forward velocity of the vehicle.
To guarantee such behaviors the repulsive force created by the presence of an obstacle will start affecting the vehicle only when it gets closer to an obstacle than a certain distance, denoted as D . For distances UAV-i-th obstacle greater than this value the repulsive force generated is F ri = 0, and the UAV continues navigating along its desired trajectory. Otherwise, or whenever d * i , the current distance from the UAV to the i-th obstacle, is smaller than D , the force is generated. As aforementioned, the index i refers to the i-th obstacle in a set of N obstacles closer to the UAV than D , D is the distance for which the repulsive force starts being exerted, min is the minimum acceptable distance between the UAV and the obstacle (below which a collision is imminent), and d * i is the current distance between the UAV and the i-th obstacle, given by d * i = ||p i − ξ * || 2 , where ξ * = [x y] is the current position of the UAV and p i is the position of the i-th obstacle in the XY plane. As for xi and yi , they are the x and y components of d * i , respectively. Notice that only the x and y coordinates are used, because it is considered that the distance in the z axis does not generate repulsive force, as the application considers that the UAV flies keeping a constant altitude. Finally, f max is a constant that express the maximum force that can be generated, when the distance quadrotor-obstacle is close to the minimum acceptable one, and the value here adopted to it is f max = 5 N . By their turn, the values of the parameters min and D are 0.9 m and 1.1 m, respectively.

VI. EXPERIMENTS
To validate the proposed method for transporting a suspended load in an environment with obstacles, this section begins presenting some simple experiments to emphasize the behavior of each part of the system. Closing the section, a more complex experiment is presented, whose results validate the proposed system as a whole.

A. SYSTEM SETUP
The experiments were performed using the AuRoRA Platform, a framework created by our research group to deal with simulation and experiments using autonomous vehicles (see [30] for details about such a framework). The model, based on the parameters of the Parrot AR.Drone 2.0 R quadrotor, was included in such a framework, as the first step. For such a model, the parameters are those shown in Table 1, which also includes the values for the cable length (two different lengths were used in the experiments) and load mass. Notice that this model and the AuRoRA Platform have already been validated in [29] and [14]. To complete the system setup, the controller, embedding the obstacle avoidance technique discussed in the previous section, was also included in the AuRoRA Platform.   system, configured with four cameras, installed in the four corners of the room. The controller updating rate is based on the AR.Drone sample rate of 1/30 s. The load is an aluminum disk weighing 50 g put inside a spherical polystyrene case. It is worth to emphasize that the quadrotor used has neither payload capability nor power capability to carry heavy loads (the AR.Drone 2.0 R weighs just 380 g).
The positions of the obstacles are also given by the Opti-Track system, so that the distance UAV-obstacle and the angle between them is readily obtained. The experiments here discussed were all run in an indoor working environment, thus allowing using the OptiTrack system to get the state of the aircraft and the distances quadrotor obstacles. In a real scenario, however, a LIDAR sensor could provide the information on the distances quadrotor-obstacles, necessary to get the repulsive forces acting on the vehicle, and a GPS combined with the inertial measurements could provide the state of the vehicle, thus providing all the necessary information the controller demands.
Using the setup described for an indoor environment, three experiments were run in our laboratory. The first one corresponds to a simple task, in terms of load transportation, in which the vehicle should take off, fly and then land, in an working environment free of obstacles. The second experiment corresponds to the same task, but now a single obstacle is put in the middle of the UAV route. The objective is that the UAV avoids the obstacle and reach its destination safely. The last experiment is a more complex task, for the presence of various obstacles in the room. For a better visualization and understanding of the experiment, a video containing the three experiments can be watched by accessing the link https://youtu.be/dsxlTuY3gl8.
An aspect of the video that deserves mention is that there is a first part of it in which the load stabilization is considered. When the quadrotor with the slung load is hovering a disturbance is applied, which corresponds to get the load and move it to a position far from its natural position (just underneath the vehicle, as a pendulum). The idea is to show that the controller being used is able to recover the original position of the load, stabilizing it again, in the same position it was originally.

B. FIRST EXPERIMENT: LOAD TRANSPORTATION WITHOUT OBSTACLES
In this first experiment of the aforementioned series, the load is transported throughout and environment free of obstacles. The importance of such experiment is to see how the controller deals with this task and how it works to stabilize the load. Figure 6 shows the result. It can be seen that the task is accomplished with minimum load swing (see the plots of the angles associated to the load in Figure 6), with major oscillations occurring just when the vehicle changes its position (see the graphic that depicts the x coordinate). Notice also that the load only affects the vehicle after loosing its contact with the ground. In this case the length of the cable is l = 0.873 [m] (the value l 1 in Table 1). Still observing the  plots of the x coordinate of the quadrotor, one can see that its time variation is quite linear, showing that the quadrotor keeps a constant velocity towards the target point, what is a consequence of the choice of a straight line as the desired trajectory.

C. SECOND EXPERIMENT: AVOIDING A SINGLE OBSTACLE
As for the second experiment, a single obstacle is placed in the middle of the UAV-load path, and the UAV should deviate from the obstacle to avoid a crash, while keeping the magnitude of the load oscillations close to zero. Figure 7 shows the path traveled by the quadrotor-load system with the obstacle inserted in the middle of the route initially established. As one can see, the quadrotor was able to avoid crashing itself and the load as well, deviating from the obstacle and reaching its destination. Moreover, in Figure 10 one can perceive clearly that the forward velocity (the linear velocity in the x direction) is constant (x varies quite linearly), not being severely affected while the UAV is maneuvering to avoid the obstacle.

D. THIRD EXPERIMENT: NAVIGATING IN AN ENVIRONMENT CROWDED OF OBSTACLES
Finally, a more complex task is proposed in this last experiment, in which the quadrotor carrying the load should navigate throughout an environment with various obstacles. Four obstacles were put in an area of 3.80 m by 2.30 m, as shown in Figure 9 (the limit of four obstacles is due to the small area of the lab where the experiment was run, which prevented considering more obstacles). Considering the small working area, this is really an environment crowded of obstacles, enough to illustrate the performance of the proposed control system. A detail is that the cable attaching the load to the quadrotor was shortened to l = 0.505 [m] (the value l 2 in Table 1). The reason to do that is to show that the cable length has no influence in the performance of the control system, as one can infer from the results of the second and third experiments. Even in this case one can observe that the time variation of the coordinate x is quite close to a linear one, showing that the velocity of movement of the quadrotor towards the target point is constant, even when maneuvering to avoid the obstacles. Finally, it is worth mentioning that although the obstacles in the video are obstacles with squared cross section, they are illustrated in Figure 9 as cylindrical obstacles, what was done considering a cross section given by a circumference encircling the squared cross section.
The In the beginning the quadrotor deviates to the left to avoid the first obstacle. After leaving such obstacle behind it tries to get back to its trajectory but faces two more obstacles it should also avoid. Therefore it deviates to the left again, considering the repulsive forces generated by these two obstacles. After leaving such obstacles behind the quadrotor gets back to its desired trajectory, continuing the movement ahead till reaching the target point. An important detail is that the vehicle has no prior knowledge about the positions of the obstacles before getting in their vicinity (configuring a reactive navigation, since a ''local map'' is built).  in Figure 10(a), whereas Figure 10(b) shows the load angles, which got within an oscillation of small magnitude all along the way, as one can see in the figure.

VII. CONCLUDING REMARKS
The objective of this work is to transport a load throughout an environment with obstacles, with the payload suffering minimum oscillation. It is considered a task in which the UAV cannot fly over the obstacles, just pass aside them, meaning that it cannot increase its altitude. A practical example is the delivery of first aid kits to victims lost in a forest, for instance. In order to accomplish the task, it is proposed a system composed by a quadrotor and a load suspended by a cable attached to the vehicle. The load, then, behaves like a pendulum with oscillations that can compromise the flight safety. Thus, it is mandatory to control the magnitudes of these oscillations. A non-linear controller is used to reject the load effect in the system, modeled using Euler-Lagrange equations. In order to avoid the obstacles, it is proposed a method derived from the concept of potential fields, changed to give priority to keep the forward velocity of the vehicle, in order to reach the destination in less time. Real experiments were conducted to demonstrate the effectiveness of the proposed method, where the UAV reaches its destination avoiding the obstacles in its path, regardless of whether there are just one or multiple obstacles in its path, without losing much of its forward velocity while avoiding the obstacles. Potential future works include the use in a larger area, with even more obstacles, and the implementation of an electronic system that can detach the cargo, keeping the stability of the UAV, besides using more vehicles working cooperatively to carry heavier loads. MÁRIO SARCINELLI-FILHO received the Ph.D. degree in electrical engineering from the Federal University of Rio de Janeiro, Brazil, in 1990. He is currently a Professor with the Department of Electrical Engineering, Federal University of Espírito Santo, Brazil, a Researcher of the Brazilian National Council for Scientific and Technological Development (CNPq), and a Senior Editor of the Journal of Intelligent and Robotic Systems. He coauthored more than 55 journal articles, more than 330 conference papers, and 17 book chapters, besides having advised 20 Ph.D. and 23 M.Sc. students. His research interests are nonlinear control of mobile robots, mobile robot navigation, coordinated control of mobile robots, unmanned aerial vehicles, and coordinated control of ground and aerial robots. VOLUME 8, 2020