Skip to main content
Log in

On Modeling and Control of a Holonomic Tricopter

  • Regular paper
  • Published:
Journal of Intelligent & Robotic Systems Aims and scope Submit manuscript

Abstract

Most holonomic Unmanned Aerial Vehicles (HUAVs) (usually small-scale), employ at least four high-power thrusting actuators, resulting in increased mass, inertia, and energy consumption. In this work, a novel design for a HUAV using only three high-power thrusting actuators is developed. The pointing dynamics of the high rpm motor-propeller assemblies are included in the analysis, resulting in the exposure of oscillatory gyroscopic dynamics. These are studied analytically to yield vectoring oscillation frequency estimates, useful in selecting actuators. A geometric, singularity free, control framework comprised of a new control-allocation scheme and a new vectoring controller is developed. Stability proofs are included and controller robustness is addressed. Simulations (MATLAB/GAZEBO) demonstrating the effectiveness of the developed design and control framework are provided; a HUAV with independent position/attitude regulation (full pose control) using only three thrusting actuators is showcased.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

Code or data availability

The authors attest that all data for this study are included in the paper.

Abbreviations

\({\mathscr{I}}_{I}\big \{\mathbf {E}_1,\mathbf {E}_2,\mathbf {E}_3\big \}\) :

Inertial reference frame.

\({\mathscr{I}}_{i}\big \{{~}^{i}\mathbf {e}_{1},{~}^{i}\mathbf {e}_{2},{~}^{i}\mathbf {e}_{3}\big \}\) :

ith body-fixed frame, i = 0,...,3.

\(m_{j}\in \mathbb {R}^{+}\) :

mass of body j = 0,...,3, [kg]

\({~}^{k}\mathbf {J}_{j}\in \mathbb {R}^{3{\times }3}\) :

inertia of body j = 0,...,3, [kgm2]

\({~}^{k}\mathbf {x}_{j}\in \mathbb {R}^{3}\) :

position of jth body, j = 0,...,3, [m]

\({~}^{k}\mathbf {v}_{j}\in \mathbb {R}^{3}\) :

velocity of jth body, j = 0,...,3, [ms− 1]

\({~}^{k}\mathbf {r}_{j}\in \mathbb {R}^{3}\) :

vector from center of mass (CM) of body-0 to the extremity of Leg j, j = 1,2,3, [m]

\({~}^{k}\mathbf {p}_{j}\in \mathbb {R}^{3}\) :

vector (\(\lVert ^{k}\mathbf {p}_{j}\rVert =b, b\in \mathbb {R}^{+}\)) from CM of body-j to the extremity of Leg j, j = 1,2,3, [m]

\({~}^{I}\mathbf {R}_{i}\in \text {SO(3)}\) :

linear transformation of the representation of a vector from \({\mathscr{I}}_{i}\), i = 0,...,3, to \({\mathscr{I}}_{I}\). Usage example: \({~}^{i}\mathbf {R}_{0}^{~}{=}{~}^{I}\mathbf {R}^{T}_{i}{~}^{I}\mathbf {R}^{~}_{0}{=}{~}^{i}\mathbf {R}^{~}_{I}{~}^{I}\mathbf {R}^{~}_{0}\)

\({~}^{I}\mathbf {R}^{i_d}_{i}\in \text {SO(3)}\) :

desired absolute attitude trajectory corresponding to body-i, i = 0,..,3. Usage example: \({~}^{I}\mathbf {R}^{i_d}_{0}={~}^{I}\mathbf {R}^{i_d}_{i} {~}^{i}\mathbf {R}^{~}_{0}\)

\({~}^{k}\boldsymbol {\omega }_{j}\in \mathbb {R}^{3}\) :

angular velocity of the, jth body, j = 0,...,3, wrt., \({\mathscr{I}}_{I}\), [rads− 1]

\({~}^{k}\boldsymbol {\omega }^{~}_{i_d/0}\in \mathbb {R}^{3}\) :

desired relative angular velocity of the, ith body, i = 1,...,3, wrt., \({\mathscr{I}}_{0}\), [rads− 1]

\({~}^{k}\boldsymbol {\omega }^{~}_{j/0}\in \mathbb {R}^{3}\) :

relative angular velocity of the, jth body, j = 1,...,3, wrt., \({\mathscr{I}}_{0}\), [rads− 1]

\({~}^{k}\mathbf {q}_{j}\in \mathbb {R}^{3}\) :

unit vector collinear to the jth propeller axis equal to \({~}^{k}\mathbf {R}_{j}{~}^{j}\mathbf {e}_{3}\)

\({~}^{k}\mathbf {q}_{j_d}\in \mathbb {R}^{3}\) :

desired jth propeller axis pointing direction equal to \({~}^{k}\mathbf {R}^{j_d}_{j}{~}^{j}\mathbf {e}_{3}\)

\(\phi ,\theta ,{{\varPsi }}\in \mathbb {R}\) :

precession, nutation, spin Euler angles, of the “313” set, [rad]

\(\mathbf {h}\in \mathbb {R}^3\) :

“321” Euler angles set, i.e., h1=yaw, h2=pitch, h3=roll, [rad]

\(b_{m}\in \mathbb {R}^{+}\) :

propeller torque constant, [m]

\(b_{T}\in \mathbb {R}^{+}\) :

propeller thrust constant, [Ns2rad− 2]

\(b\in \mathbb {R}^{+}\) :

distance from CM of body-j to the extremity of Leg j (\(\lVert ^{k}\mathbf {p}_{j}\rVert =b\)), j = 1,2,3, [m]

\(g\in \mathbb {R}^{+}\) :

gravity constant, 9.8 [ms− 2]

\(\rho \in \mathbb {R}^{+}\) :

air density constant, [kgm− 3]

\({~}^{k}\mathbf {g}_{j}\in \mathbb {R}^{3}\) :

gravity force of body j = 0,...,3, [N]

\({~}^{k}\mathbf {u}_{j}\in \mathbb {R}^{3}\) :

control moment acting on body j = 1,2,3, [Nm]

\({~}^{k}\mathbf {f}_{c,j}\in \mathbb {R}^{3}\) :

constraint force acting on body j = 1,2,3 by body 0, [N]

\({~}^{k}\mathbf {f}_{p,j}\in \mathbb {R}^{3}\) :

propeller force acting on body j = 1,2,3, [N]

\({~}^{k}\mathbf {f}_{{p,j}_{e}}\in \mathbb {R}^{3}\) :

relative thrust tracking error of the, jth body, wrt., \({\mathscr{I}}_{0}\), [N]

\({~}^{k}\mathbf {f}_{w,j}\in \mathbb {R}^{3}\) :

wind disturbance force applied on body j = 0,...,3, [N]

\({~}^{k}\mathbf {n}_{w,j}\in \mathbb {R}^{3}\) :

wind disturbance moment applied on body j = 0,...,3, [Nm]

Left superscript k(.):

vector/matrix (.) expressed in frame \({\mathscr{I}}_{k},k=I,0,...,3\).

Right subscript (.)j :

jth tricopter body, j = 0,...,3

Right subscript (.)d :

desired vector/matrix/signal

Right subscript (.)u :

signal resulting from control action

