# Cable-suspended load lifting by a quadrotor UAV: hybrid model, trajectory generation, and control

## Abstract

In the last years, autonomous aerial vehicles have become promising mobile robotic platforms capable of manipulating external objects. In particular, quadrotors, rotorcrafts with four propellers, have been used for aerial transportation of cable-suspended loads. A critical step before transporting a payload is the lift maneuver. However, the analysis and planning of this maneuver have received a little attention in the literature so far. In this work, we decompose the cable-suspended load lifting into three simpler discrete states or modes: *Setup*, *Pull*, and *Raise*. Each of these states represents the dynamics of the quadrotor-load system at particular regimes during the maneuver. Furthermore, we define a hybrid system based on these states and show that it is a differentially-flat hybrid system. Exploiting this property, we generate a trajectory by using a series of waypoints associated with each mode. We design a nonlinear hybrid controller to track this trajectory and therefore execute the lift maneuver. We verify the proposed approach by carrying out experiments on an actual quadrotor with a cable-suspended load.

### Keywords

Aerial transportation Lift maneuver Hybrid systems Differential flatness Trajectory generation## 1 Introduction

In the last decade, the field of aerial robotics has experienced a fast-growing especially for the case of multi-rotor unmanned aerial vehicles (UAVs). High-performance micro-scale processors and high-efficiency sensors have helped to increase the commercial scope of these flying robots. Possibly the most common multi-rotor aerial platform nowadays is the quadrotor. This simple machine which consists of four individual rotors attached to a rigid cross frame has better 3-D mobility than fixed-wing UAVs. Its ability for vertical take-off and landing, for hovering while changing its heading, and for flying ahead or laterally with the possibility of varying its height have opened a wide spectrum of applications ranging from persistent surveillance (Wallar et al. 2015) to interaction with external objects (Orsag et al. 2014). Amongst such applications, aerial load transportation has attracted the attention of several research groups worldwide. Indeed, the quadrotor has become a standard platform for aerial manipulation research thanks to its payload capacity, flight endurance, and low-cost experimentation. Two approaches have been mainly used for transporting the load. The first one consists on equipping the quadrotor with grippers (Ghadiok et al. 2011; Spica et al. 2012; Thomas et al. 2014; Augugliaro et al. 2014), so the load is carried closer to its center of gravity slowing down the response of the vehicle. The second is to connect the payload to the quadrotor by a cable (Beloti Pizetta et al. 2015; Palunko et al. 2012; Faust et al. 2014; Tang and Kumar 2015; Sreenath et al. 2013; Goodarzi and Lee 2015) which preserves its agility, but the cargo swing can affect the flying characteristics of the aerial robot.

This work falls into the problem of transporting cable-suspended loads. In Beloti Pizetta et al. (2015), the movement of the system (quadrotor plus suspended load) is restricted to the *XZ* plane and a controller based on feedback linearization guides the quadrotor to follow a series of waypoints or a predefined trajectory. Trajectory generation under the assumption of minimal load swing at the end of a transport motion is addressed for example by Palunko et al. (2012). Dynamic programming and a discrete linearized model of the quadrotor-load system are used to compute an optimal trajectory to be executed by the aerial robot. A similar approach is presented in Faust et al. (2014), but a reinforcement learning technique is adopted to generate a swing-free optimal trajectory in a known obstacle-filled environment. The definition and analysis of the hybrid model for the quadrotor plus suspended-load system are introduced for instance by Sreenath et al. (2013) to deal with the case when the tension on the cable goes to zero. In this work, a geometric controller is designed such that local stability properties are achieved. A similar scenario is considered by Tang and Kumar (2015) where a hybrid model is adopted for the quadrotor carrying a cable-suspended load and the trajectory generation problem is formulated as a mixed integer quadratic program. The general assumption of a massless cable is relaxed in Goodarzi and Lee (2015) where the cable connecting the load with the aerial robot is modeled as serially-connected links. Goodarzi and Lee (2015) use geometric control to stabilize the vehicle such that the links are aligned in their vertical position below the quadrotor.

A common assumption when solving the problem of transporting a cable-suspended load using a quadrotor is that the system is always in the air, so the lift of the load from the ground is not generally considered. However, aerial cargo lifting is a fast and efficient way to move materials to locations beyond the practical reach of perimeter cranes. Furthermore, this maneuver is critical before transporting the payload. For example for cargo lifting using helicopters, the vehicle has to be over the load before the helicopter starts to lift according to safety regulations for this type of operations (Construction Safety Association 2000; UK Civil Aviation Authority 2006). To the best of our knowledge, modeling the problem of lifting a cable-suspended load by a quadrotor UAV as a hybrid system has not been discussed in the literature yet. The quadrotor plus cable-suspended load system experiences switching dynamics during the lifting. This switching behavior arises when for instance the cable goes instantaneously from being slack to being taut, i.e., the cable tension jumps from zero to a non-zero value, while the quadrotor is climbing. In addition, the system experiences another state jump when the load is not in contact with the ground anymore. Indeed, this second switching condition has not been considered in the hybrid model introduced in the literature for the cable-suspended aerial transportation system (Tang and Kumar 2015; Sreenath et al. 2013). Due to these transitions, the lift maneuver can be broken down into a collection of simpler discrete states or modes with different dynamics for each one. This decomposition simplifies the planning and control of the overall system. This approach has been successfully applied to perform backflip maneuvers for quadrotors (Gillula et al. 2011) and motion planning of small-scale helicopters (Frazzoli et al. 2005).

