*4.2. Quadrotor Path Following*

Given that the quadrotor system is modelled by a double integrator in the inertial frame {*U*}, as stated in (10), consider the position and velocity errors defined in {*U*} as:

$$\mathbf{e}\_p := \mathbf{p}(t) - \mathbf{p}\_d(\gamma) \,. \tag{23}$$

$$\mathbf{e}\_{\mathcal{V}} := \dot{\mathbf{p}} - \frac{\partial \mathbf{p}\_d}{\partial \gamma} v\_d(\gamma, t) , \tag{24}$$

and a virtual target speed tracking error defined by (14). Consider also a new auxiliary error **z**, defined as:

$$\mathbf{z} := \mathbf{e}\_{\mathcal{V}} + \mathbb{K}\_1 \mathbf{e}\_{\mathcal{V}} \tag{25}$$

where *K*<sup>1</sup> 0 is a gain matrix. The position and velocity error dynamics can be written as:

$$
\dot{\mathbf{e}}\_{\mathcal{P}} = \dot{\mathbf{p}} - \frac{\partial \mathbf{p}\_d}{\partial \gamma} \dot{\gamma},
\tag{26}
$$

$$\dot{\mathbf{e}}\_{\mathcal{V}} = \ddot{\mathbf{p}} - \frac{d}{dt} \left( \frac{\partial \mathbf{p}\_d}{\partial \gamma} v\_d(\gamma, t) \right). \tag{27}$$

Furthermore, consider the time derivative introduced in (27), the desired virtual target speed function (12), and the virtual target speed tracking error function (14). Then, the time derivative term introduced in (27) can be expanded as:

$$\frac{d}{dt}\left(\frac{\partial \mathbf{p}\_d}{\partial \boldsymbol{\gamma}} \boldsymbol{v}\_d(\boldsymbol{\gamma}, t)\right) = \underbrace{\left[\frac{\partial^2 \mathbf{p}\_d}{\partial \boldsymbol{\gamma}^2} \boldsymbol{v}\_d(\boldsymbol{\gamma}, t) + \frac{\partial \mathbf{p}\_d}{\partial \boldsymbol{\gamma}} \frac{\partial \boldsymbol{v}\_L(\boldsymbol{\gamma})}{\partial \boldsymbol{\gamma}}\right](\boldsymbol{e}\_{\boldsymbol{\gamma}} + \boldsymbol{v}\_d(\boldsymbol{\gamma}, t)) + \frac{\partial \mathbf{p}\_d}{\partial \boldsymbol{\gamma}} \boldsymbol{v}^{\text{conv}}(t)}\_{\text{(28)}}.\tag{28}$$

Replacing (10) and (28) in (27) yields:

$$\dot{\mathbf{e}}\_{\mathcal{V}} = \mathbf{u} + \mathbf{d} - \mathbf{h}(\gamma)(e\_{\gamma} + \upsilon\_d(\gamma\_\prime t)) - \frac{\partial \mathbf{p}\_d}{\partial \gamma} \dot{\upsilon}^{corord}(t). \tag{29}$$

Unlike the case of the ASVs where current estimates are given by a complementary filter, in the case of a quadrotor, a different direction is taken towards estimating disturbances such as wind. According to Xie and Cabecinhas et al. [20,21], straightforward implementations of estimators can lead to windup and result in unbounded growth of an external disturbance estimate. To avoid such problems, Xie and Cabecinhas propose the use of a sufficiently smooth projection operator in the estimator design. Consider the disturbance observer given by:

$$\dot{\mathbf{d}} := K\_d \text{Proj}(\mathbf{z}, \mathbf{\dot{d}}) = \mathbf{z} - \frac{\eta\_1 \eta\_2}{2(\beta^2 + 2\beta d\_{\text{max}})^{n+1} d\_{\text{max}}^2} \mathbf{\dot{d}},\tag{30}$$

where *Kd* denotes a diagonal gain matrix and:

$$\eta\_1 = \begin{cases} (\mathbf{\hat{d}}^T \mathbf{\hat{d}} - d\_{\text{max}}^2)^{n+1}, & \text{if } (\mathbf{\hat{d}}^T \mathbf{\hat{d}} - d\_{\text{max}}^2) > 0 \\ 0, & \text{otherwise}, \end{cases} \tag{31}$$

and:

$$
\eta\_2 = \mathbf{\hat{d}}^T \mathbf{z} + \sqrt{(\mathbf{\hat{d}}^T \mathbf{z})^2 + \varsigma^2},
\tag{32}
$$

where *ς*, *β* > 0 are arbitrary constants. This projection operator, first proposed in Cai et al. [22], enjoys the useful properties:

$$
\mathbf{\tilde{d}}^T \operatorname{Proj}(\mathbf{z}, \mathbf{\tilde{d}}) \ge \mathbf{\tilde{d}}^T \mathbf{z}, \tag{33}
$$

and:

$$\left\|\left\|\mathbf{a}\right\|\right\| \leq d\_{\max} + \beta\_\prime \,\forall t \geq 0. \tag{34}$$

Once again, consider the inner-loop tracking error and disturbance estimation error given by:

$$
\mathfrak{u} := \mathfrak{u} - \mathfrak{u}\_{d\prime} \tag{35}
$$

$$
\mathfrak{A} := \mathfrak{a} - \mathfrak{A}.\tag{36}
$$

**Proposition 2.** *Consider the system described by* (10)*, the disturbance estimator dynamics given by* (30)*, and the inner-loop tracking error given by* (35)*. Furthermore, consider the control law given by:*

$$\mathbf{u}\_d := -\mathbf{\hat{d}} + \mathbf{h}(\gamma)v\_d(\gamma, t) + \frac{\partial \mathbf{p}\_d}{\partial \gamma} \boldsymbol{\psi}^{\text{coord}}(t) - \mathbf{e}\_\nu \boldsymbol{K}\_\nu - \mathbf{e}\_p \boldsymbol{K}\_p. \tag{37}$$

$$\ddot{\gamma} := -k\_{\dot{\gamma}} c\_{\dot{\gamma}} + \dot{v}\_d(\gamma, t) + \mathbf{e}\_p^T \frac{\partial \mathbf{p}\_d}{\partial \gamma} + \mathbf{z}^T \left(\mathbf{h}(\gamma) + \mathbf{K}\_1 \frac{\partial \mathbf{p}\_d}{\partial \gamma}\right), \tag{38}$$

*where Kp*, *Kv* 0*, and k<sup>γ</sup> is a positive gain. For sufficiently small initial position and velocity errors (***e***p,* **e***v), and a sufficiently large separation between the time-scales of the inner and outer loop systems, it can be guaranteed that the system error converges to a neighbourhood of zero. The proposed control law solves Problem 1 for the quadrotor vehicle.*

**Remark 2.** *In-depth and quantitative overall stability analysis can be conducted for the inner–outer loop control system, but this will be dependent directly on the type of inner loop adopted. This results from the fact that the desired accelerations* **ud** *must be decoupled in a set of desired thrust and attitude for the quadrotor to track. Given that this analysis is out of the scope of this work, we assume that the quadrotor is equipped with a generic inner loop that is capable of keeping the tracking error* **u˜** *small and bounded.*