References

  1. Czyba, R., Szafranski, G., Rys, A.: Design and control of a single tilt tri-rotor aerial vehicle. J. Intell. Robot. Syst. 84(1), 53–66 (2016). https://doi.org/10.1007/s10846-016-0353-0

    Article  Google Scholar 

  2. Papachristos, C., Alexis, K., Tzes, A.: Dual-authority thrust-vectoring of a tri-tiltrotor employing model predictive control. J. Intell. Robot. Syst. 81(3), 471–504 (2016). https://doi.org/10.1007/s10846-015-0231-1

    Article  Google Scholar 

  3. Efraim, H., Shapiro, A., Weiss, G.: Quadrotor with a dihedral angle: on the effects of tilting the rotors inwards. J. Intell. Robot. Syst. 80(2), 313–324 (2015). https://doi.org/10.1007/s10846-015-0176-4

    Article  Google Scholar 

  4. Kanellakis, C., Nikolakopoulos, G.: Guidance for autonomous aerial manipulator using stereo vision. J. Intell. Robot. Syst. https://doi.org/10.1007/s10846-019-01060-8 (2019)

  5. Loianno, G., Cross, G., Qu, C., Mulgaonkar, Y., Hesch, J.A., Kumar, V.: Flying smartphones: Automated flight enabled by consumer electronics. IEEE Robot. Autom. Mag. 22(2), 24–32 (2015). https://doi.org/10.1109/MRA.2014.2382792

    Article  Google Scholar 

  6. Nandakumar, G., Srinivasan, A., Thondiyath, A.: Theoretical and experimental investigations on the effect of overlap and offset on the design of a novel quadrotor configuration, voops. J. Intell. Robot. Syst. 92 (3), 615–628 (2018). https://doi.org/10.1007/s10846-017-0707-2

    Article  Google Scholar 

  7. Guo, M., Gu, D., Zha, W., Zhu, X., Su, Y.: Controlling a quadrotor carrying a cable-suspended load to pass through a window. J. Intell. Robot. Syst. 98(2), 387–401 (2020). https://doi.org/10.1007/s10846-019-01038-6

    Article  Google Scholar 

  8. Ryll, M., Bulthoff, H.H., Giordano, P.R.: Modeling and control of a quadrotor uav with tilting propellers. In: 2012 IEEE International Conference on Robotics and Automation. https://doi.org/10.1109/ICRA.2012.6225129, pp 4606–4613, Saint Paul, MN, USA (2012)

  9. Ryll, M., Bulthoff, H.H., Giordano, P.R.: A novel overactuated quadrotor unmanned aerial vehicle: Modeling, control, and experimental validation. IEEE Trans. Control Syst. Technol. 23(2), 540–556 (2015). https://doi.org/10.1109/TCST.2014.2330999

    Article  Google Scholar 

  10. Segui-Gasco, P., Al-Rihani, Y., Shin, H.S., Savvaris, A.: A novel actuation concept for a multi rotor uav. J. Intell. Robot. Syst. 74(1), 173–191 (2014). https://doi.org/10.1007/s10846-013-9987-3

    Article  Google Scholar 

  11. Jiang, G., Voyles, R.: Hexrotor uav platform enabling dextrous interaction with structures-flight test. In: 2013 IEEE International Symposium on Safety, Security, and Rescue Robotics (SSRR). https://doi.org/10.1109/SSRR.2013.6719377, pp 1–6, Linkoping, Sweden (2013)

  12. Jiang, G., Voyles, R.: A nonparallel hexrotor uav with faster response to disturbances for precision position keeping. In: 2014 IEEE International Symposium on Safety, Security, and Rescue Robotics (2014). https://doi.org/10.1109/SSRR.2014.7017669, pp 1–5, Hokkaido, Japan (2014)

  13. Voyles, R., Jiang, G.: Hexrotor uav platform enabling dextrous interaction with structures - preliminary work. In: 2012 IEEE International Symposium on Safety, Security, and Rescue Robotics (SSRR). https://doi.org/10.1109/SSRR.2012.6523891, pp 1–7, College Station, TX, USA (2012)

  14. Crowther, B., Lanzon, A., Maya-Gonzalez, M., Langkamp, D.: Kinematic analysis and control design for a nonplanar multirotor vehicle. J. Guid. Control Dyn. 34(4), 1157–1171 (2011). https://doi.org/10.2514/1.51186

    Article  Google Scholar 

  15. Rajappa, S., Ryll, M., Bulthoff, H.H., Franchi, A.: Modeling, control and design optimization for a fully-actuated hexarotor aerial vehicle with tilted propellers. In: 2015 IEEE International Conference on Robotics and Automation (ICRA). https://doi.org/10.1109/ICRA.2015.7139759, pp 4006–4013, Seattle, WA, USA (2015)

  16. Ryll, M., Muscio, G., Pierri, F., Cataldi, E., Antonelli, G., Caccavale, F.: Franchi, A.: 6d physical interaction with a fully actuated aerial robot. In: 2017 IEEE International Conference on Robotics and Automation (ICRA). https://doi.org/10.1109/ICRA.2017.7989608, pp 5190–5195, Singapore, Singapore (2017)

  17. Park, S., Her, J., Kim, J., Lee, D.: Design, modeling and control of omni-directional aerial robot. In: 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). https://doi.org/10.1109/IROS.2016.7759254, pp 1570–1575, Daejeon, South Korea (2016)

  18. Nikou, A., Gavridis, G.C., Kyriakopoulos, K.J.: Mechanical design, modelling and control of a novel aerial manipulator. In: 2015 IEEE International Conference on Robotics and Automation (ICRA). https://doi.org/10.1109/ICRA.2015.7139851, pp 4698–4703, Seattle, WA, USA (2015)

  19. Brescianini, D., D’Andrea, R.: Design, modeling and control of an omni-directional aerial vehicle. In: 2016 IEEE International Conference on Robotics and Automation (ICRA). https://doi.org/10.1109/ICRA.2016.7487497, pp 3261–3266, Stockholm, Sweden (2016)

  20. Roque, P., Ventura, R.: Space cobot: Modular design of an holonomic aerial robot for indoor microgravity environments. In: 2016 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). https://doi.org/10.1109/IROS.2016.7759645, pp 4383–4390, Daejeon, South Korea (2016)

  21. Zhao, M., Anzai, T., Shi, F., Chen, X., Okada, K., Inaba, M.: Design, modeling, and control of an aerial robot dragon: A dual-rotor-embedded multilink robot with the ability of multi-degree-of-freedom aerial transformation. IEEE Robot. Autom. Lett. 3(2), 1176–1183 (2018). https://doi.org/10.1109/LRA.2018.2793344

    Article  Google Scholar 

  22. Ramp, M., Papadopoulos, E.: Attitude and angular velocity tracking for a rigid body using geometric methods on the two-sphere. In: 2015 European Control Conference (ECC). https://doi.org/10.1109/ECC.2015.7331033, pp 3238–3243, Linz, Austria (2015)

  23. Ramp, M., Papadopoulos, E.: On modeling and control of a holonomic vectoring tricopter. In: 2015 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS). https://doi.org/10.1109/IROS.2015.7353443, pp 662–668, Hamburg, Germany (2015)

  24. Tayebi, A., McGilvray, S.: Attitude stabilization of a vtol quadrotor aircraft. IEEE Trans. Control Syst. Technol. 14(3), 562–571 (2006). https://doi.org/10.1109/TCST.2006.872519

    Article  Google Scholar 

  25. Lee, T., Leok, M., Harris McClamroch, N.: Control of complex maneuvers for a quadrotor uav using geometric methods on se(3). arXiv:1003.2005, arXiv:1003.2005v1 (2010)

  26. Fossen, T.: Handbook of Marine Craft Hydrodynamics and Motion Control. John Wiley & Sons Ltd. https://doi.org/10.1002/9781119994138 (2011)

  27. Ramp, M., Papadopoulos, E.: On the global behavior of a geometric PDAV controller by means of a geometrically exact linearization. J. Dyn. Syst. Meas. Control 143(7). https://doi.org/10.1115/1.4049552 (2021)

  28. Goldstein, H., Poole, C., Safko, J.: Classical Mechanics, 3 edn. Addison-Wesley (2001)

  29. Chaturvedi, N.A., Sanyal, A.K., McClamroch, N.H.: Rigid-body attitude control. IEEE Control. Syst. 31(3), 30–51 (2011). https://doi.org/10.1109/MCS.2011.940459

    Article  MathSciNet  Google Scholar 

  30. Lee, T.: Geometric tracking control of the attitude dynamics of a rigid body on so(3). In: Proceedings of the 2011 American Control Conference. https://doi.org/10.1109/ACC.2011.5990858, pp 1200–1205, San Francisco, CA, USA (2011)

  31. Bhat, S.S., Bernstein, D.: A topological obstruction to continuous global stabilization of rotational motion and the unwinding phenomenon. Syst. Control Lett. 39(1), 63–70 (2000). https://doi.org/10.1016/S0167-6911(99)00090-0

    Article  MathSciNet  Google Scholar 

  32. Crassidis, J., Markley, L.: Unscented filtering for spacecraft attitude estimation. In: Journal of Guidance Control and Dynamics. https://doi.org/10.2514/2.5102, vol. 26 (2003)

  33. ANALOG DEVICES: ADIS16477 Precision, Miniature MEMs IMU. https://www.analog.com/media/en/technical-documentation/data-sheets/ADIS16477.pdf. Datasheet, 5/2019 — Rev. C (2019)

  34. Nousias, S., Papadopoulos, E.: Quadruped robot roll and pitch estimation using an unscented kalman filter. In: 2016 24th Mediterranean Conference on Control and Automation (MED). https://doi.org/10.1109/MED.2016.7535894, pp 731–736, Athens, Greece (2016)

  35. Robotis: XL430-W250 DYNAMIXEL Position Sensor e-manual. http://emanual.robotis.com/docs/en/dxl/x/xl430-w250/. Datasheet (Released on 2018, 3rd quarter) (2018)

  36. Batchelor, G.: An Introduction to Fluid Dynamics. Cambridge Mathematical Library. Cambridge University Press. https://books.google.gr/books?id=aXQgAwAAQBAJ (2000)

  37. Mellinger, D., Kumar, V.: Minimum snap trajectory generation and control for quadrotors. In: 2011 IEEE International Conference on Robotics and Automation. https://doi.org/10.1109/ICRA.2011.5980409, pp 2520–2525, Shanghai, China (2011)

  38. Bullo, F., Lewis, A.: Geometric Control of Mechanical Systems, Texts in Applied Mathematics, vol. 49. Springer New York (2004)

Download references

Acknowledgements

The authors would like to thank Mr. Vasileios Georgakopoulos for his help with the CAD design.

Funding

This research did not receive any specific grant from funding agencies in the public, commercial, or not-for-profit sectors.

Author information

Authors and Affiliations

Authors

Contributions

Conceptualization: Michalis Ramp (MR), Evangelos Papadopoulos (EP); Methodology: MR, EP; Formal analysis and investigation: MR; Software: MR; Visualization: MR; Data curation: MR; Validation: MR; Writing - original draft preparation: MR; Writing - review and editing: MR, EP; Resources: EP; Supervision: EP; Project administration: EP.

Corresponding authors

Correspondence to Michalis Ramp or Evangelos Papadopoulos.

Ethics declarations

Ethics approval

Not applicable.

Consent to participate

Not applicable.

Consent for Publication

Not applicable.

Conflict of Interests

The authors declare that they have no conflict of interest.

Additional information

Publisher’s Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Electronic supplementary material

Below is the link to the electronic supplementary material.

(MP4 16.0 MB)

Appendices

Appendix A: Supplementary Material

1.1 A.1 Mappings & Kinematics used in Section 2.2

Cross product map, first used in Eq. (1)

$$ \begin{array}{@{}rcl@{}} &&\!\!\!\!\! S:\mathbb{R}^{3}\to\mathfrak{so}(3),\text{ with }\\ && S(\mathbf{r}){=}[{0},{-r_{3}},{r_{2}};{r_{3}},{0},{-r_{1}};{-r_{2}},{r_{1}},0], {S^{-1}}(S(\mathbf{r})){=}\mathbf{r}\\ \end{array} $$
(A1)

where \(\mathfrak {so}(3)\) is the set of all 3 × 3 skew symmetric matrices.

Velocity and acceleration of the CM of the ith-TA, first used in Eq. (1)

$$ \begin{array}{@{}rcl@{}} {~}^{I }\mathbf{v}_{i}&=&{~}^{I }\mathbf{v}_{0}+{~}^{I}\dot{\mathbf{R}}_{0}{~}^{0}\mathbf{r}_{i}-{~}^{I}\dot{\mathbf{R}}_{i}{~}^{i}\mathbf{p}_{i } \end{array} $$
(A2a)
$$ \begin{array}{@{}rcl@{}} {~}^{I }\dot{\mathbf{v}}_{i}&=&{~}^{I}\dot{\mathbf{v}}_{0}+{~}^{I}\ddot{\mathbf{R}}_{0}{~}^{0}\mathbf{r}_{i}-{~}^{I}\ddot{\mathbf{R}}_{i}{~}^{i}\mathbf{p}_{i } \end{array} $$
(A2b)

1.2 A.2 Terms of Eq. (8) used in Section 2.2

Control input matrix, \(\mathbf {B}\in \mathbb {R}^{15{\times }9}\), and mass matrix, \(\mathbf {M}\in \mathbb {R}^{15\times 15}\), from Eq. (8) given by

$$ \begin{array}{@{}rcl@{}} \mathbf{B}=\begin{bmatrix} \mathbf{0}_{3\times3}&\mathbf{0}_{3\times3}&\mathbf{0}_{3\times3}\\ -{~}^{0}\mathbf{R}_{1}&-{~}^{0}\mathbf{R}_{2}&-{~}^{0}\mathbf{R}_{3}\\ \mathbf{1}_{3\times3}&\mathbf{0}_{3\times3}&\mathbf{0}_{3\times3}\\ \mathbf{0}_{3\times3}&\mathbf{1}_{3\times3}&\mathbf{0}_{3\times3}\\ \mathbf{0}_{3\times3}&\mathbf{0}_{3\times3}&\mathbf{1}_{3\times3} \end{bmatrix} , \mathbf{M}=\begin{bmatrix} M_{1,1}&M_{1,2}&M_{1,3}&M_{1,4}&M_{1,5}\\ M_{2,1}&M_{2,2}&M_{2,3}&M_{2,4}&M_{2,5}\\ M_{3,1}&M_{3,2}&M_{3,3}&0&0\\ M_{4,1}&M_{4,2}&0&M_{4,4}&0\\ M_{5,1}&M_{5,2}&0&0&M_{5,5} \end{bmatrix} \end{array} $$
(A3)

where \(M_{i,j}\in \mathbb {R}^{3\times 3}\) are given by

