1 Introduction

Aerial transportation and deployment of payloads using unmanned aerial vehicles (UAVs) such as quadrotors have become increasingly popular in the past decade. Quadrotor vehicles are very versatile and have a wide range of applications [6, 18]. They have the capability to take-off and land vertically, while simultaneously and independently changing their heading. Moreover, adding to their first-rate in-flight maneuverability, quadrotor vehicles are also able to halt mid-flight and hover [35, 7, 22]. When quadrotors are used to carry suspended loads, the payload can be held by a grasper attached to the quadrotor. However, this approach increases the inertia and overall mass of the quadrotor, eventually slowing down its dynamics and aggravating the performance [2]. An alternative method is to hang the load on a cable connected to the quadrotor. Although the overall mass of the system still increases, the quadrotor’s inertia remains unchanged and so does its agility.

The actual implementation of load transportation by means of cable suspension still poses motion control challenges despite its advantages and promising prospects. Among a myriad of predicaments, we highlight that (1) the position or attitude control of a quadrotor is complex because the vehicle is inherently unstable; (2) both the vehicle and the load (seeing the cable tension as input) subsystems are underactuated and the complete system has highly coupled dynamics; (3) the suspended load’s dynamics affect the vehicle’s dynamics and may render the trajectory tracking closed-loop unstable if not taken into consideration when designing the controller; and 4) external disturbances occur naturally (e.g., wind), and model mismatches and unmodeled dynamics, which are an ubiquitous part of an actual implementation, should have their effects minimized.

In recent years, load transportation using quadrotors has been a popular theme among the automatic control research community. Most of the earlier works focused on trajectory generation for slung load and set-point stabilization [14, 27, 34]. In [29], the load is regarded as an unmodeled disturbance, and the control solution is aimed to guide the vehicle (not the load) through the desired path while rejecting the load-induced disturbances. Later on, trajectory tracking solutions tackling the complete system were proposed. Several nonlinear controllers have been developed by parameterizing quadrotor and payload attitude through various local coordinate representations and through global settings by exploiting unit quaternions [1, 12, 19, 28, 30]. Local coordinate representations, like the Euler angles, only allow for a local analysis as such representations have kinematic singularities and are not able to represent attitude globally. Coordinate-free approaches for modeling and control have also been studied in [17, 21, 34]. A quadrotor system in free-flight or carrying a slung load is a differentially-flat system [26] which implies the existence of a continuous dynamic feedback law for the closed-loop system. In [34], the authors designed a controller from differentially-flat outputs for a cable-suspended load system; the technique was further extended to the 3D case in [13]. For stabilization of heavy loads, a nonlinear model predictive approach is explored in [36]. In the present paper, a coordinate-free approach is pursued for devising the quadrotor and load-swing attitude control, with almost-global asymptotic stability being achieved for the equilibrium trajectory of the overall closed loop system.

For thrust vectored vehicles, as is the case of a quadrotor, it is impossible to specify an arbitrary desired pose due to underactuation: these vehicles have six degrees of freedom and only four inputs. It is possible to independently control the position and yaw angle but pitch and roll angles will depend on the controller dynamics and reference trajectory. Typically, approaches to nonlinear pose control for quadrotors involve one of the following: (1) an integrated controller simultaneously stabilizes the position and the yaw angle of the quadrotor; this is a complex approach that entails long math derivations and is sensitive to the system parameters; (2) a hierarchical inner-outer loop control strategy where a fast inner loop controls the attitude, and a slower outer loop controls the position; or (3) a hierarchical controller with finite-time feedback control for the attitude, thereby allowing the total force on the quadrotor to be used as a direct input for position control, which simplifies the controller design and analysis. In [21], a terminal sliding mode controller is designed for a multi-quadrotor with a suspended load system. The finite-time stability of this sliding mode controller provides guarantees on convergence time and renders the system more robust to the external disturbances. The continuous finite-time stabilization of dynamical systems has been studied in [3, 4]. In [5], the authors use a finite-time continuous function, having then established an almost-global continuous finite-time feedback law for attitude stabilization. In [38], the authors apply continuous finite-time control to a rigid body system with applications to quadrotors. Continuous control solutions are preferable over discontinuous ones as they are chattering-free and more desirable for real-world applications, such as quadrotors, where the actuators provide continuous inputs. Hence, in this paper we extend the solution developed in [38] to the case of the quadrotor-slung load system.

Robustness is an important quality of any control system, and of special importance for actual vehicles, as they must ensure stability and performance in the face of uncertainties, including parametric uncertainties, unmodeled uncertainties, external disturbances, and time-varying state and input delays. In [24], an attitude controller is designed for the nominal system, and a robust compensator is added to restrain the effects of uncertainties and delays on the closed-loop control system. An uncertainty and disturbance estimator is used in [11] as the basis for a robustified nonlinear dynamic inversion control scheme for position and attitude tracking of a quadrotor. In this manuscript, a disturbance estimator is designed that ensures asymptotic tracking of the desired load trajectory and can be related to the so-called disturbance observer literature [31].

In previous work [8], the authors present a method for generating a slung-load trajectory tracking controller based on existing quadrotor free-flight controllers. This is a general result and only requires the existing quadrotor controllers to fulfil mild requirements on their associated Lyapunov functions. The paper considers only the nominal dynamic system. No robustness analysis is performed (although some robustness is ensured by the strict Lyapunov function that is constructed), and neither external disturbances nor unmodeled dynamics are considered or mitigated. In [39], also by the authors, the focus is on simplifying the control laws, and not on canceling all the dynamics as is typical of the backstepping procedure for controller design. Asymptotic tracking is considered for the full system dynamics which, despite simplifications, still involves long and complex expressions, as well as higher order derivatives. Going one step further, the present work minimizes the dynamic order of the controller required by virtue of the finite-time controller for the quadrotor attitude, while still presenting rigorous stability proofs.