In our previous work (Palunko et al. 2012; Faust et al. 2014), we focused on generating a trajectory that reduced the cable-suspended load oscillation while it was transported by the quadrotor. We move a step further in this paper by addressing the problem of lifting the load from the ground until it arrives at the initial position of the swing-free trajectory. We decompose the lift maneuver into modes that characterize the dynamics of the quadrotor-load system at particular operation regimes. Furthermore, we define a hybrid system based on these modes and show that this hybrid model is differentially-flat according to the definition given by Sreenath et al. (2013). This property facilitates the generation of trajectories since a smooth trajectory with reasonably bounded derivatives can be followed by a differentially-flat system (van Nieuwstadt et al. 1994). Therefore, we generate a minimum jerk trajectory using a series of waypoints associated with the modes of the lift maneuver. Then we design a nonlinear controller that enables the tracking of the generated trajectory.

This paper combines and extends our recent work (Cruz et al. 2015; Cruz and Fierro 2014) where we analyzed the lift maneuver decomposing it into simpler hybrid modes. As compared to these works, this paper presents the experimental evaluation of the proposed approach by using a commercially-available micro-scale quadrotor UAV to lift a cable-suspended load from the ground. We have also modified our proposed nonlinear controller (Cruz et al. 2015; Cruz and Fierro 2014) in order to take into account the attitude control loop already provided on the quadrotor.

The rest of this paper is organized as follows. In Sect. 2, we introduce the dynamic models of a quadrotor and of quadrotor carrying a cable-suspended load. The lifting problem addressed in this work is stated in Sect. 3. In addition, we describe in this section the modes into which we decompose the lift maneuver. Using these simpler modes, we define a hybrid model in Sect. 4 where we also demonstrate that it is a differentially-flat hybrid system. This property facilitates the generation of dynamical feasible trajectories for the full system states. We explain our trajectory generation method in Sect. 5. In Sect. 6, we design a cascade controller for trajectory tracking purposes. The system setup and the experimental results are discussed in Sect. 7. Finally, Sect. 8 gives our concluding remarks.

## 2 Preliminaries

We consider a scenario where a quadrotor has a point-mass load attached by a massless and unstreatchable cable. We assume the cable is attached to the center of mass (CoM) of the quadrotor and the load mass is less than the maximum payload of the quadrotor. Also, we consider that the air drag is negligible.

- \(\lbrace \mathbf {x}_\mathcal {W}, \mathbf {y}_\mathcal {W}, \mathbf {z}_\mathcal {W}\rbrace \)
unit vectors along the axes of \(\lbrace \mathcal {W}\rbrace \),

- \(\lbrace \mathbf {x}_\mathcal {B}, \mathbf {y}_\mathcal {B}, \mathbf {z}_\mathcal {B}\rbrace \)
unit vectors along the axes of \(\lbrace \mathcal {B}\rbrace \) with respect to \(\lbrace \mathcal {W}\rbrace \),

- \(m_q \in \mathbb {R}_{> 0}\)
mass of the quadrotor,

- \(\mathbf {J} \in \mathbb {R}^{3\times 3}\)
inertia matrix of the quadrotor with respect to \(\lbrace \mathcal {W}\rbrace \),

- \(\mathbf {r}_q, \mathbf {v}_q \in \mathbb {R}^3\)
position and velocity of the quadrotor with respect to \(\lbrace \mathcal {W}\rbrace \), \(\mathbf {r}_q = [{x_q y_q z_q}]^T\) and \(\mathbf {v}_q = [{\dot{x}_q \dot{y}_q \dot{z}_q}]^T\),

- \(\mathbf {R} \in \text {SO}(3)\)
rotation matrix from \(\lbrace \mathcal {B}\rbrace \) to \(\lbrace \mathcal {W}\rbrace \),

- \({\varvec{\Omega }} \in \mathbb {R}^3\)
angular velocity of the quadrotor in \(\lbrace \mathcal {B}\rbrace \),

- \(F \in \mathbb {R}_{\ge 0}\)
total thrust produced by the quadrotor,

- \(\mathbf {M} \in \mathbb {R}^3\)
moment produced by the quadrotor,

- \(m_l \in \mathbb {R}_{> 0}\)
mass of the load,

- \(\mathbf {r}_l, \mathbf {v}_l \in \mathbb {R}^3\)
position and velocity of the load with respect to \(\lbrace \mathcal {W}\rbrace \), \(\mathbf {r}_l = [{x_l y_l z_l}]^T\) and \(\mathbf {v}_l = [{\dot{x}_l \dot{y}_l \dot{z}_l}]^T\),

- \(\ell \in \mathbb {R}_{>0}\)
length of the cable,

- \(T \in \mathbb {R}_{\ge 0}\)
tension on the cable.

*T*from zero to a nonzero value. This happens when the cable goes instantaneously from being slack to being taut. This transition is known as

*cable collision*(Bisgaard et al. 2009) and because of it, we need to consider the models of the quadrotor without and with a cable-suspended load.

### 2.1 Quadrotor dynamics

*g*is the constant gravitational acceleration, and the

*hat map*\(\hat{\cdot }: \mathbb {R}^3 \rightarrow \text {SO}(3)\) denotes the skew-symme- tric matrix defined by the condition that \(\hat{{\varvec{\Omega }}}\mathbf {b} = {\varvec{\Omega }} \times \mathbf {b}\) for the vector cross product of \({\varvec{\Omega }}\) and any vector \(\mathbf {b} \in \mathbb {R}^3\) (Mahony et al. 2012).

### 2.2 Quadrotor-suspended-load dynamics

## 3 Lift maneuver