$$ \begin{array}{@{}rcl@{}} M_{1,1}&=&\sum\limits_{i=0}^{3}m_{i}\mathbf{1}, M_{1,2}={-}\sum\limits_{i=1}^{3}m_{i}{~}^{I}\mathbf{R}_{0}S\left( {~}^{0}\mathbf{r}_{i}\right),\\ M_{1,i+2}&=&m_{i}{~}^{I}\mathbf{R}_{i}S\left( {~}^{i}\mathbf{p}_{i}\right) ,i=1-3 \end{array} $$
(A4a)
$$ \begin{array}{@{}rcl@{}} M_{2,1}&=&\sum\limits_{i=1}^{3}S\left( {~}^{0}\mathbf{r}_{i}\right)m_{i}{~}^{0}\mathbf{R}_{I},\\ M_{2,2}&=&{~}^{0}\mathbf{J}_{0}{-}\sum\limits_{i=1}^{3}S\left( {~}^{0}\mathbf{r}_{i}\right)m_{i}S\left( {~}^{0}\mathbf{r}_{i}\right) \end{array} $$
(A4b)
$$ \begin{array}{@{}rcl@{}} M_{2,i+2}&=&S\left( {~}^{0}\mathbf{r}_{i}\right){~}^{0}\mathbf{R}_{i}m_{i}S\left( {~}^{i}\mathbf{p}_{i}\right),\\ M_{i+2,1}&=&-S\left( {~}^{i}\mathbf{p}_{i}\right)m_{i}{~}^{i}\mathbf{R}_{I},i=1-3 \end{array} $$
(A4c)
$$ \begin{array}{@{}rcl@{}} M_{i+2,2}&=&S\left( {~}^{i}\mathbf{p}_{i}\right)m_{i}{~}^{i}\mathbf{R}_{0}S\left( {~}^{0}\mathbf{r}_{i}\right),\\ M_{i+2,i+2}&=&{~}^{i}\mathbf{J}_{i}-S\left( {~}^{i}\mathbf{p}_{i}\right)m_{i}S\left( {~}^{i}\mathbf{p}_{i}\right),i=1-3 \end{array} $$
(A4d)

The components of \(\boldsymbol {\Gamma }=[{{\varGamma }}_{1},{{\varGamma }}_{2},{{\varGamma }}_{3},{{\varGamma }}_{4},{{\varGamma }}_{5}]^{T}\in \mathbb {R}^{15{\times }1}\) from Eq. (8) are given by

$$ \begin{array}{@{}rcl@{}} {{\varGamma}}_{1}& = &-\sum\limits_{i=1}^{3}m_{i}{~}^{I}\boldsymbol{\Phi}_{i},\\ {{\varGamma}}_{2}& = & -\sum\limits_{i=1}^{3}S\left( {~}^{0}\mathbf{r}_{i}\right){~}^{0}\mathbf{R}_{I}m_{i}{~}^{I}\boldsymbol{\Phi}_{i}-S\left( {~}^{0}\boldsymbol{\omega}_{0}\right){~}^{0}\mathbf{J}_{0}{~}^{0}\boldsymbol{\omega}_{0} \end{array} $$
(A5a)
$$ \begin{array}{@{}rcl@{}} {{\varGamma}}_{i+2}& = &S\left( {~}^{i}\mathbf{p}_{i}\right)m_{i}{~}^{i}\mathbf{R}_{I}{~}^{I}\boldsymbol{\Phi}_{i}-S\left( {~}^{i}\boldsymbol{\omega}_{i}\right){~}^{i}\mathbf{J}_{i}{~}^{i}\boldsymbol{\omega}_{i},i=1-3\\ \end{array} $$
(A5b)

where \({~}^{I}\boldsymbol {\Phi }_{i}\in \mathbb {R}^{3\times 3}\) is given by

$$ \begin{array}{@{}rcl@{}} {~}^{I}\boldsymbol{\Phi}_{i}={~}^{I}\mathbf{R}_{0}S\left( {~}^{0}\boldsymbol{\omega}_{0}\right)S\left( {~}^{0}\boldsymbol{\omega}_{0}\right){~}^{0}\mathbf{r}_{i}-{~}^{I}\mathbf{R}_{i}S\left( {~}^{i}\boldsymbol{\omega}_{i}\right)S\left( {~}^{i}\boldsymbol{\omega}_{i}\right){~}^{i}\mathbf{p}_{i} \end{array} $$
(A6a)

The components of \(\mathbf {G}=[G_{1},G_{2},G_{3},G_{4},G_{5}]^{T}\in \mathbb {R}^{15{\times }1}\) from Eq. (8) are given by

$$ \begin{array}{@{}rcl@{}} G_{1}&=&\sum\limits_{i=0}^{3}{~}^{I}\mathbf{g}_{i},G_{2}=\sum\limits_{i=1}^{3}S\left( {~}^{0}\mathbf{r}_{i}\right){~}^{0}\mathbf{R}_{I}{~}^{I}\mathbf{g}_{i},\\ G_{i+2}&=&-S\left( {~}^{i}\mathbf{p}_{i}\right){~}^{i}\mathbf{R}_{I}{~}^{I}\mathbf{g}_{i},i=1-3 \end{array} $$
(A7)

The components of \(\mathbf {P}=[P_{1},P_{2},P_{3},P_{4},P_{5}]^{T}\in \mathbb {R}^{15{\times }1}\) from Eq. (8) are given by

$$ \begin{array}{@{}rcl@{}} P_{1}&=&\sum\limits_{i=1}^{3}{~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{f}_{p,i},P_{2}=\sum\limits_{i=1}^{3}S\left( {~}^{0}\mathbf{r}_{i}\right){~}^{0}\mathbf{R}_{i}{~}^{i}\mathbf{f}_{p,i},\\ P_{i+2}&=&{~}^{i}\mathbf{n}_{p,i}-S\left( {~}^{i}\mathbf{p}_{i}\right){~}^{i}\mathbf{f}_{p,i},i=1-3 \end{array} $$
(A8)

The components of \(\mathbf {D}=[D_{1},D_{2},D_{3},D_{4},D_{5}]^{T}\in \mathbb {R}^{15{\times }1}\) from Eq. (8) are given by

$$ \begin{array}{@{}rcl@{}} D_{1}&=&\sum\limits_{i=0}^{3}{~}^{I}\mathbf{f}_{w,i},D_{2}=\sum\limits_{i=1}^{3}S\left( {~}^{0}\mathbf{r}_{i}\right){~}^{0}\mathbf{R}_{I}{~}^{I}\mathbf{f}_{w,i}+{~}^{0}\mathbf{n}_{w,0} \end{array} $$
(A9a)
$$ \begin{array}{@{}rcl@{}} D_{i+2}&=&{~}^{i}\mathbf{n}_{w,i}-S\left( {~}^{i}\mathbf{p}_{i}\right){~}^{i}\mathbf{R}_{I}{~}^{I}\mathbf{f}_{w,i},i=1-3 \end{array} $$
(A9b)

1.3 A.3 Vectoring Controller Terms used in Section 4.1

Pointing dynamics terms, first used in Eq. (9)

$$ \begin{array}{@{}rcl@{}} {~}^{i}\boldsymbol{\mathcal{J}}_{i}&{=}&{~}^{i}\mathbf{J}_{i}-m_{i}\left( S\left( {~}^{i}\mathbf{p}_{i}\right)\right)^{2} \end{array} $$
(A10a)
$$ \begin{array}{@{}rcl@{}} {~}^{i}\mathbf{Z}_{i}&{=}&S\left( {~}^{i}\mathbf{p}_{i}\right){{~}^{i}\mathbf{R}_{I}}m_{i}{~}^{I }\boldsymbol{\Xi}_{i}-{~}^{i}\mathbf{J}_{i} {{~}^{i}\mathbf{R}_{0}} \end{array} $$
(A10b)
$$ \begin{array}{@{}rcl@{}} {~}^{I }\boldsymbol{\Xi}_{i}&{=}&{~}^{I}\mathbf{R}_{i}S\left( {~}^{i}\mathbf{p}_{i}\right){{~}^{i}\mathbf{R}_{0}}-{~}^{I}\mathbf{R}_{0}S\left( {~}^{0}\mathbf{r}_{i}\right) \end{array} $$
(A10c)
$$ \begin{array}{@{}rcl@{}} {~}^{i}\mathbf{n}_{r,i}&{=}&{~}^{i}\mathbf{J}_{i}S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0}\right){{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}-S\left( {~}^{i}\boldsymbol{\omega}_{i }\right){~}^{i}\mathbf{J}_{i} {~}^{i}\boldsymbol{\omega}_{i}\\&&{+}S\left( {~}^{i}\mathbf{p}_{i}\right){{~}^{i}\mathbf{R}_{I}}\Big(m_{i}\left( {~}^{I }\mathbf{k}_{i}{-}{{~}^{I}\mathbf{R}_{i}}\left( S({~}^{i}\boldsymbol{\omega}^{~}_{i/0})\right)^{2}{~}^{i}\mathbf{p}_{i }\right){-}{~}^{I}\mathbf{g}_{i}\Big)\\ &&+\left( {-}\text{sgn}\left( {~}^{i}{\omega}_{i_{3}}\right)b_{m}\mathbf{1}-S\left( {~}^{i}\mathbf{p}_{i}\right)\right){~}^{i}\mathbf{f}_{p,i} \end{array} $$
(A10d)

where the term \({~}^{I }\mathbf {k}_{i}\in \mathbb {R}^{3{\times }1}\) used above and throughout the manuscript is given by

$$ \begin{array}{@{}rcl@{}} {~}^{I }\mathbf{k}_{i}&=&{~}^{I}\mathbf{R}_{0}\left( S\left( {~}^{0}\boldsymbol{\omega}_{0}\right)\right)^{2}{~}^{0}\mathbf{r}_{i}{-}{~}^{I}\mathbf{R}_{i}S\left( {~}^{i}\mathbf{p}_{i}\right)S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0 }\right){{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}\\ &&-{~}^{I}\mathbf{R}_{i}\left( \left( S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}\right)\right)^{2}+S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0 }\right)S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0}\right)\right.\\ &&\left.+S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0}\right)S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0 }\right)\vphantom{\left( S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}\right)\right)^{2}}\!\right){~}^{i}\mathbf{p}_{i } \end{array} $$
(A11)

1.4 A.4 Feedback terms used in Section 4.2

Attitude error function bounding inequality, [30], first used in Eq. (C4)

$$ \lVert\mathbf{e}_{R}\rVert^{2}\leq{{\varPsi}}_{0}\leq 2\lVert\mathbf{e}_{R}\rVert^{2} $$
(A12)

Error function (attitude error vector) derivatives \(\dot {{{\varPsi }}}_{0}\) (\(\dot {\mathbf {e}}_{R}\)), [30], first used in Eq. (39)