Additionally, this manuscript studies robustness issues arising from parameter uncertainties and unmodeled dynamics. In a typical quadrotor-slung load system, common sources of uncertainities are: (1) imprecise identification of the parameters such as load mass, quadrotor mass, inertia and length of the cable; (2) mismatch between the cable attachment point and the center of mass of the quadrotor; and (3) disturbances originated from motor torques. These uncertainties are time-varying disturbances with bounded amplitude and bounded time derivative. One way these disturbances can be rejected is with an adaptive controller. In [16], the authors discuss the adaptive backstepping technique to estimate the unknown mass of a quadrotor. In [10], similar techniques are used for a quadrotor with unknown payload mass attached to a flexible cable. In [21], an adaptive law is proposed considering the effect of arbitrary but constant external disturbances on both quadrotors and load. Building on this previous research, the current manuscript examines the impact of internal disturbances due to the unmodeled actuation dynamics. In the present manuscript, we focus on disturbances that are solidary with the quadrotor, which includes disturbances induced from the cable not being attached exactly at the quadrotor center of mass and also disturbances arising from a mismatch between the commanded and the real thrust force at the quadrotor. The contributions of the manuscript are multifold.

  • A finite-time quadrotor attitude controller is designed by taking the covariant derivative of a transport map along the angular velocity on the nonlinear manifold with Lie Group structure SO(3). This controller is developed using the Morse functionFootnote 1modified trace and by imposing a Hölder continuity condition, to ensure almost-global finite-time convergence.

  • For control of the cable direction, a unitary vector evolving in \({\mathbb {S}}^{2}\) (a nonlinear manifold, like SO(3), but without a Lie Group structure), a controller is designed using a transport map, analogous to the previous point for attitude control. This transport map is calculated through orthogonal projections of a vector in \({\mathbb {R}}^{3}\) onto the tangent space of \({\mathbb {S}}^{2}\), and a geometric proportional-derivative law is constructed to align the cable direction to the desired direction asymptotically.

  • An estimator for disturbances is constructed to improve the load position trajectory tracking in the presence of unmodeled dynamics. This estimator, expressed in the quadrotor body frame, is incorporated into the load position and cable direction controllers to ensure the asymptotic stability of the overall system and convergence of all errors to zero.

  • The overall proposed controller and estimator are implemented on a remote-controlled vehicle, using thrust and angular velocity as inputs, in a motion capture arena. The numerical simulations and experiments attest to the tracking performance and robustness in the presence of unmodeled disturbances and at high quadrotor speeds.

The paper is organized as follows. Section 2 presents the mathematical notation used throughout the manuscript. The dynamics of the quadrotor UAV with slung load are introduced in Sect. 3. The overall controller design is described in 4 comprising the finite-time stable quadrotor controller in 4.1, the load position and cable attitude subsystem controller in 4.2, the estimator for unmodeled dynamics in 4.3, and finally, the Lyapunov analysis of the complete system in 4.4 where local asymptotic stability of overall closed-loop system is established. Section 5 presents the numerical simulations and experimental results followed by concluding remarks in Sect. 6.

2 Mathematical notations

Throughout this paper, we use differential geometry tools and nomenclatures such as manifold, tangent space and Lie group to build the control algorithms. A nice scholarly exposition on these concepts is found in [23]. A manifold (topological) of dimension n is a smooth curve, surface or higher-dimensional analogue that can be treated locally as an Euclidean space of dimension n. The configuration space of a system is a finite-dimensional manifold denoted by Q having generalized coordinates q. A set of admissible velocities at q defines a tangent space at this point as \(T_{q}Q\) and a tangent bundle TQ of Q is the disjoint union of all the tangent spaces to Q. Manifolds, such as SO(3), are called Lie groups if in addition to their smooth structure (manifold) they also possess a group structure. For example, the set of non-singular matrices \(GL(n,{\mathbb {R}})\) of dimension n is a Lie group and \(T_\mathbf{A }GL(n,{\mathbb {R}})\) is the tangent space at \(\mathbf{A} \in GL(n,{\mathbb {R}})\).

The natural configuration space of a rotating rigid body is the special orthogonal matrix, \(SO(3) = \{ \mathbf{R} \in GL(3,{\mathbb {R}}) | \mathbf{R}^{T}{} \mathbf{R} = \mathbf{I} , \text{ det }(\mathbf{R})=1\}\), a Lie group. The vector space at identity \(\mathbf{I} \) is closed under matrix commutator and forms the Lie algebra \({\mathfrak {s}}{\mathfrak {o}}(3)\) which is isomorphic to \({\mathbb {R}}^{3}\).

The bracket \(\langle \mathbf{x} , \mathbf{y} \rangle \) denotes the natural application between elements of the tangent space and elements of its dual. The hat map and breve map are defined as

such that \(\mathbf{x} \times \mathbf{y} = [\mathbf{x} ]^{\wedge } \mathbf{y} \) \( \forall \mathbf{x} , \mathbf{y} \in {\mathbb {R}}^{3}\) with \(\times \) as the vector product. The inverse of \( [\cdot ]^{\wedge }\) is \([\cdot ]^{\vee } : {\mathfrak {s}}{\mathfrak {o}}(3) \rightarrow {\mathbb {R}}^{3}\), where \({\mathfrak {s}}{\mathfrak {o}}(3)\) is the Lie algebra of SO(3) defined by the tangent space of SO(3) at identity \(T_{I}SO(3)\).

Given a vector \({\mathbf {q}} \in {\mathbb {S}}^{2}\) with \({\mathbb {S}}^{2} =\{ {\mathbf {a}} \in {\mathbb {R}}^{3} | ~ \Vert {\mathbf {a}} \Vert =1 \}\), we define two projection mappings onto \({\mathbb {R}}^{3}\) as

$$\begin{aligned}&\varPi _\mathbf{q }^{\parallel }: {\mathbb {R}}^{3} \longrightarrow {\mathbb {R}}^{3} \qquad \mathbf{x} \mapsto \varPi _\mathbf{q }^{\parallel } (\mathbf{x} ) = \mathbf{q} {} \mathbf{q} ^{T} \mathbf{x} \\&\varPi _\mathbf{q }^{\bot }: {\mathbb {R}}^{3} \longrightarrow {\mathbb {R}}^{3} \qquad \mathbf{x} \mapsto \varPi _\mathbf{q }^{\bot }(\mathbf{x} ) = - \mathbf{q} \times (\mathbf{q} \times \mathbf{x} ) \end{aligned}$$

which correspond to the orthogonal projection of a vector along \(\mathbf{q} \) and plane normal to \(\mathbf{q} \), respectively.

A function defined on a domain X is said to be of class \(C^k(X)\) if its k-th derivative is continuous in X.

3 Dynamic model of the quadrotor and slung load system

A quadrotor carrying a suspended load can be viewed as a system consisting of two rigid bodies, a quadrotor and a load, connected by a massless rigid cable attached to their centers of mass, as shown in Fig. 1. The quadrotor is driven by four rotors and propellers, generating thrust along the quadrotor z-axis direction and arbitrary torque. The overall system dynamics are completely characterized (neglecting aerodynamics drag effects) by the mass and the inertia of the quadrotor rigid body, the length of the cable and the mass of the load. Let \(\{\mathbf{e }_{1},\mathbf{e }_{2},\mathbf{e }_{3}\}\) be an orthonormal basis that defines the inertial reference frame \({\mathcal {F}}_{{\mathcal {I}}}\), \(\{\mathbf{r }_{1},\mathbf{r }_{2},\mathbf{r }_{3}\}\) be the orthonormal basis for the quadrotor body-fixed frame \({\mathcal {F}}_{{\mathcal {Q}}}\) located at the center of mass of the quadrotor and \(\{{\varvec{\ell }}_{1},{\varvec{\ell }}_{2},{\varvec{\ell }}_{3}\}\) be the basis for the load body-fixed frame \({\mathcal {F}}_{{\mathcal {L}}}\) with origin at the center of mass of the load.