In this section, we first formulate the problem of lifting a cable-suspended load by a quadrotor UAV and then we decompose the lift maneuver into three modes: *Setup, Pull* and *Raise* which represent the dynamics of the whole system in specific regimes during the maneuver.

### 3.1 Problem statement

Starting with the quadrotor hovering at a given altitude not necessarily right on top of the load, see Fig. 1, the goal is to lift the load until it reaches a predefined height denoted as *h*. Since the quadrotor has attached the cable-suspended load since the beginning, the relative quadrotor-load distance cannot be more than a cable-length apart. Under these conditions, we formulate the lifting problem.

### Problem 1

### Remark 1

### 3.2 Lift maneuver modes

*Setup, Pull*and

*Raise*. We break down the lift maneuver into these simpler modes to characterize the dynamics of the system in specific regimes during the maneuver. This decomposition is due to the jump from zero to nonzero cable tension and because of the load transition from being in contact with the ground to be in the air. The

*Setup*and

*Pull*are modes where the quadrotor gets ready to lift the load, while the

*Raise*mode is where the payload is finally lifted to the final position \(\mathbf {r}_{l_f}\).

#### 3.2.1 Setup

*Pull*, when the quadrotor and the load are exactly a cable-length apart, i.e., when the cable is fully extended. We can express this condition as

*cable collision*, makes that the positions of the aerial vehicle and the load remain the same, but their change in velocity can be modeled as a perfectly inelastic collision (Bisgaard et al. 2009). For the next derivations, we follow closely the work made by Bisgaard et al. (2009). Any collision, elastic or inelastic, can be modeled using the conservation of momentum. Thus, the relation between translational velocity before and after the impact can be described by

#### 3.2.2 Pull

*T*is not zero anymore, it may not be enough to lift the payload. Therefore, the quadrotor’s equations of motion are given by

^{1}This constrain is captured by (9). The load is still at rest, so \(\mathbf {v}_l = \mathbf {0}\) also at this mode.

*F*has to be increased in order to increment the tension on the cable and then lift the load. Once

*T*is slightly over the load weight \(m_l g\), there is enough tension that the cable-suspended load starts being lifted. Therefore, we define the condition

*Raise*mode. On the other hand, the transition from

*Pull*back to

*Setup*occurs when the cable tension becomes zero, i.e., when the cable returns to be slack. This condition can be expressed as

#### 3.2.3 Raise

*Pull*mode when the load is again over the ground with the cable fully taut. We can capture this condition as

## 4 Differentially-flat hybrid system

\(\mathcal {Q} = \left\{ \text {Setup, Pull, Raise } \right\} \) is the set of discrete states or modes,

\(\mathcal {X} = {\text {SO}}(3) \times \mathbb {R}^{15}\) is the set of continuous states with the state \(\mathbf {x} \in \mathcal {X}\) defined as \(\mathbf {x} = \left\{ \mathbf {r}_q, \mathbf {v}_q, \mathbf {R}, {\varvec{\Omega }}, \mathbf {r}_l, \mathbf {v}_l \right\} \),

\(\mathcal {U} = \mathbb {R}^4\) is the set of input variables and we define \(\mathbf {u} = \left[ F \mathbf {M} \right] ^T \in \mathcal {U}\) as the control input of the system,

\(\mathcal {f}(\text {Setup }, \mathbf {x}, \mathbf {u})\) given by (8), \(\mathcal {f}(\text {Pull }, \mathbf {x}, \mathbf {u})\) is given by (14), and \(\mathcal {f}(\text {Raise }, \mathbf {x}, \mathbf {u})\) given by (19) are the vector fields,

\( \mathcal {Dom}(\text {Setup }) = \left\{ \mathbf {x} \in \mathcal {X} \mid \mathbf {v}_l = \mathbf {0} \text { and } \Vert \mathbf {r}_q - \mathbf {r}_{l} \Vert < \ell \right\} \times \mathcal {U}\), \(\mathcal {Dom}(\text {Pull }) = \left\{ \mathbf {x} \in \mathcal {X} \mid \mathbf {v}_l = \mathbf {0} \text { and } \Vert \mathbf {r}_q - \mathbf {r}_{l} \Vert = \ell \right\} \)

\(\times \mathcal {U}\), and \( \mathcal {Dom}(\text {Raise }) = \left\{ \mathbf {x} \in \mathcal {X} \mid \Vert \mathbf {r}_q - \mathbf {r}_{l} \Vert = \ell \right\} \times \mathcal {U}\) are the domains,

\( \mathcal {E}=\left\{ (\text {Setup, Pull }), (\text {Pull, Setup }), (\text {Pull, Raise }),\right. \)

\(\left. (\text {Raise },\text {Pull }) \right\} \) is the set of edges,

\(\mathcal {G}(\text {Setup, Pull }) = \left\{ \mathbf {x} \in \mathcal {X}, \mathbf {u} \in \mathcal {U} \mid \Vert \mathbf {r}_q - \mathbf {r}_l \Vert = \ell \right\} \),

\(\mathcal {G}(\text {Pull, Setup }) = \left\{ \mathbf {x} \in \mathcal {X}, \mathbf {u} \in \mathcal {U} \mid T = 0 \right\} \),

\( \mathcal {G}(\text {Pull, Raise }) = \left\{ \mathbf {x} \in \mathcal {X}, \mathbf {u} \in \mathcal {U} \mid T > m_lg \right\} \), and

\(\mathcal {G}(\text {Raise, Pull }) = \left\{ \mathbf {x} \in \mathcal {X}, \mathbf {u} \in \mathcal {U} \mid \Vert \mathbf {r}_q - \mathbf {r}_l \Vert = \ell \text { and }\right. \)

\(\left. \mathbf {v}_l = \mathbf {0}\right\} \) are the guard conditions,