$$ \begin{array}{@{}rcl@{}} \dot{{{\varPsi}}}_{0}&{=}&\mathbf{e}_{R}^{T}\mathbf{e}_{\omega} \end{array} $$
(A13a)
$$ \begin{array}{@{}rcl@{}} \dot{\mathbf{e}}_{R}&{=}&{~}^{0}\mathbf{E} \mathbf{e}_{\omega} \end{array} $$
(A13b)
$$ \begin{array}{@{}rcl@{}} {~}^{0}\mathbf{E}&{=}&\frac{\left\{\text{tr} \left[ {{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}^{0_{d}}_{0} \right] \mathbf{1}{-}{{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}^{0_{d}}_{0}{+}2\mathbf{e}_{R}\mathbf{e}_{R}^{T}\right\}}{2\sqrt{1{+}tr\left[{{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}^{0_{d}}_{0}\right]}} \end{array} $$
(A13c)

Supporting term \({~}^{0}\mathbf {a}_{0}\in \mathbb {R}^{3{\times }1}\), first used in Eq. (39)

$$ {~}^{0}\mathbf{a}_{0}{=}S\left( {~}^{0}\boldsymbol{\omega}_{0}\right){{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}^{0_{d}}_{0} {~}^{0}\boldsymbol{\omega}_{0_{d}}{-}{{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}^{0_{d}}_{0} {~}^{0}\dot{\boldsymbol{\omega}}_{0_{d}} $$
(A14)

Vectors \(\mathbf {h}_{p},\mathbf {h}_{g}\in \mathbb {R}^{6{\times }1}\), first used in used Eq. (37)

$$ \begin{array}{@{}rcl@{}} \mathbf{h}_{p}&=&b_{T}\sum\limits_{i=1}^{3}\left[{~}^{I}\mathbf{R}_{0}{~}^{0}\mathbf{h}_{p,i};\mathbf{A}_{i}{~}^{I}\mathbf{R}_{0}{~}^{0}\mathbf{h}_{p,i}\right] \end{array} $$
(A15a)
$$ \begin{array}{@{}rcl@{}} {~}^{0}\mathbf{h}_{p,i}&=&{~}^{0}\mathbf{q}_{i}\left( 2\left( {~}^{i}\mathbf{e}^{T}_{3}{{~}^{i}\boldsymbol{\omega}^{~}_{i/0}}\right)\left( \left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}\right)^{T}{~}^{i}\mathbf{e}_{3}\right)+\left( \left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}\right)^{T}{~}^{i}\mathbf{e}_{3}\right)^{2}\right)\\ &&-{~}^{0}\mathbf{q}_{i_{d}}\left( 2\left( {~}^{i}\mathbf{e}^{T}_{3}{{~}^{i}\boldsymbol{\omega}^{~}_{i_{d}/0}}\right)\left( \left( {~}^{i}\mathbf{R}^{i_{d}}_{0} {~}^{0}\boldsymbol{\omega}_{0}\right)^{T}{~}^{i}\mathbf{e}_{3}\right)\right.\\ &&\left.+\left( \left( {~}^{i}\mathbf{R}^{i_{d}}_{0} {~}^{0}\boldsymbol{\omega}_{0}\right)^{T}{~}^{i}\mathbf{e}_{3}\right)^{2}\right) \end{array} $$
(A15b)
$$ \begin{array}{@{}rcl@{}} \mathbf{h}_{g}&=&\left[{~}^{I }\mathbf{h}_{g_{1}};{~}^{0}\mathbf{h}_{g_{2}}\right] \end{array} $$
(A15c)
$$ \begin{array}{@{}rcl@{}} {~}^{I }\mathbf{h}_{g_{1}}&=&-{~}^{I}\mathbf{g}_{0}+\sum\limits_{i=1}^{3}\left( m_{i}{~}^{I }\mathbf{k}_{i}-{~}^{I}\mathbf{g}_{i}\right) \end{array} $$
(A15d)
$$ \begin{array}{@{}rcl@{}} {~}^{0}\mathbf{h}_{g_{2}}&=&{~}^{0}\boldsymbol{\omega}_{0 }{\times}{~}^{0}\mathbf{J}_{0 }{~}^{0}\boldsymbol{\omega}_{0 }{-}\sum\limits_{i=1}^{3}{{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{J}_{i }S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0 }\right){{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0 }\\ &&{-}\sum\limits_{i=1}^{3}{~}^{0}\boldsymbol{\Theta}_{i}{{~}^{i}\mathbf{R}_{I}}\left( m_{i}{~}^{I}\mathbf{k}_{i}{-}{~}^{I}\mathbf{g}_{i}\right){+}\sum\limits_{i=1}^{3}{{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{y}_{i} \end{array} $$
(A15e)

where the terms \({~}^{0}\boldsymbol {\Theta }_{i}\in \mathbb {R}^{3{\times }3}, {~}^{i}\mathbf {y}_{i }\in \mathbb {R}^{3{\times }1}\), \(\mathbf {A}_{i}\in \mathbb {R}^{3\times 3}\) used above and throughout the manuscript are given by

$$ \begin{array}{@{}rcl@{}} {~}^{0}\boldsymbol{\Theta}_{i}&=&{{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}_{i}S\left( {~}^{i}\mathbf{p}_{i}\right)-S\left( {~}^{0}\mathbf{r}_{i}\right){{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}_{i} \end{array} $$
(A16a)
$$ \begin{array}{@{}rcl@{}} {~}^{i}\mathbf{y}_{i}&=&S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}\right){~}^{i}\mathbf{J}_{i}{{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}+S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0}\right){~}^{i}\mathbf{J}_{i}{~}^{i}\boldsymbol{\omega}^{~}_{i/0 }\\ &&+S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0}\right){~}^{i}\mathbf{J}_{i}{{~}^{i}\mathbf{R}_{0}}{~}^{0}\boldsymbol{\omega}_{0} \end{array} $$
(A16b)
$$ \begin{array}{@{}rcl@{}} \mathbf{A}_{i}&=&{-}\text{sgn}\left( {~}^{i}{\omega}_{{3}}\right)b_{m}{{~}^{0}\mathbf{R}_{I}}-{~}^{0}\boldsymbol{\Theta}_{i}{{~}^{i}\mathbf{R}_{I}} \end{array} $$
(A16c)

and for \({~}^{I }\mathbf {k}_{i}\in \mathbb {R}^{3{\times }1}\), see Eq. (A11).

Matrix term \(\mathbf {C}\in \mathbb {R}^{6{\times }6}\), first used in Eq. (37)

$$ \begin{array}{@{}rcl@{}} \mathbf{C}&{=}&\begin{bmatrix} \left( m_{0}+{\sum}_{i=1}^{3}m_{i}\right)\mathbf{1}&{\sum}_{i=1}^{3}m_{i}{~}^{I}\boldsymbol{\Xi}_{i}\\ -{\sum}_{i=1}^{3}{~}^{0}\boldsymbol{\Theta}_{i}{{~}^{i}\mathbf{R}_{I}}m_{i}&C_{2,2} \end{bmatrix} \end{array} $$
(A17a)
$$ \begin{array}{@{}rcl@{}} C_{2,2}&{=}&{~}^{0}\mathbf{J}_{0}{+}\sum\limits_{i=1}^{3}\left( {{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{J}_{i} {{~}^{i}\mathbf{R}_{0}}{-}{~}^{0}\boldsymbol{\Theta}_{i}{{~}^{i}\mathbf{R}_{I}}m_{i}{~}^{I }\boldsymbol{\Xi}_{i}\right) \end{array} $$
(A17b)

where \({~}^{I}\boldsymbol {\Xi }_{i},{~}^{0}\boldsymbol {\Theta }_{i}\in \mathbb {R}^{3\times 3}\) are given in Eqs. (A10c), (A16a).

Allocation matrix \(\mathbf {A}\in \mathbb {R}^{6\times 9}\), first used in Eq. 39

$$ \mathbf{A}{=}[\mathbf{1}_{3\times3},\mathbf{1}_{3\times3},\mathbf{1}_{3\times3};\mathbf{A}_{1},\mathbf{A}_{2},\mathbf{A}_{3}] $$
(A18)

and \(\mathbf {A}_{i}\in \mathbb {R}^{3\times 3}\) is given in Eq. (A16a).

1.5 A.5 Disturbance modeling term used in Section 5.1.2

Exponential map using the Rodrigues formulation [29], first used in Eq. (45)

$$ \begin{array}{@{}rcl@{}} &&\!\!\!\!\! \exp:\mathbb{R}\times\mathbb{R}^{3}\to\text{SO}(3),\text{ with }\\ && \exp(a,\boldsymbol{\xi}){=}\mathbf{1}{+}S(\boldsymbol{\xi})\sin a{+}S(\boldsymbol{\xi})^{2}(1{-}\cos a) \end{array} $$
(A19)

1.6 A.6 Figure “R” pose trajectory used in Section 5.2

Way-points and pose continuity constraints used with minimum-snap polynomials for trajectory generation, employed in Section 5.2

$$ \begin{array}{@{}rcl@{}} \mathbf{wp}_{0.0}\lvert_{t=0}:\mathbf{x}_{0}&=&[0,0,0.0965]^{T} [\text{m}],\dot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}],\\ \ddot{\mathbf{x}}_{0}&=&\mathbf{0} [\text{m}/\text{s}^{2}],\dddot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}^{3}]\\ \mathbf{h}&=&[0,0,0]^{T} [\text{deg}],\dot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}],\\ \ddot{\mathbf{h}}_{~}&=&\mathbf{0} [\text{deg}/\text{s}^{2}],\dddot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}^{3}]\\ \mathbf{wp}_{1}\lvert_{t=10}:\mathbf{x}_{0}&=&[1,1,2]^{T} [\text{m}],\dot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}],\\ \ddot{\mathbf{x}}_{0}&=&\mathbf{0} [\text{m}/\text{s}^{2}],\dddot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}^{3}]\\ \mathbf{h}&=&[-180,-64,0]^{T} [\text{deg}],\dot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}],\\ \ddot{\mathbf{h}}_{~}&=&\mathbf{0} [\text{deg}/\text{s}^{2}],\dddot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}^{3}]\\ \mathbf{wp}_{2}\lvert_{t=20}:\mathbf{x}_{0}&=&[2,2,2]^{T} [\text{m}],\dot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}],\ddot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}^{2}],\\ \dddot{\mathbf{x}}_{0}&=&\mathbf{0} [\text{m}/\text{s}^{3}]\\ \mathbf{h}&=&[-270,-64,0]^{T} [\text{deg}],\dot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}],\\ \ddot{\mathbf{h}}_{~}&=&\mathbf{0} [\text{deg}/\text{s}^{2}],\dddot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}^{3}]\\ \mathbf{wp}_{3}\lvert_{t=30}:\mathbf{x}_{0}&=&[3,1,2]^{T} [\text{m}],\dot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}],\ddot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}^{2}],\\ \dddot{\mathbf{x}}_{0}&=&\mathbf{0} [\text{m}/\text{s}^{3}]\\ \mathbf{h}&=&[-360,-64,0]^{T} [\text{deg}],\dot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}],\\ \ddot{\mathbf{h}}_{~}&=&\mathbf{0} [\text{deg}/\text{s}^{2}],\dddot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}^{3}]\\ \mathbf{wp}_{4}\lvert_{t=40}:\mathbf{x}_{0}&=&[2,0,2]^{T} [\text{m}],\dot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}],\ddot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}^{2}],\\ \dddot{\mathbf{x}}_{0}&=&\mathbf{0} [\text{m}/\text{s}^{3}]\\ \mathbf{h}&=&[-450,-64,0]^{T} [\text{deg}],\dot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}],\\ \ddot{\mathbf{h}}_{~}&=&\mathbf{0} [\text{deg}/\text{s}^{2}],\dddot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}^{3}]\\ \mathbf{wp}_{5}\lvert_{t=50}:\mathbf{x}_{0}&=&[1,1,2]^{T} [\text{m}],\dot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}],\ddot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}^{2}],\\ \dddot{\mathbf{x}}_{0}&=&\mathbf{0} [\text{m}/\text{s}^{3}]\\ \mathbf{h}&=&[-540,-64,0]^{T} [\text{deg}],\dot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}],\\ \ddot{\mathbf{h}}_{~}&=&\mathbf{0} [\text{deg}/\text{s}^{2}],\dddot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}^{3}]\\ \mathbf{wp}_{6}\lvert_{t=60}:\mathbf{x}_{0}&=&[0,1,2]^{T} [\text{m}],\dot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}],\ddot{\mathbf{x}}_{0}=\mathbf{0} [\text{m}/\text{s}^{2}],\\ \dddot{\mathbf{x}}_{0}&=&\mathbf{0} [\text{m}/\text{s}^{3}]\\ \mathbf{h}&=&[-540,-45,0]^{T} [\text{deg}],\dot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}],\\ \ddot{\mathbf{h}}_{~}&=&\mathbf{0} [\text{deg}/\text{s}^{2}],\dddot{\mathbf{h}}_{~}=\mathbf{0} [\text{deg}/\text{s}^{3}] \end{array} $$