We use the following notation for the system:

  1. 1.

    \(\mathbf{x} _{{L}},\mathbf{x} _{{Q}} \in {\mathbb {R}}^{3}\) - position of the load and quadrotor in \({\mathcal {F}}_{{\mathcal {I}}}\);

  2. 2.

    \(\mathbf{v} _{{L}},\mathbf{v} _{{Q}} \in {\mathbb {R}}^{3}\) - velocity of the load and quadrotor in \({\mathcal {F}}_{{\mathcal {I}}}\);

  3. 3.

    \(\mathbf{q} \in {\mathbb {S}}^{2}\)- the cable direction in \({\mathcal {F}}_{{\mathcal {I}}}\);

  4. 4.

    \(\varvec{\omega }_{L} \in {\mathbb {R}}^{3} \) - angular velocity of the cable, expressed in \({\mathcal {F}}_{{\mathcal {I}}}\);

  5. 5.

    \(\mathbf{R} \in SO(3)\) - attitude of the quadrotor;

  6. 6.

    \(\varvec{\omega }_{b} \in {\mathbb {R}}^{3}\) - angular velocity of the quadrotor, expressed in \({\mathcal {F}}_{{\mathcal {Q}}}\);

  7. 7.

    \(m_{{Q}},m_{{L}}\) - mass of the quadrotor and the load, respectively;

  8. 8.

    \(\ell \) - length of the cable connecting the load to the quadrotor;

  9. 9.

    \(J_{b}\) - Moment of inertia of the quadrotor about its center of mass expressed in the quadrotor body frame.

The quadrotor and the load position are constrained by the rigid link through

$$\begin{aligned} \mathbf{x} _{{Q}} = \mathbf{x} _{{L}} - \ell \mathbf{q} . \end{aligned}$$

The quadrotor’s four motors can be controlled independently to generate arbitrary torque \(M \in {\mathbb {R}}^3\) and thrust force \(f \in {\mathbb {R}}\) along the quadrotor z-axis, expressed in \(\mathcal {F_{I}}\) as

$$\begin{aligned} F = -f \mathbf{R} \mathbf{e} _{3}. \end{aligned}$$
(1)

Additionally, we consider the system to be affected by external disturbances \(\varDelta \) at the quadrotor force level. These considerations result in the overall system dynamics [15]

$$\begin{aligned}&\dot{\mathbf{x }}_{L} = \mathbf{v} _{L}, \end{aligned}$$
(2)
$$\begin{aligned}&m_{{T}}(\dot{\mathbf{v }}_{L} - g \mathbf{e} _{3}) = - m_{{Q}}\ell \Vert \varvec{\omega }_{L} \Vert ^2 \mathbf{q} + \varPi _{q}^{\parallel }(F + {\mathbf {R}} {\varDelta }), \end{aligned}$$
(3)
$$\begin{aligned}&\dot{\mathbf{q }} = \varvec{\omega }_{L} \times \mathbf{q} , \end{aligned}$$
(4)
$$\begin{aligned}&{\dot{\varvec{\omega }}}_{L} = -\frac{1}{m_{{Q}}\ell }{} \mathbf{q} \times \varPi _\mathbf{q }^{\bot }(F + {\mathbf {R}} {\varDelta }), \end{aligned}$$
(5)
$$\begin{aligned}&\dot{{\mathbf {R}}} = {\mathbf {R}} {\widehat{\varvec{\omega }}}_{b}, \end{aligned}$$
(6)
$$\begin{aligned}&J_{b} {\dot{\varvec{\omega }}}_{b} = \varvec{\omega }_{b} \times J_{b} \varvec{\omega }_{b} + M. \end{aligned}$$
(7)

with \(m_{{T}} = m_{{Q}} + m_{{L}}\).

The following assumption is useful to model and reject force disturbances arising due to offsets in the cable attachment point which depend on the quadrotor attitude.

Assumption 1

The external disturbances \(\varDelta \) are arbitrary, constant in \(\mathcal {F_{Q}}\), and bounded.

The need for boundedness of the disturbance is evident, so as not to require unbounded control action to compensate for them. Although restrictive and not strictly valid in practice, the constancy of disturbances in the quadrotor frame approximates well a torque disturbance induced by the load. Moreover, the proposed controller is robust and is able to reject even slowly time-varying disturbances.

Fig. 1
figure 1

Quadrotor with suspended payload system model

3.1 Problem formulation

Following the introduction of all the mathematical tools and dynamic equations, we formalize the problem in hand.

Problem statement Let the desired load position trajectory be \(\mathbf{x} _{{L}}^{d}(t) \in C^{6}({\mathbb {R}}^{3})\), a function parametrized by \(t \in {\mathbb {R}}_{\ge 0}\) and whose sixth derivative is continuous. The control objective consists in designing a control law for the quadrotor actuations f and M, so that, in closed-loop with the equations of motion (1)–(7), the load position \(\mathbf{x} _{{L}}(t)\) converges to \(\mathbf{x} _{{L}}^{d}(t)\), the quadrotor body x-axis aligns with the desired direction \({\mathbf {y}}^d\), and the overall system is rendered stable.

4 Controller design

From the problem statement, the control objective is to design the quadrotor control inputs \(f \in {\mathbb {R}}\) and \(M \in {\mathbb {R}}^{3}\) in order to achieve the load trajectory tracking goal. This is a non-trivial task as the load cannot be acted upon directly, but instead must be driven through the passive cable connecting it to the quadrotor vehicle. The control design strategy is thus shaped by the following observations:

\({\mathcal {O}}1\):

There is only one pose (load and quadrotor position and cable and quadrotor attitude) compatible with driving the load position and yaw tracking errors to zero. This is a direct consequence of the so-called differentially-flat property of the slung-load dynamic system [33]. In a differentially-flat system, the states and inputs can be directly expressed in terms of the flat outputs (typically the load position and quadrotor yaw angle) and a finite number of their derivatives.

\({\mathcal {O}}2\):

Tracking can be achieved by first designing a PD control force for the translation subsystem (2)–(3). This defines a desired tension on the cable that would stabilize the load position. The component along \(\mathbf{q} \) of this desired tension can be matched using \(\varPi _{q}^{\parallel }(F)\) in (3). The perpendicular component, however, cannot be matched in the same way. The geometry of the slung-load system requires the alignment of q with the desired tension direction, using the term \(\varPi _\mathbf{q }^{\bot }(F)\) in (5), in order to have zero tracking error.

\({\mathcal {O}}3\):

The force F designed based on \({\mathcal {O}}2\) induces a reference for the quadrotor attitude \(\mathbf{r} _{3}\) through (1)

$$\begin{aligned} \mathbf{r} _{3} = - \frac{F}{ \Vert F \Vert } \in {\mathbb {S}}^{2}. \end{aligned}$$

Considering the quadrotor heading as another component of the flat output and completing the \(\mathbf{R}\) matrix, it is possible to design a feedback law for the torque M to attain the desired \(\mathbf{R}\) in finite-time, therefore isolating the quadrotor attitude from the cable-load subsystem. This simplifies the control design since the quadrotor attitude dynamics no longer affect the cable nor the load dynamics, and \(\mathbf{R}\) (or F) can be regarded as the input to the cable and the load system. Once the desired \(\mathbf{R} \mathbf{e} _{3}\) direction is attained, after the finite convergence time, the reference control force F can be generated instantly by the quadrotor.