the reset map \(\mathcal {R}(\text {Setup, Pull })\) is given by (10) and (11) where \(\delta \) can be found using (13), while we assume that \(\mathcal {R}(\text {Pull, Setup })\), \(\mathcal {R}(\text {Pull, Raise })\), and

\(\mathcal {R}(\text {Raise, Pull })\) are the identity map, and

the set of initial states is \(\mathcal {Init}=\left\{ \text {Setup } \right\} \times \left\{ \mathbf {x} \in \mathcal {X} \mid \right. \)

\(\left. \mathbf {v}_l = \mathbf {0} \text { and } \Vert \mathbf {r}_{q_0} - \mathbf {r}_{l_0} \Vert < \ell \right\} \).

Notice that the hybrid system \(\mathcal {H}\) has a non-identity reset map only for the transition from *Setup* to *Pull*. Also, \(\mathcal {G}(\text {Pull, Setup })\) and \(\mathcal {G}(\text {Pull, Raise })\) are not state-based guard conditions. They depend on the tension value which can be found by (18) for the *Pull* mode. This hybrid model is an improved version of the one that we introduced in Cruz et al. (2015) for the planar case of the lifting problem. For example, both edges (*Pull, Setup*) and (*Raise, Pull*) as well as their guards and reset maps has been added in this paper.^{2}

Next, we introduce the definition of differential flatness for the case of a hybrid system. Then, we demonstrate that indeed \(\mathcal {H}\) is a differentially-flat hybrid system.

### Definition 1

(*Differentially-flat hybrid system*) (Sreenath et al. 2013) In general, a system is differen-tially-flat if its state and inputs can be written as functions of the selected outputs and their derivatives. In the case of a hybrid system, each discrete mode has to be differentially-flat with the guards being functions of the flat outputs and their derivatives, and the flat outputs of one mode arise as smooth functions of the flat outputs of the previous mode through the transition or reset map between both modes.

### Lemma 1

The hybrid system \(\mathcal {H}\) is a differentially-flat hybrid system.

### Proof

First, we show that each discrete mode, *Setup, Pull*, and *Raise*, are differentially flat. For the *Setup* mode, we select \(\mathcal {Y}_\mathrm{setup} = \lbrace \mathbf {r}_q, \psi \rbrace \) as the set of flat outputs where \(\psi \) is the yaw angle of the quadrotor. Notice that the state of the load is always equal to zero in this mode since the load is at rest, so \(\mathbf {v}_l = \mathbf {0}\). Thus, it suffices to show that \(\mathcal {Y}_\mathrm{setup}\) is a set of flat outputs for the quadrotor. Indeed, this has been already proved by Mellinger and Kumar (2011). Therefore, the *Setup* mode is differentially flat. For the *Pull* mode, we choose \(\mathcal {Y}_\mathrm{pull} = \lbrace \mathbf {r}_q, \psi \rbrace \) as the set of flat outputs. The load is also motionless at this mode. Thus, based on the same reason as for the previous mode, the *Setup* mode is also differentially flat. For the *Raise* mode, we choose \(\mathcal {Y}_\mathrm{raise} = \lbrace \mathbf {r}_l, \psi \rbrace \). The position and velocity of the load can be obtained from \(\mathcal {Y}_\mathrm{raise}\) and \(\dot{\mathcal {Y}}_\mathrm{raise}\). For the quadrotor, we need to show that \(\mathcal {Y}_\mathrm{raise}\) is a set for flat outputs. This has been already proved by Sreenath et al. (2013), so the *Raise* mode is also differentially flat

We have shown so far that the discrete modes of \(\mathcal {H}\) are differentially-flat. Now, we check the guard conditions. Since \(\mathcal {G}(\text {Setup, Pull })\) and \(\mathcal {G}(\text {Raise, Pull })\) are state-based, both guards are clearly functions of their respectively flat outputs, \(\mathcal {Y}_\mathrm{setup}\) and \(\mathcal {Y}_\mathrm{raise}\), and their corresponding derivatives. The other two guard conditions, \(\mathcal {G}(\text {Pull, Setup })\) and \(\mathcal {G}(\text {Pull, Raise })\), are for the *Pull* mode and they depend on the cable tension. Indeed, the tension on the cable for this mode can be found applying (18) which depends on \(\mathbf {R}\) and *F*. As we already showed, these two quantities can be written as functions of the set of flat outputs \(\mathcal {Y}_\mathrm{pull}\) and their derivatives. Hence, the cable tension can be fully determined by knowing \(\mathcal {Y}_\mathrm{pull}\). As a result, the guards \(\mathcal {G}(\text {Pull, Setup })\) and \(\mathcal {G}(\text {Pull, Raise })\) are functions of the set of flat outputs \(\mathcal {Y}_\mathrm{pull}\) and their high-order derivatives.

Finally, the map \(\mathcal {Y}_\mathrm{pull}\) to \(\mathcal {Y}_\mathrm{raise}\) and vice versa are the identity since \(\mathcal {R}(\text {Pull, Raise })\), and \(\mathcal {R}(\text {Raise, Pull })\) are the identity reset map. Similarly, we have for \(\mathcal {Y}_\mathrm{pull}\) to \(\mathcal {Y}_\mathrm{setup}\). For *Setup* to *Pull*, the reset map given by (10) and (11) where \(\delta \) can be found using (13) help to do the transition from \(\mathcal {Y}_\mathrm{setup}\) to \(\mathcal {Y}_\mathrm{pull}\).