where vector h components contain the desired yaw, pitch and roll commands.

Appendix B: Proof of Proposition 1

The following Lyapunov functions are defined

$$ \begin{array}{@{}rcl@{}} V_{i}\left( {{\varPsi}}_{i},{~}^{i}\mathbf{e}_{q,i},{~}^{i}\mathbf{e}_{\omega,i}\right)&=&\frac{1}{2}{~}^{i}\mathbf{s}_{i }^{T}{~}^{i}\mathbf{s}_{i}+\alpha_{i}{{\varPsi}}_{i}, i{=}1,2,3 \end{array} $$
(B1a)
$$ \begin{array}{@{}rcl@{}} \alpha_{i}&=&2\lambda_{\mathcal{J}_{i}}k_{q}k_{\omega}(\gamma_{2}+\gamma_{3}) \end{array} $$
(B1b)

Note that Ψi and the error vectors appear explicitly in the Lyapunov function. Thus control design is similar to nonlinear control design in Euclidean spaces [38]. Via Eq. (25), it holds

$$ \lambda_{min}(\boldsymbol{{\varPi}}_{1_{i}})\lVert\mathbf{z}_{i}\rVert^{2}\leq\mathbf{z}_{i}^{T}\boldsymbol{{\varPi}}_{1_{i}}\mathbf{z}_{i}\leq V_{i}\leq\mathbf{z}_{i}^{T}\boldsymbol{{\varPi}}_{2_{i}}\mathbf{z}_{i}\leq\lambda_{max}(\boldsymbol{{\varPi}}_{2_{i}})\lVert\mathbf{z}_{i}\rVert^{2} $$
(B2)

where \(\mathbf {z}_{i}=[\lVert {~}^{i}\mathbf {e}_{q,i}\rVert ;\lVert {~}^{i}\mathbf {e}_{\omega ,i}\rVert ]\) and \(\boldsymbol {{\varPi }}_{1_{i}},\boldsymbol {{\varPi }}_{2_{i}}\in \mathbb {R}^{2\times 2}\) are given by

$$ \boldsymbol{{\varPi}}_{1_{i}}=\begin{bmatrix} \frac{(k_{q}+{{\varPsi}}_{i})^{2}+\alpha_{i}}{2}&-\frac{(k_{q}+{{\varPsi}}_{i})k_{\omega}}{2}\\ -\frac{(k_{q}+{{\varPsi}}_{i})k_{\omega}}{2}&{k_{\omega}^{2}}/{2} \end{bmatrix}, \boldsymbol{{\varPi}}_{2_{i}}=\begin{bmatrix} \frac{(k_{q}+{{\varPsi}}_{i})^{2}}{2}+\frac{\alpha_{i}}{2-\psi_{i}}&\frac{(k_{q}+{{\varPsi}}_{i})k_{\omega}}{2}\\ \frac{(k_{q}+{{\varPsi}}_{i})k_{\omega}}{2}&{k_{\omega}^{2}}/{2} \end{bmatrix} $$
(B3)

The derivative of Eq. (28b) is needed to proceed. It is given by

$$ ^{i}\dot{\mathbf{s}}_{i }=\dot{{{\varPsi}}}_{i}{~}^{i}\mathbf{e}_{q,i}{+}(k_{q}+{{\varPsi}}_{i}){~}^{i}\dot{\mathbf{e}}_{q,i}{+}k_{\omega}{~}^{i}\dot{\boldsymbol{\omega}}^{~}_{i/0}{+}k_{\omega}{~}^{i}\mathbf{a}_{i } $$
(B4)

Differentiating Eq. (B1a) and using Eqs. (B4), (26a), (26c) results in

$$ \dot{V}_{i}{=}{~}^{i}\mathbf{s}_{i}^{T}\left( \dot{{{\varPsi}}}_{i}{~}^{i}\mathbf{e}_{q,i}{+}(k_{q}+{{\varPsi}}_{i}){~}^{i}\dot{\mathbf{e}}_{q,i}{+}k_{\omega}{~}^{i}\dot{\boldsymbol{\omega}}^{~}_{i/0 }{+}k_{\omega}{~}^{i}\mathbf{a}_{i}\right)+\alpha_{i}\dot{{{\varPsi}}}_{i} $$
(B5)

Substituting into Eqs. (B5), (9), (28a), (26b), (27c), in the given order, after some manipulations

$$ \begin{array}{@{}rcl@{}} \dot{V}_{i}&{=}&{~}^{i}\mathbf{s}_{i }^{T}\Big({{\varDelta}}\mathcal{J}_{i} \Big(\left( {~}^{i}\mathbf{e}_{q,i}{~}^{i}\mathbf{e}_{q,i}^{T}\right){~}^{i}\mathbf{e}_{\omega,i}\\ &&{+} \left( k_{q}{+}{{\varPsi}}_{i}\right){~}^{i}\mathcal{E}_{i } {~}^{i}\mathbf{e}_{\omega,i} {-}k_{\omega}S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\mathbf{R}^{i_{d}}_{i} {~}^{i}\boldsymbol{\omega}^{~}_{i_{d}/0}\right){~}^{i}{\mathbf{e}}_{\boldsymbol{\omega},i} \\ &&{-}k_{\omega}{{~}^{i}\mathbf{R}_{0}}{~}^{0}\mathbf{R}^{i_{d}}_{i} {~}^{i}\dot{\boldsymbol{\omega}}^{~}_{i_{d}/0} \Big) {-}\gamma {~}^{i }\boldsymbol{\mathcal{J}}_{i }^{-1}\widehat{{~}^{i }\boldsymbol{\mathcal{J}}_{i }} {~}^{i}\mathbf{s}_{i}\\ &&+k_{\omega}{~}^{i }\boldsymbol{\mathcal{J}}_{i}^{-1} \Big\{ S\left( {~}^{i}\mathbf{p}_{i}\right){{~}^{i}\mathbf{R}_{I}}m_{i}\left( {~}^{I }\dot{\mathbf{v}}_{0}{-}\widehat{{~}^{I}\dot{\mathbf{v}}_{0}}\right)\\ &&{+}\left( {~}^{i}\mathbf{Z}_{i}{~}^{0}\dot{\boldsymbol{\omega}}_{0 }{-}\widehat{{~}^{i}\mathbf{Z}_{i}}\widehat{{~}^{0}\dot{\boldsymbol{\omega}}_{0}}\right) {+}\left( {~}^{i}\mathbf{n}_{r,i}{-}\widehat{{~}^{i}\mathbf{n}_{r,i}}\right)\\ &&+S\left( {~}^{i}\mathbf{p}_{i}\right){{~}^{i}\mathbf{R}_{I}}\left( {-}{~}^{I}\mathbf{f}_{w,i}\right){+}{~}^{i}\mathbf{n}_{w,i}\Big\}\Big){+}\alpha_{i}{~}^{i}\mathbf{e}_{q,i}^{T}{~}^{i}\mathbf{e}_{\omega,i} \end{array} $$
(B6a)
$$ \begin{array}{@{}rcl@{}} {{\varDelta}}\mathcal{J}_{i}&{=}&\mathbf{1}{-}{~}^{i }\boldsymbol{\mathcal{J}}_{i }^{-1}\widehat{{~}^{i }\boldsymbol{\mathcal{J}}_{i}} \end{array} $$
(B6b)

After some rearranging, the above equation is given by

$$ \begin{array}{@{}rcl@{}} \dot{V}_{i}&{=}&{~}^{i}\mathbf{s}_{i }^{T}\left( {~}^{i}\mathbf{N}_{i }{~}^{i}\mathbf{e}_{\omega,i} +{~}^{i}\mathbf{n}_{d,i} {-}\gamma {~}^{i }\boldsymbol{\mathcal{J}}_{i}^{-1}\widehat{{~}^{i }\boldsymbol{\mathcal{J}}_{i }} {~}^{i}\mathbf{s}_{i }\right){+}\alpha_{i}{~}^{i}\mathbf{e}_{q,i}^{T}{~}^{i}\mathbf{e}_{\omega,i} \end{array} $$
(B7a)
$$ \begin{array}{@{}rcl@{}} {~}^{i}\mathbf{N}_{i}&=&{~}^{i}\mathbf{N}_{n,i}-k_{\omega}{~}^{i}\mathbf{N}_{\omega,i} \end{array} $$
(B7b)
$$ \begin{array}{@{}rcl@{}} {~}^{i}\mathbf{n}_{d,i}&=&k_{\omega}{~}^{i }\boldsymbol{\mathcal{J}}_{i}^{-1} \Big\{ S\left( {~}^{i}\mathbf{p}_{i }\right){{~}^{i}\mathbf{R}_{I}}m_{i}\left( {~}^{I}\dot{\mathbf{v}}_{0}{-}\widehat{{~}^{I}\dot{\mathbf{v}}_{0}}\right) {+}\left( {~}^{i}\mathbf{Z}_{i}{~}^{0}\dot{\boldsymbol{\omega}}_{0 }{-}\widehat{{~}^{i}\mathbf{Z}_{i}}\widehat{{~}^{0}\dot{\boldsymbol{\omega}}_{0 }}\right) \\ &&{+}\left( {~}^{i}\mathbf{n}_{r,i}{-}\widehat{{~}^{i}\mathbf{n}_{r,i}}\right) {+}S\left( {~}^{i}\mathbf{p}_{i }\right){{~}^{i}\mathbf{R}_{I}}\left( {-}{~}^{I }\mathbf{f}_{w,i}\right){+}{~}^{i}\mathbf{n}_{w,i}\Big\}\\ &&-{{\varDelta}}\mathcal{J}_{i}k_{\omega}{{~}^{i}\mathbf{R}_{0}}{~}^{0}\mathbf{R}^{i_{d}}_{i} {~}^{i}\dot{\boldsymbol{\omega}}^{~}_{i_{d}/0} \end{array} $$
(B7c)