In the next three subsections, we design the control laws for the subsystems (2)–(3), (4)–(5), and (6)–(7). The first section deals with finite-time control strategy for the quadrotor orientation tracking and its stability analysis. The second and third section discuss the stages of cable direction and load position control and the stability of overall interconnected system.

4.1 Feedback design of quadrotor orientation tracking control

The objective is to design a feedback controller for the quadrotor that tracks the desired orientation trajectory \(\mathbf{R}_{d}(t)\), generated by the cable-load subsystem controller, in finite-time. Let \(\mathbf{R}_{e}(t) = \mathbf{R}_{d}^{T}(t)\mathbf{R}(t)\) be the quadrotor attitude error with the desired angular velocity defined as \([\varvec{\omega }_{b}^{d}]^{\wedge } = \mathbf{R}_{d}^{T}{\dot{\mathbf{R}}}_{d}\), and the angular velocity error as

$$\begin{aligned} \mathbf{e} _{\varvec{\omega }_{b}} \triangleq \varvec{\omega }_{b} - \mathbf{R}_{e}^{T}\varvec{\omega }_{b}^{d}. \end{aligned}$$

This velocity error has a geometric interpretation since \([\varvec{\omega }_{b}]^{\wedge }\) and \([\varvec{\omega }_{b}^{d}]^{\wedge }\) are the elements of the Lie algebra \({\mathfrak {s}}{\mathfrak {o}}(3)\). Consider two curves \(\mathbf{R}(t),\mathbf{R}_{d}(t) \in SO(3)\) and let \({\dot{\mathbf{R}}}\) and \({\dot{\mathbf{R}}}_{d}\) be their respective velocities, which belong to different tangent spaces and are not directly comparable. In order to compare the velocities we need to express them on the same tangent space, an operation that is achieved through the transport map \(\tau \) [23]. A transport (right) map \(\tau (\mathbf{R},\mathbf{R} _{d})\) transforms \({\dot{\mathbf{R}}}_{d}\) into a vector at \(T_{\mathbf{R}}SO(3)\), by taking the left action by \(\mathbf{R}_{d}^{T}\) to get the Lie algebraic element at \(T_{I}SO(3)\), followed by taking left action by \(\mathbf{R}\) to get the vector isomorphic to Lie algebraic elements. Therefore, the angular velocity error is expressed as

$$\begin{aligned} {\dot{\mathbf{R}}} - \tau (\mathbf{R},\mathbf{R} _{d}) ({\dot{\mathbf{R}}}_{d})&= {\dot{\mathbf{R}}} - {\dot{\mathbf{R}}}_{d}(\mathbf{R}_{d}^{T}{} \mathbf{R}) , \\&= \mathbf{R}([\varvec{\omega }_{b}]^{\wedge } - [\mathbf{R}_{e}^{T}\varvec{\omega }_{b}^{d}]^{\wedge }) \\&\quad = \mathbf{R}[\mathbf{e} _{\varvec{\omega }_{b}}]^{\wedge }. \end{aligned}$$

Theorem 1

Consider the reference trajectory \((\mathbf{R}_{d},\varvec{\omega }_{b}^{d})\) with \(\mathbf{R}_{d} \in C^2(SO(3))\) and the quadrotor subsystem dynamics system (6)-(7) in closed-loop with the feedback torque

$$\begin{aligned} M&= J_{b}(\mathbf{e} _\omega + \phi (\mathbf{R}_{e}) + \mathbf{R}_{e}^{T}\varvec{\omega }_{b}^{d}) \times (\phi (\mathbf{R}_{e}) + \mathbf{R}_{e}^{T}\varvec{\omega }_{b}^{d}) \nonumber \\&\quad + J_{b}{} \mathbf{R}_{e}^{T}{\dot{\varvec{\omega }}}_{b}^{d} - J_{b}((\mathbf{e} _\omega + \phi (\mathbf{R}_{e})) \times \mathbf{R}_{e}^{T}\varvec{\omega }_{b}^{d}) \nonumber \\&\quad + J_{b}\frac{d}{dt}\phi (\mathbf{R}_{e}) \nonumber \\&\quad + \mathbf{e} _{R} - \frac{L \mathbf{e} _\omega }{(\mathbf{e} _\omega \cdot L \mathbf{e} _\omega )^{(1-1/p)}} \end{aligned}$$
(8)

where L is a positive-definite matrix, \({\mathbf {e}}_{R}= (\sum _{i = 1}^{3} \lambda _{i} \mathbf{R}_{e}^{T}\hat{\mathbf{e }}_{i} \times \hat{\mathbf{e }}_{i})\), \(\phi (\mathbf{R} _{e})= - k_{R} \frac{\varvec{e}_{R}}{(\varvec{e}_{R} \cdot \varvec{e}_{R})^{1-1/p}}\),, \(\mathbf{e }_\omega = \mathbf{e }_{\varvec{\omega }_{b}} - \phi (\mathbf{R}_{e})\), \(1<p<2\), and \(\lambda _{1},\lambda _{2},\lambda _{3}\) are distinct and positive. The resulting closed-loop system is almost globally finite-time stable around \((\mathbf{R}_{d},\varvec{\omega }_{b}^{d})\).

Proof

See “Appendix 1”. \(\square \)

4.2 Load position and attitude tracking

Defining the position and velocity errors as \(\mathbf{e} _{x}=\mathbf{x} _{{L}} - \mathbf{x} _{{L}}^{d}\) and \(\mathbf{e} _{v} = \mathbf{v} _{L} - \mathbf{v} _{L}^{d}\), a stabilizing Proportional-Derivative control for the double integrator system is designed as

$$\begin{aligned} F_{c} = m_{{T}}[-k_{x}{} \mathbf{e} _{x} - k_{v} \mathbf{e} _{v} + \dot{\mathbf{v }}_{L}^{d} - g \mathbf{e} _{3}] \end{aligned}$$
(9)

where \(k_{x}, k_{v}>0\). Following observation \({\mathcal {O}}2\) leads to consider

$$\begin{aligned} \varPi _\mathbf{q }^{\parallel }(F) = \frac{1}{m_{{T}}} \left( m_{{Q}} \ell \Vert \varvec{\omega }_{L} \Vert ^2 \mathbf{q} + \varPi _\mathbf{q }^{\parallel }(F_{c} - {\mathbf {R}} {\bar{\varDelta }}) \right) \end{aligned}$$
(10)

where \({\bar{\varDelta }}\) is the estimate of \(\varDelta \), and \({\tilde{\varDelta }} = \varDelta - {\bar{\varDelta }}\) the estimation error. This results in a double integrator for the load position system controlled, along \({\mathbf {q}}\), according to \(F_c\). The estimator dynamics will be designed in the sequel with the goal of mitigating the tracking error arising from using the estimate \({\bar{\varDelta }}\) in the control law instead of the uncertain \({\varDelta }\).