Consequently, we know for \(\mathcal {H}\) that its discrete modes are differentially-flat, its guards are functions of the selected flat outputs for each mode and their corresponding derivatives, and the selected flat output for every mode arises from the flat output of the previous mode according to the reset maps. Hence by Definition 1, \(\mathcal {H}\) is a differentially-flat hybrid system. \(\square \)

## 5 Trajectory generation

- 1.
associated with the

*Setup*mode, the initial position \(\mathbf {r}_{q_0}\) which satisfies condition (5), - 2.
with the

*Pull*mode, the position \(\mathbf {r}_\mathrm{pull}\) where the quadrotor can exert the highest lift force and it is given by (7), and - 3.with the
*Raise*mode, the final position \(\mathbf {r}_{q_f}\) which relates the desired final position of the load with the final position of the quadrotor and it is$$\begin{aligned} \mathbf {r}_{q_f} = \mathbf {r}_{l_f} + \ell \mathbf {z}_\mathcal {W}. \end{aligned}$$(22)

*x*-axis component of \(\mathbf {r}_q\). Let \(\mathbf {s}\) be the state defined as

*u*the following cost function

*u*(denoted as \(u^*\)) can be found by solving

## 6 Control design

We use a cascade control structure that is shown in Fig. 5. As inner loop, the attitude controller provided in the FCU is employed whereas that the outer loop is the position controller. The input commands for the inner loop are desired roll \(\phi \) and pitch \(\theta \) angles, desired yaw rate \(\dot{\psi }\), and desired thrust *F*. We denote this control input as \(\mathbf {\Upsilon } = [\phi \theta \dot{\psi } F]^T\). The output of the attitude controller are the commanded rotational velocities of the four rotors denoted as \(\varvec{\omega } = [\omega _1 \omega _2 \omega _3 \omega _4]^T\) in Fig. 5. This attitude control loop delivered with the FCU is a black box for the user, so it is not focus of this paper. Please refer to (Ascending Technologies 2010; Gurdan et al. 2007) for a complete discussion about this controller.

For the position control loop, we implement it by applying nonlinear dynamic inversion (Isidori 1995; Wang et al. 2011). Having an adequate knowledge of the plant dynamics, this method transforms the nonlinear system into a linear system without any simplification through suitable control inputs. As a result, standard linear controllers can be then applied. This also aligns well with the differential flatness property shown in Lemma 1. We can perform linear control strategies, like a PD controller, by choosing pseudo control commands in the space of the flat outputs and their derivatives, and finally turning those into desired input commands (Achtelik et al. 2011).

*c*and

*s*are shorthand forms for cosine and sine, respectively. As we indicated in Sect. 5, a change in the yaw angle \(\psi \) does not have any effect on lifting the load since it is attached at the CoG of the quadrotor. Therefore, we assume that this angle is kept all the time equal to zero, i.e., \(\psi = 0^\circ \) and \(\dot{\psi } = 0 ^\circ /s\). Replacing (33) in (31) and making \(\psi = 0^\circ \), \(\mathbf {a}_q = [\ddot{x}_q \ddot{y}_q \ddot{z}_q]^T\), and \(T\varvec{\mu } = [\tau _z \tau _y \tau _z]^T\) yields that

*F*, we get

*Raise*mode, the only mode where the load is not at rest anymore, are related by (4). A possible modification is to switch to a controller that explicitly accounts for the load state in the

*Raise*mode for instance to reduce residual load swing (Palunko et al. 2012).

## 7 Experimental verification

### 7.1 System setup

To validate the proposed method for lifting a cable-suspended load by a quadrotor, we conducted a series of experiments using an AscTec Hummingbird quadrotor (Ascending Technologies 2015) that is part of the robotic testbed of the Marhes Lab at the University of New Mexico (UNM).^{3} The quadrotor with the attached cable-suspended load is shown in Fig. 6a. The Hummingbird quadrotor is 0.54 m in diameter, weighs approximately 500 g including its battery, and has a maximum payload of 200 g. The load is a ball with 0.076 m in diameter and weighs 178 g. This load is suspended from a 1 m long cable.

The system architecture implemented at the Marhes Lab to perform the experimental tests is illustrated in Fig. 6b. This figure also shows the communication links between the system components. The attitude and position of the aerial vehicle and the load are provided by a motion capture system with millimeter accuracy running at 100 Hz. The entire control application is implemented in LabVIEW where we created two programs: user interface and quadrotor interface. The first one runs on a windows-based computer while the second is deployed in a national instrument (NI) CompactRIO (cRIO) real-time controller (National Instruments 2016b). The general structure of these two interfaces is shown in Fig. 6c. The arrows in this figure illustrate the flow of information to implement the cascade control scheme depicted in Fig. 5.

### 7.2 Results

*Z*-axis trajectory tracking data for the quadrotor, position \(z_q\) and velocity \(\dot{z_q}\). Approximately at 4.8 s, the guard condition (9) is satisfied making the system jump from

*Setup*to

*Pull*. We draw a dashed vertical line at this time instant in Fig. 7. Subsequently, the system switches between

*Pull*and

*Setup*having as result a series of spikes in \(\dot{z}_q\) before the system stays at the

*Pull*mode, see Fig. 7b. The system then jumps from

*Pull*to

*Raise*since the guard condition \(T > m_l g\) holds. This occurs when the elapsed time is approximately 6.8 s. Similarly as before, this time instant is also pointed up by a dashed vertical line in Fig. 7. In order to verify the performance of executing the lift maneuver, we compute the following errors:

the quadrotor position error \(\mathbf {e}_{\mathbf {r}_q} = \mathbf {r}_q^\mathrm{ref} - \mathbf {r}_q\),