where \({~}^{i}\mathbf {n}_{d,i}\) depends on the estimation errors, the disturbances and the desired angular acceleration and \({~}^{i}\mathbf {N}_{n,i}\), \({~}^{i}\mathbf {N}_{\omega ,i}\), are given by

$$ \begin{array}{@{}rcl@{}} {~}^{i}\mathbf{N}_{n,i}&{=}&{{\varDelta}}\mathcal{J}_{i}\left( {~}^{i}\mathbf{e}_{q,i}{~}^{i}\mathbf{e}_{q,i}^{T}{+}(k_{q}{+}{{\varPsi}}_{i}){~}^{i}\mathcal{E}_{i }\right) \end{array} $$
(B8a)
$$ \begin{array}{@{}rcl@{}} {~}^{i}\mathbf{N}_{\omega,i}&{=}&{{\varDelta}}\mathcal{J}_{i}S\left( {{~}^{i}\mathbf{R}_{0}}{~}^{0}\mathbf{R}^{i_{d}}_{i}{~}^{i}\boldsymbol{\omega}^{~}_{i_{d}/0}\right) \end{array} $$
(B8b)

Inspecting the term \({~}^{i}\mathcal {E}_{i}\) given in Eq. (27a), the magnitude of Eq. (B8) above depends on the desired trajectory. Additionally Eqs. (7), (32), (30a), (30b) imply that

$$ \begin{array}{@{}rcl@{}} \exists N_{n,i_{max}}, N_{\omega,i_{max}}, n_{d,i_{max}}\in(0,\infty)\big|\lVert{~}^{i}\mathbf{N}_{n,i}\rVert&\leq& N_{n,i_{max}}\\ \lVert{~}^{i}\mathbf{N}_{\omega,i}\rVert&\leq& N_{\omega,i_{max}}\\ \lVert{~}^{i}\mathbf{n}_{d,i}\rVert&\leq& n_{d,i_{max}} \end{array} $$
(B9)

Employing Eq. (B9), the Lyapunov derivative in Eq. (B7a) is expanded to

$$ \begin{array}{@{}rcl@{}} \dot{V}_{i}&{\leq}&-\gamma\lambda_{\mathcal{J}_{i}}{~}^{i}\mathbf{s}_{i}^{T}{~}^{i}\mathbf{s}_{i }+{\varUpsilon}_{i}+\mathcal{N}_{i}\lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert\\ &&+\left( k_{\omega}N_{n,i_{max}}{+}k_{\omega}^{2}N_{\omega,i_{max}}\right)\lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert^{2}{+}\alpha_{i}{~}^{i}\mathbf{e}_{q,i}^{T}{~}^{i}\mathbf{e}_{\omega,i} \end{array} $$
(B10a)
$$ \begin{array}{@{}rcl@{}} {\varUpsilon}_{i}&{=}&(k_{q}{+}{{\varPsi}}_{i})n_{d,i_{max}} \end{array} $$
(B10b)
$$ \begin{array}{@{}rcl@{}} \mathcal{N}_{i}&{=}&k_{\omega}n_{d,i_{max}}{+}(k_{q}{+}{{\varPsi}}_{i})\left( N_{n,i_{max}}{+}k_{\omega}N_{\omega,i_{max}}\right) \end{array} $$
(B10c)

Employing Eq. (28c) and rearranging

$$ \begin{array}{@{}rcl@{}} \dot{V}_{i}&{\leq}&-\gamma_{1}\lambda_{\mathcal{J}_{i}}{~}^{i}\mathbf{s}_{i }^{T}{~}^{i}\mathbf{s}_{i} -\mathbf{z}_{i}^{T}\boldsymbol{{\varPi}}_{3_{i}}\mathbf{z}_{i} -\gamma_{3}\lambda_{\mathcal{J}_{i}}{~}^{i}\mathbf{s}_{i}^{T}{~}^{i}\mathbf{s}_{i } +{\Upsilon}_{i}+\mathcal{N}_{i}\lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert\\ &&+\left( k_{\omega}N_{n,i_{max}}{+}k_{\omega}^{2}N_{\omega,i_{max}}\right)\lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert^{2}{+}2\lambda_{\mathcal{J}_{i}}k_{q}k_{\omega}\gamma_{3}{~}^{i}\mathbf{e}_{q,i}^{T}{~}^{i}\mathbf{e}_{\omega,i} \end{array} $$
(B11a)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{{\varPi}}_{3_{i}}&{=}&\begin{bmatrix} \gamma_{2}\lambda_{\mathcal{J}_{i}}(k_{q}+{{\varPsi}}_{i})^{2}&-\gamma_{2}\lambda_{\mathcal{J}_{i}}{{\varPsi}}_{i} k_{\omega}\\ -\gamma_{2}\lambda_{\mathcal{J}_{i}}{{\varPsi}}_{i} k_{\omega}&\gamma_{2}\lambda_{\mathcal{J}_{i}}k_{\omega}^{2} \end{bmatrix} \end{array} $$
(B11b)

Via \(\gamma _{3}={\sum }_{i=4}^{5}\gamma _{i},\gamma _{i},\in \mathbb {R}^{+}\) after some manipulations

$$ \begin{array}{@{}rcl@{}} \dot{V}_{i}&{\leq}&-\gamma_{1}\lambda_{\mathcal{J}_{i}}{~}^{i}\mathbf{s}_{i}^{T}{~}^{i}\mathbf{s}_{i } -\mathbf{z}_{i}^{T}\boldsymbol{{\varPi}}_{3_{i}}\mathbf{z}_{i}\\ &&-\mathbf{z}_{i}^{T}\boldsymbol{{\varPi}}_{4_{i}}\mathbf{z}_{i} +{\Upsilon}_{i}+\mathcal{\phi}\left( \lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert\right) \end{array} $$
(B12a)
$$ \begin{array}{@{}rcl@{}} \mathcal{\phi}\left( \lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert\right)&=&\mathcal{N}_{i}\lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert\\ &&-\left( (\gamma_{5}\lambda_{\mathcal{J}_{i}}{-}N_{\omega,i_{max}})k_{\omega}^{2}{-}k_{\omega}N_{n,i_{max}}\right)\lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert^{2} \end{array} $$
(B12b)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{{\varPi}}_{4_{i}}&{=}&\begin{bmatrix} \gamma_{3}\lambda_{\mathcal{J}_{i}}(k_{q}+{{\varPsi}}_{i})^{2}&-\gamma_{3}\lambda_{\mathcal{J}_{i}}{{\varPsi}}_{i} k_{\omega}\\ -\gamma_{3}\lambda_{\mathcal{J}_{i}}{{\varPsi}}_{i} k_{\omega}&\gamma_{4}\lambda_{\mathcal{J}_{i}}k_{\omega}^{2} \end{bmatrix} \end{array} $$
(B12c)

The condition in Eq. (28f) ensures that matrix \(\boldsymbol {{\varPi }}_{4_{i}}\) is positive definite. Conditions in Eqs. (28d), (28e), ensure that the last term of Eq. (B12b) is non-positive. For an angular velocity error vector, \({~}^{i}\mathbf {e}_{\omega ,i}\), such that

$$ \lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert>\frac{\mathcal{N}_{i}}{\left( \gamma_{5}\lambda_{\mathcal{J}_{i}}{-}N_{\omega,i_{max}}\right)k_{\omega}^{2}{-}k_{\omega}N_{n,i_{max}}} $$
(B13)

then Eq. (B12b) is non-positive. Additionally for \(\lVert {~}^{i}\mathbf {e}_{\omega ,i}\rVert \) less or equal to Eqs. (B13), (B12b) is bounded by

$$ \mathcal{\phi}\left( \lVert{~}^{i}\mathbf{e}_{\omega,i}\rVert\right)\leq\frac{\mathcal{N}^{2}_{i}}{4\left( \gamma_{5}\lambda_{\mathcal{J}_{i}}{-}N_{\omega,i_{max}}\right)k_{\omega}^{2}{-}4k_{\omega}N_{n,i_{max}}},\forall t $$
(B14)

Thus the following inequality is valid

$$ \begin{array}{@{}rcl@{}} \dot{V}_{i}&{\leq}&-\gamma_{1}\lambda_{\mathcal{J}_{i}}{~}^{i}\mathbf{s}_{i}^{T}{~}^{i}\mathbf{s}_{i} -\lambda_{min}(\boldsymbol{{\varPi}}_{3_{i}})\lVert\mathbf{z}_{i}\rVert^{2} -\lambda_{min}(\boldsymbol{{\varPi}}_{4_{i}})\lVert\mathbf{z}_{i}\rVert^{2} +{\delta}_{i} \end{array} $$
(B15a)
$$ \begin{array}{@{}rcl@{}} {\delta}_{i}&{=}&{{\varUpsilon}}_{i}+\frac{\mathcal{N}^{2}_{i}}{4(\gamma_{5}\lambda_{\mathcal{J}_{i}}{-}N_{\omega,i_{max}})k_{\omega}^{2}{-}4k_{\omega}N_{n,i_{max}}} \end{array} $$
(B15b)

Concluding, for zi such that

$$ \lVert\mathbf{z}_{i}\rVert\geq\sqrt{\frac{{\delta}_{i}}{\lambda_{min}(\boldsymbol{{\varPi}}_{3_{i}})}} $$
(B16)

then

$$ \dot{V}_{i}{\leq}-\gamma_{1}\lambda_{\mathcal{J}_{i}}{~}^{i}\mathbf{s}_{i}^{T}{~}^{i}\mathbf{s}_{i} -\lambda_{min}(\boldsymbol{{\varPi}}_{4_{i}})\lVert\mathbf{z}_{i}\rVert^{2}{\leq}-\lambda_{min}(\boldsymbol{{\varPi}}_{4_{i}})\lVert\mathbf{z}_{i}\rVert^{2} $$
(B17)

The first term in Eq. (B17) ensures the desired sliding behavior. Finally using Eq. (B2)

$$ \dot{V}_{i}{\leq}-({\lambda_{min}(\boldsymbol{{\varPi}}_{4_{i}})}/{\lambda_{max}(\boldsymbol{{\varPi}}_{2_{i}})}){V}_{i} $$
(B18)