Now, consider the cable direction subsystem with dynamics (4)–(5). To design \(\varPi _\mathbf{q }^{\bot }(F)\), we define a tracking error function on \({\mathbb {S}}^{2}\) as

$$\begin{aligned} \varPhi (\mathbf{q} ,\mathbf{q} ^{d}) = k_{q}(1 - \langle \mathbf{q} ,\mathbf{q} ^{d} \rangle _{{\mathbb {R}}^{3}} ), \end{aligned}$$
(11)

and, following (\({\mathcal {O}}2\)), we use

$$\begin{aligned} \mathbf{q} ^{d} = - \frac{F_{c}}{\Vert F_{c}\Vert }. \end{aligned}$$

as the reference for \(\mathbf{q} \).

The following assumption is introduced as it is valid for any load trajectory of practical interest. Furthermore, it can be rigorously imposed by constraining the reference acceleration \(\dot{\mathbf{v }}_{L}\) for the load, the initial errors (or using error saturation), and using appropriate gains in (9).

Assumption 2

The force \( F_{c} \) is nonzero.

We proceed to calculate the directional derivative of \(\varPhi \) along \(\mathbf{q} \). Let \(P_\mathbf{q }:{\mathbb {S}}^{2} \rightarrow T^{*}_\mathbf{q } {\mathbb {S}}^{2}\) and be the orthogonal projections onto \(T^{*}_\mathbf{q }{\mathbb {S}}^{2}\) and , respectively, where \(T^{*}{\mathbb {S}}^{2}\) is the cotangent bundle of \({\mathbb {S}}^{2}\). Then, for \(\mathbf{q} ,\mathbf{q} ^{d} \in {\mathbb {R}}^{3}\) these projections are given as

$$\begin{aligned}&P_\mathbf{q }(\mathbf{q} ^{d}) = - \mathbf{q} \times ( \mathbf{q} \times \mathbf{q} ^{d}) \quad \text{ and } \\&P_\mathbf{q ^{d}}(\mathbf{q} ) = -\mathbf{q} ^{d} \times ( \mathbf{q} ^{d} \times \mathbf{q} ). \end{aligned}$$

Taking the time derivative of (11) leads to

$$\begin{aligned} \frac{d\varPhi }{dt}&= k_{p}(- \langle P_\mathbf{q }(\mathbf{q} ^{d}),\dot{\mathbf{q }} \rangle - \langle P_\mathbf{q ^{d}}(\mathbf{q} ),\dot{\mathbf{q }}^{d} \rangle ), \\&= k_{q}( \langle \widehat{\mathbf{q }}^{2}{} \mathbf{q} ^{d}, \dot{\mathbf{q }} \rangle + \langle \widehat{\mathbf{q }}_{d}^{2}{} \mathbf{q} , \dot{\mathbf{q }}^{d} \rangle ), \\&= k_{q}(- \langle \mathbf{q} \times \mathbf{q} ^{d}, \varvec{\omega }_{L} \rangle - \langle \mathbf{q} ^{d} \times \mathbf{q} , \varvec{\omega }_{L}^{d} \rangle ), \\&= k_{q}(\mathbf{q} ^{d} \times \mathbf{q} ) \cdot (\varvec{\omega }_{L} + \widehat{\mathbf{q }}^{2} \varvec{\omega }_{L}^{d}) = k_{q} \mathbf{e} _\mathbf{q } \cdot \mathbf{e} _{\varvec{\omega }_{L}} \end{aligned}$$

where \(\mathbf{e} _\mathbf{q } = \mathbf{q} ^{d} \times \mathbf{q} \) is the cable direction error, and \(\mathbf{e} _{\varvec{\omega }_{L}} = \varvec{\omega }_{L} + \widehat{\mathbf{q }}^{2} \varvec{\omega }_{L}^{d}\) is the angular velocity error. The so-called differential of \(\varPhi \), defined through \(\frac{d\varPhi }{dt} = d\varPhi \cdot \mathbf{e} _{\varvec{\omega }_{L}}\), is \(d\varPhi = k_{q} \mathbf{e} _\mathbf{q }\). It is immediate to see that \(d\varPhi = 0\) if and only if \(\mathbf{q} = \pm \mathbf{q} ^{d}\), and at the two critical points we have \(\varPhi (\mathbf{q} ^{d},\mathbf{q} ^{d}) = 0\) and \(\varPhi (-\mathbf{q} ^{d},\mathbf{q} ^{d}) = 2k_{q}\), respectively. The Hessian of \(\varPhi \) is \(\text{ Hess }(\varPhi (\mathbf{q} ,\mathbf{q} ^{d})) = 2k_{q}{} \mathbf{q} ^{T}{} \mathbf{q} ^{d}I_{3 \times 3}\), which identifies \(\mathbf{q} ^{d}\) as a minimum, i.e., a stable point, and \(- \mathbf{q} ^{d} \) as a maximum, i.e., an unstable point, for \(\varPhi (\mathbf{q} ,\mathbf{q} ^{d})\)Footnote 2.

For \(\dot{\mathbf{q }} \in T_\mathbf{q }{\mathbb {S}}^{2}\) at point \(\mathbf{q} \) and \(\dot{\mathbf{q }}^{d} \in T_\mathbf{q ^{d}}{\mathbb {S}}^{2}\) at point \(\mathbf{q} ^{d}\), a right transport map \(\tau (\mathbf{q} ,\mathbf{q} ^{d})\) transforms \(\dot{\mathbf{q }}^{d}\) into a vector at \(T_\mathbf{q }{\mathbb {S}}^{2}\) and the error is expressed as

$$\begin{aligned} \mathbf{e} _{\dot{\mathbf{q }}}&= \dot{\mathbf{q }} - \tau (\mathbf{q} ,\mathbf{q} ^{d}) \dot{\mathbf{q }}^{d} = \dot{\mathbf{q }} - (\mathbf{q} ^{d} \times \dot{\mathbf{q }}^{d}) \times \mathbf{q} , \\ \mathbf{q} \times \mathbf{e} _{\dot{\mathbf{q }}}&= \varvec{\omega }_{L} + \widehat{\mathbf{q }}^{2} \varvec{\omega }_{L}^{d} = \mathbf{e} _{\varvec{\omega }_{L}}. \end{aligned}$$

The control input \(\varPi _\mathbf{q }^{\bot }(F)\) is given by PD and feedforward control

$$\begin{aligned} \varPi _\mathbf{q }^{\bot }(F) = m_{{Q}} \ell (F_{pd} + F_{ff} - {\mathbf {R}} {\bar{\varDelta }}), \end{aligned}$$
(12)

with the proportional-derivative (PD) control

$$\begin{aligned} F_{pd} = (- k_{q} \mathbf{q} \times \mathbf{e} _\mathbf{q } - k_{\omega } \mathbf{q} \times \mathbf{e} _{\varvec{\omega }_{L}}), \end{aligned}$$

and the feedforward control term obtained by taking the total derivative of the transport map \(\tau (\mathbf{q} ,\mathbf{q} ^{d})\) along \(\varvec{\omega }_{L}\) [23](Chapter 11),