the quadrotor velocity error \(\mathbf {e}_{\mathbf {v}_q} = \mathbf {v}_q^\mathrm{ref} - \mathbf {v}_q\), and

the load position error \(\mathbf {e}_{l} = \mathbf {r}_{l_f} - \mathbf {r}_l\).

*Setup*to

*Pull*and from

*Pull*to

*Raise*indicated in Fig. 7 are also underlined in each plot of this figure. The

*X*-axis position error for the quadrotor is less than 0.05 as well as for the

*Y*-axis, but this error is less than 0.03 m for the

*Z*-axis, see Fig. 8a. For the velocity errors, Fig. 8b, they are less than 0.09 m/s for the

*X*and

*Y*axes. This is also the case almost all the time for the

*Z*-axis component except at the instant that the system switches between

*Setup*and

*Pull*. Because the

*Z*-axis velocity experiences a series of spikes during these jumps, see Fig. 7b, the error increases having as maximum 0.18 m/s. From Fig. 8c, the load position errors \(e_{x_l}\) for the

*X*-axis and \(e_{y_l}\) for the

*Y*-axis are both less than 0.1 Meanwhile, \(e_{z_l}\), the load position error for

*Z*-axis, decreases after the system reaches the

*Raise*mode and it is less than 0.05 m at the end of the lift maneuver.

*T*used to find the pseudo control input \(\mathbf {a}_q\) has a different value depending on the mode of the lift maneuver. Indeed,

*T*is given by (32) for the proposed controller. We carry out again the experiment of lifting the load to 1 m, but we set \(T = m_l g\) for computing \(\mathbf {a}_q\) during the entire maneuver. Thus, we do not use (32) for this second experiment. Figure 9 shows the results for \(z_q\), \(\dot{z}_q\), and \(\mathbf {e}_{\mathbf {r}_l}\) . Similarly as for the first experiment, the system jumps from

*Setup*to

*Pull*approximately at 4.8 s. However, the transition from

*Pull*to

*Raise*occurs approximately at 10 s. Indeed, there is a considerable delay on continuing tracking the trajectory (position and velocity) as it can be seen in Fig. 9a, b. This delay causes a transient, especially for \(\dot{z}_q\). For the load position error illustrated in Fig. 9c, it is less than 0.1 m and 0.2 m for the

*X*and

*Y*-component, respectively. Meanwhile, it is less than 0.1 m at the end of the maneuver for the

*Z*-axis. This experiment shows that even though the maneuver can be executed, the performance diminishes when the switching behavior of the quadrotor-suspended-load system is not under consideration for controlling the aerial vehicle.

For the third experiment, we generate the lift trajectory without using the via point \(\mathbf {r}_\mathrm{pull}\). Therefore, the trajectory just has one segment which goes from \(\mathbf {r}_{q_0}\) to \(\mathbf {r}_{q_f}\) with a total duration time of 12 s. We use the proposed controller without any modification as it was the case for the second experiment. The results for this case are shown in Fig. 10. The system goes from *Setup* to *Pull* approximately at 6 s, while it goes from *Pull* to *Raise* approximately at 6.8 s. There is a small delay on tracking the *Z* reference position after the load is starting to be lifted, see Fig. 10a. This delay creates an oscillation in the *Z*-axis velocity component reaching a maximum of 0.6 m/s, see Fig. 10b. For the position error of the load, Fig. 10c, there is a short swing in the *X* and *Y* components right after the quadrotor starts to lift the load. As a result, the error reaches a maximum of 0.5 m and 0.25 m for \(e_{x_l}\) and \(e_{y_l}\), respectively. At the end of the maneuver, \(e_{z_l}\) is less than 0.1 m. Although the load lift starts at a similar time instant that the one for the first experiment, the errors for the load position are higher when the via point \(\mathbf {r}_\mathrm{pull}\) is not considered for generating the trajectory to lift the cable-suspended load.

In the last part of the video provided as supplementary material for this paper and available also in MARHES LAB (2016), we show side by side the three experiments for comparison purposes. Furthermore, Fig. 11 shows side by side \(\mathbf {e}_{l} = \begin{bmatrix} e_{x_l}&e_{y_l}&e_{z_l} \end{bmatrix}^T\), the load position error, for the three experimental cases. Also, the total thrust *F* for the three experiments are plotted on the same axis in Fig. 11d. *F* is part of the control inputs of the system and it is found by applying (35). The plots in Fig. 11 help to compare and contrast the results for the three experiments: load lift applying the full proposed approach, load lift without using a switching controller, and load lift without considering the viapoint during the trajectory generation. From the *x* and *y* position error plots, Fig. 11a, b, the full proposed strategy performs better than the other two cases. The swing in the cable-suspended payload is less when the proposed approach is applied. Moreover, these oscillations are considerable when the viapoint is not part of the generation of the trajectory. With respect to \(e_{z_l}\) plotted in Fig. 11c, the quadrotors starts lifting the load earlier when the viapoint \(\mathbf {r}_\text {pull}\) is not employed. However, no considering this point causes a higher swing of the load as we indicated before. This effect is mainly because there is not enough time for performing adequately the pull of the load. Therefore, it is important to include and plan the *Pull* mode into the lift maneuver. About the control input *F* shown in Fig. 11d, it is clear that a more control effort is required when the full proposed approach is not applied. It takes more time to increase the thrust *F* to create enough tension to lift the load when no switching controller is employed. Indeed, this delay increases the time that the system stays in the *Pull* mode, see Fig. 9c. This effect translates on taking more time to start lifting the load as can be seen in Fig. 11c.