Boundedness: Using Eq. (B16), the following sets are defined

$$ \begin{array}{@{}rcl@{}} \text{L}_{\sigma}&{=}&\left\{\left( {~}^{i}\mathbf{e}_{q,i},{~}^{i}\mathbf{e}_{\omega,i}\right)\in\mathbb{R}^{3}{\times}\mathbb{R}^{3}\mid \text{Eq.} \mathrm{(B16)}\right\} \end{array} $$
(B19a)
$$ \begin{array}{@{}rcl@{}} \text{L}_{\phi}&{=}&\left\{\left( {~}^{i}\mathbf{e}_{q,i},{~}^{i}\mathbf{e}_{\omega,i}\right)\in\mathbb{R}^{3}{\times}\mathbb{R}^{3}\mid {{\varPsi}}_{i}<2\right\} \end{array} $$
(B19b)

For a gain γ such that, Eq. (33) is satisfied, then \(\text {L}^{c}_{\sigma }{\subset }\text {L}_{\phi }\) ((.)c is the complement set of (.)). Hence, Eq. (B18) implies that for all initial states beginning in Lϕ, it holds that

$$ \alpha_{i}{{\varPsi}}_{i}{\leq}{V}_{i}(t){\leq}{V}_{i}(0)e^{-\frac{\lambda_{min}(\boldsymbol{{\varPi}}_{4_{i}})}{\lambda_{max}(\boldsymbol{{\varPi}}_{2_{i}})}t} $$
(B20)

Thus Ψi exponentially decreases and the pointing tracking errors exponentially converge to \(\text {L}^{c}_{\sigma }\) and are UUB despite the presence of parametric uncertainties, disturbances and signal estimation errors. An estimate of the ultimate bound is given in Eq. (34).

Inspecting Eqs. (B15b), (B11b), if γ2 is increased, \(\lambda _{min}(\boldsymbol {{\varPi }}_{3_{i}})\) increases also. Since both Eqs. (B10b), (B10b) (they comprise δi), are a function of the estimation errors, the disturbances and the attitude errors which are all bounded, for suitable γ2, γ5 (γ5 reduces Eq. (B15b)) the conditions of Eq. (33) are satisfied. However depending on the actuator/thrust constraints the value of γ2, γ5 is limited. In this case Eq. (33) is satisfied for less aggressive trajectories, smaller estimation errors and smaller disturbances.

Appendix C: Proof of Proposition 2

1.1 C.1 Body-0 Attitude Error Dynamics

First the derivative of Eq. (36b) is calculated. Then Eqs. (6b), (6c), are substituted in the derivative followed by Eqs. (1c), (3). Finally Eqs. (A2b) and (5), are substituted into the resulting expression to get

$$ \dot{\mathbf{e}}_{\mathbf{v},\boldsymbol{\omega}}=\mathbf{C}^{-1}\left( \sum\limits_{i=1}^{3}\begin{bmatrix} {~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{f}_{p,i}\\ \mathbf{A}_{i}{~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{f}_{p,i} \end{bmatrix}{-}\mathbf{d}{-}\mathbf{h}_{g}\right){+}\begin{bmatrix} -{~}^{I}\dot{\mathbf{v}}_{d}\\ {~}^{0}\mathbf{a}_{0} \end{bmatrix} $$
(C1)

where \(\mathbf {A}_{i}\in \mathbb {R}^{3{\times }3}\) is given in Eq. (A16a). The vector \(\mathbf {d}=[d_{1};d_{2}]\in \mathbb {R}^{6{\times }1}\) is given by

$$ \begin{array}{@{}rcl@{}} d_{1}&=&\sum\limits_{i=1}^{3}\Big(m_{i}{~}^{I}\mathbf{R}_{i}S\left( {~}^{i}\mathbf{p}_{i }\right){~}^{i}\dot{\boldsymbol{\omega}}^{~}_{i/0 }{-}{~}^{I}\mathbf{f}_{w,i}\\ &&-m_{i}{{~}^{I}\mathbf{R}_{i}}\left( S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0 }\right)\right)^{2}{~}^{i}\mathbf{p}_{i}\Big){-}{~}^{I }\mathbf{f}_{w,0} \end{array} $$
(C2a)
$$ \begin{array}{@{}rcl@{}} d_{2}&=&\sum\limits_{i=1}^{3}{{~}^{0}\mathbf{R}_{I}}{~}^{I}\mathbf{R}_{i}\left\{{~}^{i}\mathbf{J}_{i } {~}^{i}\dot{\boldsymbol{\omega}}^{~}_{i/0 }+S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0 }\right){~}^{i}\mathbf{J}_{i} {~}^{i}\boldsymbol{\omega}^{~}_{i/0 }-{~}^{i}\mathbf{n}_{w,i}\right\}{-}{~}^{0}\mathbf{n}_{w,0}\\ &&-\sum\limits_{i=1}^{3}{~}^{0}\boldsymbol{\Theta}_{i}{{~}^{i}\mathbf{R}_{I}}\Big(m_{i}{~}^{I}\mathbf{R}_{i}S\left( {~}^{i}\mathbf{p}_{i}\right){~}^{i}\dot{\boldsymbol{\omega}}^{~}_{i/0 }{-}{~}^{I }\mathbf{f}_{w,i}\\ &&-m_{i}{{~}^{I}\mathbf{R}_{i}}\left( S\left( {~}^{i}\boldsymbol{\omega}^{~}_{i/0}\right)\right)^{2}{~}^{i}\mathbf{p}_{i}\Big) \end{array} $$
(C2b)

where the matrix \({~}^{0}\boldsymbol {\Theta }_{i}\in \mathbb {R}^{3{\times }3}\) is given in Eq. (A16a). Vector d contains bounded disturbance terms (see Eq. (7)); under the action of Eq. (28a), the relative angular velocity and acceleration terms, \({~}^{i}{\boldsymbol {\omega }}^{~}_{i/0 }\), \({~}^{i}\dot {\boldsymbol {\omega }}^{~}_{i/0}\), of each TA with respect to body-0 are stable and bounded (see proof of Proposition 1 or/and see Section 4.4.1). Thus vector d is bounded and small; the small mass-inertia characteristics and geometry of each TA contributes to this also.

1.2 C.2 Lyapunov Analysis

For \(\zeta _{1},\zeta _{2}\in \mathbb {R}^{+}\) such that Eq. (37b) is satisfied, the following Lyapunov function is defined

$$ V=\frac{1}{2}\mathbf{z}^{T}\mathbf{z}+\zeta_{1}K_{x}K_{v}\mathbf{e}_{x}^{T}\mathbf{e}_{x}+2\zeta_{1}K_{{{\varOmega}}}K_{R}{{\varPsi}}_{0} $$
(C3)

Defining \(\mathbf {z}_{c}=[ \lVert \mathbf {e}_{x}\rVert ;\lVert \mathbf {e}_{v}\rVert ;\lVert \mathbf {e}_{R}\rVert ;\lVert \mathbf {e}_{\omega }\rVert ]\in \mathbb {R}^{4}\) and via Eq. (A12) the Lyapunov function is bounded by

$$ \begin{array}{@{}rcl@{}} &&\lambda_{min}(\mathcal{W}_{1})\lVert\mathbf{z}_{c}\rVert^{2}\!\leq\! \mathbf{z}_{c}^{T}\mathcal{W}_{1}\mathbf{z}_{c}\!\leq\! V \!\leq\!\mathbf{z}_{c}^{T}\mathcal{W}_{2}\mathbf{z}_{c}\leq\lambda_{max}(\mathcal{W}_{2})\lVert\mathbf{z}_{c}\rVert^{2} \end{array} $$
(C4a)
$$ \begin{array}{@{}rcl@{}} \mathcal{W}_{1}&{ = }&\begin{bmatrix} \frac{{K_{x}^{2}}}{2}{+}\zeta_{1}K_{x}K_{v}&-\frac{K_{x}K_{v}}{2}&0&0\\ -\frac{K_{x}K_{v}}{2}&\frac{{K_{v}^{2}}}{2}&0&0\\ 0&0&\frac{(K_{R}{+}{{\varPsi}}_{0})^{2}}{2}{+}2\zeta_{1}K_{{{\varOmega}}}K_{R}&-\frac{(K_{R}{+}{{\varPsi}}_{0})K_{{{\varOmega}}}}{2}\\ 0&0&-\frac{(K_{R}{+}{{\varPsi}}_{0})K_{{{\varOmega}}}}{2}&\frac{K_{{{\varOmega}}}^{2}}{2} \end{bmatrix} \end{array} $$
(C4b)
$$ \begin{array}{@{}rcl@{}} \mathcal{W}_{2}&{ = }&\begin{bmatrix} \frac{{K_{x}^{2}}}{2}{+}\zeta_{1}K_{x}K_{v}&\frac{K_{x}K_{v}}{2}&0&0\\ \frac{K_{x}K_{v}}{2}&\frac{{K_{v}^{2}}}{2}&0&0\\ 0&0&\frac{(K_{R}{+}{{\varPsi}}_{0})^{2}}{2}{+}4\zeta_{1}K_{{{\varOmega}}}K_{R}&\frac{(K_{R}{+}{{\varPsi}}_{0})K_{{{\varOmega}}}}{2}\\ 0&0&\frac{(K_{R}{+}{{\varPsi}}_{0})K_{{{\varOmega}}}}{2}&\frac{K_{{{\varOmega}}}^{2}}{2} \end{bmatrix} \end{array} $$
(C4c)

The time derivative of the Lyapunov function is given by,

$$ \begin{array}{@{}rcl@{}} \dot{V}&=&\mathbf{z}^{T}\left( \begin{bmatrix} K_{v}\mathbf{1}&0_{3{\times}3}\\ 0_{3{\times}3}&K_{{{\varOmega}}}\mathbf{1} \end{bmatrix}\dot{\mathbf{e}}_{\mathbf{v},\boldsymbol{\omega}}{+}\begin{bmatrix} K_{x}\mathbf{e}_{v}\\ (K_{R}{+}{{\varPsi}}_{0})\dot{\mathbf{e}}_{R}{+}\dot{{{\varPsi}}}_{0}\mathbf{e}_{R} \end{bmatrix}\right)\\ &&+2\zeta_{1}K_{x}K_{v}\mathbf{e}_{x}^{T}\mathbf{e}_{v}+2\zeta_{1}K_{{{\varOmega}}}K_{R}\mathbf{e}_{R}^{T}\mathbf{e}_{\omega} \end{array} $$
(C5)

The thrust tracking error of each TA in \({\mathscr{I}}_{0}\), is given by the following algebraic relation