$$\begin{aligned} \frac{\hbox {D} (\tau \dot{\mathbf{q }}^{d})}{\hbox {dt}} = \nabla _{\dot{\mathbf{q }}}(\tau (\mathbf{q} ,\mathbf{q} ^{d}) \dot{\mathbf{q }}^{d}) = (\nabla _{\dot{\mathbf{q }}}\tau )\dot{\mathbf{q }}^{d} + \left. \frac{\hbox {d}}{\hbox {dt}} \right| _\mathbf{q } (\tau \dot{\mathbf{q }}^{d}) \end{aligned}$$

The covariant derivative \(\nabla _{\dot{\mathbf{q }}}(\tau \dot{\mathbf{q }}^{d}) \) shows how the transported velocity \(\tau \dot{\mathbf{q }}^{d}\) varies as a function of both \({\mathbf {q}}(t)\) and \(({\mathbf {q}}^{d},\dot{\mathbf{q }}^{d})(t)\). At \(({\mathbf {q}}^{d},\dot{\mathbf{q }}^{d})\) fixed, \(\tau {\mathbf {q}}^{d}\) is defined on \({\mathbb {S}}^{2}\) and its covariant derivative \((\nabla _{\dot{\mathbf{q }}}\tau )\dot{\mathbf{q }}^{d}\) is well-defined on \(T_{q}{\mathbb {S}}^{2}\) using projection; and when \({\mathbf {q}}\) is fixed, \(\tau {\mathbf {q}}^{d}\) is a vector on \(T_{{\mathbf {q}}} {\mathbb {S}}^{2}\). Calculating further, we have

$$\begin{aligned}&\nabla _{\dot{\mathbf{q }}}(\tau (\mathbf{q} ,\mathbf{q} ^{d}) \dot{\mathbf{q }}^{d}) \\&= P_\mathbf{q } \left( \left. \frac{d}{dt} \right| _\mathbf{q ^{d}} (\tau (\mathbf{q} ,\mathbf{q} ^{d}) \dot{\mathbf{q }}^{d}) \right) + \left. \frac{d}{dt} \right| _\mathbf{q } (\tau (\mathbf{q} ,\mathbf{q} ^{d}) \dot{\mathbf{q }}^{d}) \\&= - \widehat{\mathbf{q }}^{2}\left( \left. \frac{d}{dt} \right| _\mathbf{q ^{d} } \mathbf{q} \times (\mathbf{q} ^{d} \times \dot{\mathbf{q }}^{d}) \right) + \left. \frac{d}{dt} \right| _\mathbf{q } \mathbf{q} \times (\mathbf{q} ^{d} \times \dot{\mathbf{q }}^{d}) \\&= -[\dot{\mathbf{q }} \cdot (\mathbf{q} ^{d} \times \dot{\mathbf{q }}^{d})] (\mathbf{q} \times \dot{\mathbf{q }}) + \mathbf{q} \times (\mathbf{q} ^{d} \times \nabla _{\dot{\mathbf{q }}^{d}}\dot{\mathbf{q }}^{d}) \end{aligned}$$

where \(\frac{d}{dt} \big |_{(\cdot )}\) represents taking the time derivative of the expression while keeping \((\cdot )\) fixed with respect to time, and \(\nabla _{\dot{\mathbf{q }}^{d}}\dot{\mathbf{q }}^{d}= \ddot{{\mathbf {q}}}_{d}\) are the dynamics of the reference trajectory \({\mathbf {q}}^{d}\) with \(\mathbf{q} ^{d} \times \nabla _{\dot{\mathbf{q }}^{d}}\dot{\mathbf{q }}^{d} ={\dot{\varvec{\omega }}}_{L}^{d}\). With this, the feedforward term is expressed as

$$\begin{aligned} F_{ff}= - \mathbf{q} \times \nabla _{\dot{\mathbf{q }}}\tau (\mathbf{q} ,\mathbf{q} ^{d})\dot{\mathbf{q }}^{d} = \widehat{\mathbf{q }} ((\mathbf{q} \cdot \varvec{\omega }_{L}^{d}) \dot{\mathbf{q }} - \widehat{\mathbf{q }}^{2}{\dot{\varvec{\omega }}}_{L}^{d}) \end{aligned}$$

The total force F that must be provided by the quadrotor follows from the combination of (10) and (12)

$$\begin{aligned} F = \varPi _\mathbf{q }^{\parallel }(F) + \varPi _\mathbf{q }^{\bot }(F) \end{aligned}$$
(13)

with \({\bar{\varDelta }}\) obtained from the estimator dynamics in Sect. 4.3.

4.3 Integral action

The adaptive estimator dynamics are designed as

$$\begin{aligned} \dot{{\bar{\varDelta }} } = g_{I}{} \mathbf{R}^{T}\left( \varPi _\mathbf{q }^{\parallel }(k_{x_{I}}{} \mathbf{e} _{x} + \mathbf{e} _{v}) + \mathbf{q} \times (k_{q_{I}}{} \mathbf{e} _\mathbf{q } + \mathbf{e} _{\varvec{\omega }_{L}}) \right) \nonumber \\ \end{aligned}$$
(14)

where \(k_{x_{I}}, k_{q_{I}},g_{I} >0\) are the estimator gains. These dynamics lead to an asymptotically stable estimator for disturbances that are constant in \(\mathcal {F_{Q}}\), as stated in Theorem 2. The first term of (14) is responsible for rejecting the disturbance along \(\mathbf{q} \), the cable direction, and the second term is responsible for rejecting the disturbance in the plane normal to \(\mathbf{q} \).

4.4 Stability of the full dynamics

The stabilizing thrust force for the cable and load subsystem dynamics, which culminates in equation (13), is used to define the reference for the quadrotor body z-axis as

$$\begin{aligned} \mathbf{r }_{3}^{d} = - \frac{F}{\Vert F \Vert }. \end{aligned}$$

Rotations of the quadrotor about this axis are still possible without affecting the validity of the proposed control law. Hence, the quadrotor yaw direction can be seen as a degree-of-freedom to be controlled. Let \(\mathbf{r} _{1}^{d} \in {\mathbb {S}}^{2}\), \(\mathbf{r} _{1}^{d} := \mathbf{R}_{d} \mathbf{r }_{1}^{d}\), be the vector that provides the desired heading direction of the quadrotor. The orientation \(\mathbf{R}_{d}\) that satisfies the control requirements and points the quadrotor, as much as possible, in the desired heading is constructed, for \(\Vert \mathbf{r }_{3}^{d} \times \mathbf{r} _{1}^{d}\Vert \ne 0\), as

$$\begin{aligned} \mathbf{R}_{d} = \left[ -\frac{\mathbf{r }_{3}^{d} \times (\mathbf{r }_{3}^{d} \times \mathbf{r} _{1}^{d})}{ \Vert \mathbf{r }_{3}^{d} \times (\mathbf{r }_{3}^{d} \times \mathbf{r} _{1}^{d}) \Vert },~ \frac{\mathbf{r }_{3}^{d} \times \mathbf{r} _{1}^{d}}{ \Vert \mathbf{r }_{3}^{d} \times \mathbf{r} _{1}^{d}\Vert } , ~\mathbf{r }_{3}^{d} \right] . \end{aligned}$$
(15)