## 8 Conclusions

Lifting a cable-suspended load by an aerial vehicle is an essential step before transporting it. We introduced a novel methodology to perform this maneuver using a quadrotor. We designed a hybrid system that captures specific operating regimes of the quadrotor-suspended-load system during the maneuver. In particular, we proved that this system is a differentially-flat hybrid system. Taking advantage of this property, we generated a dynamically feasible trajectory based on the discrete states of the hybrid system. We designed a non-linear hybrid controller to track this trajectory which in turn carried out the lifting maneuver. We presented experimental results illustrating the effectiveness of our method. Significant improvement in tracking performance and reducing the load position error with respect to the final desired height were achieved when the hybrid modes were considered for generating the trajectory and controlling the aerial vehicle.

The transitions between modes could involve chattering. Indeed, this effect can be observed in Figs. 8b and 9b. However, it is not considerable because the weight and size of the load may not be enough to increase this chattering. Possibly, an adequately planning of the time intervals for the trajectory segments could help to reduce this effect if it is necessary.

Important topics for future work include the implementation of a system mass estimator in order to execute the maneuver even without knowing the payload mass, and the extension of the hybrid model to address the maneuver of placing the cable-suspended load over the ground. This step is also critical in aerial cargo transportation. Another path to take is to study and implement cooperative lifting using multiple quadrotors. Non-uniform and heavier cable-suspended loads can be manipulated since each aerial vehicle can apply a tension force to different attachment points in the load.

## Footnotes

- 1.
If the aerial vehicle cannot move under the level of the ground where the load is laying, then its movement is constrained to the upper half of the sphere.

- 2.
As compared with hybrid models for a quadrotor carrying a cable-suspended-load found in the literature (Sreenath et al. 2013; Tang and Kumar 2015). Our hybrid automaton considers also the transition from having the load on the ground to having it on the air and not only the jump from zero tension to nonzero tension.

- 3.
Multi-Agent, Robotics, and Heterogeneous Systems Laboratory, http://marhes.unm.edu.

## Notes

### Acknowledgements