$$ {{~}^{0}\mathbf{R}_{I}}\left( {~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{f}_{p,i}-{~}^{I}\mathbf{R}^{i_{d}}_{i} {~}^{i}\mathbf{f}_{{p,i}_{d}}\right)=b_{T}{~}^{0}\mathbf{q}_{i}\left( {{~}^{i}\boldsymbol{\omega}_{i }^{T}}{~}^{i}\mathbf{e}_{3}\right)^{2}-b_{T}{~}^{0}\mathbf{q}_{i_{d}}\left( {{~}^{i}\boldsymbol{\omega}_{i_{d}}^{T}}{~}^{i}\mathbf{e}_{3}\right)^{2} $$
(C6)

Using Eq. (C6) together with Eqs. (20c), (22c) the ith TA generated thrust can be expressed by the following algebraic relation

$$ {~}^{I}\mathbf{R}_{i}{~}^{i}\mathbf{f}_{p,i}={{~}^{I}\mathbf{R}_{0}}\left( {~}^{0}\mathbf{f}_{{p,i}_{e}}+b_{T}{~}^{0}\mathbf{h}_{p,i}\right)+{~}^{I}\mathbf{R}^{i_{d}}_{i} {~}^{i}\mathbf{f}_{{p,i}_{d}} $$
(C7)

where \({~}^{0}\mathbf {h}_{p,i}\in \mathbb {R}^{3}\) is found in Eq. (A15b) and \({~}^{0}\mathbf {f}_{{p,i}_{e}}\) is the thrust tracking error of each TA relative to body-0. It is given by

$$ {~}^{0}\mathbf{f}_{{p,i}_{e}}=b_{T}{~}^{0}\mathbf{q}_{i}\left( {{~}^{i}\boldsymbol{\omega}^{T}_{i/0}}{~}^{i}\mathbf{e}_{3}\right)^{2}-b_{T}{~}^{0}\mathbf{q}_{i_{d}}\left( {{~}^{i}\boldsymbol{\omega}^{T}_{i_{d}/0}}{~}^{i}\mathbf{e}_{3}\right)^{2} $$
(C8)

Due to the action of the vectoring controller, \({~}^{0}\mathbf {f}_{{p,i}_{e}}\) is small and bounded; because \({~}^{i}\boldsymbol {\omega }^{~}_{i/0}\) is bounded (see proof of Proposition 1 or/and see Section 4.4.1). Substituting Eqs. (C1) into (C5) followed by Eq. (C7), results in

$$ \begin{array}{@{}rcl@{}} \dot{V}&{=}&\mathbf{z}^{T}\Big\{ \begin{bmatrix} K_{v}\mathbf{1}&0_{3{\times}3}\\ 0_{3{\times}3}&K_{{{\varOmega}}}\mathbf{1} \end{bmatrix}\mathbf{C}^{-1}\Bigg(\sum\limits_{i=1}^{3}\Big(\begin{bmatrix} {~}^{I}\mathbf{R}^{i_{d}}_{i} {~}^{i}\mathbf{f}_{p,i_{d}}\\ \mathbf{A}_{i}{~}^{I}\mathbf{R}^{i_{d}}_{i} {~}^{i}\mathbf{f}_{p,i_{d}} \end{bmatrix}\\ &&+\begin{bmatrix} {~}^{I}\mathbf{R}_{0}{~}^{0}\mathbf{f}_{p,i_{e}}\\ \mathbf{A}_{i}{~}^{I}\mathbf{R}_{0}{~}^{0}\mathbf{f}_{p,i_{e}} \end{bmatrix}\Big){-}\mathbf{d}{-}\mathbf{h}_{g}{+}\mathbf{h}_{p}\Bigg)\\ &&{+}\begin{bmatrix} -K_{v}{~}^{~}\dot{\mathbf{v}}_{d}{+}K_{x}\mathbf{e}_{v}\\ K_{{{\varOmega}}}{~}^{0}\mathbf{a}_{0 }{+}(K_{R}{+}{{\varPsi}}_{0})\dot{\mathbf{e}}_{R}{+}\dot{{{\varPsi}}}_{0}\mathbf{e}_{R} \end{bmatrix}\Big\}\\ &&+2\zeta_{1}K_{x}K_{v}\mathbf{e}_{x}^{T}\mathbf{e}_{v}+2\zeta_{1}K_{{{\varOmega}}}K_{R}\mathbf{e}_{R}^{T}\mathbf{e}_{\omega} \end{array} $$
(C9)

By substituting Eqs. (39) in (C9), followed by Eq. (37), after considerable manipulations

$$ \begin{array}{@{}rcl@{}} \dot{V}&{=}&-\zeta\mathbf{z}^{T}\mathbf{z}+\mathbf{z}^{T}\boldsymbol{\epsilon}{+}2\zeta_{1}K_{x}K_{v}\mathbf{e}_{x}^{T}\mathbf{e}_{v}+2\zeta_{1}K_{{{\varOmega}}}K_{R}\mathbf{e}_{R}^{T}\mathbf{e}_{\omega} \end{array} $$
(C10a)
$$ \begin{array}{@{}rcl@{}} \boldsymbol{\epsilon}&{=}&\begin{bmatrix} K_{v}\mathbf{1}&0_{3{\times}3}\\ 0_{3{\times}3}&K_{{{\varOmega}}}\mathbf{1} \end{bmatrix}\mathbf{C}^{-1}\left( \sum\limits_{i=1}^{3}\begin{bmatrix} {~}^{I}\mathbf{R}_{0}{~}^{0}\mathbf{f}_{p,i_{e}}\\ \mathbf{A}_{i}{~}^{I}\mathbf{R}_{0}{~}^{0}\mathbf{f}_{p,i_{e}} \end{bmatrix}-\mathbf{d}\right) \end{array} $$
(C10b)
$$ \begin{array}{@{}rcl@{}} \lVert\boldsymbol{\epsilon}\rVert&{\leq}&\epsilon_{_{max}} \end{array} $$
(C10c)

Note that vector 𝜖 contains bounded quantities like disturbance terms. Due to space limitations the bound, \(\epsilon _{_{max}}\), is not given explicitly but a conservative estimate can be found using Eqs. (7), (B16) and \(\lVert {~}^{i}\mathbf {e}_{q,i}\rVert {\leq }1\). Employing that ζ = ζ1 + ζ2, Eq. (C10a) is rearranged to

$$ \dot{V}{=}-\zeta_{1}\mathbf{z}^{T}\mathbf{z}-\zeta_{2}\mathbf{z}^{T}\mathbf{z}+\mathbf{z}^{T}\boldsymbol{\epsilon}{+}2\zeta_{1}K_{x}K_{v}\mathbf{e}_{x}^{T}\mathbf{e}_{v}+2\zeta_{1}K_{{{\varOmega}}}K_{R}\mathbf{e}_{R}^{T}\mathbf{e}_{\omega} $$
(C11)

Expanding the first term, after several manipulations

$$ \begin{array}{@{}rcl@{}} \dot{V}&{\leq}&-\mathbf{z}_{c}^{T}\mathcal{W}_{3}\mathbf{z}_{c}-\zeta_{2}\mathbf{z}^{T}\mathbf{z}+\mathbf{z}^{T}\boldsymbol{\epsilon} \end{array} $$
(C12a)
$$ \begin{array}{@{}rcl@{}} \mathcal{W}_{3}&{=}&\begin{bmatrix} \zeta_{1}{K_{x}^{2}}&0&0&0\\ 0&\zeta_{1}{K_{v}^{2}}&0&0\\ 0&0&\zeta_{1}(K_{R}{+}{{\varPsi}}_{0})^{2}&-\zeta_{1}K_{{{\varOmega}}}{{\varPsi}}_{0}\\ 0&0&-\zeta_{1}K_{{{\varOmega}}}{{\varPsi}}_{0}&\zeta_{1}{K_{{{\varOmega}}}^{2}} \end{bmatrix} \end{array} $$
(C12b)

Using the Cauchy-Schwarz inequality on Eq. (C12a)

$$ \begin{array}{@{}rcl@{}} \dot{V}&\leq&{-}\lambda_{min}(\mathcal{W}_{3})\lVert\mathbf{z}_{c}\rVert^{2}{-}\zeta_{2}\lVert\mathbf{z}\rVert^{2}{+}\lVert\mathbf{z}\rVert\epsilon_{_{max}} {\implies}\\ {\forall}\lVert\mathbf{z}\rVert &\geq&\frac{\epsilon_{_{max}}}{\zeta_{2}}{\implies}\dot{V}{<}{-}\lambda_{min}(\mathcal{W}_{3})\lVert\mathbf{z}_{c}\rVert^{2} \end{array} $$
(C13)

Furthermore via Eq. (C4a) the following holds

$$ \dot{V}{\leq}{-}\frac{\lambda_{min}(\mathcal{W}_{3})}{\lambda_{max}(\mathcal{W}_{2})} V $$
(C14)

Concluding, via the comparison lemma, \(\lVert \mathbf {z}_{c}\rVert \) exponentially decreases with a rate \(e^{-\frac {\lambda _{min}(\mathcal {W}_{3})}{\lambda _{max}(\mathcal {W}_{2})} t}\) into an envelope of radius \(\frac {\epsilon _{_{max}}}{\zeta _{2}}\) of the origin and it is maintained there.

Boundedness: Based on the analysis above the following sets are defined,

$$ \begin{array}{@{}rcl@{}} \text{L}_{{\varsigma}}&{=}&\left\{(\mathbf{e}_{\mathbf{x},R},\mathbf{e}_{\mathbf{v},\boldsymbol{\omega}})\in\mathbb{R}^{6}{\times}\mathbb{R}^{6}\mid\lVert\mathbf{z}\rVert{\geq}\frac{\epsilon_{_{max}}}{\zeta_{2}}\right\} \end{array} $$
(C15a)
$$ \begin{array}{@{}rcl@{}} \text{L}_{{\varSigma}}&{=}&\left\{(\mathbf{e}_{\mathbf{x},R},\mathbf{e}_{\mathbf{v},\boldsymbol{\omega}})\in\mathbb{R}^{6}{\times}\mathbb{R}^{6}\mid\lVert\mathbf{z}\rVert{<}\sqrt{2\lambda_{max}(\mathcal{W}_{2})}\right\} \end{array} $$
(C15b)

For a sufficiently large gain ζ such that Eq. (43) is satisfied then \(\text {L}^{c}_{{\varsigma }}{\subset }\text {L}_{{\varSigma }}\) ((.)c the complement set of (.)). Hence, for all initial system states in LΣ, the tracking errors (ex, ev, eR, eω) exponentially converge to \(\text {L}^{c}_{{\varsigma }}\) and are UUB despite the presence of disturbances and thrust tracking errors. The boundary of the set \(\text {L}^{c}_{{\varsigma }}\) is an estimate of the ultimate bound. Also Eqs. (C13), (C14), and (C15a) indicate that as ζ is increased, the error states converge faster to the desired equilibrium, while the ultimate bound set \(\text {L}^{c}_{{\varsigma }}\) shrinks.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Ramp, M., Papadopoulos, E. On Modeling and Control of a Holonomic Tricopter. J Intell Robot Syst 105, 51 (2022). https://doi.org/10.1007/s10846-021-01541-9

Download citation

  • Received:

  • Accepted:

  • Published:

  • DOI: https://doi.org/10.1007/s10846-021-01541-9

Keywords

Mathematics Subject Classification (2010)

Navigation