Using the control moment M from (8), this desired orientation \(\mathbf{R}_{d}\) is attained in finite time, after which the thrust force is simply given by

$$\begin{aligned} f = - F \cdot \mathbf{R} \mathbf{e} _{3} = \Vert F\Vert , \end{aligned}$$
(16)

We now state the stability properties of the closed-loop system with the proposed quadrotor control laws.

Theorem 2

For a given desired load trajectory \(\mathbf{x} _{{L}}^{d}(t) \in C^{6}({\mathbb {R}}^{3}_{\ge 0})\), a function whose sixth derivative is continuous and parametrized by \(t \in {\mathbb {R}}_{\ge 0}\), consider the slung load system dynamics (1)-(7), the closed-loop control actions (16) and (8), where the desired control force is given by (10), (12), and (13), together with the estimator dynamics (14). Under Assumptions 1 and 2,

with control and estimation gains satisfying the inequalities (22), (24), and (27)–(30),

the quadrotor attitude error dynamics are finite-time stable and the equilibrium point \((\mathbf{R}_{d},\varvec{\omega }_{b}^{d},\mathbf{x} _{{L}}^{d},\mathbf{v} _{L}^{d},\mathbf{q} ^{d}, \dot{\mathbf{q }}^{d})\) is asymptotically stable.

Proof

See “Appendix 1”. \(\square \)

4.5 Performance and tuning

The stability and performance of the proposed controller hinge on matrix Q, defined in (26). The proposed slung-load tracking controller is asymptotically stable if and only if all the eigenvalues of Q are positive, with the magnitude of the eigenvalues adjusting the rate of convergence of the trajectory tracking errors to zero.

Table 1 Simulation Parameters

Eyeing the main diagonal of (26), choosing higher control gains \(k_{x}\), \(k_v\), \(k_{q}\), \(k_{\omega }\) will lead to a faster transient, bounded only by the physical limits of the vehicle being considered, and \(k_{x_I}\) and \(k_{q_I}\) should be chosen sufficiently low for the conditions of Theorem 2 to be valid. It should be noted that the tracking errors always converge to zero as long as Q is positive definite and the system is stable. Only the convergence rate is affected by tuning the control gains.

It is always possible to obtain stabilizing gains by following the ensuing sequence for their definition: (i) choose high \(k_{x}\) and \(k_v\) gains that mostly influence the dynamic behavior of the translation of the load mass; (ii) choose \(k_{x_I}\) such that (22) and (28) are verified; (iii) choose high \(k_{q}\) and \(k_{q_I}\), affecting the cable dynamics, and verifying simultaneously (24) and (29); (iv) finally, choose high \(k_{\omega }\) such that condition (30) is also verified.

5 Simulation and experimental results

This section presents the numerical simulation of the quadrotor-cable-load system in closed-loop with the proposed load position controller. The load tracks a desired trajectory in 3D space given by

$$\begin{aligned} \mathbf{x} _{{L}}^{d}(t) = \begin{bmatrix} a \sin (bt)&a \sin (2bt)&(a/4)\cos (bt) \end{bmatrix}^{T} (m).\nonumber \\ \end{aligned}$$
(17)

The model parameters, initial states and the control gains are given in Table 1.

A summary of the evolution of the load position and quadrotor attitude errors is presented in Fig. 2, together with the cable direction, and estimator states. The actuation plots for the thrust force and angular velocity are shown in Fig. 3. The fast and finite-time nature of the convergence of the quadrotor attitude error \(\mathbf{R}_{e}\) is clearly visible in the \(V_{{1}}\) plot. Once the quadrotor attitude subsystem converges, the cable-load system tracks the desired 3D trajectory \(\mathbf{x} _{{L}}^{d}\) without introducing additional errors. The cable direction, after a transient of approximately 3 s, tracks \(\mathbf{q} ^{d}\) with minimal error. Furthermore, the load position error \(\mathbf{e} _{x}\) also converges asymptotically to zero and displays a minimal error after about 3 s. Finally, and despite the simulated external disturbances, the load position error converges to zero and the estimate of the external disturbances \({\bar{\varDelta }}\) converges to its actual value.

Fig. 2
figure 2

Transient response of the load position error, disturbance estimation, cable direction and Lyapunov function for the quadrotor attitude error. Notice the finite-time nature of the quadrotor attitude error, after a 1s transient the error is zero (deviations are due to floating-point numerical imprecisions), and the asymptotic nature of the remaining tracking errors

Fig. 3
figure 3

Time evolution of the quadrotor actuations, thrust f and angular velocity \(\varvec{\omega }_{b}\). After reasonable initial transients, the actuations converge to their steady state as the tracking errors converge towards zero

To experimentally validate the performance of the proposed control algorithms, we used the testbed of the SCORELab of the University of Macau [32]. The testbed uses a Matlab/Simulink environment which integrates the sensors, the control algorithms and the communication with UAV. The vehicle used in the experiment is a Blade 200QX quadrotor, weighing 210g with battery included and had a length of 110 mm from the center of mass to each rotor. The quadrotor is radio controlled and is commanded from the computer through a radio module with a serial port interface. A VICON optical motion capture system [37] consisting of 12 cameras is used together with the markers on the quadrotor and on the load to get their respective positions and attitude measurements. The motion capture system provides sub-millimetric positioning for markers on the quadrotor and on the load, and operates at 100Hz, whereas the RF transmitter operates at 45 Hz.

A block diagram of the overall architecture of the plant is depicted in Fig. 4. The VICON block estimates data from the motion capture system and outputs the quadrotor and load state; then, the computation of control signals is performed from measured states in the controller block and sends them to the RF module; and actuation signals are ultimately relayed to the quadrotor through radio transmission.

The motion capture system accurately located the markers and obtain the position and attitude measurements for the quadrotor \((\mathbf{x} _{{Q}}, \mathbf{R})\) and position measurements for the load \(\mathbf{x} _{{L}}\). It outputs position for both the vehicle and the load with the velocities being subsequently obtained using Euler backward differences. The process is repeated to estimate the accelerations, and a low-pass filter is applied to attenuate the high-frequency noise arising from the numeric differentiation. The experiments are performed on a quadrotor whose actuation signals are thrust and angular velocity commands. The finite-time inner-loop controller responsible for angular velocity is reduced to

whereas the outer-loop controller for the load-cable subsystem remains the same, with the quadrotor attitude and thrust references given by (15), (13), using (16). The cable direction and angular velocity are computed from the position and velocity measurements of the quadrotor and load as

The dynamic model (2)–(7) and the proposed controller are only valid when the cable is under tension.

Fig. 4
figure 4

Control architecture of the plant

For the experimental results presented, the quadrotor starts at rest from a hovering position with the cable vertically aligned and it remains taut during the totality of the maneuver.

5.1 Three-dimensional trajectory tracking