This work was supported in part by the Army Research Lab Micro Autonomous Systems and Technology Collaborative Alliance (ARL MAST-CTA #W911NF-08-2-0004). We would like to thank the Ecuadorian scholarship program administrated by the *Secretaría de Educación Superior, Ciencia, Tecnología e Innovación* (SENESCYT) for providing part of the financial support for P. J. Cruz. We gratefully acknowledge Prof. Meeko Oishi from UNM for numerous discussions and her invaluable feedback about the hybrid model. Special thanks to Christoph Hintz for his help in recording the experimental tests.

## Supplementary material

Supplementary material 1 (wmv 134748 KB)

### References

- Achtelik, M., Achtelik, M., Weiss, S., & Siegwart, R. (2011). Onboard IMU and monocular vision based control for MAVs in unknown in- and outdoor environments. In
*IEEE international conference on robotics and automation*(*ICRA*), (pp. 3056–3063).Google Scholar - Al-Alaoui, M. A. (2008). Al-Alaoui operator and the new transformation polynomials for discretization of analogue systems.
*Electrical Engineering*,*90*(6), 455–467.CrossRefGoogle Scholar - Ascending Technologies (2010). AscTec Hummingbird with AutoPilot User’s Manual. http://ugradrobotics.wikispaces.com/file/view/AscTec_AutoPilot_manual_v1.0_small.pdf. Accessed Jan 2016.
- Ascending Technologies (2015). AscTec Hummingbird. http://wiki.asctec.de/display/AR/AscTec+Hummingbird. Accessed Jan 2016.
- Augugliaro, F., Lupashin, S., Hamer, M., Male, C., Hehn, M., Mueller, M., et al. (2014). The flight assembled architecture installation: Cooperative construction with flying machines.
*IEEE Control Systems*,*34*(4), 46–64.MathSciNetCrossRefGoogle Scholar - Beloti Pizetta, I., Santos Brandão, A., & Sarcinelli-Filho, M. (2015). Modelling and control of a PVTOL quadrotor carrying a suspended load. In
*international conference on unmanned aircraft systems*(*ICUAS*), (pp. 444–450).Google Scholar - Bezzo, N., Griffin, B., Cruz, P., Donahue, J., Fierro, R., & Wood, J. (2014). A cooperative heterogeneous mobile wireless mechatronic system.
*IEEE/ASME Transactions on Mechatronics*,*19*(1), 20–31.CrossRefGoogle Scholar - Bisgaard, M., Bendtsen, J. D., & Cour-Harbo, A. L. (2009). Modeling of generic slung load system.
*Journal of Guidance, Control, and Dynamics*,*32*(2), 573–585.CrossRefGoogle Scholar - Construction Safety Association (2000).
*Helicopter lifting*. Ontario: Safety Guidelines for Construction.Google Scholar - Cruz, P. J. & Fierro, R. (2014). Autonomous lift of a cable-suspended load by an unmanned aerial robot. In
*IEEE conference on control applications*(*CCA*), (pp. 802–807).Google Scholar - Cruz, P. J., Oishi, M., & Fierro, R. (2015). Lift of a cable-suspended load by a quadrotor: A hybrid system approach. In
*American control conference*(*ACC*), (pp. 1887–1892).Google Scholar - Faust, A., Palunko, I., Cruz, P., Fierro, R., & Tapia, L. (2014).
*Automated aerial suspended cargo delivery through reinforcement learning*. Artificial Intelligence**(In press)**Google Scholar - Frazzoli, E., Dahleh, M., & Feron, E. (2005). Maneuver-based motion planning for nonlinear systems with symmetries.
*IEEE Transactions on Robotics*,*21*(6), 1077–1091.CrossRefGoogle Scholar - Ghadiok, V., Goldin, J., & Ren, W. (2011). Autonomous indoor aerial gripping using a quadrotor. In
*IEEE/RSJ international conference on intelligent robots and systems*(*IROS*), (pp. 4645–4651).Google Scholar - Gillula, J. H., Hoffmann, G. M., Haomiao, H., Vitus, M. P., & Tomlin, C. J. (2011). Applications of hybrid reachability analysis to robotic aerial vehicles.
*The International Journal of Robotics Research*,*30*(3), 335–354.CrossRefGoogle Scholar - Goodarzi, F. & Lee, T. (2015). Dynamics and control of quadrotor UAVs transporting a rigid body connected via flexible cables. In
*American control conference*(*ACC*), (pp. 4677–4682).Google Scholar - Gurdan, D., Stumpf, J., Achtelik, M., Doth, K.-M., Hirzinger, G., & Rus, D. (2007). Energy-efficient autonomous four-rotor flying robot controlled at 1 kHz. In
*IEEE international conference on robotics and automation*(*ICRA*), (pp. 361–366).Google Scholar - Hehn, M. & D’Andrea, R. (2011). Quadrocopter trajectory generation and control. In
*Proceedings of the IFAC world congress*, (pp. 1485–1491).Google Scholar - Isidori, A. (1995).
*Nonlinear control systems*. Springer: Communications and Control Engineering.CrossRefMATHGoogle Scholar - Lewis, F. L., Vrabie, D., & Syrmos, V. L. (2012).
*Optimal control*(3rd ed.). Hoboken: WileyGoogle Scholar - Lygeros, J., Sastry, S., & Tomlin, C. (2012).
*Hybrid systems: Foundations, advanced topics and applications*. Department of Electrical Engineering and Computer Sciences: University of California, Berkeley. (in preparation).Google Scholar - Mahony, R., Kumar, V., & Corke, P. (2012). Multirotor aerial vehicles: Modeling, estimation, and control of quadrotor.
*IEEE Robotics Automation Magazine*,*19*(3), 20–32.CrossRefGoogle Scholar - Marhes Lab (2016). Cable-Suspended Load Lifting by a Quadrotor UAV. https://www.youtube.com/watch?v=rHtw80dqcGk. Accessed June 2016. YouTube Channel.
- Mellinger, D. & Kumar, V. (2011). Minimum snap trajectory generation and control for quadrotors. In
*IEEE international conference on robotics and automation*(*ICRA*), (pp. 2520–2525).Google Scholar - National Instruments (2016a). LabVIEW real-time module. http://www.ni.com/labview/realtime/. Accessed Jan 2016.
- National Instruments (2016b). NI CompactRIO. http://www.ni.com/compactrio/. Accessed Jan 2016.
- Orsag, M., Korpela, C., Bogdan, S., & Oh, P. (2014). Valve turning using a dual-arm aerial manipulator. In
*International conference on unmanned aircraft systems*(*ICUAS*), (pp. 836–841).Google Scholar - Palunko, I., Cruz, P., & Fierro, R. (2012). Agile load transportation : Safe and efficient load manipulation with aerial robots.
*IEEE Robotics Automation Magazine*,*19*(3), 69–79.CrossRefGoogle Scholar - Spica, R., Franchi, A., Oriolo, G., Bulthoff, H., & Giordano, P. (2012). Aerial grasping of a moving target with a quadrotor UAV. In
*IEEE/RSJ international conference on intelligent robots and systems*(*IROS*), (pp. 4985–4992).Google Scholar - Sreenath, K., Michael, N., & Kumar, V. (2013). Trajectory generation and control of a quadrotor with a cable-suspended load—a differentially-flat hybrid system. In
*IEEE international conference on robotics and automation*(*ICRA*), (pp. 4888–4895).Google Scholar - Stengel, R. (1994).
*Optimal Control and Estimation. Dover Books on Advanced Mathematics*. New York: Dover Publications.Google Scholar - Tang, S. & Kumar, V. (2015). Mixed integer quadratic program trajectory generation for a quadrotor with a cable-suspended payload. In
*IEEE international Conference on Robotics and Automation*(*ICRA*), (pp. 2216–2222).Google Scholar - Thomas, J., Loianno, G., Polin, J., Sreenath, K., & Kumar, V. (2014). Toward autonomous avian-inspired grasping for micro aerial vehicles.
*Bioinspiration and Biomimetics*,*9*(2), 025010.CrossRefGoogle Scholar - UK Civil Aviation Authority (2006).
*Helicopter external load operations*(4th ed.). Safety Regulation Group.Google Scholar - van Nieuwstadt, M., Rathinam, M., & Murray, R. (1994). Differential flatness and absolute equivalence. In
*IEEE conference on decision and control*(*CDC*), (Vol. 1, pp. 326–332).Google Scholar - Wallar, A., Plaku, E., & Sofge, D. A. (2015). Reactive motion planning for unmanned aerial surveillance of risk-sensitive areas.
*IEEE Transactions on Automation Science and Engineering*,*12*(3), 969–980.CrossRefGoogle Scholar - Wang, J., Bierling, T., Hcht, L., Holzapfel, F., Klose, S., & Knoll, A. (2011). Novel dynamic inversion architecture design for quadrocopter control. In F. Holzapfel & S. Theil (Eds.),
*Advances in Aerospace Guidance, Navigation and Control*(pp. 261–272). Berlin: Springer.CrossRefGoogle Scholar