For the first experiment, we track the same reference trajectory (17) as for the numerical simulation, to assess the performance and robustness of the proposed controller. The control gains used for the trajectory generator are displayed in Table 2.

Table 2 Parameters

A 3D view of actual and reference trajectories is shown in Fig. 5, and the detailed evolutions of the tracking errors, and states are shown in Figs. 6, 7, 8, 9, and 10. Looking at \(V_{{1}}\) in Fig. 7, the error norm of the quadrotor attitude converges close to zero in approximately 10 s with a root mean error of 0.0018 for \(t>12\,\)s. The load position tracks the desired trajectory \(\mathbf{x} _{{L}}^{d}\), with a root mean square error of 4.3 cm for \(t>30\) s. Figures 9 and 10 illustrate the evolution of the quadrotor and cable attitude over time. The actual attitudes track well the desired attitudes, even in the initial instants. A longer transient is observable in the x-axis position error, with repercussions in \({\mathbf {e}}_{q_y}\), \(\theta _y\) and \(q_x\), but eventually fades out after approximately 10 s. The adaptation of the disturbance estimate \({\bar{\varDelta }}\) to the actual disturbances is shown in Fig. 6, with the estimate stabilizing after 60 s and leading to the convergence of the position error to zero. In our experimental setup, the disturbances are primarily due to the cable not being attached to the exact center of mass of the quadrotor, with repercussions mostly in \({\bar{\varDelta }}_x\) and \({\bar{\varDelta }}_y\), and due to mismatch between the requested and the actual thrust input, captured by \({\bar{\varDelta }}_z\). A video of the experimental test is available in [25].

Fig. 5
figure 5

Load tracking the reference 3D trajectory at different time instances. The gray plots are the projection of the trajectory on xyz planes, respectively

Fig. 6
figure 6

The load position converges to the desired 3D trajectory in approx \(30\, s\) with root mean square error of 4.3cm in steady-state, and \({\bar{\varDelta }}\) converges to their steady state values asymptotically

Fig. 7
figure 7

cable attitude error \(\mathbf{e} _{q}\) converges asymptotically and after an initial transient of around \(10 \, s\) the quadrotor attitude error is residual

Fig. 8
figure 8

The thrust f follows the steady state value while the angular velocity tracks the desired value of the 3D trajectory

Fig. 9
figure 9

In Euler angles representation, the quadrotor attitude (in solid lines) tracks their desired values (in dashed line) in finite-time

Fig. 10
figure 10

The cable direction (solid color lines) converges to the desired values (dashed color lines) in \(10 \, s\) while load position follows the desired 3D path

5.2 Circular trajectory tracking with desired yaw

The second experiment consists in tracking a reference trajectory at high speed, for which the aerodynamic forces become increasingly important and result in large attitude errors. In these circumstances, the controller performance improves if the desired heading \(\theta _{z}\) (or \(\mathbf{r} _{1}^{d}\)) is chosen appropriately so as to minimize the error coupling dynamics, instead of remaining constant. The reference trajectory is set up as a circle defined by

$$\begin{aligned} \mathbf{x} _{{L}}^{d}(t) = \begin{bmatrix} 0.75 \sin (1.7t)&0.75 \cos (1.7t)&-0.8 \end{bmatrix} \end{aligned}$$

and the desired heading direction \(\mathbf{r} _{1}^{d} \in {\mathbb {S}}^{2}\) chosen so as to keep the vehicle pointing in the direction tangent to the trajectory.

Fig. 11
figure 11

Load tracking the reference circular trajectory at different time instances while keeping the quadrotor heading tangent to the circle

Fig. 12
figure 12

Evolution of the quadrotor actuations. The thrust force remains in a constant steady-state after the initial transient, and the yaw rate is kept constant throughout the maneuver

Fig. 13
figure 13

Load position tracking error and disturbance estimation. The load tracking error converges to zero with the disturbance estimator compensating for non-idealities in the experimental setup

Fig. 14
figure 14

Quadrotor attitude Lyapunov function and cable direction error. The quadrotor attitude error is residual after \(3\,s\), and the cable direction error \(\mathbf{e} _{q}\) shows a small transient before attaining steady state around 10 s

Fig. 15
figure 15

The attitude shows high roll angle illustrate quadrotor’s tilt and has fast movement of yaw, all the angles converge to their desired values rapidly in 2–3\(\,s\), where the dashed and solid color lines represents the desired and actual trajectory, respectively

Fig. 16
figure 16

The actual cable direction trajectory (solid lines) converges to the desired (dashed lines) ones in \(10\, s\)

The 3D plot of the reference and actual circular trajectories is shown in Fig. 11, and the error plots are shown in Figs. 12, 13, 14, 15 and 16. Figure 13 depicts the estimate adapting to the disturbances. The estimate along the x and y body axes compensates for the constant torque that the load creates due to weight imbalances. The estimate along the z axis maintains the altitude error at zero by compensating for the loss of thrust force during the flight due to battery discharge. The inclusion of the estimation in control law also helps in generating the desired roll and pitch shown in Fig. 15. Analyzing Figs. 13 and 14, we notice that the attitude converges to \(\mathbf{R} _{d}\) in about 3 s with a root mean square error in steady state of 0.003 and the load position tracks the desired circular trajectory \(\mathbf{x} _{{L}}^{d}\) with a root mean square error of 8.7 cm for \(t>20\) s. The aggressiveness of the trajectory and performance of the proposed controller can be accessed by observing the desired and actual roll-pitch-yaw angles of the quadrotor shown in Fig. 15 and the actual and desired cable directions presented Fig. 16. Notice the large variation in amplitude for \(q_x\) and \(q_y\) as well as the large roll angle \(\theta _x\). A video of payload following the circular trajectory is available in [25].

6 Conclusion

A nonlinear geometric control strategy was designed for a quadrotor system transporting a point-mass payload suspended from a cable. The complete system is underactuated and differentially flat. An inner-outer loop control strategy was developed to track the reference load trajectory and heading direction of the quadrotor. A finite-time controller was proposed for quadrotor attitude tracking that simplifies the overall control design, as it isolates the quadrotor dynamics from the cable and load dynamics. A proportional-derivative tracking control force was designed for the load translational subsystem and, by normalizing this force as desired cable direction, a tracking control is proposed for the cable attitude subsystem. The control algorithms enable the slung load transportation system to display agile maneuverability while adapting in real time to constant (and slowly time-varying) disturbances. The control algorithms, which are developed in a coordinate-free setting, achieve finite-time almost global tracking of the quadrotor attitude, and asymptotic tracking for load position and cable direction. The numerical simulations and successful experimental results suggest that the proposed control algorithm is a feasible and practical solution for aerial load transportation.

The main open question that remains to be solved is the integration of motion planning and load tracking such that Assumption 2 can be removed and is instead ensured by the controller itself. The use of hybrid systems for relaxing Assumption 2 by combining multiple controllers depending on the existence or not of tension in the cable is already being explored by some authors. Additional challenges arise when output feedback solutions are considered for control instead of full-state feedback. This is an important issue since the cable angle and especially its angular velocity are difficult to accurately measure in practice.