Uploaded by Martin Schweighart

157-Control of Ground and Aerial Robots

advertisement
Intelligent Systems, Control and Automation:
Science and Engineering
Mario Sarcinelli-Filho
Ricardo Carelli
Control of
Ground and
Aerial Robots
Intelligent Systems, Control and Automation:
Science and Engineering
Volume 103
Series Editors
Kimon P. Valavanis, Department of Electrical and Computer Engineering,
University of Denver, Denver, CO, USA
S. G. Tzafestas, National Technical University of Athens, Athens, Greece
Advisory Editors
P. Antsaklis, University of Notre Dame, Notre Dame, IN, USA
P. Borne, Ecole Centrale de Lille, France
R. Carelli, Universidad Nacional de San Juan, Argentina
T. Fukuda, Nagoya University, Japan
N. R. Gans, The University of Texas at Dallas, Richardson, TX, USA
F. Harashima, University of Tokyo, Japan
P. Martinet, Ecole Centrale de Nantes, France
S. Monaco, University La Sapienza, Rome, Italy
R. R. Negenborn, Delft University of Technology, The Netherlands
António Pascoal, Institute for Systems and Robotics, Lisbon, Portugal
G. Schmidt, Technical University of Munich, Germany
T. M. Sobh, University of Bridgeport, CT, USA
C. Tzafestas, National Technical University of Athens, Greece
K. Valavanis, University of Denver, Denver, CO, USA
Intelligent Systems, Control and Automation: Science and Engineering book series
publishes books on scientific, engineering, and technological developments in this
interesting field that borders on so many disciplines and has so many practical
applications: human-like biomechanics, industrial robotics, mobile robotics, service
and social robotics, humanoid robotics, mechatronics, intelligent control, industrial
process control, power systems control, industrial and office automation, unmanned
aviation systems, teleoperation systems, energy systems, transportation systems,
driverless cars, human-robot interaction, computer and control engineering, but
also computational intelligence, neural networks, fuzzy systems, genetic algorithms,
neurofuzzy systems and control, nonlinear dynamics and control, and of course adaptive, complex and self-organizing systems. This wide range of topics, approaches,
perspectives and applications is reflected in a large readership of researchers and
practitioners in various fields, as well as graduate students who want to learn more
on a given subject.
The series has received an enthusiastic acceptance by the scientific and engineering community, and is continuously receiving an increasing number of highquality proposals from both academia and industry. The current Series Editor is
Kimon Valavanis, University of Denver, Colorado, USA. He is assisted by an Editorial
Advisory Board who help to select the most interesting and cutting edge manuscripts
for the series:
Panos Antsaklis, University of Notre Dame, USA
Stjepan Bogdan, University of Zagreb, Croatia
Alexandre Brandao, UFV, Brazil
Giorgio Guglieri, Politecnico di Torino, Italy
Kostas Kyriakopoulos, National Technical University of Athens, Greece
Rogelio Lozano, University of Technology of Compiegne, France
Anibal Ollero, University of Seville, Spain
Hai-Long Pei, South China University of Technology, China
Tarek Sobh, University of Bridgeport, USA
Springer and Professor Valavanis welcome book ideas from authors. Potential authors
who wish to submit a book proposal should contact Thomas Ditzinger (thomas.
ditzinger@springer.com)
Indexed by SCOPUS, zbMATH, SCImago.
Mario Sarcinelli-Filho · Ricardo Carelli
Control of Ground and Aerial
Robots
Mario Sarcinelli-Filho
Departamento de Engenharia Elétrica
Universidade Federal do Espírito Santo
Vitoria, Espírito Santo, Brazil
Ricardo Carelli
Instituto de Automática
Universidad Nacional de San Juan CONICET
San Juan, Argentina
ISSN 2213-8986
ISSN 2213-8994 (electronic)
Intelligent Systems, Control and Automation: Science and Engineering
ISBN 978-3-031-23087-5
ISBN 978-3-031-23088-2 (eBook)
https://doi.org/10.1007/978-3-031-23088-2
© The Editor(s) (if applicable) and The Author(s), under exclusive license to Springer Nature
Switzerland AG 2023
This work is subject to copyright. All rights are solely and exclusively licensed by the Publisher, whether
the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse
of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and
transmission or information storage and retrieval, electronic adaptation, computer software, or by similar
or dissimilar methodology now known or hereafter developed.
The use of general descriptive names, registered names, trademarks, service marks, etc. in this publication
does not imply, even in the absence of a specific statement, that such names are exempt from the relevant
protective laws and regulations and therefore free for general use.
The publisher, the authors, and the editors are safe to assume that the advice and information in this book
are believed to be true and accurate at the date of publication. Neither the publisher nor the authors or
the editors give a warranty, expressed or implied, with respect to the material contained herein or for any
errors or omissions that may have been made. The publisher remains neutral with regard to jurisdictional
claims in published maps and institutional affiliations.
This Springer imprint is published by the registered company Springer Nature Switzerland AG
The registered company address is: Gewerbestrasse 11, 6330 Cham, Switzerland
To my beloved wife, Cleonice, and my beloved
“kids”, João Vitor, Maria Alice and José
Mário.
To the memory of my parents, Mario and
Gloria, and my brother José Antônio.
To my brothers, sister, nephews, nieces,
daughter-in-law and son-in-law.
Mario Sarcinelli-Filho
To the memory of my parents.
To my brothers and sister, nephews and niece.
Ricardo Carelli
Preface
This book is a synthesis of several results associated to M.Sc. and Ph.D. works
supervised by the authors along the last twenty years. Such works resulted of a
cooperation between the groups coordinated by the two authors, the first one working
as a professor at the Department of Electrical Engineering of the Federal University
of Espírito Santo (UFES) and a researcher of CNPq (National Council for Scientific
and Technological Development), both from Brazil, and the second one working as
a professor at the Institute of Automatics of the National University of San Juan
(UNSJ), and a researcher of CONICET (National Scientific and Technical Research
Council), both from Argentina.
The text focuses on kinematic and dynamic control of a single mobile robot or
a group of them (a multi-robot system). The main topic is the use of the technique
of feedback linearization (inverting the system kinematics or dynamics), regarding
tasks of positioning, trajectory-tracking and path following.
The robots considered are the wheeled mobile platforms, with emphasis in the
differential drive vehicles, the most common of the wheeled platforms and the multirotor aerial robots, in particular the quadrotors. A general solution based on the
technique of feedback linearization is proposed to guide a single robot and a homogeneous or heterogeneous group of wheeled differential drive robots and/or quadrotors.
Examples of the use of the proposed controllers are also provided, for the aforementioned mobile platforms. However, other mobile platforms, as the omnidirectional
and car-like robots are also addressed, although not with the same emphasis.
The cooperation which has generated the results we are discussing in this book has
been financed by two-partner projects and also by single-part projects. The cooperation started in 1998, with the financial support of CAPES—Coordenação de Aperfeiçoamento de Pessoal de Nível Superior, an agency of the Brazilian Ministry of
Education and Fundación Antorchas, an independent Argentinian non-profit institution. From 1999 to 2002, the financial support came from a partnership between
CAPES and SETCIP—Secretaria de Tecnología, Ciencia e Innovación Productiva, an
agency of the Argentinian Ministry of Education. From 2004 to 2018, such support
came from the partnership CAPES/Brazil-SPU/Argentina (Secretaria de Políticas
Universitárias, a secretary of the Argentinian Ministry of Education), through the
vii
viii
Preface
joint program Associated Graduate Centers. In 2015, FAPES—Fundação de Amparo
à Pesquisa e Inovação do Espírito Santo, an agency of the State of Espírito Santo,
Brazil, that supports scientific and technological development, started financing
research projects that partially covered the cooperation between the authors of this
book, continuing as the only financing agency nowadays. To all these agencies and
foundations, and all the students who developed the researches whose results we
present along this text, our thanks for allowing us to go on with our partnership.
Finally, it is worth mentioning that such a long cooperation has generated a cooperation agreement between our two universities, namely UFES-Federal University
of Espírito Santo, Brazil, and UNSJ—National University of San Juan, Argentina,
which also includes double diplomas for M.Sc. and Ph.D. degrees.
Vitoria, ES, Brazil
San Juan, Argentina
September 2022
Mario Sarcinelli-Filho
Ricardo Carelli
Acknowledgements
The authors would like to thank UFES—Universidade Federal do Espírito Santo,
Brazil, and UNSJ—Universidad Nacional de San Juan, Argentina, for supporting
the long-term partnership that allowed them to share expertise and get all the results
that supported the writing of this book.
They also thank all their M.Sc. and Ph.D. students, whose research work allowed
to collect the results here reported.
Finally, they also thank CNPq—Conselho Nacional de Desenvolvimento Científico e Tecnológico, CAPES—Coordenação de Aperfeiçoamento de Pessoal de
Nível Superior, and FAPES—Fundação de Amparo à Pesquisa e Inovação do
Espírito Santo, the three from Brazil, as well as MinCyT—Ministerio de Ciencia,
Tecnología e Innovación, CONICET—Consejo Nacional de Investigaciones Científicas y Técnicas, and SECITI—Secretaría de Ciencia, Tecnología e Innovación del
Gobierno de San Juan, the three from Argentina, for the financial support granted to
the partnership involving UFES and UNSJ, and thus themselves.
ix
Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
4
2 Kinematic Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 Wheeled Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Omnidirectional Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.2 Unicycle (Differential Drive) Robots . . . . . . . . . . . . . . . . . . .
2.1.3 Car-like Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1.4 Extended Kinematics for Nonholonomic Robots . . . . . . . . .
2.2 Aerial Multirotor Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
5
6
8
10
12
16
20
21
3 Dynamic Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Modeling a Unicycle Robot with Velocity Inputs . . . . . . . . . . . . . . .
3.1.1 Model Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Model Parameterization and Identification . . . . . . . . . . . . . .
3.2 Dynamic Model for the Car-Like Robot . . . . . . . . . . . . . . . . . . . . . .
3.3 The Dynamic Model of a Quadrotor . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
23
25
28
29
32
38
38
4 Motion Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Basic Control Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Inner-Outer Controllers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Inverse Kinematics Technique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 Trajectory-Tracking Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 Positioning Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7 Path-Following Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8 Kinematic Sliding Compensation of Non-holonomic Robots . . . . .
4.9 Dynamic Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
41
41
42
43
44
47
59
63
72
75
xi
xii
Contents
4.10 Feedback Linearization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.11 Cascade Dynamic Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.12 Adaptive Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.13 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
80
81
84
94
96
5 Control of Multi-robot Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Characterization of a Robot Formation . . . . . . . . . . . . . . . . . . . . . . .
5.3 Leader-Follower Paradigm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 Virtual Structure Paradigm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.1 Cluster Space Versus Robots Space . . . . . . . . . . . . . . . . . . . .
5.4.2 Transformations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4.3 Movement Jacobian . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Control in the Cluster Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.6 Control and Dynamic Compensation in the Robots Space . . . . . . .
5.7 Scalability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.8 Multiple Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.9 Concluding Remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
99
99
100
102
109
109
110
111
112
114
122
125
141
142
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
About the Authors
Mario Sarcinelli-Filho was born in João Neiva, ES,
Brazil. He received the B.Sc. degree in Electrical Engineering from Federal University of Espírito Santo,
Brazil, in 1979, and the M.Sc. and Ph.D. degrees, also
in Electrical Engineering, from Federal University of
Rio de Janeiro, Brazil, in 1983 and 1990, respectively.
He is currently a Professor at the Department of Electrical Engineering, Federal University of Espírito Santo,
Vitória, ES, Brazil, where he coordinated the Graduate Program on Electrical Engineering from 1992 to
1998 and from 2002 to 2012. He is also a researcher
of the Brazilian National Council for Scientific and
Technological Development (CNPq), an agency of the
Brazilian Ministry of Science, Technology, Innovations
and Communications, and senior editor of the Journal
of Intelligent and Robotic Systems, edited by Springer
Nature. He has co-authored more than peer-reviewed in
indexed journals, more than 350 peer-reviewed conference papers, and 17 book chapters. He has also advised
21 Ph.D. students and 27 M.Sc. students. His research
interests are nonlinear control, mobile robot navigation,
coordinated control of mobile robots, unmanned aerial
vehicles and coordinated control of ground and aerial
robots (multi-robot systems).
xiii
xiv
About the Authors
Ricardo Carelli was born in San Juan, Argentina. He
graduated in Engineering from the National University
of San Juan, Argentina, and obtained a Ph.D. degree in
Electrical Engineering from the National Autonomous
University of Mexico (UNAM). He is a professor at
the Instituto de Automática, Faculty of Engineering,
National University of San Juan (Argentina), and
senior researcher by contract with the National Council
for Scientific and Technical Research (CONICET,
Argentina). Professor Carelli has been Director of the
Instituto de Automática, National University of San
Juan from 2008 to 2019, and has coordinated the Graduate Program in Control Engineering from 2002 to
2022. He has advised 27 Ph.D. students and 13 M.Sc.
students. He has published more than a hundred scientific articles in indexed journals on control and robotics.
His research interests are on Robotics, Manufacturing
Systems, Adaptive Control and Artificial Intelligence
Applied to Automatic Control.
Chapter 1
Introduction
Robots have become part of the daily life. Manipulator robots, also known as anthropomorphic robots, for instance, are quite common in the automotive and naval industries, mainly in painting and welding, and it is difficult even to imagine an automotive
or naval facility without such robots. Mobile robots have emerged more recently,
adding flexibility in the accomplishment of several tasks, for their capability of moving. In fact, they have become quite powerful auxiliaries in housekeeping (the robotic
vacuum cleaners) and as systems for interaction with people, performing as guides in
large museums, for instance. Continuing with such an evolution, aerial robots have
emerged, and are becoming quite useful in an increasing number of applications,
such as in agriculture, load transportation and manipulation, and in the entertainment
industry, for instance. Among the aerial robots, the rotary-wings type have become
much useful, and the most commonly adopted are the quadrotors, rotary-wing robots
with four motors.
Specifically speaking of aerial robots, the so called drones, usually quadrotors,
they are present in a lot of civilian applications, ranging from agricultural [14] to
inspection [3] applications, including film making, advertisement, load transportation
[12], load manipulation [5], package delivery [1, 10], and so on, besides several
military applications.
In other words, robots are much likely to stay between human beings from now
on, becoming more and more important in improving our life quality.
Specifically considering smaller and cheaper robots, it may be quite interesting to
deal with a group of them [4, 6], instead of a single robot, depending on the task to be
accomplished. In fact, using a group of robots one can overcome the deficiencies of
the individual robots and make profit of their benefits [4]. In load transportation, for
instance, the load shape can demand that more than one robot be used [11]. In other
cases the payload capacity of a single robot is not enough to guarantee the success
of the load transportation by a single robot [7], what is much likely to occur when
using micro aerial vehicles, in particular small quadrotors.
In this sense, the use of multi-robot systems has become strongly frequent, including the possibility of using heterogeneous formations, like those composed by a
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2023
M. Sarcinelli-Filho and R. Carelli, Control of Ground and Aerial Robots, Intelligent
Systems, Control and Automation: Science and Engineering 103,
https://doi.org/10.1007/978-3-031-23088-2_1
1
2
1 Introduction
Fig. 1.1 The robots used in
the subsequent chapters.
Source Personal photos
(a) Pioneer 3-DX
(c) AR.Drone 2.0
(b) Pioneer 3-AT
(d) Bebop 2
ground vehicle and an aerial one [2, 8]. Such a particular formation have been used
in applications such as warehouse automation [13], package delivery [10], specifically in last mile delivery [2], and even in space exploration [9].1
Regarding all these topics, this book will address control proposals considering
a single wheeled differential drive robot, a single quadrotor, a formation of various
differential drive robots, a formation of various quadrotors, and a formation of a
quadrotor and a differential drive robot, in this last case dealing with the last step
of the last mile delivery, when the delivery drone should land back on a terrestrial
vehicle.
To illustrate the use of the proposed control systems, the well known wheeled
differential drive robots Pioneer 3-DX and Pioneer 3-AT manufactured by Omron
Adept Mobile Robotics, Inc., and the quadrotors AR.Drone 2.0 and Bebop 2, both
manufactured by Parrot Drones SAS, illustrated in Fig. 1.1, are used in this text.
In the sequel, the text is distributed according to the following contents:
1. Kinematic models, containing:
a. a brief introduction to wheeled robots and models of omnidirectional, unicycle,
differential, and car-like robots, besides an extended kinematic model for nonholonomic robots,
b. a brief introduction to aerial and multirotor vehicles, besides their kinematic
model (complete and simplified).
2. Dynamic models, including:
a. a dynamic model for the differential drive robot with velocity inputs, and its
inverse dynamic model,
1
See also https://mars.nasa.gov/technology/helicopter//#.
1 Introduction
3
b. parameterization and parameters identification for such a model, with an example considering the Pioneer 3-AT robot,
c. model for the car-like robot,
d. models for multi-rotor vehicles, complete and simplified, with experimental
validation using the Bebop 2 quadrotor.
3. Motion Control, including:
a. an introduction to motion control,
b. the concepts of control and general hierarchical control structure,
c. the basic control objectives: posture control, trajectory-tracking control and
path-following control.,
d. inner-outer controllers,
e. inverse kinematics control technique,
f. trajectory-tracking control, with stability proof and experimental examples.
The cases of differential and car-like robots and the case of multi-rotor robots,
g. positioning control, with experimental examples,
h. path following control, with stability proof and experimental examples,
i. kinematic slipping compensation of non-holonomic robots, with stability proof
and simulated examples,
j. dynamic control,
k. feedback linearization,
l. inverse dynamics technique. Cascaded compensation. The cases of differential
and multirotor vehicles,
m. adaptive control, including the linear parameterization of the inverse dynamic
model, and a control law with stability proof and experimental results as well,
regarding the cases of differential drive and multi-rotor robots.
4. Control of multi-robot systems, including:
a. concepts of coordinated and formation control, motivation and applications
with examples taken from the web (with permission if pertinent), besides
discussing a classification of formations and formation control strategies,
b. characterization of a robot formation,
c. leader-follower paradigm,
d. virtual structure paradigm,
i. cluster space versus robots space,
ii. transformations,
iii. movement Jacobian.
e. control in the cluster space, regarding trajectory-tracking and path-following
formation control,
f. control dealing with multiple and conflicting control objectives, regarding a
robot formation, based on the null space. Characterization of rigid and flexible
formations. Obstacle avoidance, using potential fields and fictitious repulsion
forces, considered in the null-space. Hybrid and sub-actuated formations. Scalability. Stability proof. Experimental examples,
g. control and dynamic compensation in the robots space.
4
1 Introduction
References
1. Ackerman E, Koziol M (2019) The blood is here: Zipline’s medical delivery drones are changing
the game in Rwanda. IEEE Spect 56(5):24–31. https://doi.org/10.1109/MSPEC.2019.8701196
2. Bacheti VP, Brandão AS, Sarcinelli-Filho M (2021) A path-following controller for a uavugv formation performing the final step of last-mile-delivery. IEEE Access 9:142218–142231.
https://doi.org/10.1109/ACCESS.2021.3120347
3. Jordan S, Moore J, Hovet S, Box J, Perry J, Kirsche K, Lewis D, Tse ZTH (2018) State-of-theart technologies for UAV inspections. IET Radar, Sonar Navig 12(2):151–164. https://doi.org/
10.1049/iet-rsn.2017.0251
4. Kumar V, Michael N (2012) Opportunities and challenges with autonomous micro aerial vehicles. Int J Robot Res 31(11):1279–1291. https://doi.org/10.1177/0278364912455954
5. Mohiuddin A, Tarek T, Zweiri Y, Gan D (2020) A survey of single and multi-uav aerial manipulation. Unmanned Syst 8(02):119–147
6. Parker LE, Rus D, Sukhatme GS (2016) Multiple mobile robot systems. In: Siciliano B, Khatib
O (eds) Springer handbook of robotics, chap 53. Springer, Oxford, pp 1335–1384
7. Pizetta IHB, Brandão AS, Sarcinelli-Filho M (2019) Cooperative load transportation using
three quadrotors. In: 2019 International conference on unmanned aircraft systems (ICUAS).
Atlanta, GA, USA, pp 644–650. https://doi.org/10.1109/ICUAS.2019.8798175
8. Rabelo MFS, Brandão AS, Sarcinelli-Filho M (2021) Landing a uav on static or moving platforms using a formation controller. IEEE Syst J 15(1):37–45. https://doi.org/10.1109/JSYST.
2020.2975139
9. Rice M, Horgan B (2011) Nasa Perseverance rover’s first major successes on Mars—an
update from mission scientists. ScitechDaily, 11 Nov 2021. https://scitechdaily.com/nasaperseverance-rovers-first-major-successes-on-mars-an-update-from-mission-scientists/
10. Schneider D (2020) The delivery drones are coming. IEEE Spect 57(1):28–29. https://doi.org/
10.1109/MSPEC.2020.8946304
11. Villa DKD, Brandão AS, Carelli R, Sarcinelli-Filho M (2021) Cooperative load transportation
with two quadrotors using adaptive control. IEEE Access 9:129148–129160. https://doi.org/
10.1109/ACCESS.2021.3113466
12. Villa DKD, Brandão AS, Sarcinelli-Filho M (2020) A survey on load transportation using multirotor UAVs. J Intell Robot Syst 98(2):267–296. https://doi.org/10.1007/s10846-019-01088w
13. Wawrla L, Maghazei O, Netland T (2019) Applications of drones in warehouse operations.
ETH Zurich Whitepaper
14. Zhang C, Kovacs JM (2012) The application of small unmanned aerial systems for precision agriculture: a review. Precision Agric 13(6):693–712. https://doi.org/10.1007/s11119012-9274-5
Chapter 2
Kinematic Models
Abstract This chapter discusses the kinematic models of some wheeled mobile
platforms and the aerial four motors helicopter-type vehicles. Such models show that
commanding suitable velocities to the robots analyzed, the wheeled omnidirectional,
unicycle and car-like robots and the aerial multirotor robot as well, causes velocities
in the world frame, meaning that the commanded vehicles can move to any point in
the navigation plane or in the navigation 3D space, in the cases of wheeled robots
or aerial robots. Therefore, such models can be used to design automatic kinematic
controllers, able to guide such robots in their navigation. As such controllers deal
with the velocities of the robots ignoring the inertial effects, they are called kinematic
controllers, and are responsible to move the vehicles in their working space. The
design of such kinematic controllers, however, is not addressed here, but in Chap. 4.
2.1 Wheeled Robots
Wheeled robots are the most common ground vehicles, driven and supported by
wheels. There are many wheeled structures, including the holonomic ones, such
as the omnidirectional robots, with special wheels that allow them to move in any
direction, as well as non-holonomic robots, which have velocity constraints. Each
structure presents a kinematic model defining the relationship between the robot
velocities and the corresponding velocities in the absolute Cartesian plane, in which
the motion should be described. In the following sub-sections the structures and
kinematic models of the most commonly used wheeled robots are described.
In addition to the wheeled mobile robots, aerial robots have also been used in
many applications, mainly the rotary wings multirotor ones. Such vehicles are also
addressed in this book, as well as the wheeled ones, so that their kinematic model
are also presented, specifically considering quadrotors.
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2023
M. Sarcinelli-Filho and R. Carelli, Control of Ground and Aerial Robots, Intelligent
Systems, Control and Automation: Science and Engineering 103,
https://doi.org/10.1007/978-3-031-23088-2_2
5
6
2 Kinematic Models
2.1.1 Omnidirectional Robots
Omnidirectional robots are ground vehicles capable of moving in any direction in
the working plane. This is achieved by means of using specially designed wheels,
which allow to move in longitudinal or transversal directions. An example of omnidirectional robot is shown in Fig. 2.1, while Fig. 2.2 shows two wheel models used
in omnidirectional robots, as well as some different patterns of wheel distribution in
the robot platform.
In addition to such figures, Fig. 2.3 shows a sketch characterizing the movement of
such a kind of robot, regarding an omnidirectional platform of three wheels. Notice
that there are at least two more possible options to define the axis X r of the robot
frame in the left part of Figs. 2.2 and 2.3. They correspond to the one shown in
Fig. 2.2 rotated 120◦ to the left or to the right. To define the axis Y r , in each case, the
right hand rule should be adopted, remembering that the figures shown correspond
to bottom views.
Assuming a linear velocity with magnitude u 0 , as characterized in Fig. 2.3, it can
be decomposed in the longitudinal and transversal components, regarding the axes
X r and Y r shown,
(2.1a)
u = u 0 cos δ
and
v = u 0 sin δ,
(2.1b)
or, in other words, the linear velocity u 0 is the vector sum of the velocities u and v.
Therefore,
u 0 = u 2 + v2 ,
(2.1c)
and
v
δ = arctan .
u
(2.1d)
Including the rotational velocity ω, the robot kinematics, giving the velocities
of the central point of the robot in the Cartesian frame, characterized as (xc , yc ) in
Fig. 2.3, can be expressed as
Fig. 2.1 Examples of
four-wheeled
omnidirectional robots.
Source https://www.
neobotix-robots.com/
products/mobile-robots
2.1 Wheeled Robots
7
Fig. 2.2 The most common types of omnidirectional wheels and two possible wheel distribution
for an omnidirectional robot. Sources a Imetron GmbH, https://commons.wikimedia.org/w/index.
php?curid=2861318, and b http://www.arhan-japan.com/material_handling.php
Fig. 2.3 Schematics of an
omnidirectional robot with
three wheels
8
2 Kinematic Models
x˙c = u cos ψ − v sin ψ,
(2.2a)
y˙c = u sin ψ + v cos ψ,
(2.2b)
ψ̇ = ω,
(2.2c)
or, in a compact form,
⎡ ⎤ ⎡
ẋc
cos ψ − sin ψ
ẋ = ⎣ ẏc ⎦ = ⎣ sin ψ cos ψ
0
0
ψ̇
⎤⎡ ⎤
0
u
0⎦ ⎣ v ⎦ = Av,
1
ω
(2.3)
where x represents the state vector, v is the vector of input commanded velocities,
and A represents the matrix of direct kinematics.
There also exists a relationship between the angular rotations of the wheels, ωi ,
and the input velocities to the robot. Assuming the wheels have a radius r , the
tangential velocity for the ith wheel will be vi = r ωi . Then, the linear velocity u0
of the robot is obtained by the vector sum of the tangential velocities vi . In addition,
the angular velocity of the robot is the sum of the tangential velocities vi associated
to each wheel divided by the distance d from the wheel to the center of the robot.
2.1.2 Unicycle (Differential Drive) Robots
A unicycle robot is a differential drive mobile platform containing two wheels driven
by independent motors plus a castor wheel, just to keep the equilibrium of the platform. The two driven wheels can develop different rotations, since each one is generally driven by an electrical motor, excited by a suitable voltage, generated by
PWM signals. An additional detail is that the two wheels can rotate clockwise or
counterclockwise, through using two electronic circuits called H bridge, which allow
supplying current to each motor in both directions, so that the robot can move forward
and backward.
As a result of the rotation of the two wheels, distinct velocities are obtained in
the point the wheels touch the ground, generating the ground velocities v1 and v2 for
the wheels. Consequently, the mobile platform develops a linear forward velocity,
u, and an angular one, ω, as illustrated in Fig. 2.4, what makes it quite similar to a
real mono-cycle, also illustrated in the figure, for comparison. Such velocities are
defined as
v1 + v2
(2.4a)
u=
2
and
ω=
v2 − v1
,
D
(2.4b)
2.1 Wheeled Robots
9
Fig. 2.4 Kinematics of the
unicycle wheeled mobile
robot: the analogy with a real
mono-cycle
where D is the distance between the centers of the two driven wheels, ω is positive
counterclockwise, and v1 and v2 are the tangential velocities correspondent to the
left and right wheels, respectively.
The movement of the point of interest for control in the X w Y w plane, in this case
the point in the middle of the virtual axle linking the driven wheels, of coordinates
(xc , yc ), is characterized by
(2.5a)
ẋc = u cos ψ,
ẏc = u sin ψ,
(2.5b)
ψ̇ = ω,
(2.5c)
and
or, in a compact way
⎡ ⎤ ⎡
ẋc
cos ψ
ẋ = ⎣ ẏc ⎦ = ⎣ sin ψ
0
ψ̇
⎤
0 u
0⎦
= Av,
ω
1
(2.6)
where x is the state vector, v is the vector of commanded velocities and A is the matrix
of direct kinematics. As one can see, when considering just the linear velocities for
control design purposes, the matrix is not invertible. Therefore, as it will be detailed
ahead in this text, it prevents using a controller designed adopting the technique of
inverse kinematics, because it demands the inversion of the matrix A. To overcome
this drawback, next section discusses an extended kinematic model, which allows
generating a matrix of direct kinematics that is always invertible, does not mattering
where the point of interest for control is notice that regarding the point of interest
for control as the point in the middle of the virtual axle linking the driven wheels, as
10
2 Kinematic Models
depicted in Fig. 2.4, there is no velocity in this direction, meaning that the unicycle
robot is a nonholonomic one, which is a terminology used to characterize a vehicle not
able to develop velocity along the axis Y r . This can be checked taking the projections
of the velocities ẋc and ẏc over the axis Y r , which will result in
ẋc cos(90 − ψ) − ẏc cos ψ = 0,
(2.7)
taking into account that cos(90 − ψ) = sin ψ and considering (2.5).
2.1.3 Car-like Robots
A car-like robot is a wheeled mobile platform with four wheels. Two of them, located
in the backward part of the chassis, as depicted in Fig. 2.5, are driven by a single
motor, so that the whole platform moves ahead when the front wheels are aligned
to the chassis body. The two front wheels are responsible for steering the chassis,
as sketched in the figure, what is done rotating such wheels to the left and right,
characterizing the robot steering. However, such angles, δ1 and δ2 , are bounded to
small values, what also happens with a real automobile.
Regarding Fig. 2.5b, one can see that the movement of the point of interest for
control, the small yellow circle in the figure, corresponds to a forward velocity u,
the velocity of the two linked back wheels, with a steering imposed by the angles δ1
and δ2 . Such angles are calculated, to have a unique rotation point P, as
δ1 = arctan
L
r−
(2.8a)
lw
2
and
δ2 = arctan
L
r+
,
lw
2
(2.8b)
showing that small values of δ1 and δ2 cause large values of r, such that one can
approximate these two values by a single one, given by
δ = arctan
L
r
.
(2.9)
In addition, for the cases in which L >> lw one can consider the car-like robot
represented as in Fig. 2.5e, which is a representation quite similar to a real bicycle,
shown in Fig. 2.5f.
2.1 Wheeled Robots
11
Fig. 2.5 A real car-like robot, also known as Ackerman structure, the sketches used to develop its
model, and the analogy with a bicycle
12
2 Kinematic Models
The movement of the point of interest for control of the structure of Fig. 2.5e, the
small yellow circle shown, in the X w Y w plane is characterized by
ẋc = u cos(ψ),
(2.10a)
ẏc = u sin(ψ),
(2.10b)
u tan(δ)
,
L
(2.10c)
and
ψ̇ =
considering (2.9) and the fact that for δ constant the vehicle follows a circumference
of radius r with the velocity u tangent to the circumference, such that u is given
δ
. One important detail is that such a robot is not
by u = ψ̇r. Thus, ψ̇ = ur = u tan
L
able to change its orientation ψ without moving ahead. In other words, it only can
maneuver when moving with a nonzero u velocity.
An important aspect when regarding a car-like robot is that it is also a nonholonomic robot, as well as the unicycle robots, in opposition to the omnidirectional
ones. The nonholonomic constraints are characterized by null velocities in the directions normal to the directions of its wheels. Considering the two back wheels, such
a direction is the one of the axle linking them, as their orientation is fixed. The sum
of the projections of the velocities ẋc and ẏc over such axle results in
ẋc sin ψ − ẏc cos ψ = 0,
(2.11)
since ẋc = u cos ψ and ẏc = u sin ψ. Similarly, regarding the direction of the axle
correspondent to the two front wheels one has
ẋ f sin(ψ + δ) − ẏ f cos(ψ + δ) = 0,
(2.12)
where the subscript f stands for the front wheels. Therefore, the car-like robot has
velocity constraints, corresponding to the impossibility of moving in the direction
normal to the orientation of each pair of wheels.
2.1.4 Extended Kinematics for Nonholonomic Robots
The extended kinematics model here discussed applies for nonholonomic robots,
such as the differential drive and car-like ones. For the differential-drive robots, for
instance, it is not possible to consider the point of interest for control as being on
the virtual axle linking the driven wheels, when designing a controller based on
the inverse kinematics. This happens because the correspondent matrix of direct
kinematics becomes is singular, not having an inverse, necessary to use the inverse
kinematics approach to design a controller.
2.1 Wheeled Robots
13
Fig. 2.6 A sketch to get the
extended kinematics of the
nonholonomic robot
Then, a possible solution to get a nonsingular matrix of direct kinematics independently of where the point of interest for control is corresponds to suppose an
holonomic platform, having linear velocities in the axes X r and Y r of the robot
frame, besides angular velocity around its axis Z r , as depicted in Fig. 2.6.
In such a figure the point of interest for control is defined by the coordinates
(xc , yc ), and can be located at any position in the world frame X w Y w , including out
of the robot body, but, in this case, rigidly coupled to it. In Fig. 2.6 it is at a distance
a of the point in the middle of the virtual axis linking the driven wheels, forming an
angle α with the axis X r . The robot is supposed to be able to develop linear velocities
u and v, respectively in the axes X r and Y r , and an angular velocity ω around the axis
Z r , positive counterclockwise (the right hand rule applies). Therefore, the movement
of the point (xc , yc ) is associated to the velocities u, v and aω, the tangential velocity
in such a point generated by the angular movement of the robot. As for the angle ψ,
it represents the current robot orientation. It is worth noting that v is here assumed
to be nonzero while formulating the extended model. It will then be set to zero or
set to a measured nonzero slipping value when designing the kinematic controllers
in Chap. 4.
The movement of the point of interest for control, the point of coordinates (xc , yc ),
is then caused by the velocity components u, v and aω, so that the velocity components in the world frame X w Y w are
ẋc = u cos(ψ) − v cos(90 − ψ) − aω sin(α + ψ),
(2.13a)
ẏc = u sin(ψ) + v cos(ψ) + aω cos(α + ψ),
(2.13b)
ψ̇ = ω,
(2.13c)
and
14
2 Kinematic Models
taking into account that the angular velocity developed by the point of interest for
control is the same of the robot, the angle between the velocity vector aω and the
axis Y w is the sum of ψ and α and the angle between the velocity vector v and the
axis X w is 90 − ψ, both in degrees.
In a compact notation one has the extended kinematic model for the differential
robot [1]
⎤⎡ ⎤
⎡ ⎤ ⎡
ẋc
cos ψ − sin ψ −a sin(α + ψ)
u
⎦
⎣
⎦
⎣
⎣
ẏ
sin
ψ
cos
ψ
a
cos(α
+
ψ)
v ⎦ = Av,
=
(2.14)
ẋ =
c
0
0
1
ω
ψ̇
where x is the state vector, v is the vector of commanded velocities (regarding the
hypothetical possibility of a velocity component in the axis Y r of the robot frame)
and
⎡
⎤
cos ψ − sin ψ −a sin(α + ψ)
A = ⎣ sin ψ cos ψ a cos(α + ψ) ⎦
(2.15)
0
0
1
is the matrix of direct extended kinematics, whose determinant is always the unity,
it does not matter where the point (xc , yc ) is, since rigidly linked to the robot.
From such a model one can write
⎡
⎤⎡ ⎤
ẋc
cos ψ sin ψ a sin α
(2.16)
v = A−1 ẋ = ⎣− sin ψ cos ψ −a cos α ⎦ ⎣ ẏc ⎦ ,
0
0
1
ψ̇
⎡
⎤
cos ψ sin ψ a sin α
where A−1 = ⎣− sin ψ cos ψ −a cos α ⎦ is the matrix of inverse extended kinemat0
0
1
ics, which always exists, since A in (2.15) is nonsingular for any a, α, and ψ.
It is worthwhile to stress, nonetheless, that although the point (xc , yc ) in Fig. 2.6
has velocity in the Y r direction, the mobile robot is still a nonholonomic one. Moreover, as it will be shown ahead, such an extended kinematic model includes the case
of Fig. 2.4, which corresponds to a = 0 in Fig. 2.6.
Now, let us consider the extended kinematic model for the car-like robot, represented in a simplified way as a bicycle, as shown in Fig. 2.7. In this figure the
point of interest for control is defined by the coordinates (xc , yc ), is located at a
distance a of the point in the middle of the axle linking the rear wheels, and forms
an angle α with the body axis of the vehicle. The movement of this point of interest
for control is then caused by the velocity components u, v and aωψ . Following a
similar reasoning as for the differential-drive robot, but including the orientation δ
of the driving front wheel as an additional state variable (see Fig. 2.7), the extended
differential kinematics in compact form is given by
2.1 Wheeled Robots
15
Fig. 2.7 A sketch to get the
extended kinematics of the
car-like nonholonomic robot
⎡ ⎤ ⎡
ẋc
cos ψ − sin ψ −a sin(α + ψ)
⎢ ẏc ⎥ ⎢ sin ψ cos ψ a cos(α + ψ)
⎥
⎢
⎢
ẋ = ⎣ ⎦ = ⎣
ψ̇
0
0
1
0
0
0
δ̇
⎤⎡ ⎤
0
u
⎢ ⎥
0⎥
⎥ ⎢ v ⎥ = Av,
0⎦ ⎣ωψ ⎦
1
ωδ
(2.17)
where x is the state vector, v is the vector of commanded velocities (regarding the
hypothetical possibility of a velocity component in the axis Y r of the robot frame)
and
⎡
⎤
cos ψ − sin ψ −a sin(α + ψ) 0
⎢ sin ψ cos ψ a cos(α + ψ) 0⎥
⎥
A=⎢
(2.18)
⎣ 0
0
1
0⎦
0
0
0
1
is the matrix of direct differential kinematics, whose determinant is always the unity,
it does not matter where the point (xc , yc ) is, since rigidly linked to the robot. From
such a model one can write
⎡
⎤⎡ ⎤
ẋc
cos ψ sin ψ a sin α 0
⎢− sin ψ cos ψ −a cos α 0⎥ ⎢ ẏc ⎥
−1
⎥⎢ ⎥,
(2.19)
v = A ẋ = ⎢
⎣ 0
0
1
0⎦ ⎣ ψ̇ ⎦
0
0
0
1
δ̇
where A−1 is the matrix of inverse extended kinematics, which always exists, since
A in (2.18) is guaranteed to be nonsingular.
16
2 Kinematic Models
2.2 Aerial Multirotor Robots
A multirotor aerial robot is a helicopter-type vehicle having various propellers, each
one corresponding to a motor with shaft perpendicular to the vehicle plane, to which
a blade is connected. This way, each set motor-blade generates a propulsion in the
normal direction, with respect to the body of the vehicle. The most common of them
are the quadrotors, or those possessing four motors, although configurations with
six motors (hexarotor) and eight motors (octorotor) are also available. This book,
however, will focus just in the four-motors configurations.
Such vehicles have been designed and operated as unmanned aerial vehicles, the so
called UAVs, meaning that they were thought to fly autonomously. As a consequence
of the ability to fly autonomously, the use of UAVs in civil and military applications
has become more and more frequent. Just to exemplify some civil applications, multirotor UAVs have been used in agriculture (pest control, plant count and growth
stage monitoring), commerce (cargo delivery and warehouse automation), entertainment (film making and sports coverage), disaster response (search and rescue, fire
detection and lifebuoy delivery), among many others (see, for instance, [2]).
Therefore, a quadrotor is a helicopter-type aerial vehicle with four vertical propellers. To avoid the rotation of the vehicle body when the motors are working, any
two adjacent motors should rotate in opposite directions, one clockwise and the other
counterclockwise. As a result, the vehicle body stays in a fixed orientation, regarding
the world frame, when the four motors develop the same velocity.
Such a vehicle can move up- and downwards, for- and backwards, and to the
left or the right, besides being able to rotate around the three axes of the Cartesian
space, as illustrated in Fig. 2.8. This means that a quadrotor is a real omnidirectional
vehicle, since it can move in any direction of the Cartesian 3D space (remember that
the omnidirectional wheeled robots are restricted to navigate in a plane). Therefore,
a quadrotor has six degrees of freedom (linear displacements in the x w , y w and z w
axes, and rotations around the same axes).
In such a figure one can perceive the detail of the direction of rotation of each
one of the four motors, which generate the moments M1 to M4 , whose resultant is
responsible for rotating the body of the robot around the axis z b , thus defining the
yaw angle ψ of the vehicle. Notice that the axes x b , y b and z b correspond to the
so called body frame, which is a frame of coordinates whose origin is the center
of gravity of the vehicle. By their turn, the sum of the torques correspondent to the
forces f 1 to f 4 defines the rotation of the vehicle body around the axes x b and y b ,
thus defining the pitch angle θ and the roll angle φ of the vehicle, with reference
to the body frame. From Fig. 2.8 one can perceive that the torque that causes a
rotation counterclockwise around the axis y b is ( f 3 + f 4 − f 1 − f 2 )lb , where lb is
the distance from each propeller to the axis y b . Notice that if all the motors are with
the same rotation there will be no rotation around the axis y b . Thus, to change this it
is necessary to increase the velocities of the motors 3 and 4. On the other hand, the
torque necessary to rotate the vehicle body clockwise around the axis x b is given by
2.2 Aerial Multirotor Robots
17
Fig. 2.8 The degrees of freedom and input commands for a quadrotor (developed over a personal
photo)
( f 1 + f 4 − f 2 − f 3 )lb (lb is the same for all the propellers, considering the symmetry
of the structure).
For angles θ and φ different of zero there is a difference in the velocities of the
four motors. Therefore, to control the quadrotor corresponds to impose a suitable
rotation to each motor. For instance, to move the vehicle upwards it is necessary to
increase the rotation speed of all the motors, which should also be equal, to avoid
any inclination. An important detail is that all the motors generate propulsion in the
direction normal to the plane x b y b , so that there is no force, therefore no acceleration,
and consequently no movement, in the x b and y b directions. To create force in the
x b direction, and thus move the quadrotor forward, it is necessary to make f 3 + f 4
greater than f 1 + f 2 , thus rotating the vehicle body counterclockwise around the axis
y b . The way to create velocity in the y b direction is quite similar, now generating a
rotation around the axis x b . This way, the linear velocity in the direction x b is coupled
to the pitch angle θ, and the linear velocity in the direction y b is coupled to the roll
angle φ.
As a result, the quadrotor has six degrees of freedom, but only four input commands, thus being an underactuated system. For the quadrotors AR.Drone 2.0 and
Bebop 2, in particular, these commands are related to the linear velocity along the
axis z b (u z b ), the angular velocity around the axis z b (u ψ̇ ), the pitch angle (u θ ), and
the roll angle (u φ ), which are also represented in Fig. 2.8. Regarding the quadrotors
AR.Drone 2.0 and Bebop 2 used in this book, such commands are normalized to be
within the interval from −1 to +1, as required by the manufacturer [3, 4]. Another
detail is that for these two quadrotors the basic structure is an X, regarding the position of the four propellers with respect to the axes x b and y b . As a consequence, as
one can see in Fig. 2.8, each propeller is in one of the quadrants of the plane x b y b , in
an angle of 45◦ with each axis of the respective quadrant. There are other quadrotor
structures for which two propellers are over the axis x b and the other two are over
the axis y b , however, but they are not discussed in this text.
18
2 Kinematic Models
To represent the movement of the point correspondent to the center of gravity of
the quadrotor in the axes of the world frame one needs to know its attitude, which
corresponds to the instantaneous values of the angles θ, φ and ψ. With these angles
the linear velocities along the axes x w , y w and z w , as well as the angular velocities
θ̇ , φ̇ and ψ̇, can be determined.
Now, assuming that the body structure of the quadrotor is symmetric and rigid,
the propellers have a fixed pitch angle, and the center of mass coincides with the
geometric center of the vehicle, the matrix Rbw that gives the orientation of the vehicle
in the world frame as a function of the instantaneous values of the angles θ, φ and ψ
can be obtained. It is calculated as the premultiplication of a sequence of the single
rotation matrices Rx (φ), R y (θ ), and Rz (ψ) corresponding to the angles φ, θ and ψ
(see, for instance, [5, 6]), given by
⎡
⎤
1 0 0
Rx (φ) = ⎣0 cφ −sφ ⎦ ,
0 sφ cφ
⎡
⎤
cθ 0 sθ
R y (θ ) = ⎣ 0 1 0 ⎦ ,
−sθ 0 cθ
and
⎡
⎤
cφ −sφ 0
Rz (ψ) = ⎣sφ cψ 0⎦ ,
0 0 1
where cx and sx stand for cos x and sin x, respectively. Therefore, the rotation matrix
Rbw is
⎤
cθ cψ cψ sθ sφ − sψ cφ cφ sθ cψ + sφ sψ
Rbw = Rz (ψ)R y (θ )Rx (φ) = ⎣sψ cθ sφ sθ sψ + cφ cψ sθ sψ cφ − cψ sφ ⎦ .
−sθ
cθ sφ
cθ cφ
⎡
(2.21)
The differential kinematics gives the relationship between velocities in the body
and the world frames. When regarding the linear velocities, it is given by
⎡
⎤
⎡ b⎤
vx
ẋ w
ẋw = ⎣ ẏ w ⎦ = Rbw ⎣v by ⎦ ,
ẏ w
vzb
(2.22)
where vxb , v by and vzb are the linear velocities in the body frame of the quadrotor. As
for the angular velocities, the differential kinematics is
2.2 Aerial Multirotor Robots
19
⎡
⎤
⎡ b⎤
φ̇ w
φ̇
w = ⎣ θ̇ w ⎦ = H ⎣ θ̇ b ⎦ ,
ψ̇ w
ψ̇ b
(2.23)
where w is the vector of angular velocities in the world frame, and H is given by
⎡
⎤
1 sin φ tan θ cos φ tan θ
cos φ
− sin φ ⎦ .
H = ⎣0
0 sin φ/ cos θ cos φ/ cos θ
(2.24)
Regarding a near hover situation, which means that the quadrotor is practically
hovering (small inclination angles θ and φ, corresponding to low linear velocities
ahead and aside), one can consider that the quadrotor stays practically in the horizontal position, or the plane x b y b of the body frame is parallel to the plane x w y w of
the world frame. In such case the axes z w and z b are in parallel, whereas the axes
x w and x b establish the angle ψ, the yaw angle of the vehicle. Notice that in such a
case just the angles θ and φ are close to zero, whereas the angle ψ is not bounded.
Therefore, the axes y w and y b also form the angle ψ. Under such an assumption, the
quadrotor can be seen as a horizontal platform able to develop linear velocities in
the axes x b , y b and z b , besides angular velocity around the axis z b (yaw velocity).
Notice that this is an approximation, associated to the assumption that the angles
θ and φ are close to zero. Indeed, it is not possible to have velocities in the directions
x b and y b for θ = 0 and φ = 0. Nonetheless, as we are limiting such angles to a
value close to zero, although not exactly zero, it is acceptable to consider the body
of the quadrotor always in the horizontal position, although having low velocities in
x b and y b . For the examples considered in the rest of this book, either for the AR.
Drone 2.0 or the Bebop 2 quadrotors, the angles θ and ψ are limited to ±15◦ , what
is possible through the configurations made available in their embedded autopilot
[4] (practically all the commercially available quadrotors have such an embedded
autopilot, so that the simplification here considered can be adopted for the majority
of the commercially available quadrotors).
Besides this, as the dynamics associated to the pitch and roll angles are quite
faster than the dynamics associated to the linear displacement of the robot in the
correspondent directions, it is possible to consider that just velocity commands,
T
grouped in the vector u = u vx u v y u vz u vψ , whose entries are all limited to the
bounds ±1, are given as inputs to the quadrotor, once the pitch and roll angles be
limited to small absolute values.
Assuming a near-hovering navigation of the quadrotor, Fig. 2.9 depicts the configuration of the axes of the global and body frames, x w y w z w and x b y b z b . There the
axes z w and z b are in parallel, both coming out of the book page, perpendicularly to it.
From such a figure one can write that
ẋ w = vxb cos ψ + v by cos(90 + ψ) = vxb cos ψ − v by sin(90 + ψ),
(2.25a)
20
2 Kinematic Models
Fig. 2.9 Axes configuration
for the global and body
frames for a quadrotor in a
near-hover condition (the
two black circles correspond
to the arrows of the axes z b
and z w )
ẏ w = vxb sin ψ + v by cos ψ,
(2.25b)
ż w = vzb ,
(2.25c)
ψ̇ w = ψ̇ b ,
(2.25d)
regarding that cos(90 + ψ) = − sin ψ, where the superscripts b and w refers to the
body and global frames, respectively, v represents linear velocities, ψ is the yaw
angle and ψ̇ is the yaw velocity. Notice that such relationships can also be deduced
from (2.22) and (2.23) considering cos φ ≈ 1, cos θ ≈ 1, sin φ ≈ 0, sin θ ≈ 0, and
tan θ ≈ 0.
Written in a compact way, such a set of equations becomes
⎤ ⎡
ẋ w
cos ψ − sin ψ
w⎥
⎢
⎢
ẏ
⎥ ⎢ sin ψ cos ψ
ẋw = ⎢
⎣ ż w ⎦ = ⎣ 0
0
0
0
ψ̇ w
⎡
0
0
1
0
⎤⎡ ⎤
vx b
0
⎢v y b ⎥
0⎥
⎥ ⎢ ⎥ = Avb ,
0⎦ ⎣ v z b ⎦
1
ψ̇ b
(2.26)
where xw is the state vector, in global coordinates, vb is the vector of velocities in the
body frame, and A is the matrix of direct kinematics correspondent to the quadrotor,
regarding it is flying in a near hover condition.
2.3 Concluding Remarks
The kinematic models here addressed show that commanding suitable velocities to
the robots analyzed, the wheeled omnidirectional, unicycle and car-like robots and
the aerial multirotor robots as well, causes velocities in the world frame, meaning
2.3 Concluding Remarks
21
that the commanded vehicles can move to any point in the navigation plane or in the
navigation 3D space, in the cases of wheeled robots or aerial robots. Therefore, such
models can be used to design automatic kinematic controllers [7–9], or controllers
able to guide such robots in their navigation. As such controllers deal with the velocities of the robots ignoring the inertial effects, they are called kinematic controllers,
and are responsible to move the vehicles in their working space. The design of such
kinematic controllers is the topic of Chap. 4.
The technique explored to design such controllers is called feedback linearization
[10, 11], also discussed in Chap. 4, whose essence is to generate a control loop whose
characteristic equation describes a linear temporal evolution of the error between the
current robot position and the desired one, for instance. This means that the nonlinear
kinematics associated to the robots analyzed in this chapter, represented by the matrix
of direct kinematics, should be inverted and incorporated in the control loop, thus
compensating for the nonlinear kinematics, associated to a desired linear behavior
for such error. Thus, such a control technique is also called inverse kinematics [12–
15]. A main innovation in relation to the non-holonomic wheeled robots has been the
introduction in this chapter of the “extended kinematic models”, which guarantees
the kinematic matrix to be always invertible, and thus allowing the inverse kinematics
design for any position of the point of interest on the robot.
References
1. Montesdeoca JC, Herrera D, Toibero JM, Carelli R (2017) Controllers design for differential
drive mobile robots based on extended kinematic modeling. In: 2017 European conference on
mobile robots (ECMR), pp 1–6. https://doi.org/10.1109/ECMR.2017.8098661
2. Chen S, Laefer DF, Mangina E (2016) State of technology review of civilian UAVs. Recent Pat
Eng 10(3):160–174. https://doi.org/10.2174/1872212110666160712230039
3. Pinto AO, Marciano HN, Bacheti VP, Moreira MSM, Brandão AS, Sarcinelli-Filho M (2020)
High-level modeling and control of the Bebop 2 micro aerial vehicle. In: Proceedings of the
2020 international conference on unmanned aircraft systems. IEEE, Athens, Greece, pp 939–
947. https://doi.org/10.1109/ICUAS48674.2020.9213941
4. Santana LV, Brandão AS, Sarcinelli-Filho M (2016) Navigation and cooperative control using
the AR. Drone quadrotor. J Intell Robot Syst 84(1):327–350 (2016). https://doi.org/10.1007/
s10846-016-0355-y
5. Arvo J (1992) Fast random rotation matrices. In: Kirk D (ed) Graph Gems III. Academic Press,
San Diego, pp 117–120
6. Sciavicco L, Siciliano B (2000) Modelling and Control of Robot Manipulators. Springer-Verlag,
London, England. https://doi.org/10.1007/978-1-4471-0449-0
7. Khai TQ, Ryoo YJ (2019) Design of adaptive kinematic controller using radial basis function
neural network for trajectory tracking control of differential-drive mobile robot. Int J Fuzzy
Logic Intell Syst 19(4):349–359. https://doi.org/10.5391/IJFIS.2019.19.4.349
8. Lugo-Cárdenas I, Salazar S, Lozano R (2017) Lyapunov based 3d path following kinematic
controller for a fixed wing UAV. IFAC-PapersOnLine 50(1):15946–15951. https://doi.org/10.
1016/j.ifacol.2017.08.1747 20th IFAC World Congress
9. Pazderski D, Szulczyński P, Kozłowski KR (2009) Kinematic tracking controller for unicycle
mobile robot based on polar-like representation and Lyapunov analysis. In: Kozłowski KR (ed)
Robot motion and control. Springer, London, pp 45–56 https://doi.org/10.1007/978-1-84882985-5_5
22
2 Kinematic Models
10. Khalil HK (2002) Nonlinear systems, 3 edn. Prentice Hall
11. Montoya-Villegas L, Moreno-Valenzuela J, Pérez-Alcocer R (2019) A feedback linearizationbased motion controller for a UWMR with experimental evaluations. Robotica 37(6):1073–
1089. https://doi.org/10.1017/S0263574718001443
12. Antonelli G (2009) Stability analysis for prioritized closed-loop inverse kinematic algorithms
for redundant robotic systems. IEEE Trans Robot 25(5):985–994. https://doi.org/10.1109/
TRO.2009.2017135
13. Geoffroy P, Mansard N, Raison M, Achiche S, Todorov E (2014) From inverse kinematics to
optimal control. In: LJ, KO (eds) Advances in robot kinematics. Springer, Cham, pp 409–418.
https://doi.org/10.1007/978-3-319-06698-1_42
14. Hakamata Y, Tsuichihara S, Ricardez GAG, Takamatsu J, Ogasawara T (2020) Pushing and
pulling motion generation for humanoid robots using whole-body momentum control based
on analytical inverse kinematics. Adv Robot 34(21–22):1442–1454. https://doi.org/10.1080/
01691864.2020.1817778
15. Siciliano B (1990) A closed-loop inverse kinematic scheme for on-line joint-based robot control. Robotica 8(3):231–243. https://doi.org/10.1017/S0263574700000096
Chapter 3
Dynamic Models
Abstract This chapter addresses the dynamic models correspondent to various
mobile vehicles. The kinematic models so far addressed do not consider the effects
of the mass and inertia of the vehicles on how their velocities vary till reaching the
commanded values. In other words, in the real world a velocity reference sent to a
robot demands a certain time to be fully developed, what characterizes a velocity
tracking error, or a difference between the commanded and the effective velocities.
This is due to the dynamic behavior of the vehicle, which is here addressed.
3.1 Modeling a Unicycle Robot with Velocity Inputs
Most of the literature considers the dynamic model of a differential-drive robot when
the input are the torques applied to the wheels. However, commercial versions of such
robots, such as the Pioneer P3 series (P3-DX and P3-AT models), usually receive
velocities as inputs, which are applied to the internal servos. Specifically, they should
receive linear velocity (in the axis X r ) and angular velocity (around the axis Z r ) as
input commands, and with the suitable values of such commands this kind of vehicle
can reach any point of its navigation plane.
Considering the kinematic model described in Sect. 2.1.2, one can see that from the
velocity commands applied, the position of the vehicle can be changed accordingly.
However, as the robot has a nonzero mass, and consequently a meaningful inertia,
the velocities really developed by the robot are normally different of the commanded
ones. This characterizes what is called the velocity-tracking error. The reason for
this is that the dynamics of the vehicle has not been considered. This means that it
is necessary to take into account that the commanded velocity is reached through a
transient process, which depends on the dynamics associated to the vehicle and its
actuators. Therefore, in many applications it is necessary to consider this dynamics.
The dynamic model presented here includes the dynamics of the internal servoactuators, and therefore admits reference velocities as inputs, with the advantages
described above. For an electrically driven differential robot, as the Pioneer P3 family, for instance, considering the Newton dynamic equations and P-D electrically
driven servos, as developed in [8, 16, 17], one can write the dynamic model of the
differential robot as
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2023
M. Sarcinelli-Filho and R. Carelli, Control of Ground and Aerial Robots, Intelligent
Systems, Control and Automation: Science and Engineering 103,
https://doi.org/10.1007/978-3-031-23088-2_3
23
24
3 Dynamic Models
θ3 2 θ4 1 ω − θ1 u
0 ur e f
u̇
δ
θ1
θ1
+ u ,
=
+
δω
ω̇
0 θ12 ωr e f
− θθ5 uω − θθ6 ω
2
(3.1)
2
T
where the vector θ = θ1 θ2 θ3 θ4 θ5 θ6 contains the parameters associated to the
dynamics of the vehicle, which can be experimentally identified, as it will be discussed ahead, u and ω are the linear and angular velocities effectively developed by
T
the vehicle, u r e f and ωr e f are the commanded velocities, and the vector δ = δu δω
characterizes disturbances, such as misidentified parameters, bad velocity measurements and so on. As for the entries of the vector θ, they are characterized as [8]
θ1 =
θ2 =
1
Ra 2
[s],
mr + 2Ie + 2r k DT
ka
(2r k P T )
Ra 2
Ie d + 2r 2 Iz + mb2
ka
θ3 =
θ4 =
Ra
ka
θ5 =
θ6 =
Ra
ka
+ 2r dk D R
1
[s],
dk
(2r P R )
Ra mbr
[sm, /rad2 ],
ka 2k P T
ka kb
+ Be
Ra
1
+ 1,
r kPT
Ra mbr
[s/m], and
ka dk P R
ka kb
+ Be
Ra
d
+ 1,
2r k P R
which includes physical parameters of the robot, such as its mass m, inertia Iz ,
regarding the center of mass of the vehicle, friction coefficient Be , the radius r of the
wheels, the distance from the wheels axis to the center of mass b, and others, such as
the electrical resistance Ra of its motors, the electromotive constant kb of its motors
multiplied by the gear ratio, the constant of torque ka of its motors multiplied by the
gear ratio, and the PD servo gains k P T , k DT , k P R , k D R for translational and rotational
velocities. As one can see from these equations it is extremely difficult to determine
all these values, and thus the precise value of the parameters θi , i = 1, . . . , 6. This
is why it is much more practical to identify such values, as it will be discussed
ahead. It should be noticed that θi > 0 for i = 1, 2, 4, 6, whereas the parameters θ3
and θ5 can be negative or null, this last case corresponding to the case in which the
point of interest for control is in the center of the virtual axle (which means a = 0 in
Fig. 2.6). Therefore, (3.1) shows how the current velocities u and ω of the differentialdrive robot evolve along time to reach the given references, thus characterizing the
dynamics of the vehicle.
3.1 Modeling a Unicycle Robot with Velocity Inputs
25
From (3.1) one can explicit the values of the reference velocities u r e f and ωr e f ,
obtaining the inverse dynamic model for the differential-drive robot as
−θ1 0
δu
θ1 0 u̇
θ4 −θ3 ω u
ur e f
+
,
+
=
ωr e f
0 −θ2 δω
0 θ2 ω̇
θ5 ω θ6
ω
(3.2)
or, in a compact form,
+ Hv̇ + C(v)v = vr
(3.3)
T
T
where vr = u r e f ωr e f
is the vector of reference velocities, v = u ω is the
vector containing the current robot velocities. As for the matrices H and C(v) and
the vector , they are given by
H=
θ1 0
,
0 θ2
θ4 −θ3 ω
C(v) =
,
θ5 ω θ6
and
−θ1 0
=
0 −θ2
δu
.
δω
An important aspect to be stressed, regarding the vector of parameters θ characterizing the dynamic model of the differential-drive robot, is that it is not possible to
consider less than six parameters, as it is shown in [17].
3.1.1 Model Properties
To allow checking some properties of the model in (3.2) and (3.3), the matrix C(v)
is now rewritten by adding and subtracting the term θ3 u to its entry in the second
row and second column, such that it becomes
−θ3 ω
θ4
C(v) =
,
(3.4)
θ5 ω θ6 + (θ3 − θ3 )u
and thus the term C(v)v of (3.3) can now be written as
0 −θ3 ω
C(v)v =
θ3 ω 0
u
θ4
u
0
+
.
ω
0 θ6 + (θ5 − θ3 )u ω
(3.5)
26
3 Dynamic Models
Therefore, the model in (3.3) can be written as
+ Hv + C(v)v + F(v)v = vr ,
θ1 0
,
0 θ2
(3.6b)
θ4
0
0 θ6 + (θ5 − θ3 )u
(3.6c)
with
H=
F(v) =
(3.6a)
0 −θ3 ω
,
θ3 ω 0
and
C(v) =
(3.6d)
which is the one to be adopted along the next chapters of this text.
For such a model, some basic properties can be checked, remembering that θi > 0
for i = 1, 2, 4 and 6.
The first property is that H is a symmetric positive definite matrix, since θ1 and θ2
are positive nonzero values. Therefore, its inverse exists, and is also positive definite.
Moreover, H is constant, assuming the physical parameters of the robot, such as its
mass, moment of inertia, radius of the wheels, and so on, does not change.
The second property refers to the matrix F(v), also a diagonal square matrix.
Assuming that θ6 > −(θ5 − θ3 )u, one can conclude that it is also symmetric and
positive definite, as well as its inverse. Moreover, it can be considered constant if
θ6 |(θ5 − θ3 )u| and the physical parameters of the robot are constant. Actually, in
[17] it is shown that such conditions are fulfilled for five distinct differential-drive
robots, whose parameters have been identified. Thus, it is acceptable to consider
that this property is valid for the differential-drive robot, when regarding the model
in (3.6a).
Another property is that C(v) is a skew symmetric matrix, since CT (v) =
−C(v) [24].
The last meaningful property of the model in (3.6a) is that the mapping vr →
v is output strictly passive, whenever θ6 > −(θ5 − θ3 )u and = 0. The concept
underlying this statement is the concept of passivity, as discussed in [1] and in [5].
Such a property is quite important, since passivity is a concept adopted as an approach
to design control systems, such as in [5, 10, 12, 15, 18], among others. Therefore,
the model in (3.6a) can be used to design passivity-based controllers to be used to
control a differential-drive robot.
Except for the property of being output strictly passive, all the other properties are
easily checked. With regard to this property, Theorem 3.1.1 establishes the complete
statement.
Theorem 3.1.1 Considering = 0 and θ6 > −(θ5 − θ3 )u, and assuming that vr ∈
L 2e and v ∈ L 2e , the mapping vr → v of the dynamic model
3.1 Modeling a Unicycle Robot with Velocity Inputs
27
Hv + C(v)v + F(v)v = vr
is output strictly passive.
Proof According to [23], an operator P : L 2e → L 2e is output strictly passive if, and
only if, there are real constants β and δ so that
∀x ∈ L 2e ,
< Px, x > ≥ β + δPx22,T
(3.7)
where Px, x is a scalar correspondent to the inner product of Px and x, and Px22,T
is the squared Euclidean norm of Px when considering a time interval T . To show
that the mapping vr → v is strictly output passive, one should consider the model in
(3.6a) and verify that it fulfills the condition in (3.7), considering that v corresponds
to Px and vr corresponds to x. In the sequel, one should take the quadratic form [6]
V = 21 v T Hv and its first time derivative V̇ = v T Hv̇, yet taking into account that H
is a constant matrix. Now, using (3.6a) and considering that C(v) is skew-symmetric
and F(v) is symmetric and positive definite, V̇ becomes
V̇ = v T (vr − Cv − Fv) = v T vr − v T Fv.
(3.8)
Integrating such a value along the time interval [0, T ] one gets
T
T
v vr dt −
V̇ dt =
0
T
T
0
v T Fvdt,
0
or
T
V (T ) − V (0) =
T
v vr dt −
T
0
v T Fvdt.
(3.9)
0
By dropping the positive term V(T), it follows that
T
v vr dt − λmin (F)
−V (0) ≤
0
or
T
v2 dt,
T
0
T
v T vr dt ≥ −V (0) + λmin (F)v22,T .
0
Assuming that both vr and v ∈ L 2e , the previous equation can be written as
v, vr ≥ −V (0) + λmin (F)v22,T ,
(3.10)
28
3 Dynamic Models
where λmin (F) is the smallest eigenvalue of F. Taking into account that F > 0, such
that its eigenvalues are all positive and nonzero [6], a comparison between (3.10)
and (3.7) allows concluding that the mapping vr → v is strictly output passive.
3.1.2 Model Parameterization and Identification
T
To allow identifying the values of the parameters θ = θ1 θ2 θ3 θ4 θ5 θ6 , (3.2) can
be written as
⎡ ⎤
θ1
⎢θ2 ⎥
⎢ ⎥
⎥
u̇ 0 −ω2 u 0 0 ⎢
u
⎢θ3 ⎥ = Gθ ,
(3.11)
vr = r e f =
⎢
ωr e f
0 ω̇ 0 0 uω ω ⎢θ4 ⎥
⎥
⎣θ5 ⎦
θ6
so that applying appropriate (sufficiently exciting of the dynamics) input velocities
u r e f and ωr e f and measuring the velocities u and ω and the accelerations u̇ and ω̇
it is possible to get an estimate of the vector of parameters θ . To do that, known
signals are applied to the inputs u r e f and ωr e f , and N samples of them are stacked,
composing the vector
T
vr e f = u r e f1 ωr e f1 u r e f2 ωr e f2 . . . u r e f N ωr e f N .
Now, measuring the values u, ω, u̇ and ω̇ correspondent to the samples of the
reference signals, the recursion matrix
T
R = G1 G2 . . . G N
is formed. Notice that the entries of vr e f are known, from the applied input velocities,
and the entries of R are measured (the effective velocities of the robot are obtained
through its oddometry, whereas the accelerations can be obtained simply numerically
differentiating the velocities), so that only θ remains as unknown.
With these data one can apply the least mean squares technique [9], to obtain the
estimate
(3.12)
θ̂ = (R T R)−1 R T vr e f
of the vector of parameters characterizing the dynamic model of the differential-drive
wheeled mobile robot.
As an example, by applying linear and angular velocity references with three
sinusoidal components each, it has been identified the dynamic parameters of the
Pioneer 3DX robot, resulting in
3.2 Dynamic Model for the Car-Like Robot
29
θ1 = 0.3037; θ2 = 0.2768; θ3 = −0.0004018;
θ4 = 0.9835; θ5 = 0.003818; θ6 = 1.0725.
3.2 Dynamic Model for the Car-Like Robot
Consider the car-like robot in its simplified bicycle representation, as shown in
Fig. 3.1. The dynamic model is obtained by considering the driving forces acting
on both the front and rear wheels, namely F f and Fr , and the Newton forces balance equations related to the longitudinal and lateral coordinates, besides the rotation
around its center of gravity G. The result is that
M(u̇ − ωv) = Fr + F f cos δ − F f y sin δ,
(3.13)
M(v̇ + ωu) = Fr y + F f sin δ + F f y cos δ,
(3.14)
J ω̇ = −a Fr y + F f b sin δ + F f y b cos δ,
(3.15)
and
where u is the longitudinal velocity, v is the lateral velocity, ω is the angular velocity,
M is the mass, and J is the moment of inertia, all of them referred to the robot body.
Notice that these equations include the Coriolis and centripetal forces on the vehicle.
Fig. 3.1 Forces acting on a
car-like vehicle
30
3 Dynamic Models
The lateral or wheel-soil interaction forces F f y and Fr y can be expressed as [11,
19]
F f y = c f (δ − α f ) and Fr y = cr αr
where c f and cr are the so-called cornering or lateral stiffness factors, and α f and
αr are the slip angles, calculated as
tan(δ − α f ) =
and
tan(αr ) =
bω + v
,
u
aω − v
.
u
Therefore, in compact form such a dynamics is given by
⎡
⎤⎡ ⎤ ⎡
⎤⎡ ⎤
M 0 0
u̇
0 −Mω 0
u
⎣ 0 M 0 ⎦ ⎣ v̇ ⎦ + ⎣ Mω 0 0⎦ ⎣ v ⎦
0 0 J
ω̇
0
0 0
ω
⎡
⎤
⎡
⎤
cos δ 1 − sin δ 0 F
F
= ⎣ sin δ 0⎦ f + ⎣ cos δ 1 ⎦ f y ,
Fr
Fr y
b sin δ 0
b cos δ −a
(3.16)
or, in symbolic terms, by
Du̇ + C(u)u = Bf + JT λ,
where D is the inertial matrix, C is the matrix of Coriolis and centripetal forces, and
J is the kinematics Jacobian matrix, which, for the non-slipping condition, verifies
⎡ ⎤
u
J ⎣ v ⎦ = 0,
ω
which represents the non-holonomic conditions for this vehicle (null lateral velocity
in both wheels).
It should be emphasized that the dynamic model in (3.16) is written in terms of the
driving forces acting on the vehicle. Nonetheless, depending on the kind of driving
motors one can express it in terms of the desired input velocities, similarly to the
case of the differential-drive robot. Taking as example a car-like robot whose rear
wheels are driven by an electrical motor and in which the dominant dynamics is the
longitudinal one (assuming smooth maneuvers), from (3.16) one simply obtains
M u̇ − Mωv = Fr − sin δ F f y .
(3.17)
3.2 Dynamic Model for the Car-Like Robot
31
Now, considering the motor model with negligible voltage on the inductance one
gets
(3.18)
τr = ka (vr − kb ωr )/Ra ,
where vr is the input voltage applied to the motor, kb is equal to the voltage constant
multiplied by the gear ratio, Ra is the electric resistance, τr is the motor torque
multiplied by the gear ratio, ωr is the angular velocity of the rear wheel, and ka is
the torque constant multiplied by the gear ratio. As for the dynamic equation for the
motor-wheel system, it is given by
Ie ω̇r + Be ωr = τr − Fr Rr
(3.19)
where Ie and Be are the moment of inertia and the viscous friction coefficients of
the combined motor, rotor, gearbox, and wheel, and Rr is the nominal radius of the
rear tire. Finally, most market-available robots in general have low level PID velocity
controllers to track input reference velocities and do not allow the motor voltage to
be applied directly. To simplify the model, a PD velocity controller is considered,
which is described by
(3.20)
vr = k p (u r e f − u) − kd u̇
where u r e f is the reference velocity to be sent to the dynamic model, u is the current
longitudinal velocity of the vehicle and k p and kd are the proportional and derivative
gains of the PD controller. To further simplify the model, u̇ r e f has not been considered
in (3.20).
Combining (3.18), (3.19) and (3.20), and remembering that u = ωr Rr , one obtains
the dynamics of the servo-motor-wheel system, given by
Fr = c1 u r e f − c2 u − c3 u̇,
(3.21)
where the constants are given by
c1 =
c2 =
ka k p
,
Rr Ra
ka k p
ka kb
Be
+ 2
+ 2,
Rr Ra
Rr Ra
Rr
and
c3 =
ka kd
Ie
+ 2.
Rr Ra
Rr
Finally, combining the longitudinal rear wheel driven dynamics of the vehicle
body (3.17) and the dynamics of the servo-motor (3.21) one gets the simplified
inverse longitudinal dynamic model of the vehicle taking u r e f as input, which is
32
3 Dynamic Models
u r e f = D u̇ + η(u, ω, δ),
where
D=
and
(3.22)
c3 + M
,
c1
bω + aω
δ−
u
c2
Ma 2 sin δ
η(u, ω, δ) =
u−
ω +
cf
c1
c1
c1
,
for which the non-slipping condition v = aω has been considered.
Equation (3.22) can be directly used for inverse dynamic compensation control,
as it is explained in Chap. 4. Furthermore, such an equation can be written as a linear
one, in dynamic parameters, as
u r e f = ,
(3.23)
where
T
= u̇ u −ω2 − ωu sin δ δ sin δ
and
=
c3 +M c2 Ma c f
c1
c1 c1 c1
L
cf
c1
T
.
Therefore, using (3.23) it is possible to identify the parameters in . Such an
equation also allows designing a simple adaptive dynamic control, as discussed in
Chap. 4.
3.3 The Dynamic Model of a Quadrotor
For a quadrotor the dynamic behavior can be described as a sequence of events, start
T
ing from the input commands, or the vector u = u vx u v y u vz u vψ . The velocities
commanded by the a remote user, through a smartphone or a joystick, for instance, or
by an automatic controller designed to autonomously guide the vehicle, running as a
computer code in an external or embedded computer, are processed by the embedded
autopilot of the quadrotor, which define the rotation
speed of each one of the four
motors. Such motors generate the total thrust
f i , i = 1, . . . , 4, in the direction
normal to the body of the vehicle, as well as the torques Mi , i = 1, . . . , 4 around
the axis Z b of the vehicle. The total thrust acts on the center of gravity of the vehicle, and the torques act as represented in Fig. 2.8. Then, through the attitude of the
T
T
vehicle, the forces and torques characterized as f = f x f y f z and τ = τx τ y τz
are generated, which cause linear and angular accelerations, respectively, along and
around the correspondent axes, causing the movement of the vehicle. Such sequence
of events is represented in Fig. 3.2, which is based in a similar figure in [3].
3.3 The Dynamic Model of a Quadrotor
33
Fig. 3.2 Characterization of the dynamics of a quadrotor, from the commanded velocities to the
position ξ and attitude η. The vectors ξ̇ and η̇ represent the linear and angular velocities.
The generation of the individual velocities for the four motors is a task accomplished by the embedded autopilot, which works as a low-level controller. The propulsion model characterizes how the propulsion forces are generated by each motor,
generally assumed as proportional to the square of its rotation speed. With respect
to the diagram of Fig. 3.2, these two steps are performed by the first and second
blocks, which characterizes what is conventionally called the low level dynamic
model. As one can see, to model these two blocks is not an easy task. Moreover,
such model would be quite different for different quadrotors. However, according
to [2, 14], the input control signals are approximately related to the forces/torques
by a linear function, for small quadrotors, like the Bebop 2 one. Therefore, the low
level dynamic model of such a quadrotor can be represented by the linear func
T
T
tion u vx u v y u vz u vψ = α f 1 f 2 f 3 f 4 + β, with α ∈ R4 and β ∈ R4×1 being
constant matrices.
Still considering Fig. 3.2, the last two blocks represent what is conventionally
called the high level dynamic model. The block responsible for generating the forces
and torques that will cause the movement of the quadrotor corresponds to the way the
total thrust is converted in the forces f and torques τ in the three axes of the Cartesian
3D space. Regarding the forces generated in the global frame, they correspond to the
T
vector f = f xw f yw f zw given by
⎡
⎤ ⎡
⎤⎡ ⎤
0
cθ cψ cψ sθ sφ − sψ cφ cφ sθ cψ + sφ sψ
0
f = Rbw ⎣ 0 ⎦ = ⎣sψ cθ sφ sθ sψ + cφ cψ sθ sψ cφ − cψ sφ ⎦ ⎣ 0 ⎦ ,
f zb
f zb
−sθ
cθ sφ
cθ cφ
(3.24)
34
3 Dynamic Models
4
where f zb = i=1
f i is the total thrust, and cx and sx correspond to cos x and sin x,
respectively, such as in Sect. 2.2. As for the torques around the axes x b , y b and z b
of the body of the vehicle, the result is
⎡ ⎤
f
τφ
l l −l −l ⎢ 1 ⎥
f
2⎥
τ = ⎣ τθ ⎦ = ⎣−l l l −l ⎦ ⎢
⎣ f3 ⎦ ,
k −k k −k
τψ
f4
⎡
⎤
⎡
⎤
(3.25)
where τφ is the torque around the axis X b , which varies the roll angle, τθ is the torque
around the axis Y b , which varies the pitch angle, and τψ is the torque around the axis
Z b , which varies the yaw angle. As for l and k, they are the distance from each rotor
to the center of gravity of the quadrotor and a constant characterizing the moments
Mi , i = 1, . . . , 4 illustrated in Fig. 2.8.
The last block of the complete dynamic model of the quadrotor, the fourth one in
Fig. 3.2, corresponds to the mechanical characterization of the movement, or to the
relationship between the forces and torques and the linear and angular velocities of
the quadrotor.
T
T
Considering the position η1 = x y z and attitude η2 = φ θ ψ of the vehiT
cle, both represented in the world frame, and the linear velocities v = vxb v by vzb
T
and angular velocities ω = ωxb ωby ωzb , both in the body reference system, one
can write the correspondent Lagrangian, the difference of the kinetic and potential
energies associated to the movement of the quadrotor, as
with
T =
L = T − V,
(3.26a)
1
1 T
mv v + ω T Iω,
2
2
(3.26b)
and
V = mgz,
(3.26c)
regarding that the Z axis points upwards. The matrix I defines the inertia of the
vehicle, regarding all possible rotations, and is given by I = diag(Ix x , I yy , Izz ), with
the entries out of the main diagonal null, considering that the body of the quadrotor
is axisymmetric, what also implies that Ix x = I yy [13, 21]. Now, applying the EulerLagrange constraint, as in [3], and expanding the result, one gets that [13]
m[v̇xb − v by ωzb + vzb ωby − g sin θ ] = 0,
(3.27a)
m[v̇ by − vzb ωxb + vxb ωzb + g cos θ sin φ] = 0,
(3.27b)
3.3 The Dynamic Model of a Quadrotor
35
m[v̇zb − vxb ωby + v by ωxb + g cos θ cos φ] = f zb ,
(3.27c)
Ix x ω̇xb + (Izz − I yy )ωby ωzb = τφ ,
(3.27d)
I yy ω̇by + (Ix x − Izz )ωzb ωxb = τθ ,
(3.27e)
Izz ω̇zb = τψ ,
(3.27f)
with all the velocities referred to the body frame.
However, for the purpose of designing a controller for the quadrotor, it is more
convenient to use the dynamic equations written in the world frame. To do that,
−1 w
ẋ . In addition, one can take
recall (2.22), or ẋw = Rbw vb , so that vb = Rbw
the time derivative of (2.22) to obtain ẍw = Rbw v̇b + Ṙbw vb , from where results that
−1 w
ẍ − Ṙbw vb . Similarly, regarding (2.23), or w = Hωb , one gets the
v̇b = Rbw
b
¨ w − Ḣωb ). Then, using such relationships one gets, now
relationship ω̇ = H−1 (
considering that the variables are all referred to the world frame [13], and including
the air drag effect [25],
m ẍ = (cos φ sin θ cos ψ + sin φ sin ψ) f zb − d1 ẋ,
(3.28a)
m ÿ = (cos φ sin θ sin ψ − sin φ cos ψ) f zb − d2 ẏ,
(3.28b)
m z̈ = (cos φ cos θ ) f zb − mg − d3 ż,
(3.28c)
Ix x θ̈ ≈ τφ − (Izz − I yy )θ̇ ψ̇ − d4 φ̇,
(3.28d)
I yy φ̈ ≈ τθ − (Ix x − Izz )φ̇ ψ̇ − d5 θ̇ ,
(3.28e)
Izz ψ̈ ≈ τψ − d6 ψ̇,
(3.28f)
and
where m is the mass of the vehicle, g is the gravity acceleration, ẋ, ẏ and ż are
the linear velocities along the axes X w , Y w and Z w , ẍ, ÿ and z̈ are the respective
accelerations, φ̇, θ̇ and ψ̇ are the angular velocities around the axes X w , Y w and Z w ,
and φ̈, θ̈ and ψ̈ are the respective angular accelerations. As for di , i = 1, . . . , 6,
and f zb , they are the air drag coefficients and the total thrust generated by the four
motors of the quadrotor.
Nonetheless, according to [4], the autopilot of the AR.Drone quadrotor is designed
considering a similar model to achieve flight stabilization and response to the input
control signals, which is also valid for the Bebop 2 quadrotor. However, the access
to the firmware is restricted to end users. Regardless of this, it is possible to take
advantage of the presence of the autopilot, when the vehicle is equipped with an
autopilot, which is the case of the AR.Drone 2.0 and the Bebop 2 quadrotors, to
36
3 Dynamic Models
model the dynamic response
of them as a function of the high-level control signals,
packed in the vector u = u vx u v y u vz u vψ . The stabilization of the quadrotor remains
as a responsibility of the firmware, but the vehicle response to the input commands
can be modeled using a simple mathematical description, quite useful for the purpose
of designing high-level flight controllers [21, 22].
In such a context, a simpler model for a quadrotor equipped with an autopilot is
v̇xb = K 1 u vx − K 2 vxb ,
(3.29a)
v̇ by = K 3 u v y − K 4 v by ,
(3.29b)
v̇zb = K 5 u vz − K 6 vzb ,
(3.29c)
v̇ψb = K 7 u vψ − K 8 vψb ,
(3.29d)
and
where all the velocities and input commands are in the body frame. In a compact
form, such equations can be written as
v̇b = f1 u − f2 vb ,
(3.30)
where f1 = diag(K 1 , K 3 , K 5 , K 7 ) and f2 = diag(K 2 , K 4 , K 6 , K 8 ) are diagonal matrices whose entries can be identified through a procedure similar to the one described
in Sect. 3.1.2. Notice that this is a fourth-order linear state equation, correspondent
to a system with four inputs, for which the state variables are the linear velocities in
the three axes of the body frame and the yaw velocity.
Using the concept of equivalence transformation [7], one has, considering the new
state vector
⎡ w⎤ ⎡
⎤⎡ b⎤
vx
ẋ
cos ψ − sin ψ 0 0
⎢ ẏ w ⎥ ⎢ sin ψ cos ψ 0 0⎥ ⎢ v by ⎥
w
b
⎥ ⎢
⎥⎢ ⎥,
v = Pv or ⎢
⎣ ż w ⎦ = ⎣ 0
0
1 0⎦ ⎣ vzb ⎦
0
0
01
vψb
ψ̇ w
according to (2.26), which already includes the near hover condition. Notice that the
matrix P is nonsingular for all values of ψ. Then, considering the new state vector
one can write, according to [7],
vw , v̇w = Pf1 u − Pf2 vb , or v̇w = F1 u − F2 vb
v̇w = Pf1 u − Pf2 P−1 Pvb
what corresponds, expanding the matrices F1 and F2 , to
3.3 The Dynamic Model of a Quadrotor
⎡
⎤ ⎡
ẍ w
K 1 cos ψ
⎢ ÿ w ⎥ ⎢ K 1 sin ψ
⎢ w⎥=⎢
⎣ z̈ ⎦ ⎣
0
0
ψ̈ w
⎡
K 2 cos ψ
⎢ K 2 sin ψ
−⎢
⎣
0
0
37
−K 3 sin ψ
K 3 cos ψ
0
0
0
0
K5
0
−K 4 sin ψ
K 4 cos ψ
0
0
0
0
K6
0
⎤⎡ ⎤
0
u vx
⎢ u vy ⎥
0⎥
⎥⎢ ⎥
0 ⎦ ⎣ u vz ⎦
u vψ
K7
⎤⎡ b⎤
vx
0
⎢ v by ⎥
0⎥
⎥⎢ ⎥,
0 ⎦ ⎣ vzb ⎦
K8
vψb
(3.31)
or, in terms of the individual variables
and
ẍ w = K 1 cos ψu vx − K 3 sin ψu v y − K 2 cos ψvxb + K 4 sin ψv by ,
(3.32a)
ÿ w = K 1 sin ψu vx + K 3 cos ψu v y − K 2 sin ψvxb − K 4 cos ψv by ,
(3.32b)
z̈ w = K 5 u vz − K 6 vzb ,
(3.32c)
ψ̈ w = K 6 u vψ − K 6 vψb .
(3.32d)
An important remark, for the two last equations above, is that considering the near
hover situation the axes Z b and Z w are in parallel, meaning that ż w = vzb and ψ̇ w =
T
T
vψ , so that vxb v by vzb vψb becomes vxb v by ż w ψ̇ w in (3.31).
To conclude this section, Table 3.1 shows the constants K i , i = 1, . . . , 8, identified for the quadrotors AR.Drone 2.0 and Bebop 2, following the procedure outlined
in Sect. 3.1.2 and detailed in [21] for the AR.Drone 2.0 and in [20] for the Bebop 2
quadrotor.
Table 3.1 Constants identified to model the AR.Drone 2.0 (without the indoor protective hull) and
Bebop 2 quadrotors
AR.Drone 2.0
Bebop 2
K1
K2
K3
K4
K5
K6
K7
K8
5.00
0.30
5.50
0.10
0.55
0.70
1.45
0.70
0.84170
0.18227
0.83540
0.17095
3.96600
4.00100
9.85240
4.72950
38
3 Dynamic Models
3.4 Concluding Remarks
This chapter presents dynamic models for the differential-drive and car-like wheeled
mobile robots, as well as for quadrotors equipped with an on-board autopilot. In the
first cases, it was stressed the importance to include the dynamics of the actuators,
thus obtaining a model whose inputs are reference velocities, as usual in commercial robots. Regarding the quadrotors, a simplified dynamic model, valid under the
assumption that the quadrotor is flying in a near-hover condition, what corresponds
to slight inclinations around the axes X b and Y b . Such models are quite important
when designing high-level controllers to guide these vehicles autonomously, as it
will be discussed in Chap. 4.
The technique used to design such controllers uses a controller implemented as
two control loops, an inner one and an outer one, in which the inner control loop is
used exactly to compensate for the vehicle dynamics, introducing a new dynamics
that is more suitable for the application.
In addition, the models here presented can also be used to design controllers based
on a single control loop, also based on the inverse dynamics technique, as discussed
in Chap. 4.
Moreover, when dealing with heavier robots, whose dynamic behavior demands
more acceleration time to reach the desired velocities, which can cause meaningful
differences between the commanded velocities and those effectively developed by
the vehicle, such models are quite useful.
References
1. Bao J, Lee PL (2007) Dissipativity and passivity. In: Bao J, Lee PL (eds) Process control—the
passive systems approach. Springer, London, pp 5–41. https://doi.org/10.1007/978-1-84628893-7_2
2. Bernard M, Kondak K, Meyer N, Zhang Y, Hommel G (2007) Elaborated modeling and control
for an autonomous quad-rotor. In: Proceedings of the 22nd international unmanned air vehicle
systems Cconference. Bristol, UK, pp 2375–2380
3. Brandão AS, Filho MS, Carelli R (2013) High-level underactuated nonlinear control for
rotorcraft machines. In: 2013 IEEE international conference on mechatronics (ICM), pp 279–
285. https://doi.org/10.1109/ICMECH.2013.6518549
4. Bristeau PJ, Callou F, Vissiere D, Petit N (2011) The navigation and control technology inside
the AR.Drone micro UAV. In: Proceedings of the 18th IFAC world congress, vol 18. Milan,
Italy
5. Brogliato B, Maschke B, Lozano R, Egeland O (2007) Passivity-based control. In: Dissipative
systems analysis and control. Springer, London, pp 1279–1291. https://doi.org/10.1007/9781-84628-517-2_7
6. Chen CT (1999) Linear algebra. In: Chen CT (ed) Linear systems theory and design, 3rd ed.
Oxford University Press, pp 44–78
7. Chen CT (1999) State-space solutions and realizations. In: Chen CT (ed) Linear systems theory
and design, 3rd ed. Oxford University Press, pp 86–116
References
39
8. de la Cruz C, Carelli R (2008) Dynamic model based formation control and obstacle avoidance of multi-robot systems. Robotica 26(3):345–356. https://doi.org/10.1017/
S0263574707004092
9. Diniz PSR (2020) The least-mean-square (lms) algorithm. In: Diniz PSR (ed) Adaptive filtering,
Chap. 3. Springer International Publishing. https://doi.org/10.1007/978-3-030-29057-3_3
10. Dong Y, Chopra N (2019) Passivity-based bilateral tele-driving system with parametric uncertainty and communication delays. IEEE Control Syst Lett 3(2):350–355. https://doi.org/10.
1109/LCSYS.2018.2879952
11. Lucet E, Grand Ch, Salle D, Bidaud P (2008) Stabilization algorithm for a high speed car-like
robot achieving steering maneuver. In: 2008 IEEE international conference on robotics and
automation. Pasadena, GA, USA, pp 2540–2545
12. Hatanaka T, Igarashi Y, Fujita M, Spong MW (2012) Passivity-based pose synchronization
in three dimensions. IEEE Trans Autom Control 57(2):360–375. https://doi.org/10.1109/TAC.
2011.2166668
13. Kim J, Kang MS, Park S (2009) Accurate modeling and robust hovering control for a quad-rotor
VTOL aircraft. J Intell Robot Syst 57(1):9. https://doi.org/10.1007/s10846-009-9369-z
14. Kondak K, Bernard M, Meyer N, Hommel G (2007) Autonomously flying vtol-robots: modeling
and control. In: Proceedings 2007 IEEE international conference on robotics and automation,
pp 736–741. https://doi.org/10.1109/ROBOT.2007.363074
15. Lanzon A, Petersen IR (2008) Stability robustness of a feedback interconnection of systems
with negative imaginary frequency response. IEEE Trans Autom Control 53(4):1042–1046.
https://doi.org/10.1109/TAC.2008.919567
16. Martins FN, Celeste WC, Carelli R, Sarcinelli-Filho M, Bastos-Filho TF (2008) An adaptive dynamic controller for autonomous mobile robot trajectory tracking. Control Eng Prac
16(11):1354–1363. https://doi.org/10.1016/j.conengprac.2008.03.004
17. Martins FN, Sarcinelli-Filho M, Carelli R (2017) A velocity-based dynamic model and its
properties for differential drive mobile robots. J Intell Robot Syst 85(2):277–292. https://doi.
org/10.1007/s10846-016-0381-9
18. Ortega R, van der Schaft A, Castanos F, Astolfi A (2008) Control by interconnection and
standard passivity-based control of port-hamiltonian systems. IEEE Trans Autom Control
53(11):2527–2542. https://doi.org/10.1109/TAC.2008.2006930
19. Pacejka HB (2006) Tyre and vehicle dynamics, 2nd edn. Elsevier, UK
20. Pinto AO, Marciano HN, Bacheti VP, Moreira MSM, Brandão AS, Sarcinelli-Filho M (2020)
High-level modeling and control of the Bebop 2 micro aerial vehicle. In: Proceedings of the
2020 international conference on unmanned aircraft systems. IEEE, Athens, Greece, pp 939–
947. https://doi.org/10.1109/ICUAS48674.2020.9213941
21. Santana LV, Brandão AS, Sarcinelli-Filho M (2016) Navigation and cooperative control using
the AR.Drone quadrotor. J Intell Robot Syst 84(1), 327–350. https://doi.org/10.1007/s10846016-0355-y
22. Santana LV, Brandão AS, Sarcinelli-Filho M, Carelli R (2014) A trajectory tracking and
3d positioning controller for the AR.Drone quadrotor. In: 2014 international conference on
unmanned aircraft systems (ICUAS). IEEE, pp 756–767. https://doi.org/10.1109/ICUAS.2014.
6842321
23. van der Schaft A (2017) Small-gain and passivity for input-output maps. In: L2-gain and
passivity techniques in nonlinear control, 3rd ed.. Springer, Cham, pp 13–32. https://doi.org/
10.1007/978-3-319-49992-5_2
24. Szabo FE (2015) S. In: Szabo FE (ed) The linear algebra survival guide. Academic Press,
Boston, pp 320–377. https://doi.org/10.1016/B978-0-12-409520-5.50026-6
25. Villa DKD, Brandão AS, Carelli R, Sarcinelli-Filho M (2021) Cooperative load transportation
with two quadrotors using adaptive control. IEEE Access 9:129148–129160. https://doi.org/
10.1109/ACCESS.2021.3113466
Chapter 4
Motion Control
Abstract This chapter explores two basic techniques to design a controller to guide
differential drive wheeled robots and quadrotors, namely the single-loop dynamic
control system and the inner-outer loops control system, ans shows that they can be
adopted to accomplish positioning tasks, trajectory-tracking tasks and path-following
tasks, with quite small adaptations. It also shows how to design an adaptive dynamic
compensator to be used as the inner control loop, which is quite useful in situations in
which the robot transports loads, which changes its dynamic parameters, as well as to
compensate for any misidentified dynamic parameter or external disturbances. The
focus, in both designs, is the inverse kinematics technique to design the outer loop
correspondent to the inner-outer loops structure, and the inverse dynamics technique
to design the inner loop of the inner-outer loops structure and the single-loop dynamic
controller, which consists in inverting the nonlinear kinematics or dynamics, thus
generating a linear closed-loop system equations.
4.1 Introduction
As mentioned in the end of Chap. 2, applying suitable velocity commands to the
mobile robot, either a wheeled one or an aerial one, one can guide it to reach any
desired point in its navigation space. This is what the literature calls motion control.
As one can suppose, there are different ways to control the movement of a robot,
depending on what one wants the robot do.
In this chapter the most important ways to control the movement of a mobile robot
are presented, and controllers suitable to guide the vehicle in the cases addressed are
designed. The focus is on the use of the technique of inverse kinematics [2] to
design such controllers, taking into account the kinematic models of the vehicles.
We also show that this method is generic enough to allow controlling the vehicles
when executing any kind of movement. Therefore, we are going to present a unified
approach to control the movement of a mobile robot.
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2023
M. Sarcinelli-Filho and R. Carelli, Control of Ground and Aerial Robots, Intelligent
Systems, Control and Automation: Science and Engineering 103,
https://doi.org/10.1007/978-3-031-23088-2_4
41
42
4 Motion Control
4.2 Basic Control Objectives
One can classify the movement of a mobile robot in one of the following possibilities:
posture control, trajectory-tracking control and path-following control.
Posture control means to control the position and the orientation of the vehicle to
reach a desired position and orientation (posture refers to position plus orientation).
Regarding the differential drive wheeled robot, for instance, one can split the task
in two subtasks, namely to guide the robot to reach a desired position (xd , yd ), in
the navigation plane, starting from any initial position (x, y), in the plane, and to
rotate around its Z b axis to correct the orientation, after reaching the desired position.
Notice that this is possible just for this specific robot, which can turn around without
changing its position. Another important aspect, in this case, is that it does not matter
the path the robot followed to reach the target point. The problem specifies just the
point to be reached and the desired orientation at the destination, not including any
path the robot should follow.
The second possibility is the so called trajectory-tracking control, in which the
robot should track a given trajectory. By a trajectory we mean a vanishing point, which
is a point in the plane, for a ground robot, or in the 3D space, in the case of aerial
robots, whose position varies along time. This means that the desired destination
is now the point (xd (t), yd (t)) or (xd (t), yd (t), z d (t)), which moves with velocities
(ẋd (t), ẏd (t)) or (ẋd (t), ẏd (t), ż d (t)). In this case, the robot should develop velocities
greater than those of the trajectory to get over it, and, in such a condition, reduce its
velocity to match the velocity of the trajectory, in order to stay over it.
The third possibility is to follow a given path, what is quite similar to the behavior
of a person driving a car in a road. The driver should keep any desired velocity,
always tangent to the path, to keep itself in the road. Otherwise, or if the velocity
is not tangent to the path, the vehicle goes out of the road. Then, to follow a path
means, as the first step, to consider the point over the given path that is closest to the
robot, and guide the robot to reach such a point. In the sequel, the second step is to
make the robot to develop a velocity that is always tangent to the path, regardless of
its magnitude. This means that the magnitude of the velocity along the path is freely
defined. This means that one can select any velocity, including zero, what means that
the vehicle stops for a while over the path, such as when a car stops in a red traffic
light.
Notice the main difference, in the three cases: in posture control only a desired
destination is defined, and no path or velocity is specified. On the other hand, in
trajectory-tracking the velocity of the vehicle, in terms of both magnitude and direction, is defined by the trajectory being tracked, whereas in path-following the velocity
of the vehicle is defined by the designer, restricted to be always tangent to the path
being followed.
These three cases can be exemplified by simple daily situations. When one takes
any bus which passes by your working place and sleep during the trip you do not
know neither how long it took to get at your work nor the route the bus followed.
Notice that the objective, namely to arrive at your workplace, has been accomplished.
4.3 Inner-Outer Controllers
43
Regarding trajectory-tracking, an example can be a bus driver, who knows the exact
instants the bus should arrive each stop. This means that the driver should be aware
of the timetable to perfectly accomplish the task of being at each bus stop in the
right time. Finally, to exemplify a situation of path-following, consider that one is
driving his/her car along a road. Sometimes he/she can accelerate, to move faster,
and sometimes should brake, to obey velocity restrictions along the road, or even to
stop in a red traffic light. Anyway, he/she follows the path, in this case the road, in
more or less time, what does not matter at all, because there is no time constraint in
this case.
4.3 Inner-Outer Controllers
The controllers to be designed to guide the robot in posture control, trajectorytracking control, and path-following control will use the kinematic models of Chap. 2
to command the vehicles to develop the desired velocities in the world frame. Thus,
the so called kinematic controllers are obtained. However, as the kinematic models
do not consider the mass and the inertia of the robots being controlled, there is no
guarantee that the velocity commands the kinematic controller sends to the robots
will be effectively developed. This creates what is called a velocity-tracking error:
there is a difference between the velocities sent by the kinematic controller and the
velocities effectively developed by the robots.
To compensate for such velocity-tracking error a second controller, or a compensator, takes care of this velocity-tracking error, so that one has now two control levels,
which are an internal loop to increase/decrease the acceleration to compensate for the
velocity error, and an external loop to change the velocity of the vehicle to allow it to
move accordingly. Therefore, we have a controller composed of two closed-loops,
an inner one, the so called dynamic controller or dynamic compensator, and an outer
one, the so called kinematic controller. This generates what is called an inner-outer
loops controller [7, 12], also known as cascade controller [4]. The reason for this
is that the outer control loop effectively generates the references (setpoint) for the
inner control loop, thus configuring a cascaded structure, as depicted in Fig. 4.1.
An important aspect, when using inner-outer control loops is that although having
just a single output, in the case of Fig. 4.1 the position of the vehicle xw , one should
also have information about the velocities ẋb . For the case of the robots analyzed in
this book this is not a problem, since in general one has access to their position and
velocity. A second aspect is that two controllers need to be tuned.
In this book we will adopt this strategy of designing two controllers according to
the configuration of Fig. 4.1. The two controllers will be a kinematic one, the outer
loop, and a dynamic one, the inner loop, this last one responsible for stabilizing the
attitude of the vehicle (the orientation, when applied to a wheeled robot navigating
in the X w Y w plane).
44
4 Motion Control
Fig. 4.1 A sketch of an inner-outer controller, also known as a cascade controller
4.4 Inverse Kinematics Technique
When dealing with motion control one wants to control the velocity of a vehicle
in order to guarantee that it reaches a desired position, tracks a specified trajectory
or follows a given path, as discussed in Sect. 4.2. Anyway, the controller should
generate velocity commands to be delivered to the vehicle, in order to reduce the
position error. Therefore, the relation between the velocity commands and the robot
position/orientation is a kinematic relationship, not taking into account the dynamics
of the vehicle affecting the position error x̃w = xdw − xw along time. This means
that the temporal behavior of such an error is described by a first order differential
equation, which is the characteristic equation obtained when closing the loop with a
controller.
Figure 4.2 shows the principle behind the technique of inverse kinematics [9, 15,
16]. The idea is that the system to be controlled is described by a nonlinear kinematic
model, and the controller uses the inverse of the kinematic model of the vehicle to
compensate for the nonlinearity, so that the resulting closed loop equation describes
a linear behavior of the position error. In this case, the premise is that the inverse of
the kinematic model exists, or that the matrix describing the kinematic model should
have a nonzero determinant.
Therefore, considering that the kinematic models of the robots analyzed in Chap. 2
are of the form
(4.1)
ẋw = Avb ,
where A is the matrix of direct kinematics and vb is the vector of velocity commands
to the robot, one can adopt the generic control law
vd = A−1 ν,
(4.2)
4.4 Inverse Kinematics Technique
45
Fig. 4.2 Diagram illustrating a closed-loop control system designed using the inverse kinematics
technique
where ν is an auxiliary velocity vector, which can be defined as
ν = vdw + K p x̃w ,
(4.3)
where vdw represents a desired velocity, which will be defined according to the control
objective-position control, trajectory-tracking control or path-following control—
and K p is a gain matrix arbitrarily selected among definite positive ones. A simple
and intuitive selection is to take K p as a diagonal matrix with positive nonzero entries
(a positive definite diagonal matrix). Notice that to implement such a control law A
should be invertible. Otherwise, such a controller can not be adopted.
Therefore, the inverse kinematics control law can be written as
vd = A−1 (vdw + K p x̃w ).
(4.4)
Now, assuming that the command vd is attained instantaneously, that is vd =
vb , what means a perfect velocity tracking, therefore ignoring the dynamics of the
vehicle, one gets the closed-loop equation
or
ẋw = AA−1 (vdw + K p x̃w ) = vdw + K p x̃w ,
(4.5)
vdw − ẋw + K p x̃w = 0,
(4.6)
combining (4.1) and (4.4). Notice that this equation characterizes a linear behavior
in terms of the control error, since K p is a constant matrix, which is a consequence
of the use of the inverse kinematics to compensate for the nonlinear kinematics. This
is what characterizes the feedback linearization technique [9, 11, 16].
46
4 Motion Control
Fig. 4.3 Illustrating the smooth saturation provided by the function tanh
Before discussing the application of this technique, it is worthy mentioning that
the control law in (4.4) can be modified to
vd = A−1 ν = A−1 (vdw + K p Ks tanh(Ks−1 x̃w )),
(4.7)
to include a smooth saturation function, the tanh one, in order to limit the magnitude
of the control signals when the error x̃w is too large, to take into account the physical
limits of the robot actuators. The matrix Ks is a real matrix, usually selected as a
diagonal one with positive values. The way tanh acts is illustrated in Fig. 4.3, where
one can see how this function smoothly bounds its value when the argument is too
large.
When the control error x̃w is small, the term K p Ks tanh(Ks−1 x̃w ) becomes approximately K p x̃w , meaning that the controller has a proportional gain given by K p . On
the other hand, when x̃w is large enough to saturate the tanh function, that term
becomes approximately K p Ks which represents its saturation value. Therefore, by
suitably selecting the matrices K p and Ks , the proportional gains and the saturation
values can be specified.
Two important remarks should be emphasized, with respect to the generic control
law of (4.4). The first one is that the variable vdw should be selected according to
the control objective, as shown in the following sections. Therefore (4.4) represents
a generalized inverse kinematics control law to satisfy different control objectives.
The second remark is that it will be convenient, in the sequel, to consider the vector
T
ν of (4.3) split in two sub-vectors, namely ν = ν p ν o , where ν p is the auxiliary
control vector related to the robot position x p in the Cartesian space, and ν o is the
4.5 Trajectory-Tracking Control
47
one related to the orientation of the vehicle xo in the same coordinate system. This
consideration will be useful when discussing the design of control laws being applied
to non-holonomic robots.
4.5 Trajectory-Tracking Control
When dealing with a trajectory-tracking task, the kinematic controller of the structure
of Fig. 4.1 should guarantee that the velocity of the robot be high enough to reduce the
error between the current robot position and the desired trajectory to zero, although
the trajectory acts in the sense of increasing such an error. Therefore, if the robot is
out of the desired trajectory it should develop a velocity that is the velocity of the
trajectory plus an increment that is a function of the instantaneous position error.
Moreover, when the robot reaches the trajectory it should continue moving, now
with the same velocity of the trajectory. This way, the kinematic controller should
generate velocity commands to be sent to the robot accordingly.
Let us consider first the case of omnidirectional robots such as the wheeled
omnidirectional ones, or the quadrotor vehicles. The velocity commands are, in this
book, generated considering the technique of inverse kinematics, by taking in (4.4)
the desired robot velocity for trajectory tracking to be vdw = ẋdw , so that the adopted
control law is
(4.8)
vd = A−1 (ẋdw + K p x̃w ),
where A−1 is the matrix of inverse kinematics of the robot, K p is a matrix of gains,
diagonal and positive definite, x̃w is the position error xdw − xw , and ẋdw is the time
derivative of the trajectory being tracked (the block “Processing’’ in Fig. 4.2 is now
the time-derivative operator). This way, the velocity of the robot will be greater than
that of the trajectory, if it is out of the trajectory, and equal to that of the trajectory
otherwise.
With respect to the stability proof for this controller, the closed loop equation of
(4.6) becomes
(4.9a)
ẋdw − ẋw + K p x̃w = 0,
from where
x̃˙ w + K p x̃w = 0,
(4.9b)
which is the equation describing the time evolution of the position error x̃w (t). Notice
that it characterizes a linear behavior of such error, since K p is a constant matrix,
which is a consequence of the use of the inverse kinematics to compensate for the
nonlinear kinematics, as mentioned above.
An important detail of (4.9) is that selecting K p as diagonal and positive definite,
all the error components are decoupled, and each one of the entries of the vector x̃w
goes to zero exponentially, showing that the kinematic controller based on inverse
kinematics is asymptotically stable, in the sense of Lyapunov [9]. As a matter of
48
4 Motion Control
fact, this asymptotic stability can be proven for any K p positive definite by taking
the Lyapunov candidate function V (x̃w ) = 21 x̃wT x̃w , and its time derivative V̇ (x̃w ) =
x̃wT x̃˙ w . Now, taking x̃˙ w = −K p x̃w from (4.9) one gets V̇ (x̃w ) = −x̃wT K p x̃w , which
is a negative definite function, showing the asymptotic stability of the closed loop
system when adopting the controller of (4.8).
Now, if we use the saturation controller option given in (4.7), for trajectory tracking
it becomes
(4.10)
vb = A−1 (ẋdw + K p Ks tanh(Ks−1 x̃w )).
Under such a modification, it is important to analyze how does tanh affect the stability
of the closed-loop system. Actually, using (4.10) instead of (4.8), the stability proof is
changed just when obtaining the time derivative of the Lyapunov candidate function,
which will become V̇ (x̃w ) = −x̃wT K p Ks tanh(Ks−1 x̃w ). However, as tanh is an odd
function, as one can see from Fig. 4.3, the product x̃wT K p Ks tanh(Ks−1 x̃w ) is positive
for all x̃w = 0, so that V̇ (x̃w ) is negative definite, thus guaranteeing the asymptotic
stability of the closed loop system.
In the sequel two examples illustrate the application of the trajectory-tracking
controller to omnidirectional robots.
Example 1 Wheeled omnidirectional robot
In this example a simulation is presented, considering an omnidirectional threewheels robot, as depicted in Fig. 2.3. The simulation corresponds to a desired tra
T
jectory defined as xd = 5 cos(2π t/60) m 5 sin(2π t/60) m , with the desired orientation ψ(t) = 0, and the robot initially positioned in the coordinates x0 = 2 m
and y0 = 3 m, with orientation ψ0 = 0 rad. As for the controller gain and saturation
matrices, they are set to K p = 7.5I and Ks = I, with I being the 6 × 6 unit matrix.
The simulation runs for a time of 50 s, with sampling time of 50 ms.
Figures 4.4 and 4.5 show the results of such a simulation. As one can see, the
robot reaches the trajectory and continues tracking it during the navigation, with the
error between the desired trajectory and the robot current position converging to zero
as the current position of the robot becomes closer to the desired trajectory.
Example 2 Quadrotor in a near-hover condition
Continuing to illustrate the application of the trajectory-tracking controller to an
omnidirectional robot, we consider now a quadrotor in a near-hover condition (see
Sect. 2.2). Using the smooth saturation function tanh of (4.10) one gets,
vd = A−1 ν = A−1 (ẋdw + K p Ks tanh(Ks−1 x̃w )),
(4.11)
with A given by (2.26). In this case one should control the linear velocities ẋ w , ẏ w
and ż w and the yaw velocity ψ̇ w as well, for which the respective components of the
auxiliary velocity vector ν are given by,
vd x = ẋdw + k px tanh x̃ w ,
(4.12a)
4.5 Trajectory-Tracking Control
49
Fig. 4.4 Desired and effective routes for a simulated omnidirectional robot when tracking a circular
trajectory
Fig. 4.5 Positions and position error for the simulated omnidirectional robot when tracking a
circular trajectory
50
4 Motion Control
Fig. 4.6 The experimental setup adopted to run the experiment in outdoor environment
and
vdy = ẏdw + k py tanh ỹ w ,
(4.12b)
vdz = ż dw + k pz tanh z̃ w ,
(4.12c)
vdψ = ψ̇dw + k pψ tanh ψ̃ w .
(4.12d)
To illustrate this example, a real experiment correspondent to a trajectory-tracking
performed by a Bebop 2 quadrotor in an outdoor environment is shown. The experimental setup adopted to run the experiment is shown in Fig. 4.6.
Part of such a setup is the Bebop 2 quadrotor, running its embedded software,
compatible with the Autonomy ROS (Robot Operating System)1 library. The feedback of the robot position/orientation is the result of a data fusion procedure run in
the embedded firmware of the quadrotor, involving raw data provided by an inertial
measurement unit (IMU) and a GPS reception module. Such data is made available
in a 5 Hz rate, and is read by a laptop running a Linux operating system, over which
ROS runs. Another laptop, running the Windows 10 operating system is used, in
which a Matlab script correspondent to the control system runs. The two laptops
1
See https://www.ros.org/.
4.5 Trajectory-Tracking Control
51
are interconnected via RJ45 cables, so that the Matlab script receives the sensory
data from the computer running ROS, and sends the calculated velocity commands
to the vehicle through the ROS node (this information exchange is represented by
the dashed arrows in Fig. 4.6). The router shown in the figure establishes the communication between the two laptops, though the RJ45 cables, and with the Bebop 2
through a wi-fi channel, whereas the joystick is available to allow the human operator
to take control of the quadrotor in case of any trouble.
Regarding the control system, an important detail is that just the outer loop of
the controller shown in Fig. 4.1 is adopted, which corresponds to suppress the inner
loop of such a figure. In other words, the velocity command vd is directly sent to
the vehicle, without passing by a second controller. As for the correspondent gain
T
values, they are selected as K p = 1, 1, 3, 1 , whereas the saturation values are
T
given by Ks = 1, 1, 1, 1 . In terms of the task being accomplished, the desired
trajectory is a circle described at the constant altitude of 18 m, characterized as
T
xdw = xdw (t) ydw (t) z dw (t) ψdw (t) ,
where
xdw (t) = 2.5 cos
ydw (t)
2π t
= 2.5 sin
60
m,
(4.13b)
m,
(4.13c)
z dw (t) = 18 m,
(4.13d)
ψdw = 0◦ ,
(4.13e)
T
ẋdw = ẋdw (t) ẏdw (t) ż dw (t) ψ̇dw (t) ,
(4.14a)
which corresponds to
ẋdw (t) = −
ẏdw (t)
and
2π t
60
and
so that
(4.13a)
2π t
π
sin
,
12
60
2π t
π
cos
,
=
12
60
(4.14b)
(4.14c)
ż dw (t) = 0,
(4.14d)
ψ̇dw (t) = 0.
(4.14e)
52
4 Motion Control
Fig. 4.7 The path really followed by the Bebop 2 and the desired one, for the experiment of
trajectory-tracking
Fig. 4.8 Position/orientation
errors for the Bebop 2
tracking a circular trajectory
The results of the experiment are summarized in Figs. 4.7 and 4.8, which show
the path really followed by the quadrotor, besides the desired one, in a 3D and a top
views and the position/orientation errors, respectively. As one can see, the quadrotor
tracked the desired trajectory with small errors, after some initial delay to reach
the trajectory (remember that the trajectory is 18 m above ground, and the quadrotor
starts tracking it from the initial position/orientation of (0 m, 0 m, 1.2 m, 0◦ ), because
the designed controller starts working after the takeoff, a procedure included in the
firmware of the quadrotor, whose result is to put the quadrotor in that position, with
that orientation.
Now, let us consider the case of non-holonomic robots. The control law is the
same (4.2) as proposed for inverse kinematics control, using the extended kinematic
4.5 Trajectory-Tracking Control
53
Fig. 4.9 A sketch of the
nonholonomic
differential-drive robot when
the point of interest for
control is a generic one,
rigidly coupled to the robot
platform
model as presented in 2.1.4. Now, regarding the auxiliary control signal ν, we recall
T
Remark 2 in Sect. 4.4, where this vector is split in two sub-vectors ν = ν p ν o
with ν p being the auxiliary control related to the robot position x p in the Cartesian
space, and ν o is the one related to the orientation of the vehicle xo in the same
coordinate system. In the case of non-holonomic robots, we define ν p using Eq.
v
v
for trajectory tracking, being xdp
the desired position velocities
(4.3) with vdw = xdp
of the robot. Regarding ν o it will be defined respecting the non-holonomic constraints
of the robot.
In the sequel we present examples to illustrate the design and application of the
trajectory-tracking controller to a non-holonomic mobile robot. Let as first consider
the case of a differential-drive wheeled mobile robot with the point of interest for
control as illustrated in Fig. 2.6, repeated here for convenience.
In this example two distinct cases are addressed, namely a cos α = 0 and a = 0, this
last case corresponding to the point of interest for control just in the middle of the
virtual axle linking the robot wheels (see Fig. 4.9).
Example 3 Case 1: Differential-drive robot with a cos α = 0
For this case the point of interest for control is the point (xc , yc ) in Fig. 4.9, for which
a = 0 and α = 90◦ , so that a cos α = 0. The control law of (4.2) can be written as
vd = A−1 ν,
⎡
(4.15)
⎤
cos ψ sin ψ a sin α
where A−1 = ⎣− sin ψ cos ψ −a cos α ⎦ is the matrix of inverse extended kinemat0
0
1
T
ics for this case (see (2.16)) and ν = νx ν y νψ is a vector of auxiliary velocities.
From such control law one gets that
54
4 Motion Control
u d = νx cos ψ + ν y sin ψ + νψ a sin α,
(4.16a)
vd = −νx sin ψ + ν y cos ψ − νψ a cos α,
(4.16b)
ωd = νψ .
(4.16c)
and
However, as the vehicle is a nonholonomic one, its velocity in the axis y r must be
set to zero, or vd = 0. As a consequence,
νψ =
−νx sin ψ + ν y cos ψ
.
a cos α
(4.17)
As for νx and ν y , they can be arbitrarily selected. Therefore, such values can be
determined as in (4.8), or
νx = ẋdw + k px x̃
(4.18)
ν y = ẏdw + k py ỹ.
(4.19)
where k px and k py are positive nonzero gains, x̃ w and ỹ w are the position errors in the
world frame, and ẋdw and ẏdw characterize the velocity of the trajectory. Therefore,
the kinematic control commands are given by u d and ωd in (4.16) with the auxiliary
velocities defined by the above expressions.
To illustrate this example a real experiment considering a trajectory-tracking task
performed by the differential robot Pioneer 3AT (see Fig. 1.1) was conducted, with
the position of the point of interest at a = 0.4 m and α = π/4 rad. The reference
) and yd (t) =
trajectory to be followed was characterized by xd (t) = 2.5 cos( 2πt
100
1.5 sin( 4πt
).
As
for
the
gain
matrix
K
entries,
they
were
set
to
k
= k py = 0.6,
p
px
100
and k pω = 1.8. Fig. 4.10 shows the reference trajectory and the actual trajectory
followed by the point of interest of the robot. In addition, Fig. 4.11 shows the velocity
commands generated by the controller and the Cartesian errors during the trajectorytracking experiment. It is clear that the control objective is accomplished with quite
small errors and good performance.
Example 3 Case 2: Differential-drive robot with a = 0
For the case of a = 0 the point of interest for control is exactly in the middle of the
virtual axle of the robot. The interest for this specific case is because it corresponds
to the case for which the basic kinematics expressed in (2.6) prevents the use of the
inverse kinematics controller. However, using the extended kinematics expressed by
(2.15) it is now shown that the controller of Fig. 4.1, based on the inverse kinematics
technique, can be adopted. The first step is to check the matrix A−1 , which is now
4.5 Trajectory-Tracking Control
55
Fig. 4.10 Trajectory tracking of a differential robot with point of interest for control at a generic
position (a cos α = 0 and α ∈ (0◦ , 90◦ )
Fig. 4.11 Trajectory tracking of a differential robot with point of interest for control at a generic
position: control commands and Cartesian errors
⎡
A−1
Now, recalling (4.25),
⎤
cos ψ sin ψ 0
= ⎣− sin ψ cos ψ 0⎦ .
0
0 1
vd = A−1 ν,
(4.20)
(4.21)
where ν is again the vector of auxiliary velocities used in the previous case. By
imposing the nonholonomic restriction, one gets that
vd = −νx sin ψ + ν y cos ψ = 0,
(4.22a)
νx sin ψ = ν y cos ψ,
(4.22b)
from where
56
or, finally,
4 Motion Control
νy
ψd = arctan
νx
,
(4.22c)
from which we can get the desired angular velocity ψ̇d . Now we can set the auxiliary
velocities to
(4.23a)
νx = ẋdw + k px x̃ w ,
ν y = ẏdw + k py ỹ w ,
(4.23b)
νψ = ψ̇d + k pψ ψ̃,
(4.23c)
and
thus generating the velocity commands
u d = νx cos ψ + ν y sin ψ
(4.24a)
ωd = νψ .
(4.24b)
and
An important aspect to be stressed here is that the velocity commands generated
by the kinematic controller can be directly applied to the robot, without considering
the inner control loop of Fig. 4.1. The problem, however, is that a meaningful velocity
tracking error may arise, depending on the mass/inertia of the robot.
To illustrate this case a real experiment with the differential robot Pioneer
3AT (see Fig. 1.1) was conducted, with the position of the point of interest at
) and
a = 0 m. The reference trajectory to be followed was given by xd (t) = 2 cos( 2πt
120
yd (t) = sin( 6πt
).
As
for
the
gain
matrix
K
entries,
they
were
set
to
k
=
k
=
0.6,
p
px
py
120
and k pω = 1.8. Figure 4.12 shows the reference trajectory and the trajectory effectively tracked by the point of interest during control. In addition, Fig. 4.13 gives
the velocity commands generated by the controller and the Cartesian errors during
the trajectory-tracking experiment. It is clear that the control objective is accomplished with quite small errors and good performance. Moreover, one can verify that
the extended kinematic model allows the inverse kinematic controller to be feasible
when considering the point of interest on the virtual axle of the robot.
As a last example to illustrate the design of a trajectory-tracking controller for nonholonomic robots, let us consider a car-like wheeled mobile robot in its simplified
structure of a bicycle like kinematics, as was shown in Fig. 2.7, which is repeated as
Fig. 4.14, for convenience.
Example 4 Car-like robot with generic point of interest.
For this case the point of interest for control is the point (xc , yc ) in Fig. 4.14, placed
at a generic position rigidly coupled to the robotic platform. The control law of (4.2)
can be written as
(4.25)
vd = A−1 ν,
4.5 Trajectory-Tracking Control
57
Fig. 4.12 Trajectory tracking of a differential robot with point of interest exactly on the virtual
axle (a = 0 and α = 90◦ )
Fig. 4.13 Trajectory tracking of a differential robot with point of interest exactly on the virtual
axle: control commands and Cartesian errors
Fig. 4.14 A simplified
sketch of the car-like robot
when the point of interest for
control is a generic one,
rigidly coupled to the robot
platform
58
4 Motion Control
⎡
⎤
cos ψ sin ψ a sin α 0
⎢− sin ψ cos ψ −a cos α 0⎥
⎥ is the matrix of inverse extended kinewhere A−1 = ⎢
⎣ 0
0
1
0⎦
0
0
0
1
T
T
u
matics for this case (see (2.19)), vd = d vd ωψd ωδd and ν = νx ν y νψ νδ
is a vector of auxiliary velocities. From such control law one gets that
u d = νx cos ψ + ν y sin ψ + νψ a sin α,
(4.26a)
vd = −νx sin ψ + ν y cos ψ − νψ a cos α,
(4.26b)
ωψd = νψ .
(4.26c)
ωδd = νδ .
(4.26d)
and
For the kinematics of such vehicle there are two non-holonomic constraints. The
constraint on the rear wheel imposes that vd = 0, so that from (4.26) one obtains
νψ =
−νx sin ψ + ν y cos ψ
.
a cos α
(4.27)
As for the constraint on the front wheels, it imposes that the velocity normal to
those wheels should be zero, or Lωψ cos δ − u sin δ = 0 (see Fig. 4.14). Therefore,
Lω
δd = arctan u ψ . To obtain this desired steering it is proposed the auxiliary velocity
νδ = δ̇d + kδ δ̃,
(4.28)
where kδ is a positive gain constant. As for νx and ν y , they can be arbitrarily selected.
For instance, such values can be defined as in (4.8), such that
and
νx = ẋdw + k px x̃,
(4.29)
ν y = ẏdw + k py ỹ,
(4.30)
where k px and k py are positive nonzero gains, x̃ w and ỹ w are the position errors in the
world frame, and ẋdw and ẏdw characterize the velocity of the trajectory. Therefore,
the kinematic control commands are given by u d and ωδd in (4.26) with the auxiliary
velocities defined in (4.27), (4.29), and (4.30).
4.6 Positioning Control
59
4.6 Positioning Control
Positioning control using inverse kinematics and regarding a final position as well as a
final orientation, is possible for omnidirectional robots. The case of non-holonomic
robots will be discussed at the end of this section. In this control objective, the same
controller adopted to guide the robot when tracking a trajectory can be used, with
quite small adaptation. Regarding the control structure of Fig. 4.1 and the control
law of (4.8), the difference is simply to take vdw = ẋdw = 0, since for this case the
desired target point xdw is static. Therefore, to guide the vehicle in a positioning task
the control structure of Fig. 4.15 is adopted. The difference to Fig. 4.1 is that now
the entries of ẋdw are all zero, thus not demanding to use these values in the kinematic
controller.
Therefore, the control law based on the inverse kinematics of (4.8) will become
simply
(4.31)
vd = A−1 (K p x̃w ),
with the same variables involved, but the velocity ẋdw = 0. Once again, as this controller is an extension of the general controller based on inverse kinematics, the
stability proof is identical to the case of the generic inverse kinematics controller,
and will not be repeated here.
An example illustrating the results obtained using the controller here designed
is shown now. It considers a real Bebop 2 quadrotor navigating in an outdoor environment, accomplishing a mission correspondent to successive positioning tasks,
regarding some waypoints the vehicle should visit. The experimental setup is the
same used in the trajectory-tracking experiment, and once more the designed controller starts working when the quadrotor is in the position (0 m, 0 m, 1.2 m), with
the orientation of 0◦ , the position/orientation established by the embedded takeoff
procedure. From this moment ahead, the designed controller takes the command and
guides the quadrotor to visit the waypoints defined in Table 4.1, where the time value
represents the instants at which each waypoint is set. Then, the quadrotor should visit
the new waypoint, starting from the one it is currently in, having 25 s to get there.
For this example just the kinematic controller is used, what means just the outer
loop of Fig. 4.15. In other words, the velocity command vd is directly applied to
Fig. 4.15 The inner-outer control structure for the case of positioning
60
4 Motion Control
Table 4.1 Waypoints to be visited by the quadrotor Bebop 2
Waypoint
x (m)
y (m)
z (m)
P0
P1
P2
P3
P4
0
5
5
0
0
0
0
5
5
0
18
18
18
18
18
ψ (◦ )
Time (s)
0
0
0
0
0
0
25
50
75
100
Fig. 4.16 The path followed by the Bebop 2 quadrotor when visiting the waypoints of Table 4.1
the vehicle. For such a control loop the gain values are the same adopted for the
T
trajectory-tracking example (K p = 1, 1, 3, 1 ). As for the necessary feedback,
the position and orientation of the vehicle, it is the result of a data fusion procedure
involving raw data provided by an inertial measurement unit and a GPS, procedure
that is included in the firmware of the vehicle.
Figures 4.16 and 4.17 show the positions of the quadrotor during its navigation,
stressing the waypoints, and the position errors along navigation. From this last figure
one can see that a great error appears in the coordinates x or y, when a new waypoint
is defined, which asymptotically goes to zero as the quadrotor gets closer to the new
waypoint. Another important detail is that a positioning control, as it is the case
here, does not define the path to be followed by the robot between two consecutive
waypoints. However, Fig. 4.16 shows, besides the real path the quadrotor followed,
the straight line linking two consecutive waypoints, just to show that the real path
is not so different. In other words, the error between the real path and the one of
minimum energy, the straight line linking two waypoints, is not big.
To conclude this section, a simulated experiment of positioning control is shown
now, considering the omnidirectional wheeled robot illustrated in Fig. 2.3. The robot
should pass by the waypoints described in Table 4.2, which shows the position and
desired orientation at each waypoint, starting navigating from the position (x0 , y0 ) =
4.6 Positioning Control
61
Fig. 4.17 Position errors
along the accomplishment of
the positioning task
Table 4.2 Waypoints to be visited by the omnidirectional robot
Waypoint
x (m)
y (m)
ψ (rad)
P1
P2
P3
P4
4
8
8
4
6
6
10
10
0
0
0
0
Time (s)
0
25
50
75
(2 m, 3 m), with initial orientation ψ0 = 0 rad. As in the previous example, each
waypoint stands by 25 s. As for the controller, it was used that of (4.10) with the
gains set to k px = 7.5, k py = 7.5, and k pψ = 2.5, with saturation constants ksx =
2, ksy = 2, and ksψ = 1.
The results are synthesized in Figs. 4.18 and 4.19, which show the path traveled
by the robot to visit the established waypoints and the respective x and y positions
along the navigation time. In the second case, the switching from a given waypoint
to the subsequent one is represented as a vertical segment.
An important remark, besides observing that the robot effectively visited the
waypoints, is that the orientation of the robot is not meaningful, and could be not
considered, as the robot is an omnidirectional one, thus not needing to orientate itself
suitably to go to any desired point. This is why it takes the shortest segment when
going from one waypoint to the subsequent one. Notice that this means that one could
accomplish any navigation task with this robot without considering its orientation.
Naturally, when the orientation is an important feature (such as when the robot has
a camera which should be pointed always in a given direction, for instance), the
orientation ψ of the robot becomes important.
To conclude the analysis of the simulated positioning task, Fig. 4.20 shows the
absolute values of the position errors in the coordinates x and y along the navigation.
62
4 Motion Control
Fig. 4.18 The path traveled by the omnidirectional robot to visit the desired waypoints
Fig. 4.19 The position of the omnidirectional robot navigating to visit the desired waypoints
As one can see after each waypoint change a big position error, in x or in y, appears,
and the robot resume the navigation towards the new waypoint quickly correcting
the error, or quickly reaching the new waypoint (much before the next waypoint
change).
Finally, let us consider briefly the case of non-holonomic robots. By using the
general inverse-kinematics controller of (4.2), it is not possible the positioning control of both position and orientation of the robot. This comes from the well-known
4.7 Path-Following Control
63
Fig. 4.20 The absolute value of the position errors along the navigation to visit the established
waypoints
Brockett’s condition [6] which states that no smooth feedback control can stabilize
the complete state of the system for systems such as non-holonomic robots. Nevertheless, it is still possible just to make position control. To do that, it is followed
the same procedure as was described for designing the trajectory-tracking control,
w
w
= 0 instead of xdp
. Similar to what was done for trajectory-tracking,
but taking vdp
the νo values associated to the orientation of the robot, are calculated by imposing
the non-holonomic constraints. It is easily proven that the position control errors
converge to zero asimptotically, thus verifying the position control objective. The
vehicle will end up with a non-controllable orientation. If it would be necessary to
control orientation as well, it could be designed a trajectory with this final desired
orientation, and make in this case a trajectory control up to the point of interest
(where the desired velocity is set to zero). Other solutions not resourcing to full
inverse kinematics, can be found for instance in [1, 14, 17].
4.7 Path-Following Control
As mentioned before, to control a mobile robot to make it to follow a specified path
is quite different of controlling it to track a trajectory. In path-following control there
is not a requirement in terms of the velocity the robot should develop at every time
instant. As a matter of fact, the velocity which could be constant or time-varying, is
defined by the user respecting the robot bounds and any other external requirement,
64
4 Motion Control
Fig. 4.21 Illustration of the
path-following control
such as safe speed limits or some optimization criteria, although keeping the direction
of the tangent to the path at every time instant to guarantee the robot keeps on the
path. Fig. 4.21 illustrates this, considering a differential drive robot. However, such
an illustration can easily be extended to the case of a quadrotor evolving in 3D space.
In such a figure (xc , yc ) is the point of interest for control, which is the point
expected to follow the path defined as c(s), where s is the curvilinear abscissa, and
cn is the orthogonal projection of the point of interest for control over the path, which
corresponds to the point of the path that is closest to the current position of the point
of interest for control. By its turn, ñ is the distance between the point of interest for
control and the point cn , whose projections on the world axes are x̃ and ỹ, whereas t
is the unit vector tangent to the path at point cn , whose direction with respect to the
axis X w is ψt , and V is the desired velocity of the vehicle along the path at point cn ,
which should be tangent to the path, that is with direction of t and module V .
Therefore, the path-following control objective is to reach the path making ñ(t) →
0 as t → ∞ and asymptotically navigate over the path with velocity Vd (s) tangent
to the path, which means that it should form the angle ψt with the axis X w , where
ψt varies with the position of the robot along the path, according to
ψt (s) = arctan
dy(s)
ds
dx(s)
ds
ds
dt
ds
dt
= arctan
dy(s)
ds
dx(s)
ds
.
As presented here, the path-following control problem is solved with the same
controller structure adopted for the trajectory tracking problem, as shown in (4.4) or
in (4.7), but considering the desired velocity as
vdw =
dx w
dx w ds
=
Vd .
ds dt
ds
(4.32)
4.7 Path-Following Control
65
In the case of omnidirectional robots, the path-following control will include the
objective of following the desired orientation defined over the path.
Considering the case of non-holonomic robots, as for instance the wheeled differential drive robot with the point of interest for control characterized by a cos α = 0
(see Fig. 4.21), the control law
⎡
⎤
cos ψ sin ψ a sin α
vd = ⎣− sin ψ cos ψ −a cos α ⎦ ν,
0
0
1
(4.33)
which is similar to (4.25), is applied. From such control law one gets the values in
(4.16), and, then, imposing the nonholonomic condition vd = 0 one gets the value
for the ν signal related to the orientation, as explained for trajectory-tracking
νψ =
−νx sin ψ + ν y cos ψ
.
a cos α
As regards for ν signal related to the position of the robot, νx and ν y , such values
can be determined in the form of (4.4) or (4.7) with vdw defined by (4.32) as the vector
of desired velocity on the path
νx =
dx
Vd + k px x̃ = Vd cos ψt + k px x̃
ds
νy =
dy
Vd + k py ỹ = Vd sin ψt + k py ỹ,
ds
and
where k px and k py are positive nonzero gains, x̃ w and ỹ w are the position errors in
the world frame, regarding the point of the path to be reached at each instant, and Vd
is the desired velocity of the robot which may be constant or, in general, a function
of the position on the path Vd (s).
Now the stability of the closed loop-system when adopting the path-following
controller just proposed is discussed regarding the case of the non-holonomic differential robot. The objective is to show that the robot gets to the closest point in the
path asymptotically, or, observing Fig. 4.21, to show that ñ → 0, which is equivalent
to x̃ → 0 and ỹ → 0 when t → ∞, which is going to be shown now.
Regarding Fig. 4.21, considering a coordinate frame whose origin is the point
cn , and whose axes coincide with the directions of t and ñ, the so called Frenet
coordinates, one gets that
x̃ = −ñ cos(90 − φt ) = −ñ sin ψt ,
and
ỹ = ñ sin(90 − φt ) = ñ cos ψt .
66
4 Motion Control
In addition,
ñ˙ = ẋc cos(90 − ψt ) − ẏc cos ψt = ẋc sin ψt − ẏc cos ψt .
Regarding the path-following control law of (4.33), with the correspondent values
of νx , ν y , and νψ , assuming a perfect velocity tracking, or v = vd , one gets, for the
condition a cos α = 0, that ẋ = νx , ẏ = ν y , and ψ̇ = νψ , or
ẋ = Vd cos ψt + k px x̃,
ẏ = Vd sin ψt + k py ỹ,
and
ψ̇ =
(−Vd cos ψt + k px x̃) sin ψ
(Vd sin ψt + k py ỹ) cos ψ
+
.
a cos α
a cos α
To analyze the behavior of the error ñ, let us consider the Lyapunov candidate function
V (ñ) =
ñ 2
,
2
for which the first time derivative is
V̇ (ñ) = ñ ñ˙ = ñ ẋ cos ψt − ñ ẏ cos ψt = ñνx sin ψt − ñν y cos ψt ,
considering the previous relationships. Therefore,
V̇ (ñ) = ñ sin ψt (Vd cos ψt + k px x̃) − ñ cos ψt (Vd sin ψt + k py ỹ),
or
V̇ (ñ) = ñ sin ψt k px x̃ − ñ cos ψt k py ỹ.
As x̃ = −ñ sin ψt and ỹ = ñ cos ψt , it comes that
Ṽ (ñ) = ñ sin ψt (−k px ñ sin ψt ) − ñ cos ψt (k py ñ cos πt ),
or
Ṽ (ñ) = −k px ñ 2 sin2 ψt − k py ñ 2 cos2 ψt ,
so that V̇ (ñ) < 0 for all ñ = 0, once the gains k px and k py be selected as positive
values, thus meaning that ñ → 0when t → ∞, or the closed loop control system
is asymptotically stable. As ñ = ẋ 2 + ẏ 2 , this result means that ẋ → 0 and ẏ →
0 when t → ∞. Therefore, the robot always reaches asymptotically the path and
continues over it, with a desired velocity tangent to the path.
4.7 Path-Following Control
67
To complete this stability analysis, it is worth mentioning that a similar stability
analysis can be performed for the condition a = 0, and the result is that the closedloop control system is effectively asymptotically stable.
Now, a similar reasoning can be followed in the case of omnidirectional robots,
as the case of a quadrotor evolving in 3D space. Here we take (4.4) or (4.7) again,
with
dx w
Vd
vdw =
ds
where now x w = [x y z ψ]T which includes the orientation of the vehicle, thus
Vd ]T
resulting vcw = [Vdx Vdy Vdz dψ(s)
ds
Considering again Frenet coordinates (ñ and t), we can note that vdw in (4.3) is on
the t direction and K p x̃w is on the direction of ñ, therefore being perpendicular vectors. Consequently (4.3) can be splitted in two components in the Frenet coordinates.
w
In tangent t direction vdw = dxds Vd guarantees the path following while the robot is on
the path, including following of yaw angle ψd (s). On the normal direction ñ, we get
ñ = x̃w = −K p x̃w which implies x̃w (t) → 0 with t → ∞, and thus approaching the
robot asymptotically to the path. Therefore, the path-following objective is attained.
In the sequel a simulated example is presented, considering the situation of the
non-holonomic differential robot depicted in Fig. 4.21 with a = 20 cm and α = 60 ◦ ,
with the initial position of the point of interest for control given by (6 m, 1 m) with
a robot orientation of 0◦ . The path to be followed is an arc of a circle with radius of
5 m and with center at (8 m, 0 m).
In this example it is considered the objective of attaining and following the path
in two steps. The first step is to reach the path at the point closest to the initial robot,
and the second step is the path-following at a specified velocity Vd , when the robot
is on the path. Therefore, νx and ν y are taken as
νx = V cos ψt + k px x̃
ν y = V sin ψt + k py ỹ
with
V =
0
Vd
for ñ > ε, or
otherwise,
(4.34)
where ε is a small positive value defining the error below which the robot is considered
on the path.
As for the gains k px and k py , the values adopted were both 7.5. Finally, the velocity
of the robot along the path was set to 0.5 m/s, and the selected value of ε was 5 cm.
To calculate the current position of the point of interest for control along the path,
from the velocities in the world frame, it is adopted a sampling time of 100 ms, the
sampling time for the Pioneer 3-AT robot, which is the time to update the sensory
data of such vehicle. Figure 4.22 shows the path the robot followed, firstly to reach
68
4 Motion Control
Fig. 4.22 The path followed
by the robot in the simulated
example
the path and then to following, which corresponds to the yellow small circles. As for
the proposed path, it corresponds to the blue line in the figure.
To conclude the analysis of the simulated path-following task, Fig. 4.23 shows the
linear and angular velocities u d and ωd commanded to the robot along its navigation.
As one can see, there is an initial transient in which the point of interest for control is
still not over the path. After it reaches the path, however, the commanded velocities
remain constant.
An important remark about such a control system is that one can use the tanh()
function to limit the velocities commanded to the robot. In this case, one should take
νx = Vd cos ψt + tanh (k px x̃)
and
ν y = Vd sin ψt + tanh (k py ỹ).
Figure 4.24 shows the results obtained for the same example of Fig. 4.22, now using
the tanh(.) function, in terms of the path traveled by the robot. Comparing the two
figures one can check that the robot took more time to get the path to be followed,
what is a consequence of the velocity limitation.
As a second simulation example, Fig. 4.25 shows the navigation of an omnidirectional robot such as quadrotor accomplishing a path-following task. The path is
characterized as
x path = 8 − 5 cos(2π s/60),
y path = 5 sin(2π s/60),
and
z path = 2π s/60,
4.7 Path-Following Control
69
Fig. 4.23 The linear and angular velocities commanded during the accomplishment of the pathfollowing task
Fig. 4.24 Path traveled by
the robot when using the
tanh() function to limit the
velocities commanded to the
vehicle
with the curvilinear abscissa s in the interval [0, 80], with 300 points. In this example
the orientation of the quadrotor is not being controlled, what is possible due to the
fact that it is an omnidirectional vehicle. The magnitude of the desired velocity is
set constant to Vd = 0.25 m/s. The projections of the desired velocity vector on the
axes of the world frame, after the quadrotor reaches the path to be followed, are
characterized as
Vd x = Vd cos θ cos β,
Vdy = Vd cos θ sin β,
70
4 Motion Control
Fig. 4.25 A simulated
path-following task
accomplished by a quadrotor
and
Vdz = Vd sin θ,
where θ is the angle between the velocity vector Vd = [Vd x Vdy Vdz ]T and the
plane X w Y w , and β is the angle between the projection of such a velocity vector
on the plane X w Y w and the axis X w . As for the gains of the controller, they are set
to k px = k py = k pz = 4, whereas the matrix of direct kinematics, disregarding the
orientation of the quadrotor, is
4.7 Path-Following Control
71
Fig. 4.26 Path-following with a Pioneer 3-AT differential robot with point of interest for control
characterized by a = 0.25 m and α = 0 ◦ (see Fig. 4.9)
Fig. 4.27 Path-following with the Pioneer 3-AT differential robot: control commands and Cartesian
errors
⎡
cos ψ − sin ψ
A = ⎣ sin ψ cos ψ
0
0
⎤
0
0⎦ .
1
Once more the function tanh(.) was used to provide a smooth saturation for the
velocity commands, as discussed before.
As a final example in this section, it is considered an experiment of path-following
with the differential robot Pioneer 3AT. In this example, the point of interest is located
ahead from the center of the robot at d = 0.25 m and α = 0◦ . This point should follow
an unstructured path as shown in Figure 4.26. The desired velocity is fixed at the
constant value Vd = 0.2 m/s. It is used the general inverse kinematics control law of
(4.4) with
vdw = [Vd cos ψ Vd sin ψ] T
and controller gains set to k x = k y = 0.5 and kω = 1.2. It is followed a design procedure similar to that described in relation to Fig. 4.21. Figure 4.26 shows the path
72
4 Motion Control
described by the robot and Fig. 4.27 presents the commanded velocities and the
Cartesian errors correspondent to this example. These results show the good performance of the implemented control algorithm.
4.8 Kinematic Sliding Compensation of Non-holonomic
Robots
The extended kinematic model for non-holonomic robots presented in Sect. 2.1.4
has the advantage of offering a simple solution to the control of non-holonomic
robots through inverse kinematics, for any position of the point of interest (including
the case it lies on the virtual axle of the robot). Moreover, such a model has the
advantage of allowing a simple design of kinematic controllers for the compensation
of sliding, when due to navigation or soil conditions the robot violates the nonholonomic velocity constraints. The only condition for such a compensation design
is to measure the lateral velocity v (see Figs. 4.9 and 4.14) by using an IMU mounted
on the robot, for instance.
The design of the sliding compensator follows the same steps described in the
previous sections, but now defining the νψ value considering this lateral velocity not
being set to zero, but taking the measured value of v. Let us consider the design
procedures given in Sect. 4.5, Example 3, Cases 1 and 2, for the differential nonholonomic robot. For a point of interest located at any place on the robot (Case 1),
we now get the value of νψ as
νψ =
−νx sin ψ + ν y cos ψ − v
,
a cos α
(4.35)
after substituting the measured value of the lateral velocity v, instead of that of (4.17),
which is valid for the non-sliding condition. With this value and those corresponding
to νx and ν y as defined in the previous sections for trajectory-tracking or pathfollowing, one can calculate the control actions for the sliding compensation.
Regarding the Case 2, and following the same procedure of substituting the measured value of v instead of setting it to 0, one obtains the equations which replace
(4.22) and (4.23) valid for the non-sliding condition, which are now
ν y − (v/ cos ψ)
ψd = arctan
νx
and
νψ = ψ˙d + kψ ψ̃.
(4.36)
(4.37)
A completely similar design procedure is valid for trajectory or path-following
control, just considering the corresponding value of vdw in the controller, as described
in previous sections. Furthermore, similar arguments are considered when controlling
4.8 Kinematic Sliding Compensation of Non-holonomic Robots
73
Fig. 4.28 Path-following of differential robot with sliding compensation: the path followed
Fig. 4.29 Path-following of differential robot with sliding compensation: variables of interest
the car-like non-holonomic robot using the extended kinematics, with the lateral
velocity set to the measured value due to the vehicle sliding.
To illustrate the application of the sliding compensation, simulations have been
made for a differential ground robot and a car-like one, navigating along a rectilinear
path and subject to sliding. In the case of the differential robot, the control parameters
described in Sect. 4.7 were set to k px = k py = 1.7 and Vd =0.20 m/s. As for the
point of interest for control, it corresponded to α = 0rad and a = 0.1 m. Figure 4.28
shows the evolution of the robot along the path, alternating the non-sliding and
sliding conditions. Notice that when sliding (shaded area), the robot navigates with an
74
4 Motion Control
Fig. 4.30 Path-following of car-like robot with sliding compensation: the path followed
Fig. 4.31 Path-following of car-like robot with sliding compensation: variables of interest
orientation that is not tangent to the path, to compensate for the sliding. Nevertheless,
the point of interest remains on the path all the time, thus achieving the path-following
control objective. To complement the analysis of such a simulation Fig. 4.29 shows
the Cartesian error related to the point of interest for control, the lateral sliding
velocity and the orientation ψ of the vehicle during path-following.
Finally, a similar simulation was performed for the car-like robot, using the same
control parameters adopted for the case of the differential robot, with the point of
interest for control corresponding to α = 0 rad and a = 0.6 m. The corresponding
simulation results are shown in Figs. 4.30 and 4.31. In this case we consider the
sliding of the rear wheel, with a lateral velocity v, as indicated in Figure 4.14. Once
more the Cartesian control error remains close to zero, even in the presence of the
sliding, due to a correct compensation of this phenomenon.
4.9 Dynamic Control
75
4.9 Dynamic Control
As mentioned in the end of Chap. 3, the dynamic model of a given robot can be used
to design controllers implemented as a single control loop or as a cascade controller,
the latest ones referred to as controllers implemented as inner-outer control loops.
In the first case, or when designing a controller based on a single control loop, one
has what is called a dynamic controller, whose inputs are the position/orientation of
the robot and whose outputs are velocity commands to be sent to the robot, whereas
when using the inner-outer control loops design, the inner loop is implemented with
basis on the dynamic model of the vehicle. In this last case the inputs are velocity
commands, as well as the outputs. Therefore, when regarding a dynamic controller the
closed-loop equation corresponds to a second-order differential equation describing
the temporal behavior of the position error, whereas in the case of the design of an
inner-outer loops controller the dynamic loop deals with the behavior of the velocity
error.
This section deals with the case of a single loop controller designed considering
the dynamic model of the vehicle. The control objective associated to such a dynamic
controller is to make the position error converge to zero asymptotically, which, in
practical terms, means to go to an acceptable small value in a finite time (ultimately
bounded errors). Velocity commands are sent to the robot to make it to move accordingly, to reach desired positions in the world frame. Notice that this is valid for the
differential-drive and the car-like wheeled robots, as well as for the quadrotors here
considered.
Considering the simplified dynamic model of the quadrotor in (3.31), or
⎤
ẍ w
⎢ ÿ w ⎥
⎢ w⎥
⎣ z̈ ⎦
ψ̈ w
⎡
⎡
K 1 cos ψ
⎢ K 1 sin ψ
=⎢
⎣
0
0
⎡
K 2 cos ψ
⎢ K 2 sin ψ
−⎢
⎣
0
0
−K 3 sin ψ
K 3 cos ψ
0
0
0
0
K5
0
−K 4 sin ψ
K 4 cos ψ
0
0
0
0
K6
0
⎤⎡ ⎤
0
u vx
⎢ u vy ⎥
0⎥
⎥⎢ ⎥
0 ⎦ ⎣ u vz ⎦
u vψ
K7
⎤⎡ b⎤
vx
0
⎢ v by ⎥
0⎥
⎥⎢ ⎥
0 ⎦ ⎣ vzb ⎦
vψb
K8
= F1 u − F2 ẋb ,
(4.38)
for instance, one can adopt the control law
u = F1−1 ẍdw + K D x̃˙ w + K P x̃w + F2 ẋb ,
(4.39)
when designing a dynamic controller, for which K P and K D are diagonal positive
definite gain matrices, and ẍdw is the acceleration correspondent to the trajectory
being tracked, when regarding trajectory-tracking tasks, or the acceleration along
76
4 Motion Control
Fig. 4.32 The control system implemented as a single-loop dynamic controller for the quadrotors
AR.Drone and Bebop 2
the path, for a path-following task. As for x̃˙ w = ẋdw − ẋw and x̃w = xdw − xw , they
are the velocity error and the position error.
The design of a dynamic controller for a differential drive wheeled robot is quite
similar to the case of a quadrotor. Taking the dynamic model of the vehicle, as in
(3.3), repeated here for convenience, or
vrb = Hv̇b + C(vb )vb ,
where the velocities are in the body frame of the vehicle,
v̇b = H−1 vrb − C(vb )vb = −H−1 C(vb )vb + H−1 vrb = Pvb + bvrb .
(4.40a)
Now, taking the new state vector as being ẋw = Avb , one gets the new state-space
description, based on the concept of equivalent systems [8],
or
ẍw = APA−1 ẋw + Abvr = APvb + Abvrb ,
(4.40b)
ẍw = −AH−1 C(vb )vb + AH−1 vrb = F1 vrb − F2 vb ,
(4.40c)
which is quite similar to (4.38), considering F1 = AH−1 and F2 = AH−1 C(vb ), so
that the same controller of (4.39) can be designed for this case.
For the specific example of designing a single-loop dynamic controller for a
quadrotor, remembering that the quadrotors here considered are equipped with onboard autopilot, a condition to adopt the simplified dynamic model of (3.31) and the
control law of (4.39), one gets the control scheme depicted in Fig. 4.32, in which
the matrix A is the matrix of direct kinematics of the quadrotor, given in (2.26).
4.9 Dynamic Control
77
Table 4.3 The waypoints the quadrotor should pass by, and the desired orientation in each one of
them (each waypoint stands for 20 s)
x (m)
y (m)
z (m)
ψ (rad)
5
5
0
0
0
0
5
5
0
0
10
10
10
10
10
0
π /2
π
3π/2
0
To illustrate the implementation of a single loop-dynamic controller, two real
experiments are shown in the sequel, with a Bebop 2 quadrotor. Both experiments
are outdoor flights, run using the hardware described in Fig. 4.6.
The first one corresponds to a controller to guide the quadrotor in a positioning
task, during which the vehicle should pass by some waypoints, defined in Table 4.3.
The navigation starts being controlled by such a control system when the quadrotor
is in the initial position (0 m, 0 m, 1 m), with the initial orientation of 0 rad. As for the
gain matrices they are set to K P = diag(1, 1, 3, 1) and K D = diag(1.5, 1.5, 2, 2).
In this case, in the control law the term ẋdw is zero, as well as ẍdw , since xdw is constant.
The result of such an experiment is synthesized in Figs. 4.33 and 4.34, which
show a 3D view of the path traveled by the quadrotor moving from a waypoint to
the next and the position and orientation errors along the navigation time. As one
can see from them, the quadrotor managed to reach each waypoint before a new
one is established, with quite small errors when arriving at each waypoint. The big
errors, of about 5 m, appear when the waypoint is changed to the next one, and
the controller starts working to correct them, which become close to zero when the
quadrotor reaches the waypoint, where it stays hovering till the definition of the next
waypoint.
The second example is an experiment of trajectory-tracking, in which the trajectory to be tracked is a lemniscate of Bernoulli, characterized as
xdw = 5 cos(ωt) m 5 sin(2ωt) m 8 m ,
with ω = 2π/60 rad/s, for which
ẋdw = −5ω sin(ωt) m/s 10ω cos(2ωt) ) m/s 0 ) m/s
and
ẍdw = −5ω2 cos(ωt) ) m/s2 −20ω2 sin(2ωt) ) m/s2 0 ) m/s2 .
Notice that the desired orientation of the vehicle is defined by the orientation of
the trajectory, or ψd = arctan( ẏdw /ẋdw ). The initial position and orientation of the
quadrotor, as well as the gain matrices, are the same of the positioning experiment.
78
4 Motion Control
Fig. 4.33 A 3D view of the path traveled by the quadrotor when navigating through the waypoints
of Table 4.3
Fig. 4.34 Position and orientation errors for the quadrotor navigating through the waypoints of
Table 4.3
4.9 Dynamic Control
79
Fig. 4.35 A 3D view of the path traveled by the quadrotor when tracking the lemniscate of Bernoulli
trajectory. The red line corresponds to the desired trajectory, whereas the blue line represents the
path effectively traveled by the robot
Fig. 4.36 Position and orientation errors for the quadrotor when tracking the lemniscate of Bernoulli
trajectory
Figures 4.35 and 4.36 show the result of such an experiment. The first one shows
the path traveled by the quadrotor, whereas the second one shows the position and
orientation errors along the navigation time.
80
4 Motion Control
4.10 Feedback Linearization
Introducing the control law in (4.39) in the dynamic models of (3.31) and of the last
subequation in (4.40) one gets
ẍw = F1 F1−1 ẍdw + K D x̃˙ w + K P x̃w + F2 ẋb − F2 ẋ b ,
or
ẍw = ẍdw + K D x̃˙ w + K P x̃w ,
or, finally,
ẍdw − ẍw + K D x̃˙ w + K P x̃w = x̃¨ w + K D x̃˙ w + K P x̃w = 0,
(4.41a)
which is a second-order linear homogeneous differential equation describing the
behavior of the position error x̃w . One should notice that both, the robot dynamic
model and the dynamic control law, are nonlinear functions. However, the closed-loop
equation is a linear differential equation. In other words, the dynamics of the position
error is a linear one, what gives the idea of this control technique, the linearization
of the error dynamics through the feedback adopted. This is what is called feedback
linearization technique.
To analyze the stability of the control system implemented with the single loop
dynamic controller, which results in the closed-loop equation
x̃¨ w + K D x̃˙ w + K P x̃w = 0,
one should take into account that the gain matrices K P and K D are diagonal matrices,
so that the system is decoupled. Therefore, one can examine the stability for each
component of the position error x̃w separately. Just to exemplify, consider the variable
x̃ w , the component of such an error in the axis x w . For it one gets that
x̃¨ w + k Dx x̃˙ w + k P x x̃ w = 0,
with k P x and k Dx both positive and nonzero. From such equation, and considering
the characteristics of the gain constants, one can conclude that x̃ w (t) → 0 when
t → ∞. To get that conclusion one can apply Laplace transform to the differential
equation, and check that the correspondent poles have negative real parts.
A similar way to prove the asymptotic stability of such a closed-loop system, or
T T
to show that the equilibrium of such a system, x̃w x̃˙ w = 0 0 is asymptotically
stable, is using the theory of Lyapunov [9, 16]. To do that, one can consider the
second-order system defined as
4.11 Cascade Dynamic Compensation
81
ẋ1 = x2 ,
ẋ2 = −K D x2 − K P x1 ,
where x1 = x̃w and x2 = x̃˙ w . Let us select the radially unbounded Lyapunov candidate function
1
1
(4.42)
V (x1 , x2 ) = x1T K P x1 + x2T x2 ,
2
2
which is positive definite, that is greater than zero for all x1 and x2 , and equal to zero
just for x1 = x2 = 0. Taking its first time derivative one gets
V̇ (x1 , x2 ) = x1T K P ẋ1 + x2T ẋ2
= x1T K P x2 + x2T (−K P x1 − K D x2 )
= −x2T K D x2 ≤ 0
(4.43)
which is a negative semi-definite function. Therefore, from the theory of Lyapunov
one can conclude, from (4.42) and (4.43), that the equilibrium is stable, and x̃w , x̃˙ w
are bounded signals. Applying the theorem of La Salle for autonomous systems, the
greatest invariant set [5, 16] M in
R =
x̃w
w ˙w
: V̇ (x̃ , x̃ ) = 0
x̃˙ w
is
M =
x̃w
0
˙x̃w = 0 .
T
Thus, the greatest invariant set M is the equilibrium of the system x̃w x̃˙ w =
T
0 0 , which means that x̃w (t) → 0 with t → ∞, resulting that the equilibrium is
asymptotically stable.
4.11 Cascade Dynamic Compensation
The idea to be developed in this section is the cascaded compensation of the robot
dynamics using the cascade controller discussed in Sect. 4.3, using the inner control
loop of Fig. 4.1 to compensate for any velocity tracking error. As it was mentioned
there, the velocity commands generated by the kinematic controller, the outer control loop, can not be developed by the vehicle instantaneously, due to its mass and
inertia, not considered in the kinematic analysis. Therefore, a difference between the
velocities commanded by the kinematic controller and those effectively developed
by the vehicle can appear. Notice that this becomes worse when considering heavier
82
4 Motion Control
Fig. 4.37 The
implementation of the
dynamic controller as the
inner loop of Fig. 4.1
robots. Therefore, it can be mandatory to compensate for the robot dynamics, so that
the velocity-tracking error goes to zero with a desired dynamics profile.
The inverse dynamics technique can be used to do that, implemented as the inner
control loop of Fig. 4.1, as shown in Fig. 4.37, whose inputs are the velocity commands generated by the outer loop control and whose output are different velocity
commands that are sent to the robot. The objective of such a control loop is to provide
a new dynamic behavior for the velocity-tracking error, guaranteeing that it goes to
zero asymptotically. The method consists in canceling the dynamics of the vehicle
and then introducing a linear dynamics in its place, which is easily guaranteed to
be asymptotically stable. Moreover, this idea is applicable to any mobile robot, not
mattering either if it is a ground or aerial robot, for instance, or which is its kinematic model, since this control loop works on the velocity commands delivered by
the kinematic controller (the outer control loop). The reason is that this control loop
works on the velocity commanded by the kinematic controller, therefore yet referred
to the body frame of the robot.
When dealing with a differential-drive wheeled robot, let us consider the inverse
dynamic model of the vehicle in (3.3) without disturbances,
vr = Hv̇ + C(v)v,
or its direct dynamics expression
v̇ = H−1 [vr − C(v)v] ,
with all the velocities in the body frame. The dynamic control law
vr = H v̇d + K D ṽ + C(v)v,
(4.44)
based on the exact inverse dynamic model of the robot, is adopted, for which K D is
a positive definite diagonal gain matrix. Substituting this control law in the dynamic
model of the robot the resulting closed-loop equation is
v̇ = H−1 H v̇d + K D ṽ − C(v)v + C(v)v,
4.11 Cascade Dynamic Compensation
83
from which one gets
v̇ = v̇d + K D ṽ,
or
v̇d − v̇ + K P ṽ = ṽ˙ + K D ṽ = 0,
which allows concluding that ṽ(t) → 0 when t → ∞, since K D is positive definite.
Now, the dynamic behavior of the position error is revisited, though relaxing the
assumption of perfect velocity tracking made while designing the kinematic outerloop controller, accepting a velocity error ṽ. Under such a relaxed condition the
closed-loop equation in (4.6) applied to trajectory-tracking control (4.9) becomes
x̃˙ w + K P x̃w = Aṽ,
(4.45)
where A is the matrix of direct kinematics of the vehicle. Consider the Lyapunov
candidate function V = 21 x̃wT x̃w , whose time derivative in the system trajectories of
(4.45) is
V̇ = x̃wT (Aṽ − K P x̃w )
A sufficient condition for V̇ < 0 is
x̃wT K P x̃w > x̃wT Aṽ ,
with K P = diag(k pi ), i = 1, . . . , n. Such a condition implies that
min(k pi )||x̃w ||2 > |x̃w Aṽ|,
or
||x̃w || >
||Aṽ||
,
min(k pi )
(4.46)
guaranteeing that for great x̃w values, regarding that ṽ is a low value, V̇ is negative,
thus causing x̃w to decrease, till not attending the above condition. Then, V̇ would
become positive, and the error x̃w would increase, resuming the condition in (4.46),
making V̇ negative once more. Therefore, the error x̃w would have an ultimately
bounded behavior, with the bound defined by (4.46). As we have proved that ṽ(t) →
0, such a bound also asymptotically converges to zero, thus showing that x̃w (t) → 0,
allowing concluding that the dynamic compensation, through the reduction in the
velocity tracking error ṽ, effectively contributes to achieve the control objective of
reducing the position error x̃w .
Considering a quadrotor in near hover flight, for which the dynamic model of
(3.30) is valid, with the matrix f1 given by f1 = diag(K 1 , K 3 , K 5 , K 7 ) and the matrix
f2 given by f2 = diag(K 2 , K 4 , K 6 , K 8 ), and remembering that all around the inner
loop of Fig. 4.1 the variables are referred to the body frame, the control law
84
4 Motion Control
vr = f1−1 [v̇d + K D (vd − v) + f2 v] = f1−1 v̇d + K D ṽ + f2 v
(4.47)
is adopted, which is based on the inverse dynamic model of the quadrotor. For such a
control law, vr is the output of the dynamic controller, to be sent to the quadrotor, vd is
the velocity command generated by the kinematic controller, whose time derivative
is v̇d , K D is a positive definite diagonal gain matrix, and vd − v = ṽ is the velocitytracking error. Therefore, the way the dynamic controller works is changing the
velocity commands to be sent to the quadrotor as a function of the velocity-tracking
error.
Now, substituting (4.47) in the dynamic model of the quadrotor, one gets the
closed loop equation
v̇ = f1 f1−1 (v̇d + K D ṽ + f2 v) − f2 v,
(4.48a)
v̇ = v̇d + K D ṽ,
(4.48b)
v̇d − v̇ + K D ṽ = ṽ˙ + K D ṽ = 0,
(4.48c)
from which it results
or
from where one can conclude that ṽ(t) → 0 when t → ∞, since K D is positive
definite.
4.12 Adaptive Control
As discussed in Chap. 3, the dynamic models of the differential drive robot and the
quadrotor are based in a set of estimated parameters. However, parameter estimation
is a process that embeds an error. In other words, the estimated parameters θ̂ , in the
case of the differential-drive robot, differs from the true values, which are unknown,
by an estimation error θ̃ , such that θ = θ̂ − θ̃, or θ̂ = θ + θ̃ . Therefore, the modeled
dynamics are wrongly estimated. For example, if the robot thus modeled is used to
transport any payload, so that the total mass changes, the dynamics also changes. In
both cases, when the controllers so far designed are adopted control errors certainly
arise, because such controllers can not deal with the parametric uncertainties. To
reduce such control errors an adaptive dynamic controller is now discussed, to perform as the inner control loop of Fig. 4.1, considering the cases of a differential-drive
robot and a quadrotor [10, 13].
For the case of a differential-drive robot, the model in (3.6a) is considered. Such
a model is, neglecting the vector of disturbances ,
Hv + C(v)v + F(v)v = vr ,
(4.49a)
4.12 Adaptive Control
85
with
H=
θ1 0
,
0 θ2
(4.49b)
C(v) =
and
F(v) =
0 −θ3 ω
,
θ3 ω 0
0
θ4
,
0 θ6 + (θ5 − θ3 )u
(4.49c)
(4.49d)
which is repeated here for convenience. Now, expanding this equation one gets,
T
T
T
taking into account that vr = u r ωr , v = u ω , and v̇ = u̇ ω̇
0
ur
θ1 0 u̇
u
0 −θ3 ω u
−θ4
=
+
+
,
ωr
0 θ2 ω̇
θ3 ω 0
0 θ6 + (θ5 − θ3 )u ω
ω
(4.50a)
or
θ1 u̇ − θ3 ω2 + θ4 u
θ1 u̇ − θ3 ω2 + θ4 u
ur
=
=
, (4.50b)
ωr
θ2 ω̇ + θ3 ωu + θ6 ω + θ5 ωu − θ3 ωu
θ2 ω̇ + θ6 ω + θ5 ωu
or, finally,
T
ur
u̇ 0 −ω2 u 0 0 θ1 θ2 θ3 θ4 θ5 θ6 = Gi θ ,
=
ωr
0 ω̇ 0 0 uω ω
(4.50c)
which is the linear parameterization of the inverse dynamic model of the differentialdrive robot, with
u̇ 0 −ω2 u 0 0
Gi =
.
(4.50d)
0 ω̇ 0 0 uω ω
However, as the true values of the entries of θ are not known, the correct values of
H, C(v) and F(v) are not available. As only the estimate θ̂ is available, the solution
is to use such an estimate when designing the control law. Hence, the control law
proposed for the inner loop of the control system is
T
v̇d + T(ṽ) + C(v)vd + F(v)vd ,
vr = u r ωr = H
(4.51)
where vd is the desired velocity, provided by the kinematic controller implemented
as the outer control loop, and v is the velocity vector effectively developed by the
robot, with ṽ = vd − v. As for Ĥ, Ĉ(v) and F̂(v), they are the matrices H, C(v)
and F(v) characterized by the estimate θ̂ of θ, whereas
T
,
T(ṽ) = lu tanh kluu ũ lω tanh klωω ω̃
86
4 Motion Control
with ũ = u d − u and ω̃ = ωd − ω being the linear and angular velocity errors. By
their turn, ku and kω are the controller gains, which are positive nonzeroconstants,
whereas lu and lω are real nonzero saturation constants, so that lu tanh kluu ũ and
lω tanh klωω ω̃ have the same signal as ũ and ω̃, respectively.
From such a control law one can write
⎤
⎡
θ̂1 u̇ d + lu tanh kluu ũ − θ̂3 ωd ω + θ̂4 u d
⎦ , (4.52a)
vr = ⎣ θ̂2 ω̇d + lω tanh klωω ω̃ + θ̂3 ωu d + θ̂6 ωd + θ̂5 uωd − θ̂3 ωd u
−ωd ω
ud 0 0
σ1 0
vr =
θ̂ ,
0 σ2 (u d ω − uωd ) 0 uωd ωd
or
with σ1 = u̇ d + lu tanh
ku
ũ
lu
and σ2 = ω̇d + lω tanh
kω
ω̃
lω
(4.52b)
, so that
vr = Gθ̂,
(4.52c)
which is the linear parameterization of the inverse dynamic control law of the
differential-drive robot . Nonetheless, case the right values θ were available, the
control law would be
vr = H v̇d + T(ṽ) + C(v)vd + F(v)vd = Gθ.
However, recalling that θ̂ = θ + θ̃, one gets vr = Gθ + Gθ̃ , or, using the model
in (4.49a),
vr = Hσ + C(v)vd + F(v)vd + Gθ̃ = Hv̇ + C(v)v + F(v)v,
from where one gets
H(σ − v̇) + C(v)(vd − v) + F(v)(vd − v) + Gθ̃ = 0,
T
with σ = σ1 σ2 = v̇d + T(ṽ). However, as ṽ = vd − v, and thus ṽ˙ = v̇d − v̇, one
gets v̇d = ṽ˙ + v̇, so that σ = ṽ˙ + v̇ + T(ṽ), and hence σ − v̇ = ṽ˙ + T(ṽ), resulting
that
H ṽ˙ + T(ṽ) + C(v)ṽ + F(v)ṽ = −Gθ̃ ,
(4.53)
which is the closed-loop equation describing the behavior of the velocity error along
time.
To analyze the stability of the inner control loop thus designed, let V (ṽ, θ̃ ) =
T
1 T
ṽ Hṽ + 21 θ̃ γ −1 θ̃ be the radially unbounded Lyapunov candidate function, which
2
4.12 Adaptive Control
87
is positive for all nonzero ṽ and θ̃ and zero for ṽ = 0 and θ̃ = 0, since H > 0 and γ
is chosen as a diagonal positive definite matrix. Thus, the time derivative of such a
function is
T
˙
V̇ (ṽ, θ̃ ) = ṽ T Hṽ˙ + θ̃ γ −1 θ̃,
or
T
V̇ (ṽ, θ̃ ) = ṽ T −Gθ̃ − C(v)ṽ − F(v)ṽ − HT(ṽ) + θ̃ γ −1 θ̃˙ ,
taking (4.53) into account. Moreover, as C(v) is a skew symmetric matrix (see the
model properties in Chap. 3), the term ṽ T C(v)ṽ in the above equation is null, thus
resulting
T
V̇ (ṽ, θ̃ ) = −ṽ T Gθ̃ − ṽ T F(v)ṽ − ṽ T HT(ṽ) + θ̃ γ −1 θ̃˙ .
Now, considering that θ is constant, or θ̇ = 0, one gets that θ̂˙ = θ̃˙ . Considering
updating the estimated parameters used in the control law as a function of the velocity
error, such that
(4.54)
θ̂˙ = γ GT ṽ = θ̃˙ ,
the time derivative of the Lyapunov candidate function becomes
V̇ (ṽ, θ̃ ) = −ṽ T F(v)ṽ − ṽ T HT(ṽ),
because the last term in the right hand compensates for the first one when introducing
(4.54). This way, V̇ (ṽ, θ̃ ) is negative semi-definite, since it is zero for any θ̃ when
ṽ = 0, and is negative for any nonzero value of ṽ, since F(v) > 0, H > 0 (see the
model properties in Chap. 3), and T(ṽ) has the same signal of ṽ. From such result,
and recalling that V is radially unbounded, it is possible to conclude that ṽ ∈ L ∞
and θ̃ ∈ L ∞ , meaning that both errors are bounded.
Now, taking the integral of V̇ (ṽ, θ̃ ) over the time interval [0, T ], with T finite,
one has
T
T
T
V (T ) − V (0) = − ṽ HT(ṽ) dt − ṽ T Fṽ dt,
0
0
which becomes, after dropping the positive terms V (T ) and the first integral,
T
−V (0) ≤ −
ṽ T Fṽ dt,
0
or
T
V (0) ≥
ṽ T Fṽ dt.
0
88
4 Motion Control
However, as F is diagonal and positive definite (see the model properties in
Chap. 3), the inequality
λmin (F)||ṽ||2 ≤ ṽ T Fṽ ≤ λmax (F)||ṽ||2
holds. Nonetheless, considering that λmin (F) and λmax (F) can vary with u, one can
write
inf[λmin (F)]||ṽ||2 ≤ ṽ T Fṽ ≤ sup[λmax (F)]||ṽ||2 ,
where inf(.) means the infimum of the value, and sup(.) means the supremum of the
value. Using such result in V̇ (.) one has
T
V (0) ≥ inf[λmin (F)]
||ṽ||2 dt.
0
As such equation is valid for all integration time T, one can write
∞
V (0) ≥ inf[λmin (F)]
||ṽ||2 dt,
0
or
∞
||ṽ||2 dt ≤
0
V (0)
,
inf[λmin (F)]
allowing concluding that ṽ is square integrable, or ṽ ∈ L 2 .
As vd is bounded, since it comes from the kinematic controller, which configures
the outer control loop in Fig. 4.1, as well as ṽ, since ṽ ∈ L ∞ , and remembering
that ṽ = vd − v, v is also bounded, so that C(v) and F(v) are bounded. Assuming
that v̇d is limited, the conclusion is that G is also limited. Therefore, (4.53) allows
concluding that ṽ˙ is limited, so that ṽ˙ ∈ L ∞ and ṽ ∈ L 2 , which allows to state, using
the Lemma of Barbalat [3], that ṽ(t) → 0 when t → ∞, thus achieving the control
objective of reducing the velocity error between the desired velocity and the effective
one ideally to zero.
Considering the case of a quadrotor, whose model, in body coordinates, as seen
in Chap. 3, is
(4.55)
v̇ = f1 u − f2 v,
with f1 = diag(k1 , k3 , k5 , k7 ) and f2 = diag(k2 , k4 , k6 , k8 ). From such a model one
can write
u = vr = f1 −1 v̇ + f1−1 f2 v,
4.12 Adaptive Control
89
where vr , instead of u will be used from now on, for compatibility with (4.49a), with
T
v = vx v y vz vψ . From such an equation it comes that
⎡
θ1 v̇x
⎢ θ3 v̇ y
vr = ⎢
⎣ θ5 v̇z
θ7 v̇ψ
or
⎡
v̇x
⎢0
vr = ⎢
⎣0
0
vx
0
0
0
0
v̇ y
0
0
0
vy
0
0
⎤
+ θ2 vx
+ θ4 v y ⎥
⎥,
+ θ6 vz ⎦
+ θ8 vψ
0
0
v̇z
0
0
0
vz
0
0
0
0
v̇ψ
⎤
0
0⎥
⎥ θ,
0⎦
vψ
(4.56)
Mθ
where
T θ = θ1 θ2 θ3 θ4 θ5 θ6 θ7 θ8 = k11
k2 1 k4 1 k6 1 k8
k1 k3 k3 k5 k5 k7 k7
T
.
Notice that this is the linear parameterization of the inverse dynamic model of the
quadrotor. Finally, such a inverse model can also be written as
⎡
θ1
⎢0
vr = ⎢
⎣0
0
0
θ3
0
0
0
0
θ5
0
⎤
⎡
θ2
0
⎢0
0⎥
⎥ v̇ + ⎢
⎣0
0⎦
θ7
0
Dv̇
0
θ4
0
0
0
0
θ6
0
η
⎤
0
0⎥
⎥ v,
0⎦
θ8
or
vr = Dv̇ + η.
Similarly to the case of the differential-drive robot, the control law adopted, based
on the inverse dynamics, is
vr = D v̇d + L tanh L−1 K p ṽ + η = D v̇d + T(ṽ) + η,
(4.57)
where K p = diag(k px , k py k pz k pψ ) is a diagonal positive gain matrix,
L = diag(l x , l y , l z , lψ ) is a real diagonal matrix defining the saturation level, and
ṽ = vd − v is the velocity error. The function tanh is used once more, to provide a
smooth saturation of the control signal. Considering such a control law one can write
vr = Gθ,
(4.58)
90
4 Motion Control
Fig. 4.38 Illustration of how
to implement the adaptive
dynamic control as the inner
loop of the inner-outer
control structure
where
⎡
g11
⎢0
G=⎢
⎣0
0
vx
0
0
0
0
g23
0
0
0
vy
0
0
0
0
g35
0
0
0
vz
0
0
0
0
g47
⎤
0
0⎥
⎥
0⎦
vψ
k
k
g11 = v̇d x + l x tanh lpxx ṽx , g23 = v̇dy + l y tanh lpyy ṽ y ,
k
k
.
ṽ
l z tanh lpzz ṽz , and g47 = v̇dψ + lψ tanh lpψ
ψ
ψ
with
g35 = v̇dz +
Now, considering the estimate θ̂ of θ, such that θ̃ = θ̂ − θ , the control law of
(4.58) based on the estimated parameters becomes
vr = Gθ̂ = Gθ + Gθ̃ = D v̇ + T(ṽ) + η + Gθ̃ .
Hereinafter the stability analysis is identical to the one developed for the case
of a differential-drive robot, including using the same parameter adaptation law.
The conclusion is that the velocity error ṽ(t) → 0 when t → ∞, meaning that the
velocity error converges to zero asymptotically.
Figure 4.38 depicts the scheme of the inner control loop implemented as an
adaptive dynamic compensator, for a differential-drive robot and a quadrotor as well,
as discussed above.
Some examples of the use of the adaptive dynamic compensator are shown in
the sequel. The first one simulates a Pioneer 3 DX robot following a trajectory. To
run this simulation, the dynamic parameters of the robot, identified as the vector
T
θ̂ = 0.3037 0.2768 −0.0004018 0.9835 0.003818 1.0725 , are changed, reducing their value in 1/3, to simulate a bad identification. Then, after 100 s of simulation,
with a sampling time of 100 milliseconds, the parameters start being updated, according to the updating law yet discussed, and the simulation continues till t = 200 s. The
simulated task is a trajectory-tracking one, where the trajectory to be tracked is a lemniscate of Bernoulli characterized by xd = 2.5 sin (0.3t) and yd = 2.5 cos (0.15t).
4.12 Adaptive Control
91
Fig. 4.39 The desired and the effectively tracked trajectories for a differential-drive robot before
and after the parameter updating. The robot is guided by an adaptive controller whose parameter
updating law starts working at t = 100 s
The adaptive inner-outer controller is implemented to guide the robot during the
simulation. The kinematic outer loop controller (4.10) is configured with the gains
k px = k py = 0.75 and the saturation constants ksx = ksy = 0.1, with the point of
interest for control characterized by a = 0.2 m and α = 0◦ . As for the gains of
the dynamic controller (4.51) correspondent to the inner control loop, they are
ku = kω = 4, with saturation constants lu = lω = 1. By its turn, the matrix γ in
the parameter updating law is γ = diag(1.7, 1.1, 0.5, 0.3, 0.001, 0.5).
Figures 4.39, 4.40 and 4.41 illustrate the result of the simulation. One can see
from Figs. 4.39 and 4.40 that after the parameter updating law starts working the
parameters are corrected, what becomes clear checking the difference in terms of
the tracking error before and after the parameter updating. The position (x, y) of the
robot along navigation, shown in Fig. 4.41 also allows perceiving the performance
improvement.
To conclude this section an experiment involving the adaptive control of a quadrotor is presented, considering a trajectory-tracking task. The Bebop 2 drone is used, for
which the parameters shown in Table 3.1 are not used. Instead, the experiment starts
with the parameters arbitrarily chosen as K 1 = 2.5, K 3 = 2.5, K 5 = 10, K 7 =
10, K 2 = 2.5, K 4 = 2.5, K 6 = 10, and K 8 = 10, As a consequence, the vector θ
T
of (4.56) becomes θ = 0.4 1 0.4 1 0.1 1 0.1 1 , whose entries are quite different
from those correspondent to the parameters of Table 3.1. Therefore it is expected
92
4 Motion Control
Fig. 4.40 Tracking error for the differential-drive robot in a trajectory-tracking task guided by an
adaptive controller, for which the adaptation starts at t = 100 s
that the drone navigates with a quite big error with respect to the desired trajectory,
reducing it as long as the parameters are being updated.
The desired trajectory is defined as
T
xd = cos(2π/T ) sin(4π/T ) 1 − 0.5 cos(2π/T ) ,
with T = 18 s and a sampling rate of 30 Hz. The experiment has a duration of 60 s,
with the parameter adaptation starting at the instant t = 15 s. Another detail is that
T
in the first 3 s the quadrotor goes to the position x0 = 0 0 1 , where its orientation
should be 0 ◦ . Then, it keeps hovering until t = 15 s, when it starts tracking the
desired trajectory.
The control system designed is based on the inner-outer loops structure, as illustrated in Fig. 4.38. The outer loop corresponds to a kinematic controller, which
generates the desired velocity vd shown in the figure. However, as the data relative to the position and velocities of the quadrotor are obtained using the OptiTrack
motion capture system, all the values in the figure are in global coordinates, except
by vr . In addition, to calculate the parameters update law ṽw is converted to body
coordinates, resulting in ṽ. However, the parameter updating does not work continuously. Instead, when the quadratic norm of the velocity tracking error ṽ is less
than 2.5 cm/s it is considered that the parameters have reached their final values,
stopping the parameters updating until an error value greater than such a value
4.12 Adaptive Control
93
Fig. 4.41 Robot position in a trajectory-tracking task guided by an adaptive controller, for which
the adaptation starts at t = 100 s
is detected (this corresponds to creating a dead zone of ±2.5 cm/s for the velocity tracking error, to avoid the continuous parameter updating). Therefore, one can
write vdw = ẋdw + K p x̃w , such that ṽw = vdw − ẋw = ẋdw + K p x̃w − ẋw , resulting in
the velocity tracking error ṽw = x̃˙ w + K p x̃w , from which the value ṽ is obtained
using the matrix of inverse kinematics of the quadrotor.
The dynamic compensation is performed considering σ w = v̇dw + Kd (vdw − ẋw ).
Then, σ b and xb , in body coordinates, are obtained, and thus one gets
⎤
0
0
0
0
0
σ b (1) ẋb (1) 0
⎢ 0
0
0
0 ⎥
0 σ b (2) ẋb (2) 0
⎥,
G=⎢
⎣ 0
0 ⎦
0
0
0 σ b (3) ẋb (3) 0
0
0
0
0
0
0 σ b (4) ẋb (4)
⎡
and then vr = Gθ is obtained. To update the vector of parameters, as shown in Fig.
4.38, one calculates θ m = θ m−1 + γ −1 GT λTs , where Ts is the sampling period and
λ = ṽ if ||ṽ||2 ≥ 2.5 cm/s, and λ = 0 otherwise (in this last case the parameters are
not updated).
94
4 Motion Control
Fig. 4.42 The variation of the parameters K i , i = 1, . . . , 8, with the final values shown
As for the gains K p and Kd , they are K p = diag(4, 4, 5.4, 7.5) and Kd =
diag(2, 2, 1.8, 5), whereas the matrix γ −1 of the parameter updating law is γ −1 =
diag(60, 60, 1, 0.1, 20, 20, 1, 0.1).
The results of such an experiment are synthesized in Figs. 4.42, 4.43, 4.44 and
4.45. In the first one it is possible to perceive that the arbitrary parameter values
converged to the final values showed in the figure, as long as the position error with
respect to the desired trajectory becomes quite close to zero, as Fig. 4.43 shows. As
a consequence, the tracking of the desired trajectory becomes much better as long
as the parameters are being updated, as Figs. 4.44 and 4.45 show.
As one can see from the experimental results, the adaptive controller performed
as expected, making the initial big tracking error to decrease to quite low values.
4.13 Concluding Remarks
This chapter explores two basic techniques to design a controller to guide differential
drive wheeled robots and quadrotors, namely the single-loop dynamic control system
and the inner-outer loops control system, which can be applied to positioning tasks,
trajectory-tracking tasks and path-following tasks, with quite small adaptations, as
discussed and illustrated along the text. In addition to the design of controllers based
on the inner-outer loops structure, in which the inner loop performs a compensation of
the dynamics of the vehicle, the chapter also shows how to design an adaptive dynamic
compensator to be used as the inner control loop, which is quite useful in situations
4.13 Concluding Remarks
Fig. 4.43 The position errors with respect to the desired trajectory along the experiment
Fig. 4.44 The path traveled
by the quadrotor along the
experiment
95
96
4 Motion Control
Fig. 4.45 The position of the quadrotor with respect to the desired trajectory along the experiment
in which the robot transports loads, which changes its dynamic parameters, as well
as to compensate for any misidentified dynamic parameter or external disturbances.
The focus, in both designs, is the inverse kinematics technique to design the
outer loop correspondent to the inner-outer loops structure, and the inverse dynamics
technique to design the inner loop of the inner-outer loops structure and the singleloop dynamic controller, which consists in inverting the nonlinear kinematics or
dynamics, thus generating a linear closed-loop system equation.
The most important contribution is to show that the technique is powerful enough
to be applied to any motion strategy, as exemplified along the chapter.
References
1. Aicardi M, Casalino G, Balestrino A (1995) Closed loop steering of unicycle-like vehicles via
Lyapunov techniques. IEEE Robot Autom Mag 2(1):27–35
2. Antonelli G (2009) Stability analysis for prioritized closed-loop inverse kinematic algorithms
for redundant robotic systems. IEEE Trans Robot 25(5):985–994. https://doi.org/10.1109/
TRO.2009.2017135
3. Astrom KJ, Wittenmark B Chapter 6: Model-reference adaptive systems, 2nd ed. Dover Books
on Engineering. Dover Publications, Inc., Mineola, NY, USA
4. Bolton W (2004) 13-controllers. In: Bolton W (ed) Instrumentation and control systems.
Newnes, Oxford, pp 290–302. https://doi.org/10.1016/B978-075066432-5/50013-9
5. Brauer F, Nohel JA (1989) The qualitative theory of ordinary differential equations: an introduction. Dover Publications Inc, New York, USA
6. Brockett R (1983) Asymptotic stability and feedback stabilization. In: Brockett RW, Millman
RS, Sussmann HJ (eds) Differential geometric control theory
7. Cao N, Lynch AF (2016) Inner-outer loop control for quadrotor UAVs with input and state
constraints. IEEE Trans Control Syst Technol 24(5):1797–1804. https://doi.org/10.1109/TCST.
2015.2505642
8. Chen CT (1999) State-space solutions and realizations. In: Chen CT (ed) Linear systems theory
and design, 3rd ed. Oxford University Press, pp 86–116 (1999)
9. Khalil HK (2002) Nonlinear systems, 3 ed. Prentice Hall
References
97
10. Martins FN, Celeste WC, Carelli R, Sarcinelli-Filho M, Bastos-Filho TF (2008) An adaptive dynamic controller for autonomous mobile robot trajectory tracking. Control Eng Prac
16(11):1354–1363. https://doi.org/10.1016/j.conengprac.2008.03.004
11. Montoya-Villegas L, Moreno-Valenzuela J, Pérez-Alcocer R (2019) A feedback linearizationbased motion controller for a UWMR with experimental evaluations. Robotica 37(6):1073–
1089. https://doi.org/10.1017/S0263574718001443
12. Naldi R, Furci M, Sanfelice RG, Marconi L (2017) Robust global trajectory tracking for
underactuated VTOL aerial vehicles using inner-outer loop control paradigms. IEEE Trans
Autom Control 62(1):97–112
13. Santos MCP, Rosales CD, Sarapura JA, Sarcinelli-Filho M, Carelli R (2019) An adaptive
dynamic controller for quadrotor to perform trajectory tracking tasks. J Intell Robot Syst 93(1–
2):5–16. https://doi.org/10.1007/s10846-018-0799-3
14. Secchi H, Carelli R, Mut V (2003) An experience on stable control of mobile robots. Latin Am
Appl Res 33(4):379–386
15. Siciliano B (1990) A closed-loop inverse kinematic scheme for on-line joint-based robot control. Robotica 8(3):231–243. https://doi.org/10.1017/S0263574700000096
16. Slotine JJ, Li W (1991) Applied nonlinear control. Prentice Hall, Englewood Cliffs, NJ, USA
17. Toibero JM, Roberti F, Carelli R, Fiorini P (2011) Switching control approach for stable navigation of mobile robots in unknown environments. Robot Comput-Integr Manuf 27:558–68.
https://doi.org/10.1016/j.rcim.2010.10.002
Chapter 5
Control of Multi-robot Systems
Abstract Two approaches to control a multi robot system, also known as a robot
formation or robot cluster, namely the leader-follower and the virtual structure
approaches, are dealt with in this chapter. They are discussed in details, and examples showing their implementation to control a group of two or more robots are also
discussed, considering groups of two or more robots of the same kinematics and of
different kinematics. The scalability of such systems to control more than two or
three robots is also addressed. The chapter also discusses how to implement a hierarchical control structure, when regarding conflicting control objectives, showing how
to implement a control system taking into account the different priorities assigned
to the subtasks involved in the accomplishment of the whole task.
5.1 Introduction
In this chapter some ideas on the control of multi robot systems, also called multi
robot formations, or simply robot formations, are discussed. First of all, the main
characteristic of the control of a multi robot system should be stressed. To accomplish
a desired task, all the robots in the formation should move in such a way to contribute
to the task accomplishment. There is no possibility of independent movement of the
elements in the formation. They should move accordingly, to achieve the common
objective. This introduces the key word coordination in the context. The elements of
the formation should move in a coordinated way, not independently.
Therefore, the control system of each robot should take into account the data
relative to position and orientation of all the elements of the formation, to know
the current state of the formation, and thus define the commands to be sent to each
element of it.
In this sense, two ways are available to implement the control system. It may be
a centralized control system, gathering and processing the information of all agents,
which corresponds to a control station that can be external to all the robots or can be
on board of one of the agents in the formation. The centralized control system should
receive information from all the agents, calculate all the velocity commands and send
them to each robot. In this case, the communication mesh needs a full duplex channel
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2023
M. Sarcinelli-Filho and R. Carelli, Control of Ground and Aerial Robots, Intelligent
Systems, Control and Automation: Science and Engineering 103,
https://doi.org/10.1007/978-3-031-23088-2_5
99
100
5 Control of Multi-robot Systems
linking each robot and the control station. Case the control system be a decentralized
one, meaning that each robot has its own controller, each robot should receive the
position and orientation of all the other components of the formation, as well as to
send its own position and orientation to all the others. The communication mesh, in
this case, would involve a full duplex channel linking each robot in the formation and
all the others, which is much more complex, mainly when the number of elements
in the formation increases.
5.2 Characterization of a Robot Formation
Two main paradigms are considered in this chapter to perform the control of a robot
formation: the leader-follower and the virtual structure approaches.
In the leader-follower approach one robot is the leader, whose movement should
be replicated by a second robot, the follower one [13, 26]. However, the controller
guiding the follower robot should preserve a previously established distance between
both agents and a relative angle, defined as the angle formed by the line segment
linking the two robots and the axis x w , when regarding ground vehicles. When
regarding quadrotors, as the line segment linking the two agents is a straight line in the
3D space, besides the distance between the robots two angles should be established,
the one between the projection of the line segment on the x w y w plane and the axis
x w , and the one between the line segment and the x w y w plane.
Notice that this formation, conceptually speaking, is interesting to allow two
robots to carry a load in the form of a bar, for instance. In such case, the two robots
should be kept apart enough to guarantee the balance of the load, and should move
with close velocities, to guarantee that the bar would not fall down. Thus, the controller of the follower robot is in charge of just moving it to replicate the movement
of the leader one, which is independently controlled.
However, although being a quite interesting paradigm to control a multi-robot
system, the leader-follower formation has a strong drawback. If the leader presents
any failure preventing its movement, the whole formation stops moving, since the
follower replicates the movement of the leader. Therefore, with the leader stopped
the follower also stops. In the eventuality of a leader-follower chain, when the first
follower, which is the leader for the third robot in the chain, stops, its follower also
stops, so that the whole chain stops.
Regarding the virtual structure approach, there is no leader agent anymore [18].
The whole formation is considered as a single agent, a virtual one. Therefore, the
movement of the whole formation is defined by the movement of a virtual robot
placed in a point of a geometric figure characterizing the formation. For instance, let
us consider a three-robots formation. Naturally one thinks on a triangle composed
by such robots, such as in [1, 17, 25], to mention the use of such an approach
for different robot types (wheeled robots, water vessels and drones, respectively).
In such a case, the virtual robot could be over the center of mass of the virtual
structure (the triangle). Other example could be the virtual structure corresponding
5.2 Characterization of a Robot Formation
101
to a formation of a wheeled ground robot and a drone, such as in [7, 23], or two
drones, such as in [28], for which the virtual robot can be placed at any point of the
line segment corresponding to the virtual structure, such as in one of the extremities, in
this case coinciding with one of the real robots in the formation. The first meaningful
difference when comparing with the leader-follower structure is that the virtual robot,
responsible for the motion of the formation, is not susceptible to failures, for being
virtual. Therefore, the whole formation can continue moving, even when one or
more robots in the formation stops due to any failure. In such a case all one needs is
to reconfigure the formation. Moreover, the virtual robot demands just a kinematic
controller, since it does not have mass or inertia, for being virtual.
The virtual structure approach consists in designing a kinematic controller for the
virtual robot to control the motion of the formation. From the velocity commands
generated by such controller the velocity commands to be sent to all the robots
of the formation are generated. In other words to move the formation is to move
the virtual robot, whose movement defines how each robot in the formation should
move, to establish/preserve the desired structure. Therefore, two control instances are
considered, which are the control of the virtual robot characterizing the formation,
and the control of each robot of the formation. Notice that the movement of the virtual
robot characterizing the formation may accomplish a trajectory-tracking, positioning
or path-following task. As for the individual robots, they always perform trajectorytracking, since each one receives references of desired position and velocity at each
time instant. An important aspect, in this case, is that all the robots of the formation are
controlled simultaneously, with the references generated by the controller designed
for the virtual robot characterizing the formation. Notice that this is in opposition to
what happens when considering a leader-follower approach, since there the controller
designed for the follower does not generate any reference for the leader robot. Thus,
in the leader-follower approach each robot is independently controlled, whereas in
the virtual structure approach all the robots of the formation are simultaneously
controlled, as it will become clearer ahead.
Another meaningful aspect of multi robot systems or robot formations is their
characterization with respect to the type of robot it includes. A formation is said to
be an homogeneous one when all its components are vehicles of identical kinematics,
such as a formation composed of only quadrotors, such as in [25, 28], or only wheeled
robots, such as in [17, 24]. On the other hand, when robots of different kinematics are
included in the formation, such as in [7, 23] or [16], the formation is an heterogeneous
one.
As for the motivation to adopt a robot formation to accomplish a given task, instead
of just a single robot, there are some important aspects which deserve mentioning.
One of them is that the nature of the task to be accomplished by itself can demand a
group of robots, to achieve better performance. This is the case when detecting land
mines in a certain terrain, for instance. More inspection robots allow to cover the same
area in much less time, and the destruction of one robot of the squad does not prevent
the continuity of the task, what would be the case when using just one robot. In other
situations the robots included in the squad can be much cheaper than the single one
necessary to accomplish the same task. In tasks such as search and rescue in disaster
102
5 Control of Multi-robot Systems
areas, the need of searching for survivors in the least time possible demands a group
of robots, to reduce the time necessary to accomplish such a task. In other situations,
such as in warehouse automation, the combination of a wheeled robot with a drone
taking off from it and landing on it, allows to access merchandise stored in higher
shelves, not accessible for the ground vehicle. Thus, in many applications the use of
a robot formation allows achieving much better performance, with more reliability
and, sometimes, at a lower cost [22].
5.3 Leader-Follower Paradigm
In a leader-follower formation, the follower robot accomplishes the task of mimicking the movement of the leader one. This means that the two robots are independently controlled, although this may be performed by controllers running in a same
computer. Another possibility is that the leader be remotely controlled by a human
operator, whereas the follower is controlled by an automatic controller responsible
to send velocity references for it. Notice that in this case it is possible to have an
homogeneous formation, with two wheeled robots or two quadrotors, for instance,
or an heterogeneous formation, composed by a wheeled robot and a quadrotor, for
instance.
Figures 5.1 and 5.2 illustrate two homogeneous leader-follower formations, the
first one composed by two wheeled robots Pioneer 3-DX and the second one composed by two quadrotors Bebop 2. Notice that the following of the leader robot by the
follower one establishes a certain distance between them, and angles characterizing
the inclination of the line segment that links the point of interest for control of the
two robots, as represented in the two figures.
An important remark is that a leader-follower multi-robot system (MRS) may
comprise more than two robots. The way to implement this is to consider the whole
system as a chain, where the first robot is the leader being followed by the second
robot in the chain, which is also the leader for the third robot and so on.
From the Figs. 5.1 and 5.2 one can perceive that the leader robot defines a trajectory
to be tracked by the follower robot. Thus, all the follower robots should do is to track
a trajectory defined by
xdwF (t) = xwL (t) − ,
ẋdwF (t) = A L vbL (t),
(5.1)
where defines the desired position error between the leader and follower robots,
and A L is the matrix of direct kinematics of the leader robot. Thus, it does not matter
which task the leader is accomplishing (a positioning, a trajectory-tracking or a pathfollowing one), the follower robot should always track a trajectory, established by
the leader robot.
5.3 Leader-Follower Paradigm
103
Fig. 5.1 Illustration of a leader-follower formation of two Pioneer 3-DX robots
Fig. 5.2 Illustration of a leader-follower formation of two Bebop2 quadrotors
Therefore, the controller to be designed for the follower robot is a trajectorytracking one, as seen in Chap. 4, with the trajectory to be tracked defined as above.
In the case of a wheeled robot, the variables ρ L F and β L F characterize the formation
(see Fig. 5.1). From them one can get
T
= ρ L F cos β L F ρ L F sin β L F .
104
5 Control of Multi-robot Systems
In the case of a quadrotor, the variables describing the formation are ρ L F , α L F and
β L F , shown in Fig. 5.2. From them one gets
T
= ρ cos α L F cos β L F ρ cos α L F sin β L F ρ sin α L F .
To illustrate this design, consider a leader follower MRS composed of two Pioneer
3-DX robots, both with the point of interest for control at a distance of 20 cm of the
point in the middle of the virtual axle, in an angle of 30◦ with the axis x r (see Fig. 5.1).
The leader should track a circular trajectory characterized as
T
xdw = 8 − 5 cos( 2πt
) 5 sin( 2πt
) ,
60
60
for which
ẋdw =
10π
60
sin( 2πt
)
60
10π
60
cos( 2πt
)
60
T
,
during 55 s. Notice that the leader robot tracks a prescribed trajectory, so that two
trajectory-tracking controllers similar to that described by (4.25) are designed, one
for the leader robot and another for the follower one. Such a task is simulated,
considering that the leader robot starts moving from the initial position (6 m, 1 m),
whereas the follower robot starts moving from the position (8 m, 0 m), both with
orientation 0◦ . As for the controllers, the gains are set to K P = diag(4, 4) for the
leader robot, and K P = diag(7.5, 7.5) for the follower one. Finally, the desired
formation shape is described by ρ L F = 4 m and β L F = π/4 rad.
The graphics in Figs. 5.3 and 5.4 show the results of this simulation. The first one
shows the trajectory programmed for the leader, the trajectory the leader establishes
for the follower, and the paths effectively traveled by the leader and the follower,
besides the initial positions of both robots (see the legend of the figure). As for the
second of these figures, it shows the behavior of the variables ρ L F and β L F , which
characterize the leader-follower formation, in this example, along the navigation.
From the figures one can perceive that the leader, after an initial transient, managed
to reach the programmed trajectory, thus causing the follower to also reach the
trajectory the leader defines for it, and making the values of ρ L F and β L F to reach
their programmed values, which are preserved all along the rest of the navigation.
Let us now consider a leader-follower formation of two quadrotors (see Fig. 5.2).
Figures 5.5 and 5.6 show the paths effectively followed by the robots against the
desired trajectories, and the temporal evolution of the variables ρ L F , α L F and β L F
describing the formation. The leader robot is programmed to track the same circular
trajectory of the previous simulation, now at a constant altitude of 8 m. As for the
initial positions of the robots, they are (5 m, 1 m, 1 m), for the leader robot, and
(8 m, 0 m, 1 m), for the follower robot, both with orientation 0 rad, whereas the
adopted gains are K P L = diag(4, 4, 4, 4) for the leader quadrotor, and K P F =
diag(7.5, 7.5, 7.5, 7.5) for the follower quadrotor.
From the figures one can perceive that the two robots, after an initial transient,
effectively track the respective trajectory. However, as the leader quadrotor is quite far
5.3 Leader-Follower Paradigm
105
Fig. 5.3 The paths traveled by the leader and follower robots, considering that the leader tracks a
given trajectory
Fig. 5.4 The values of the variables describing the formation along the navigation
106
5 Control of Multi-robot Systems
Fig. 5.5 The paths traveled by the leader and follower quadrotors, considering that the leader tracks
a given trajectory
Fig. 5.6 The values of the variables describing the formation along the navigation
5.3 Leader-Follower Paradigm
107
Fig. 5.7 Experimental setup and schematics of the leader and follower robots
from the desired altitude, its controller starts guiding the navigation after the quadrotor takes off and starts hovering about 1 m above the ground, whereas the desired
trajectory is a circle at the altitude of 8 m. As for the variables ρ L F , α + L F and β L F ,
one can see that they converge to the prescribed values of (4 m, 0 rad, 0 rad), respectively, confirming the effectiveness of the proposed approach to design a trajectorytracking controller for the follower robot, considering that the position and velocity
of the leader robot defines the trajectory it should track.
Finally, it is worthy mentioning that such an approach is also valid for an heterogeneous formation, such as one composed by a differential-drive robot and a quadrotor.
The only difference, in comparison with the example just discussed, which considers
two quadrotors, is in the z coordinate of the ground vehicle, which should be set to
zero.
The relative position between the leader and the follower can be measured with
different sensors, as fixed and mobile cameras, GPS, Indoor GPS, motion capture
systems, such as in [7, 23], where the OptiTrack motion capture system was used.
In [12], it is used a visual camera mounted on the follower robot and looking at
a visual pattern mounted on the leader robot, which gets the information about the
relative follower-leader position and allows estimating the leader´s velocity, as shown
in Fig. 5.7. This information is used by the proposed controller to guide the follower
robot to track the leader one. Notice that the robot with the visual pattern performs
like a leader for the one which is tracking the visual pattern, thus configuring a
leader-follower formation.
In the experiment, the desired tracking should verify a relative distance between
the ground robots of d = 0.5 m and the angle φ = 0, variables which are shown in
Fig. 5.7. The variables of distance d and the angles φ and θ are obtained from the
processing of the images captured by the camera at a sampling period of T = 0.1 s,
see details in [12]. From Fig. 5.7, it can be written the following kinematic relations,
ḋ = v cos φ − v L cos θ
(5.2a)
108
5 Control of Multi-robot Systems
Fig. 5.8 Evolution of the formation variables
φ̇ = ω + v
sin φ
sin θ
+ vL
d
d
(5.2b)
Now, the following inverse kinematics control laws are considered for commanding the follower robot,
1
v=
(v L cos θ − kd d̃)
(5.3a)
cos φ
ω = −v
sin θ
sin φ
−v
+ kφ φ
d
d
(5.3b)
where d̃ = d − dd .
The leader velocity vT is estimated from (5.2a) considering the sampling time of
T = 0.1 s, as
v̂ L =
v cos φ − (dk − dk−1 )/0.1
cos θ
(5.4)
The control gains are set to kd = 200 and kφ = 10. In Fig. 5.8 it is shown the
formation tracking errors from an experiment in which the leader follows an arbitrary
trajectory, and the follower conforms the leader-follower formation by the visual
servoing as described above.
5.4 Virtual Structure Paradigm
109
5.4 Virtual Structure Paradigm
In this section three formations of two robots are considered, to design the formation
controller with basis on the virtual structure paradigm. The first one is an homogeneous formation composed by two wheeled differential-drive robots, the second
one is also an homogeneous formation, now composed by two quadrotors, and the
third one is an heterogeneous formation composed by a wheeled differential-drive
robot and a quadrotor. Figures 5.9, 5.10 and 5.11 illustrate these three two-robots
formations.
5.4.1 Cluster Space Versus Robots Space
In all the three previous figures illustrating two-robots formations there are two
distinct groups of variables. The first group characterizes the positions of the two
Fig. 5.9 Illustration of a
formation of two
differential-drive robots,
with the variables involved
Fig. 5.10 Illustration of a
formation composed by two
quadrotors, with the
variables involved
110
5 Control of Multi-robot Systems
Fig. 5.11 Illustration of an heterogeneous formation composed by a wheeled differential-drive
robot and a quadrotor, with the variables involved. Source [7]
T
T
robots,
and
is composed of the variables hi = xi yi , for ground vehicles, or hi =
xi yi z i , for the quadrotor. This set of variables is concatenated as a single vector
T
x = h1T h2T , referred to as the robot variables, characterizing the so called robots
space. Therefore, in a general way,
T
x = x1 y1 z 1 x2 y2 z 2 ,
which can be particularized when one or both vehicles are ground vehicles simply
taking the z coordinate as zero.
In addition, the other variables present in the figures above mentioned are grouped
in the vector
T
q = xf yf z f ρf αf βf ,
which describes the position of the virtual robot characterizing the formation, or the
T
position of the formation q P = x f y f z f , the shape q S = ρ f and the orien
T
tation q O = α f β f of the virtual structure, in this case given by the length and
orientation of the line segment linking the two robots, respectively. Such variables are
called formation variables, and define what is called the cluster space or formation
space. Notice that the number of variables of both the robot and the cluster space
should be the same.
5.4.2 Transformations
Therefore, two different spaces are characterized when dealing with the virtual structure approach to control a multi robot system, the robots space and the cluster space.
The desired movement of the formation, such as trajectory-tracking, positioning or
path-following, as well as its desired shape and orientation along the movement, are
specified through desired values of the cluster variables, or qdw and the way they
5.4 Virtual Structure Paradigm
111
should vary along time, or q̇dw , both in the global frame. However, the velocity commands to be sent to each robot of the formation should be in the robots space, and in
the body frame of each vehicle.
Thus, there should be a transformation from the robots space to the cluster space,
to evaluate the current state of the formation from the current robot positions, and
from the cluster space to the robots space, to define where each robot of the formation should be to get the desired formation state. Without loosing generality, let us
consider those transformations for the case of a two-robots formation involving two
quadrotors. To particularize for the other cases, it is enough to take the corresponding
z coordinate as being zero. Then, from Fig. 5.10, one gets that
⎡
⎤
⎡
xf
⎢
⎢
⎢y f ⎥
⎢
⎢ ⎥
⎢
⎢z f ⎥
⎥ = f (x) = ⎢
q=⎢
⎢
⎢ρ f ⎥
⎢
⎢ ⎥
⎢
⎣α f ⎦
⎢
⎣
βf
⎤
x1
⎥
y1
⎥
⎥
z1
⎥
(x2 − x1 )2 + (y2 − y1 )2 + (z 2 − z 1 )2 ⎥
⎥
⎥
z
−z
2
1
⎥
arctan √
⎥
(x2 −x1 )2 +(y2 −y1 )2
⎦
1
arctan xy22 −y
−x1
transforms the robot variables to the cluster variables, whereas
⎡ ⎤
⎡
⎤
x1
xf
⎢ y1 ⎥
⎢
⎥
yf
⎢ ⎥
⎢
⎥
⎢z1 ⎥
⎢
⎥
z
f
⎢
⎢
⎥
⎥
x = ⎢ ⎥ = g(q) = ⎢
⎥
x
x
+
ρ
cos
α
cos
β
2
f
f
f
f
⎢ ⎥
⎢
⎥
⎣ y2 ⎦
⎣ y f + ρ f cos α f sin β f ⎦
z2
z f + ρ f sin α f
(5.5a)
(5.5b)
does the inverse transformation, or transforms the cluster variables into robot variables.
An important remark about these transformations is that they can be also developed
for a group of three robots constituting a triangular formation and so on. As it was
done here for a formation of two quadrotors, the geometry of the formation allows
to get these transformations. However, it will not be done here, since it is enough to
extend the analysis already performed.
5.4.3 Movement Jacobian
In terms of velocity, when one determines how the formation should evolve along
time, which means to determine q̇, it becomes necessary to calculate the velocities
ẋ to be sent to the individual robots of the formation. This is done simply taking the
time derivative of the transformation x = g(q), or
112
5 Control of Multi-robot Systems
ẋ =
∂g
q̇ = J−1 (q)q̇,
∂q
(5.6a)
where J−1 (q) is the Jacobian matrix corresponding to the transformation of the cluster
space to the robots space represented by (5.5b), or
⎡ ∂ x1
J−1 (q) =
which results in
⎡
10
⎢0 1
⎢
⎢0 0
J−1 (q) = ⎢
⎢1 0
⎢
⎣0 1
00
∂x f
⎢ ∂ y1
⎢ ∂x f
⎢ ∂z1
⎢ ∂x f
⎢ ∂x
⎢ 2
⎢ ∂x f
⎢ ∂ y2
⎣ ∂x f
∂z 2
∂x f
∂ x1
∂yf
∂ y1
∂yf
∂z 1
∂yf
∂ x2
∂yf
∂ y2
∂yf
∂z 2
∂yf
∂ x1
∂z f
∂ y1
∂z f
∂z 1
∂z f
∂ x2
∂z f
∂ y2
∂z f
∂z 2
∂z f
∂ x1
∂ρ f
∂ y1
∂ρ f
∂z 1
∂ρ f
∂ x2
∂ρ f
∂ y2
∂ρ f
∂z 2
∂ρ f
∂ x1
∂α f
∂ y1
∂α f
∂z 1
∂α f
∂ x2
∂α f
∂ y2
∂α f
∂z 2
∂α f
∂ x1
∂β f
∂ y1
∂β f
∂z 1
∂β f
∂ x2
∂β f
∂ y2
∂β f
∂z 2
∂β f
⎤
⎥
⎥
⎥
⎥
⎥,
⎥
⎥
⎥
⎦
(5.6b)
⎤
0
0
0
0
⎥
0
0
0
0
⎥
⎥
1
0
0
0
⎥ . (5.6c)
0 cos α f cos β f −ρ f sin α f cos β f −ρ f cos α f sin β f ⎥
⎥
0 sin α f cos β f −ρ f sin α f sin β f ρ f cos α f cos β f ⎦
1
sin α f
ρ f cos α f
0
Such a Jacobian matrix, for the case of two quadrotors, as (5.6) shows, has a
dimension of 6 × 6, which corresponds to 6 robot variables and 6 cluster variables.
For the case of a cluster formed by two wheeled robots it would be a 4 × 4 matrix,
whereas for the case of a cluster formed by a wheeled robot and a quadrotor the
Jacobian matrix would be a 5 × 5 one. Generalizing to triangular clusters, for a
cluster composed by three quadrotors the dimension of such Jacobian matrix would
be 9 × 9 (see, for instance, [25]), whereas for a triangular cluster composed of three
wheeled robots its dimension would be 6 × 6 (see, for instance, [9]).
5.5 Control in the Cluster Space
The idea of using the virtual structure approach is that the movement of the whole
structure is associated to the movement of a virtual robot. Then, it is necessary to
design a controller to guarantee that the virtual robot, and thus the whole formation
or cluster, accomplish the desired task, which can be a trajectory-tracking one, a
path-following one or a positioning one, as already discussed considering a single
robot. As the whole structure is represented by a single virtual robot, it is only
necessary to design a suitable controller to guide the virtual robot to accomplish the
task. Thus, the designs are identical to those discussed in Chap. 4. However, there is
a meaningful difference: as the virtual robot does not present any dynamic requisite,
5.5 Control in the Cluster Space
113
for being virtual and thus without either mass or inertia, just a kinematic controller
is necessary, either for trajectory-tracking, positioning or path-following.
An important detail, however, is that such a controller should deal with the cluster
variables, what means that it implements the control law in the cluster space, thus
performing cluster space control. The control objective, in such a case, is to generate
a reference on how the cluster variables should vary along time to make the current
state of the formation to converge to the desired one. In the sequel, such a reference
should be transformed into velocity commands for the individual robots of the cluster,
to guarantee that they will move accordingly to achieve the control objective.
Considering that the task the formation should accomplish is a trajectory-tracking
one, such a controller implements the control law
q̇r (t) = q̇d (t) + L tanh (L−1 Kq̃(t)),
(5.7)
where K ∈ 6 and L ∈ 6 are positive definite diagonal gain and saturation matrices,
respectively, q̇r (t) is the way the cluster should evolve along time, qd (t) is the
desired trajectory generated by a planning stage, whose time derivative is q̇d (t),
and q̃(t) = qd (t) − q(t) is the error between the current state of the cluster and the
desired one.
An important remark is that such a control law can be adapted for the tasks of
positioning and path-following. For positioning it should be taken qd as constant and
equal to the desired position, form and orientation to be regulated, and q̇d should
be set to zero. When
considering path-following let us split the formation variables
q = q P q S q O into the position, shape and orientation variables. Then, for pathfollowing, q Pd corresponds to the point on the path closer to the position of the
formation, while q Sd , q Od are the desired shape and orientation corresponding to
that point on the path. Regarding q̇d , its component q̇ Pd corresponds to the velocity
adopted along the path, tangent to it, as discussed in Chap. 4. With respect to q̇ Sd
and q̇ Od they are defined as
dq Sd
||q̇ Pd ||
q̇ Sd =
ds
and
q̇ Od =
dq Od
||q̇ Pd ||
ds
where s is the variable over the path, as described in Chap. 4. In terms of the stability
of the control system when closing the loop with such a controller, the analysis
is similar to the one already discussed in Chap. 4, and the conclusion is that the
formation variables q(t) asymptotically converge to their desired values qd (t).
The above remark is important, because it allows to design controllers to guide the
multi-robot system to accomplish any of the control objectives (trajectory-tracking,
positioning or path-following) in a unified form, preserving the same controller structure, but appropriately defining the references. This way, it represents an extension
for a robot formation of the unified solution that has been presented in Chap. 4
regarding a single robot.
114
5 Control of Multi-robot Systems
5.6 Control and Dynamic Compensation in the Robots
Space
From the reference values q̇r so far obtained it is necessary to generate the velocity
references to be sent to the robots in the formation. Still regarding a formation com T T T
v2d .
posed by two quadrotors, it is necessary to obtain the velocities vd = v1d
This is done in two steps, as shown in Fig. 5.12. First of all, it is necessary to use
the Jacobian matrix of the transformation from the cluster space to the robots space,
namely J−1 , of (5.6), which allows to get ẋr (t) = J−1 q̇r (t). After, such a reference velocity vector is split in two parts, ẋ1r (t) and ẋ2r (t), which are the velocity
commands for each robot, still in the global frame.
Now, the velocity commands are processed at the level of the robots, so that the
control system now involves the control and dynamic compensation in the robots
space, as illustrated by the rightmost red rectangle in Fig. 5.12. This involves the
projection of the velocity commands into the body frames of each robot, through
the matrix of inverse kinematics of each vehicle, which are, in the figure, A−1
1 and
,
for
the
first
and
second
drones,
respectively.
As
one
can
see
from
the
figure,
A−1
2
this completes the outer control loop, which consists in a kinematics controller, as
already mentioned. Now, completing the inner-outer loop control scheme, a dynamic
compensator, the inner loop, as already discussed, is designed for each quadrotor, as
represented by the blocks DC in the figure. Such compensators are designed in the
same way as discussed in Chap. 4.
An important aspect to be stressed here is that the velocity commands dealt with
are just those relative to the Cartesian position of each robot, or u vx , u v y and u vz .
In other words, the yaw velocity is not included. However, as the quadrotor is an
omnidirectional vehicle, this is not a problem. All one should do is to include a zero
Fig. 5.12 The control system for a virtual structure composed by two quadrotors Bebop 2. A
trajectory-tracking task is considered
5.6 Control and Dynamic Compensation in the Robots Space
115
Fig. 5.13 Characterization
of the triangular cluster
composed by three Pioneer 3
robots
value as the fourth entry of the vectors v1d and v2d , before continuing processing the
control algorithm. Nonetheless, as the yaw movement is decoupled of the others in
the simplified kinematics model, one can design a separate kinematic yaw controller,
to generate a yaw velocity command according to a desired yaw value. For instance,
in [6, 7] a yaw controller is designed to keep the quadrotor oriented as the ground
robot.
An important remark is that this control structure at the robot space allows generating the control signals to any kind of robot by just considering their kinematics and,
eventually, their dynamic model as well. Therefore, it can be considered a cluster
formed by similar or different kind of mobile robots. In the first case one has an
homogeneous formation, whereas in the last case the formation is an heterogeneous
or hybrid one.
To illustrate the use of the virtual structure control approach, four experiments are
presented in the sequel. The first and the second ones consider a triangular cluster
composed by two Pioneer 3-AT and one Pioneer 3-DX wheeled unicycle robots. In
the first case a positioning task is accomplished, whereas the second one considers
T
a trajectory-tracking task. The cluster variables, q = x F y F ψ F p F q F β F , in
such a case, are the position given by the coordinates of the center of gravity of the
triangle, the orientation of the triangle, defined by the angle ψ F formed by the line
linking the triangle vertex corresponding to the robot R1 and the center of gravity
with the axis y w , and its shape, given by the two triangle sides corresponding to the
segments R1 R2 ( p F ) and R1 R3 (q F ) and the angle β F between these two triangle
sides. Figure 5.13 shows such variables.
For the positioning task, the initial configuration of the cluster is q(0) =
T
0.70 m 1.50 m 1.57 rad 1.58 m 1.58 m 0.64 rad , and the desired one is qd =
T
4.70 m 1.50 m 1.57 rad 1.58 m 1.58 m 1 rad . Therefore, the cluster should move
ahead for 4 m to reach the desired position of its center of gravity, reach the desired
orientation and increase the distance between the robots R2 and R3 , through increasing the angle β F . Such a positioning task is illustrated in Fig. 5.14, which shows
116
5 Control of Multi-robot Systems
Fig. 5.14 Positioning task performed by a triangular cluster composed by three Pioneer 3 robots
Fig. 5.15 Control system to guide a triangular cluster composed by three Pioneer 3 robots
three sketches of the cluster position/orientation/shape while navigating towards the
desired final configuration, illustrated by the pink triangle at the right of the figure.
As for the control system adopted, it is illustrated in Fig. 5.15. Notice that it is
the same for the cases of positioning and trajectory-tracking. The difference is that
for positioning q̇d = 0. Also notice that the dynamic compensation block is not
implemented for the robots, so that the whole control is based just on the kinematics
of the robots, as represented by the matrices of inverse kinematics Ai−1 , i = 1, 2, 3.
As for the gain and saturation matrices, they are K = 0.12I and L = 0.2I, where I
is a 6 × 6 unit matrix.
In the second example the same cluster should perform a trajectory-tracking task,
starting from the same initial state of the positioning task, except for the cluster
orientation, which is now 1.57 rad, instead of 0.64 rad. The trajectory to be tracked is
T
characterized by qd = q(0) + 0.08t 0.3 sin(0.1t) 0 0 0 0 . Therefore, the cluster
should move ahead with a constant velocity of 80 mm/s, with a sinusoidal oscillation
5.6 Control and Dynamic Compensation in the Robots Space
117
Fig. 5.16 Trajectory-tracking task performed by a triangular cluster composed by three Pioneer 3
robots
in the y direction. As for the gain and saturation matrices, the values adopted were
K = 0.25I and L = 0.1I. Figure 5.16 presents three sketches of the formation along
its navigation, showing that the task is effectively accomplished.
As for the third example of using the virtual structure approach to control a
multi-robot system, a hybrid formation composed by the nonholonomic Pioneer
3-DX robot and the Bebop 2 quadrotor, shown in Fig. 5.11, is considered. The formation should track a lemniscate of Bernoulli trajectory, so that the desired posiT
tion of the formation, the same of the ground vehicle, is given by xd yd ψd =
T
T
0.85 sin(2ωt) 1.5 cos(ωt) 0 , where ω = 2π/25 rad/s, with ρ f α f β f =
T
1.5 m π/2 rad 0 being the desired shape of the virtual structure. Thus, the desired
formation is characterized by the vector qd = [0.85 sin(2ωt)1.5 cos(ωt)01.5 m
π/2 rad0]T , whose time derivative is q̇d = [1.7ω cos(2ωt) − 1.5ω sin(ωt)0000]T .
As for the point of interest for control, regarding the Pioneer 3-DX robot, it is characterized by a = 15 cm and α = 0 rad (see Sect. 2.1.4).
The control system implemented is quite similar to that in Fig. 5.12, with two
differences. The first one is that the virtual robot is the ground one, for which the z
coordinate is always zero. The other difference is that for the Pioneer 3-DX just the
kinematic controller is adopted, such that just the Bebop 2 has a dynamic compensator to reduce the velocity tracking error. Such a dynamic compensator is designed
according to Chap. 4, using the parameters of Table 3.1 for the Bebop 2 quadrotor. Other important aspect is that this is an indoor flight, run in an arena based on
a motion capture system to provide the positions of the vehicles. Finally, the gain
and saturation matrices K and L of (5.7) are K = diag(0.2, 0.2, 0.2, 3, 1, 1.8) and
L = diag(1, 1, 1, 1, 1, 1).
The experiment starts with the Bebop 2 landed on the Pioneer 3-DX, from where
it takes off and establishes the desired formation along navigation. After a while the
quadrotor lands on the ground vehicle again, stays there for a lap in the trajectory,
and takes off again, reestablishing the formation once more, and continues navigating
keeping the formation, till landing definitively on the Pioneer 3-DX. Figures 5.17,
118
5 Control of Multi-robot Systems
Fig. 5.17 Paths traveled by the Pioneer 3-DX and the Bebop 2 robots in a trajectory-tracking task,
navigating as a formation
Fig. 5.18 Top view of the
paths traveled by the Pioneer
3-DX and the Bebop 2 robots
in a trajectory-tracking task,
navigating as a formation
5.18, 5.19, 5.20 and 5.21 describe the experiment. They show the paths effectively
traveled by the two robots, thus by the formation, in a 3D plot and in two views (a
top and a side views), the formation variables (desired and effectively obtained), and
the errors in the formation variables.
In the first and third of such figures the path the quadrotor effectively followed
is represented in blue, and two lemniscate can be perceived. The one in the top
corresponds to the time along which the desired formation is kept (ρ f = 1.5 m),
5.6 Control and Dynamic Compensation in the Robots Space
119
Fig. 5.19 Side view of the paths traveled by the Pioneer 3-DX and the Bebop 2 robots in a trajectorytracking task, navigating as a formation
Fig. 5.20 Formation variables for a Pioneer 3-DX and a Bebop 2 robots navigating as a formation,
in a trajectory-tracking task
whereas the one in the bottom corresponds to the time along which the quadrotor
is landed on the ground vehicle, which corresponds to an altitude of about 75 cm,
considering the ground robot itself plus a landing platform installed over it. The
black dashed line represents two desired formations, which differs just in the value
of ρ f , equal to 75 cm for the landed quadrotor. The lemniscate curve in the ground
corresponds to the Pioneer 3-DX robot, which coincides with the virtual robot guiding
the virtual structure.
Continuing the analysis of the experiment, Fig. 5.20 shows the evolution of the
formation variables during the navigation, besides their desired values. As one can
see, there are meaningful variations in the variable ρ f , which correspond to the
120
5 Control of Multi-robot Systems
Fig. 5.21 Time evolution of the formation errors for the Pioneer 3-DX and the Bebop 2 robots
navigating as a formation, in a trajectory-tracking task
landing and taking off moments. By its turn, Fig. 5.21 shows the evolution of the
formation errors during the navigation. As one can see, all the errors converge to
zero along time, except for two of them. The first one is the error in ρ f , which has
positive and negative spikes corresponding to the moments of landing and taking off,
respectively. The second one is the error in the angle β f , which presents quite large
variations, due to the fact that the situation in which the quadrotor is exactly over the
ground vehicle (α = π/2) is a singularity, since there is no projection of the straight
line describing the virtual structure over the plane x w y w , thus letting β f not defined.
Finally, the fourth experiment illustrating the use of the virtual structure approach
to control a multi-robot system is now discussed. It considers a formation of
two Bebop 2 quadrotors tracking a lemniscate of Bernoulli trajectory character
T
ized by qd = 1.5 cos(ωt) sin(2ωt) 1.25 + 0.3 sin(ωt) 1.5 π π/9 , flying in an
indoor environment, with the positions of the two quadrotors obtained through
using the OptiTrack motion capture system. For such a trajectory one has q̇d =
T
−1.5ω sin(ωt) 2ω cos(2ωt) 0.3ω cos(ωt) 0 0 0 , with ω = 2π
rad/s. The quadro30
T
tors
start
moving
from
x1 = 0.9m −0.28 m 0.9 m
and
x2 =
T
−0.6 m −0.18 m 0.9 m . The gain matrix for the formation controller is K =
diag(0.768, 0.768, 1.6, 3.2, 1.92, 1.92), whereas its saturation matrix is L =
diag(0.96, 0.96, 2, 4, 2.4, 2.4). As for the gain matrices for the dynamic compensators associated to each quadrotor, they are diag(2, 2, 1.8, 5). Finally, the sampling
time adopted is 100 ms.
5.6 Control and Dynamic Compensation in the Robots Space
121
Fig. 5.22 Paths traveled by the formation and the two quadrotors (the path the formation travels is
the same of quadrotor 1)
Fig. 5.23 Errors in the formation variables
Figures 5.22 and 5.23 illustrate the result of such an experiment. The first one
shows two views, a 3D one and a top one, of the path traveled by the two quadrotors,
besides the path the formation (and also the first quadrotor) should travel. As one
can see, after an initial transient the formation reaches the trajectory and tracks it.
This can be confirmed looking at Fig. 5.23, which shows the errors in the formation
variables, which becomes quite close to zero after the initial transient.
122
5 Control of Multi-robot Systems
5.7 Scalability
One quite important property of the control structures associated to the leaderfollower and the virtual structure control approaches is their scalability to accommodate more robots in the cluster. The main question, in such a case, is: how to change
the control structure to add a new robot in the cluster?
For the case of the leader-follower approach, one can assembly the cluster as a
chain of n robots as n − 1 leader-follower pairs. This can be done considering a
single leader and n − 1 followers, or with the first robot in the chain being the leader
for the second one, which is its follower and simultaneously is the leader for the third
robot, and so on. In both cases, the leader moves according to an independent control
system, whereas the followers track the trajectory corresponding to the leader, as
discussed in Sect. 5.3.
Regarding the virtual structure approach, the problem of including a new robot
in the cluster becomes a problem of redefining the dimension and the entries of the
Jacobian matrix that transforms the reference q̇r for the movement of the cluster
to the velocity references ẋr for the robots. Each new robot included in the cluster
means, in this case, a completely new and different Jacobian matrix. A solution to
avoid this problem is to split the whole cluster in smaller parts, thus creating virtual
substructures, which can be triangles or line segments, for instance, such as in [9]
and in [14], respectively.
In the case of using triangles as the virtual substructures, each new robot added
to the cluster generates a new triangle, considering two other robots yet included in
other triangles. This way, a cluster composed by n robots, thus generating a polygon
of n vertices, can be split in n − 2 triangles. For each triangle the same control structure can be adopted, just considering the data relative to the robots of the respective
triangle to generate the Jacobian matrix, which preserves its structure and dimension, and the task characterization for each substructure. This way, the whole control
structure becomes a modular one, with n − 2 identical controllers, each one generating the references for the three robots of the corresponding triangular virtual
substructure. In this case, one should notice, two robots of each triangle are also in
another triangle, such that one robot could receive reference velocities coming from
one, two or even three controllers. Figure 5.24 illustrates how to build the triangular
virtual substructures, regarding a cluster of 6 robots.
From the figure one can see that the triangles are built considering the sequence of
the robots in the queue, or Ri , i = 1, . . . , 6. The three first robots assembly the first
triangle, the second and third ones, plus the next, the fourth, assembly the second
triangle and so on. Therefore, for this example, four triangles are assembled. As one
can perceive, except by the two first and the two last robots, all the robots receive
control references generated by three controllers, one associated to each triangle to
which they belong (in this example the robots numbered as 3 and 4). In such cases
it is possible to apply just one of such control references to the robot, such as in [9,
10] (although in this last case the way to build the triangles is different), or even to
consider the generation of a new control signal coming from the fusion of the control
5.7 Scalability
123
Fig. 5.24 Illustration of how
to build triangular virtual
substructures when dealing
with a cluster using the
virtual structure approach
Fig. 5.25 Illustrating the
split of the multi robot
system in smaller virtual
structures characterized as
line segments
signals generated by the different controllers [15]. Notice that only the first and the
last robots receive just one control reference, whereas the second and the one before
the last receive, both, two control references. Finally, if we want to avoid generating
commands to each robot from multiple controllers, it is also possible to consider the
new triangle as having only three degrees of freedom in 3D (because constrained
in two vertices) and design a controller that generates commands only to the new
added robot for controlling only the three degrees of freedom of the new constrained
triangle.
When regarding a line segment as the virtual substructures, the possibilities are
also two. The first one is to centralize all the line segments in one of the robots, thus
building n − 1 virtual substructures, as it is done in [14], or to build line segments
where each robot belongs just to one substructure, such as illustrated in Fig. 5.25. In
this last case, if the number of robots in the cluster is odd one robot needs to build a
line segment with one robot already belonging to a line segment. Therefore, the result
is n/2 virtual substructures, for n even, and (n − 1)/2 + 1 virtual substructures, for n
odd. Notice that in this case, for n even all the robots receive control references from
just one controller, whereas for n odd one robot would receive control references of
two controllers. In this case, a solution is, once more, to consider just the control
reference provided by the last controller. Notice that in the case of n odd other
possibility is to assembly n − 3 line segments and one triangle.
124
5 Control of Multi-robot Systems
Fig. 5.26 Illustrating the scalability idea of splitting the whole formation in triangular partial
formations
The idea of splitting the virtual structure associated to the cluster into smaller
virtual structures allows to use the same controller designed for a virtual line segment
and for a triangular virtual substructure as many times as necessary, without needing
to change the system core, but just replicating the corresponding controllers, using
the corresponding data (see [9]).
To illustrate such ideas, two simulations are now presented, both considering a
multi-robot system described by a set of triangles, each one independently controlled,
but with the task assigned according to what should be performed by the whole
formation. The first one is a positioning task performed by a formation composed
by four wheeled differential-drive robots. Thus, two triangles should be controlled,
which are indicated in Fig. 5.26, which illustrates the task accomplishment.
In the figure the pink rectangle represents the desired position, orientation and
shape of the formation, as well as the position, orientation and shape of each triangle. The different sketches of the whole formation along the simulation time
(0 s, 20 s, 35 s and 50 s) show how each triangle changes its position, orientation
and shape, till getting its final position, orientation and shape. As a consequence, the
whole formation achieves its desired position, orientation and shape.
The second simulation corresponds to a trajectory-tracking performed by a multirobot system composed by eight wheeled differential-drive robots, thus characterizing six triangles, according to one of the scalability strategies discussed. The desired
trajectory for the whole formation allows defining the desired trajectory for each triangle, as well as the physics involved in the whole formation allows defining the desired
formation variables for each triangle. Figure 5.27 illustrates the task accomplishment.
The pink rectangle characterizes the desired whole formation, which moves following the desired trajectory. The figure shows sketches of the whole formation and
the desired one in various instants during the simulation, which are 0 s, 40 s, 80 s
and 120 s. However, yet in the second sketch of the whole formation (simulation
time of 40 s) one can see that the whole cluster has already completed the necessary
reshaping, besides reaching the desired trajectory, and then continues tracking it, as
the figure characterizes.
5.8 Multiple Objectives
125
5.8 Multiple Objectives
Controlling a cluster through the virtual structure paradigm involves a set of formation
variables that describe the current state of the formation in every sampling instant.
In the case of two tridimensional vehicles, such as in Fig. 5.10, the virtual structure
considered is the straight line linking the two vehicles, and the set of formation
T
variables is the vector q = x f y f z f ρ f α f β f , as described in Sect. 5.4. From
this vector one can get two sub-vectors, for instance, one associated to the position of
T
the cluster, which would be q p = x f y f z f , and the other associated to the shape
T
of the cluster, which would be qs = ρ f α f β f . Working with these two subsets
of variables one can control the formation with two different control objectives, for
instance. They could be to control the position of the virtual structure (and thus the
position of the cluster) and to control the shape of the virtual structure. Notice that
to move the virtual structure to a desired position keeping the desired shape involves
to deal with these two subsets of formation variables. If only the first subset is used
one manages to move the formation, but its shape would not be controlled. Other
subtasks can also be added to achieve additional control objectives along the cluster
navigation. A commonly adopted additional subtask is obstacle deviation, such as
in [27].
Therefore, considering the possibility of various conflicting subtasks it is necessary to establish a priority list, giving the highest priority to the subtask of obstacle
avoidance, and following to the other subtasks, according to the control objectives.
For instance, in [20, 21] a drone is supposed to land on a ground vehicle, mimicking
the last step of a last-mile delivery problem, which demands that the drone be quite
well positioned with respect to the ground vehicle before landing on it. In this case,
considering to move the cluster and to keep its shape as two behaviors, the highest priority is given to keep the formation shape, moving the virtual robot (in those
works coinciding with the ground vehicle) just after the shape is reestablished, after
the previous movement.
Fig. 5.27 Illustrating the scalability idea of splitting the whole formation in triangular partial
formations
126
5 Control of Multi-robot Systems
Thus, the idea is to assign a priority level to each subtask considered, which are
indeed independent behaviors, taking into account the whole control objective. This
corresponds to generate velocity commands associated to each subtask, and then to
compose the final velocity command considering the priorities of each subtask. For
instance, in [27] two subtasks are considered, which are to guide a quadrotor to track a
trajectory and to avoid obstacles. The highest priority was given to the behavior avoid
obstacles, for safety reasons, and only after the quadrotor left the obstacles behind, the
trajectory-tracking was resumed. Then, the strategy to solve the conflict between the
independent behaviors is to activate a behavior of lower priority just when the higher
priority behaviors are inactive. In [27] this means to track the desired trajectory after
leaving the obstacles behind. Therefore, in the presence of obstacles the quadrotor
goes out of the desired trajectory, to avoid them.
A way to activate the individual behaviors according to their priority levels is
to use the approach called null-space behavioral control [2, 3]. Such an approach
has been adopted in several applications since the beginning of the 21st century,
such as to control a single aerial robot [27], a group of them [5, 25], a group of
marine vessels [19], a quadrotor carrying a manipulator [8], and a heterogeneous
formation involving a quadrotor and a ground vehicle [21], showing its flexibility
and generality. It is, actually, an analytical way, with stability proof, to implement
the well known subsumption architecture [11].
Consider a case in which the formation control is split in two different subtasks.
This is the case, for instance, for the line formation of Fig. 5.10, considering to control
the position of the bottom extremity of the line as one of the subtasks, and to control
the shape of the cluster as the second one. Therefore, writing the relationship between
formation and robot variables, similar to what was made in (5.5a), q = f(x), taking
T
time derivative, q̇ = f(ẋ) and splitting the formation vector q = q p qs , with q p
and qs being the position and shape formation variables subsets, one can write
q̇ p = J p ẋ
(5.8a)
q̇s = Js ẋ
(5.8b)
and
for each subset.
What should be done now is to design individual controllers for each subtask,
which would generate vectors corresponding to the desired time variation for the
cluster variables, to get the desired shape and position, thus still in the cluster space.
This means to generate q̇r p and q̇r s in the form of (5.7) but referred to the position and
shape formation variables respectively. Then, it is necessary to map these command
vectors to the robots space, using the inverse Jacobian matrix corresponding to each
subtask, thus obtaining velocity command vectors for the robots, although still in the
global reference frame. Such velocity commands would be ẋr p = J†p q̇r p and ẋr s =
Js† q̇r s , which are associated to the inverse Jacobian matrices J†p and Js† , respectively,
which map the corresponding set of cluster variables into the robot variables.
5.8 Multiple Objectives
127
For this example, considering the subtask of controlling the position of the bottom
extremity of the virtual structure characterizing the cluster as having the highest
priority, the final velocity command vector to be sent to the robots would be
ẋr = ẋr p + I − J†p J p ẋr s ,
(5.9)
where J†p is the right pseudo inverse of J p . The effect of pre-multiplying ẋr s by
I − J†p J p corresponds to project the velocity command ẋr s into the null space of the
matrix J p , or to project the velocity command corresponding to a certain task into the
null space of the Jacobian matrix of the task with priority immediately
higher,
which
can be verified pre-multiplying (5.9) by J p and checking that J p I − J†p J p ẋr s = 0.
This is why the technique is called null space-based behavioral control approach.
Two important remarks should be done here. The first one is that if the highest
priority is assigned to move the reference point of the formation one has what is
called a flexible formation or flexible cluster, since the most important is to move
the cluster accordingly, not paying much attention to its shape. In such a case the
velocity command to be sent to the robot is defined as in (5.9). In opposition, if the
highest priority is assigned to keep the shape of the cluster, then one will get a rigid
formation, meaning that more attention is paid to guarantee the shape of the cluster,
not paying so much attention to its movement. In this case, the matrix J†p should be
changed to Js† in (5.9), thus resulting in the velocity command
ẋr = ẋr s + I − Js† Js ẋr p .
(5.10)
The designations rigid or flexible formation becomes clear with conflicting tasks, for
example when the formation avoids an obstacle. In this case it is not possible to keep
tracking of both the position and the shape of the cluster while avoiding the obstacle.
If priority is given to position, the cluster will distort but still can keep tracking its
reference position, thus having a flexible formation. Just the opposite occurs when
priority is given to the shape. The cluster will not be distorted but the entire cluster
will be deviated from its route to avoid the obstacle, thus obtaining a rigid formation.
For the case of three subtasks - for example to track the position and shape of the
formation and to avoid an obstacle -, one would get
ẋ = ẋ1 + I − J1† J1
ẋ2 + I − J2† J2 ẋ3 .
(5.11)
Generalizing for N subtasks one would get
ẋ = ẋ1 + I − J1† J1
ẋ2 + · · · ẋ N −1 + I − J†N −1 J N −1 ẋ N ,
for the priority order decreasing from 1 → N . Such an architecture is illustrated in
Fig. 5.28, for a case of four subtasks (or behaviors).
128
5 Control of Multi-robot Systems
Fig. 5.28 The scheme implementing the null space-based behavioral control for four subtasks/behaviors
An important aspect to be considered here is the stability of the closed loop control
scheme when using the null space-based behavioral control approach. To analyze its
stability, let us consider the basic structure of two subtasks, for which the formation
variables are split into two groups, each one associated to one of the two subtasks.
T
Therefore, q = q1T q2T , and the control laws corresponding to each subtasks are
and
q̇r 1 = q̇d1 + L1 tanh(L1−1 K1 q̃1 )
(5.12a)
q̇r 2 = q̇d2 + L2 tanh(L2−1 K2 q̃2 ),
(5.12b)
similarly to (5.7). On the other hand, using the null space-based behavioral control
approach the velocities to be used as reference for the agents in the formation are,
for two subtasks, with highest priority given to subtask 1,
ẋr =J1† q̇d1 + L1 tanh(L1−1 K1 q̃1 ) +
(I − J1† J1 )J2† q̇d2 + L2 tanh(L2−1 K2 q̃2 ) ,
(5.13)
such as in (5.9). Now, assuming perfect velocity tracking, or ẋ = ẋr , and substituting
the control law of (5.13) in (5.8a), one gets the closed-loop equation
q̇1 = q̇d1 + L1 tanh(L1−1 K1 q̃1 ),
(5.14)
taking into account that J1† is the right pseudo inverse of J1 , and, therefore, J1 (I −
J1† J1 )J2† = J1 − J1 = 0. As already shown, this implies that q1 (t) → 0 as t → ∞.
Similarly, taking now the relationship in (5.8b), and substituting again ẋ = ẋr ,
one obtains
q̇2 = J2 {J1† q̇d1 + L1 tanh(L1−1 K1 q̃1 )
(5.15)
+ (I − J1† J1 )J2† q̇d2 + L2 tanh(L2−1 K2 q̃2 ) }.
5.8 Multiple Objectives
129
Now we recall that J2 J2† = I, and assume that both subtasks are non conflicting,
which means that they are orthogonal, or the range space of J1† is inside the null
space of J2 . As (I − J2† J2 ) is the projection operator on the null space of J2 , the
above condition implies that (I − J2† J2 )J1† ẋ = J1† ẋ, and, therefore, J2 J1† = 0. Then,
from (5.15) one gets, for non-conflicting subtasks,
q̇2 = q̇d2 + L2 tanh(L2−1 K2 q̃2 ),
(5.16)
which implies that q̃2 (t) → 0 as t → ∞. This allows concluding that the closed-loop
T T
control system with equilibrium at q̃ q̃˙ = 0 0 is asymptotically stable.
For a deeper stability analysis, regarding more than two subtasks, see [4]. There
one can see that for three subtasks it is enough that two successive subtasks be
orthogonal. If the null space of the Jacobian matrix of the main task has not enough
dimension to keep the secondary tasks, it will not be possible to execute them exactly,
because an equation similar to (5.16) is not possible to obtain.
To illustrate how to implement a null space based behavioral control system, the
steps to be followed to design such a control system, considering a cluster formed by
two quadrotors flying in the near hover condition, are elaborated in the sequel. The
illustrative design considers two subtasks, namely to move the cluster to a desired
fixed position and to keep the formation shape along navigation. Therefore, two
possibilities arise, the first one corresponding to giving the higher priority to the
subtask of moving the cluster, and the second one corresponding to giving the highest
priority to the subtask of keeping the formation shape. To do this the desired vector
T T T
qds , where qdp =
of formation variables is split in two parts, such that qd = qdp
T
T
x f d y f d z f d and qds = ρ f d α f d β f d are the cluster variables associated to the
position of the cluster and its shape, respectively. As the task to be accomplished is
a positioning one, q̇dp = 0 and q̇ds = 0.
The controllers to deal with the two subtasks, at the level of the cluster space, are
characterized by
q̇r p = q̇dp + K1 p tanh (K2 p q̃ p ) = K1 p tanh (K2 p q̃ p )
(5.17a)
q̇r s = q̇ds + K1s tanh (K2s q̃s ) = K1s tanh (K2s q̃s ),
(5.17b)
and
where the subscripts p and s stand for position and shape. Notice that such controllers
are quite similar to the one in (5.7), but considering just part of the cluster variables
each one. Proceeding, it is now necessary to convert the necessary changes in the
cluster variables into velocities to be sent as reference for the two quadrotors, namely
to convert q̇r p into ẋr p and q̇r s into ẋr s , using the corresponding Jacobian matrices.
Such Jacobian matrices are obtained as the right pseudoinverses of the matrices
obtained by differentiating (5.10) and partitioning the resulting matrix in two parts,
considering the cluster variables qdp and qds . Proceeding this way one gets
130
5 Control of Multi-robot Systems
⎡ ∂x f
Jp =
∂x
⎢ ∂ y 1f
⎣ ∂ x1
∂z f
∂ x1
∂x f ∂x f ∂x f
∂ y1 ∂z 1 ∂ x2
∂yf ∂yf ∂yf
∂ y1 ∂z 1 ∂ x2
∂z f ∂z f ∂z f
∂ y1 ∂z 1 ∂ x2
∂x f ∂x f
∂ y2 ∂z 2
∂yf ∂yf
∂ y2 ∂z 2
∂z f ∂z f
∂ y2 ∂z 2
⎤
⎡
⎤
100000
⎥ ⎣
⎦ = 0 1 0 0 0 0⎦ ,
001000
(5.18a)
relative to the position variables q p , and
⎡ ∂ρ f
Js =
∂ρ f ∂ρ f ∂ρ f ∂ρ f ∂ρ f
∂ x1 ∂ y1 ∂z 1 ∂ x2 ∂ y2 ∂z 2
⎢ ∂α f ∂α f ∂α f ∂α f ∂α f ∂α f
⎣ ∂ x1 ∂ y1 ∂z1 ∂ x2 ∂ y2 ∂z2
∂β f ∂β f ∂β f ∂β f ∂β f ∂β f
∂ x1 ∂ y1 ∂z 1 ∂ x2 ∂ y2 ∂z 2
⎤
⎥
⎦
⎡
⎤
−cα f cβ f −cβ f sα f −sβ f cα f cβ f cβ f sα f sβ f
−cα f
−sα f
cα f
⎢ sα f
0
0 ⎥
= ⎣ ρ f cβ f
⎦,
ρ f cβ f
ρ f cβ f
ρ f cβ f
cα f sβ f
ρf
−cβ f
ρf
sα f sβ f
ρf
−cα f sβ f
ρf
−sα f sβ f
ρf
(5.18b)
cβ f
ρf
where c stands for cos and s stands for sin, relative to the cluster variables qs . From
such matrices one can get
(5.19a)
ẋr p = J†p q̇r p ,
and
ẋr s = Js† q̇r s ,
(5.19b)
where the superscript † means the right pseudo inverse of the matrix, and then
or
ẋr = ẋr p + I − J†p J p ẋr s
(5.19c)
ẋr = ẋr s + I − Js† Js ẋr p ,
(5.19d)
for the cases of giving the highest priority to move the cluster to a desired position
and keeping its shape, respectively. Now, it is necessary to convert such velocities
from the global reference frame (ẋr ) to the reference frame of the robots, what is
done through multiplying ẋr by the matrix of inverse kinematics of the cluster, a
block-diagonal matrix whose blocks are the matrices of inverse kinematic of each
quadrotor, disregarding their orientations. This means that such a matrix of inverse
kinematics is
−1
A1 0
,
K−1 =
0 A−1
2
⎡
with
A−1
1
⎤
cos ψ1 sin ψ1 0
= ⎣− sin ψ1 cos ψ1 0⎦
0
0 1
5.8 Multiple Objectives
131
⎡
and
A−1
2
⎤
cos ψ2 sin ψ2 0
= ⎣− sin ψ2 cos ψ2 0⎦ ,
0
0 1
where ψ1 and ψ2 are the orientations of the two quadrotors. This way, one gets the
reference velocities for the two quadrotors, in their own reference frames, as
T T
vr = vr 1 vr 2 = u vx1 u vy1 u vz1 u vx2 u vy2 u vz2 .
Before sending such values to the quadrotors, however, it is necessary to insert
the yaw velocity command for each quadrotor. Nevertheless, as the quadrotors are
omnidirectional vehicles, their orientation may not be relevant for the task, so that
one can, in this case, select a null yaw velocity command, so that
T
vr 1 = u vx1 u vy1 u vz1 u vψ1 = 0
and
T
vr 2 = u vx2 u vy2 u vz2 u vψ2 = 0 .
An important remark is that the control system whose design has been illustrated
for the two quadrotors performing a positioning task can be adapted to a trajectorytracking task simply considering the values of q̇dp and q̇ds as being the time derivatives of the desired cluster variables. Moreover, it can also be adapted for the case of
a path-following task, simply considering q̇dp as the desired velocity along the path,
tangent to it at the point closer to the cluster position, as discussed in Sect. 4.7. Also,
ds (s)
||q̇dp ||, where qds is the desired shape of the
q̇ds should be calculated as q̇ds = ∂q∂s
formation in the point of the path closer to its position. Notice that it is also possible to adapt such a control system to a heterogeneous cluster/formation involving a
wheeled robot and a quadrotor, simply making z 1 = 0, since the wheeled robot, in
this case considered as the reference for the cluster, navigates at zero altitude.
To illustrate the performance obtained using the null space-based behavioral
approach to control a cluster, in the sequence an example is considered, corresponding
to a homogeneous formation involving two omnidirectional robots, whose configuration is as shown in Fig. 2.3. The characterization of such a formation is given in
Fig. 5.29. Notice that the orientations of the two robots will not be considered, as
they are omnidirectional vehicles.
T
The cluster variables, in this case, are q = x f y f ρ f α f , whereas the robot
T
variables are x = x1 y1 x2 y2 , with the cluster variables split in the vectors q p =
T
T
x f y f and qs = ρ f α f , corresponding to the position and shape variables,
respectively. A positioning task is simulated, using such a formation, for which two
controllers will be considered, both developed according to the null space-based
behavioral control approach. The first one gives the highest priority to the subtask
of moving the cluster to the desired position, and the second one gives the highest
132
5 Control of Multi-robot Systems
Fig. 5.29 Characterization of a homogeneous formation involving two omnidirectional robots
characterized as in Fig. 2.3
priority to the subtask of keeping the cluster shape. For the simulations the gain
and saturation matrices considered are K1 p = diag(5, 3), K2 p = diag(1, 1), K1s =
diag(3, 5), and K2s = diag(1, 1). As for the desired position for the cluster, it is
(6 m, 8 m), whereas the desired shape is characterized by ρ f = 2 m and α f =
π/2 rad, with the robot numbered as 1, the reference for the virtual structure, starting
from the position (0 m, 2 m), and the robot numbered as 2 starting from the position
(4 m, 2 m), both with orientation 0 rad.
As for the matrices J p and Js , they are obtained from the matrices in (5.18a)
and (5.18b), suppressing the third row and third column plus the sixth row and
sixth column, besides considering β f = 0 rad, so that both matrices become 2 × 4
matrices. Therefore,
1000
Jp =
0100
and
− cos α f − sin α f cos α f sin α f
Js =
sin α f
− cos α f − sin α f cos α f
.
ρf
ρf
ρf
ρf
Figures 5.30 and 5.31 illustrate the results of such an example.
From Fig. 5.30 one can perceive that when the highest priority is given to move the
cluster to the desired position, the cluster variables x f and y f ,, that is the position
variables, reach the desired values much before ρ f and α f , the shape variables.
This means that the robot numbered as 1 gets its position much before the robot
numbered as 2. On the other hand, if the highest priority is given to keep the shape
of the cluster one can perceive that the opposite happens, or the first variables to
5.8 Multiple Objectives
133
Fig. 5.30 Evolution of the cluster/formation variables along navigation, for the cases of highest
priority for position and shape of the cluster/formation
134
5 Control of Multi-robot Systems
Fig. 5.31 Paths traveled by the two robots and the initial and final cluster/formation configuration,
for the cases of highest priority for position and shape of the cluster/formation
5.8 Multiple Objectives
135
converge to the desired values are the shape variables. As a consequence of these
different possibilities, one can see in Fig. 5.30 that different paths are traveled by the
two robots according to the priorities assigned to the subtasks/behaviors.
To continue illustrating the use of the null space-based behavioral control approach,
a simulation involving the same two omnidirectional robots is now considered, but
an obstacle is inserted in the route of the cluster towards the desired position (still
considering a positioning task). The objective is to illustrate two different behaviors
when the cluster formed by the two robots deviate from an obstacle. To do that three
behaviors (subtasks) are considered, namely to avoid the obstacle, to move the cluster
to a desired position, and to reach a desired formation shape, which will be embedded
in the null space-based behavioral control approach, such as in (5.11). Two different strategies are possible, when deviating from the obstacle, which corresponds
to a flexible formation or a rigid formation. The rigid formation is characterized
by the preservation of the formation shape even when deviating from the obstacle,
whereas the flexible formation is characterized by the change of the formation shape
when avoiding an obstacle. For the rigid formation, therefore, the highest priority is
assigned to the subtask of reaching the formation shape, followed by the subtask of
deviating from the obstacle and the subtask of moving the formation to the desired
position. As for the priority sequence associated to the flexible formation, it is given
by to deviate from the obstacle, with the highest priority, reach the formation shape
and move the formation to the desired position.
The obstacle considered is a static one, whose profile is a cylinder centered in the
coordinates (xobs , yobs ), whose presence in the navigation environment is characterized by the potential function
V (t) = e
x(t)−xobs n
y(t)−yobs n
−
−
a
b
,
(5.20)
where n is a positive even integer and a and b are parameters that allow tuning the
height and spread of the curves. Notice that this potential function decreases for
positions (x(t), y(t)) of the robot far from the obstacle positioned at (xobs , yobs ).
The idea is to develop a controller able to guide the robot to avoid obstacles, or to
move the robot in the sense of increasing the distance robot-obstacle, which means
to navigate through points of low potential. Notice also that if more than one obstacle
is considered, the whole
potential will be the sum of the potentials associated to each
obstacle, or V (t) =
Vi (t), i = 1, · · · , n, when n obstacles are present.
For such a potential function one gets that
x(t)−xobs n
y(t)−yobs n
−
−
a
b
(x(t) − xobs )n−1
ẋ(t)
an
n n
x(t)−xobs
y(t)−yobs
(y(t) − yobs )n−1
−
−
a
b
+e
n
ẏ(t),
bn
V̇ = e
or
n
(y(t) − yobs )n−1
(x(t) − xobs )n−1
ẋ(t) +
ẏ(t) ,
V̇ = nV (t)
an
bn
(5.21a)
(5.21b)
136
5 Control of Multi-robot Systems
or
V̇ =
∂V ∂V
∂x ∂y
ẋ ẏ
T
= Jo ẋ,
(5.21c)
where Jo is the Jacobian matrix associated to the potential variation as a function
of the position of the robot. Such a result says that the robot should move towards
points of zero potential (actually potentials below a small threshold ).
To avoid the neighborhood of obstacles, characterized by high potential values,
the control law
(5.22)
ẋ = Jo† V̇d + kobs Ṽ
is adopted, for which kobs is a positive nonzero gain, Vd is the desired potential value
for the robot, in this case , whose time derivative is V̇d = 0, and Ṽ = Vd − V, where
V is the potential value for the current robot position. Notice that such a control law
is quite similar to the kinematic controller discussed in Sect. 4.4, so the stability
analysis is quite similar. Indeed, when applying such a control law to (5.21c) the
resulting closed loop equation is
V̇ = Jo ẋ = Jo Jo† V̇d + kobs Ṽ = V̇d + kobs Ṽ ,
from where
V̇d − V̇ + kobs Ṽ = 0,
and, finally
Ṽ˙ + kobs Ṽ = 0,
which allows to conclude that the robot moves causing Ṽ → 0 when t → ∞.
To illustrate the cases of flexible and rigid formation behaviors, the same case
illustrated in Fig. 5.29 is considered, now including an obstacle in the route of the
formation, first considering a positioning task, and then considering a trajectorytracking task.
For the positioning task the two robots are initially placed in the positions x10 =
T
T
1 0 and x20 = 2 −1 , with their orientation being constant and equal to zero
all the time. The desired final position of the formation, given by q p = x1 , is q pd =
T
T
3 6 , with the time derivative q̇d = 0 0 , as the task to be accomplished is a
positioning one. As for the desired values of the shape variables, they are qsd =
T
T
2 0 , with q̇sd = 0 0 . As for the control gains, they are kobs = 0.2, K1 p =
K1s = diag(1, 1), K2 p = diag(5, 3), and K2s = diag(3, 5). The static obstacle is
positioned at (xobs , yobs ) = (2.8, 3), and the parameters of the potential function
are a = b = 0.5 and n = 2, with the value Vd = 0.2. Finally, the sampling time
considered is 100 ms.
Figures 5.32 and 5.33 characterize the two behaviors. The first one shows the paths
the two robots follow along the navigation, whereas the second one shows the time
variation of the formation variables. As one can see from the figures, in the case of
5.8 Multiple Objectives
137
Fig. 5.32 The paths traveled by the two omnidirectional robots, in the presence of an obstacle, in
a positioning task, characterizing a rigid and a flexible formation
the rigid formation the formation shape is kept even during the obstacle deviation,
whereas in the case of the flexible formation the formation shape is relaxed during
the obstacle deviation action.
To conclude this section the same formation is considered, now in a trajectorytracking task. The trajectory to be tracked is a circular one, characterized by q pd =
138
5 Control of Multi-robot Systems
Fig. 5.33 The time variation of the formation variables for the case of Fig. 5.32
5.8 Multiple Objectives
139
Fig. 5.34 The paths traveled by the two omnidirectional robots, in the presence of an obstacle, in
a trajectory-tracking task, characterizing a rigid and a flexible formation
140
5 Control of Multi-robot Systems
Fig. 5.35 The time variation of the formation variables for the case of Fig. 5.34
5.9 Concluding Remarks
141
T
T
10π
, with q̇ pd = −10π
. As for the gains, just
5 cos 2πt
5 sin 2πt
sin 2πt
cos 2πt
100
100
100
100 100
100
kobs has been changed, becoming kobs = 0.5, with the obstacle now in the coordinates
(xobs , yobs ) = (4, 2). The parameters associated to the potential function are the same
as in the case of positioning, but the desired potential value was changed to Vd = 0.1.
T
T
The initial positions of the two robots are now x10 = 5 0 and x20 = 7 0 , with
their orientations starting at zero and staying in such values all the time. The desired
values for the shape formation variables are also the same as in the positioning case,
as well as the sampling time, which is once more 100 ms. The simulation time varies
from zero to 250 ms, which corresponds to two and a half laps over the trajectory.
Figures 5.34 and 5.35 show how the formation performs when accomplishing the
trajectory-tracking task. As one can see, the behavior is quite similar to the ones in
the case of positioning.
5.9 Concluding Remarks
In this chapter two approaches to control a multi robot system, also known as a
robot formation or robot cluster, namely the leader-follower and the virtual structure
approaches, are dealt with. Each one was discussed in details, and examples showing
their implementation to control a group of two or more robots were also discussed,
which validate these approaches.
Examples considering groups of two or more robots of the same kinematics and
of different kinematics were dealt with. An important aspect of both approaches is
their scalability for more than two or three robots, which was also explored in the
chapter.
In the case of the leader-follower approach, the scalability is guaranteed by the
possibility of building a leader-follower chain, in which the first follower robot also
performs as a leader for the third one, and so on, allowing to control a group of theoretically any number of robots. However, this is not the only way. Other possibility
is that the same agent performs as the leader for all the other agents in the group.
When regarding the virtual structure approach, it is necessary to deal with the
Jacobian matrix which transforms the velocity commands from the cluster space to
the robots space, whose dimension is directly associated to the number of robots in the
cluster. Therefore, the addition of a new robot in the cluster would demand to change
the dimension of such Jacobian matrix, and thus to change its entries. However, as
discussed in the chapter, the scalability can be guaranteed by splitting the whole
cluster in smaller parts, what corresponds to group the robots of the whole cluster
in smaller clusters, thus generating various virtual structures. This allows preserving
the Jacobian matrix structure of each smaller virtual structure, and simply add a new
small virtual structure for each new robot added to the cluster. As commented in
the text, this can be done considering subgroups of two or three robots. In the case
of subgroups of three robots, the total number of robots in the cluster, n, generates
n − 2 subgroups of three robots, each one containing two robots yet included in a
142
5 Control of Multi-robot Systems
previous subgroup plus one new robot. When splitting the whole cluster in subgroups
of two robots, for n even one gets n/2 subgroups, each one corresponding to a virtual
line segment. For n odd it would be created (n − 1)/2 + 1 subgroups, with the one
before the last robot included in two subgroups.
This scalability property allows designing a modular control structure, in which
each module is the control system corresponding to use a triangle or a line segment
as the virtual structure.
In addition, the chapter also discusses how to implement a hierarchical control
structure, regarding different control objectives, each one with different priority, for
the virtual structure approach. For instance, one could have obstacle deviation as
part of the navigation task, thus characterizing two tasks, namely to avoid obstacles
and to navigate the formation accordingly. Or even three subtasks, such as to avoid
obstacles, to move the formation accordingly and to keep the shape of the formation
(remember that the cluster variables involve variables related to its position and its
shape). In this case, the chapter shows how to implement a control system for the
cluster considering the priorities given to each subtask, illustrating the flexibility
of using the virtual structure approach to control the navigation of the multi robot
system.
References
1. Adamek T, Kitts CA, Mas I (2015) Gradient-based cluster space navigation for autonomous
surface vessels. IEEE/ASME Trans Mech 20(2):506–518. https://doi.org/10.1109/TMECH.
2013.2297152
2. Antonelli G, Arrichiello F, Chiaverini S (2005) The null-space-based behavioral control for
mobile robots. In: 2005 international symposium on computational intelligence in robotics and
automation, pp 15–20. https://doi.org/10.1109/CIRA.2005.1554248
3. Antonelli G, Arrichiello F, Chiaverini S (2008) The null-space-based behavioral control for
autonomous robotic systems. Intell Service Robot 1(1):27–39. https://doi.org/10.1007/s11370007-0002-3
4. Antonelli G, Arrichiello F, Chiaverini S (2008) Stability analysis for the null-space-based
behavioral control for multi-robot systems. In: 2008 47th IEEE conference on decision and
control, pp 2463–2468. https://doi.org/10.1109/CDC.2008.4738697
5. Antonelli G, Arrichiello F, Chiaverini S (2009) Experiments of formation control with multirobot systems using the null-space-based behavioral control. IEEE Trans Control Syst Technol
17(5):1173–1182. https://doi.org/10.1109/TCST.2008.2004447
6. Bacheti VP, Brandão AS, Sarcinelli-Filho M. (2020) Path-following with a UGV-UAV formation considering that the UAV lands on the UGV. In: Proceedings of the 2020 international
conference on unmanned aircraft systems (ICUAS), pp 488–497. Athens, Greece. https://doi.
org/10.1109/ICUAS48674.2020.9213918
7. Bacheti VP, Brandão AS, Sarcinelli-Filho M (2021) A path-following controller for a uavugv formation performing the final step of last-mile-delivery. IEEE Access 9:142218–142231.
https://doi.org/10.1109/ACCESS.2021.3120347
8. Baizid K, Giglio G, Pierri F, Trujillo MA, Antonelli G, Caccavale F, Viguria A, Chiaverini
S, Ollero A (2015) Experiments on behavioral coordinated control of an unmanned aerial
vehicle manipulator system. In: 2015 IEEE international conference on robotics and automation
(ICRA), pp 4680–4685. https://doi.org/10.1109/ICRA.2015.7139848
References
143
9. Brandão AS, Rampinelli VTL, Martins FN, Sarcinelli-Filho M, Carelli R (2015) The multilayer
control scheme: a strategy to guide n-robots formations with obstacle avoidance. J Control,
Autom Electric Syst 26(3):201–214. https://doi.org/10.1007/s40313-015-0170-x
10. Brandão AS, Sarcinelli-Filho M (2016) On the guidance of multiple uav using a centralized formation control scheme and delaunay triangulation. J Intell Robot Syst 84(1):397–413. https://
doi.org/10.1007/s10846-015-0300-5
11. Brooks R (1986) A robust layered control system for a mobile robot. IEEE J Robot Autom
2(1):14–23. https://doi.org/10.1109/JRA.1986.1087032
12. Carelli R, Soria C, Morales B (2005) Vision-based tracking control for mobile robots. In:
Proceedings of the 12th international conference on advanced robotics (ICAR), pp 148–152.
Seattle, WA, USA. https://doi.org/10.1109/ICAR.2005.1507405
13. Consolini L, Morbidi F, Prattichizzo D, Tosques M (2008) Leader–follower formation control
of nonholonomic mobile robots with input constraints. Automatica 44(5):1343–1349. https://
doi.org/10.1016/j.automatica.2007.09.019
14. Ernandes-Neto V, Sarcinelli-Filho M, Brandão AS (2019) Trajectory-tracking of a heterogeneous formation using null space-based control. In: 2019 international conference on unmanned
aircraft systems (ICUAS). Atlanta, GA, USA, pp 187–195. https://doi.org/10.1109/ICUAS.
2019.8798031
15. Freire E, Bastos-Filho T, Sarcinelli-Filho M, Carelli R (2004) A new mobile robot control
approach via fusion of control signals. IEEE Trans Syst Man Cyber Part B (Cyber) 34(1):419–
429. https://doi.org/10.1109/TSMCB.2003.817034
16. Gimenez J, Salinas L, Gandolfo D, Rosales C, Carelli R (2020) Control for cooperative transport
of a bar-shaped payload with rotorcraft uavs including a landing stage on mobile robots. Int J
Syst Sci 1–14. https://doi.org/10.1080/00207721.2020.1815096
17. Kitts C, Mas I (2009) Cluster space specification and control of mobile multirobot systems. IEEE/ASME Trans Mechatron 14(2):207–218. https://doi.org/10.1109/TMECH.2009.
2013943
18. Lewis MA, Tan KH (1997) High precision formation control of mobile robots using virtual
structures. Autonom Robot 4(4):387–403. https://doi.org/10.1023/A:1008814708459
19. Marino A, Parker L, Antonelli G, Caccavale F (2009) Behavioral control for multi-robot perimeter patrol: a finite state automata approach. In: 2009 IEEE international conference on robotics
and automation, pp 831–836. https://doi.org/10.1109/ROBOT.2009.5152710
20. Moreira MSM, Brandão AS, Sarcinelli-Filho M (2019) Null space based formation control
for a uav landing on a ugv. In: 2019 international conference on unmanned aircraft systems
(ICUAS), pp 1389–1397. https://doi.org/10.1109/ICUAS.2019.8797820
21. Pacheco Bacheti V, Santos Brandão A, Sarcinelli-Filho M (2021) Path-following by a ugvuav formation based on null space. In: 2021 14th IEEE international conference on industry
applications (INDUSCON), pp 1266–1273. https://doi.org/10.1109/INDUSCON51756.2021.
9529472
22. Parker LE, Rus D, Sukhatme GS (2016) Multiple mobile robot systems. In: Siciliano B, Khatib
O (eds) Springer handbook of robotics, chap 53. Springer, Oxford, pp 1335–1384
23. Rabelo MFS, Brandão AS, Sarcinelli-Filho M (2021) Landing a uav on static or moving platforms using a formation controller. IEEE Syst J 15(1):37–45. https://doi.org/10.1109/JSYST.
2020.2975139
24. Resende CZ, Carelli R, Sarcinelli-Filho M (2021) A path-following controller for guiding a
single robot or a multi-robot system. J Control Autom Electric Syst 32:895–909. https://doi.
org/10.1007/s40313-021-00725-w
25. Rosales C, Leica P, Sarcinelli-Filho M, Scaglia G, Carelli R (2016) 3d formation control of
autonomous vehicles based on null-space. J Intell Robot Syst 84(1):453–467. https://doi.org/
10.1007/s10846-015-0329-5
26. Santana LV, Brandão AS, Sarcinelli-Filho M (2021) On the design of outdoor leader-follower
uav-formation controllers from a practical point of view. IEEE Access 9:107493–107501.
https://doi.org/10.1109/ACCESS.2021.3100250
144
5 Control of Multi-robot Systems
27. Santos MCP, Rosales CD, Sarcinelli-Filho M, Carelli R (2017) A novel null-space-based
uav trajectory tracking controller with collision avoidance. IEEE/ASME Trans Mechatron
22(6):2543–2553. https://doi.org/10.1109/TMECH.2017.2752302
28. Villa DKD, Brandão AS, Carelli R, Sarcinelli-Filho M (2021) Cooperative load transportation
with two quadrotors using adaptive control. IEEE Access 9:129148–129160. https://doi.org/
10.1109/ACCESS.2021.3113466
Index
A
Attitude, 18
High level dynamic model of a quadrotor, 33
Homogeneous robot formation, 101
B
Bicycle model of car-like robots, 11
I
Inner-outer controllers, 43
Inverse dynamic model of unicycle robots,
25
Inverse dynamics, 82, 84
Inverse extended kinematics, 14
Inverse kinematics, 12, 41, 44, 47, 59
C
Car-like robots, 10
Cluster space, 110
Cluster space control, 113
D
Differential drive, 8
Direct extended kinematics, 14
Direct kinematics, 8, 9, 15, 20, 21
Dynamic controller, 75
Dynamic model of car-like robots, 29
Dynamic model of quadrotors, 32
Dynamic model of unicycle robots, 23
E
Extended kinematics, 12, 14
F
Feedback linearization, 21, 45, 80
Flexible formation, 127
Flexible structure, 135
Formation space, 110
H
Heterogeneous formation, 101
K
Kinematic controllers, 21
Kinematic model, 5
L
Leader-follower multi-robot system, 102
Leader-follower paradigm, 100
Linear parameterization of the inverse
dynamic control law of the
differential-drive robot, 86
Linear parameterization of the inverse
dynamic model of a quadrotor, 89
Linear parameterization of the inverse
dynamic model of the differentialdrive robot, 85
Low level dynamic model of a quadrotor, 33
M
Motion control, 41
Movement Jacobin, 112
© The Editor(s) (if applicable) and The Author(s), under exclusive license
to Springer Nature Switzerland AG 2023
M. Sarcinelli-Filho and R. Carelli, Control of Ground and Aerial Robots, Intelligent
Systems, Control and Automation: Science and Engineering 103,
https://doi.org/10.1007/978-3-031-23088-2
145
146
Index
N
Near hover, 19, 48
Nonholonomic robots, 5, 10, 12
Null space-based behavioral control, 126,
129
R
Rigid formation, 127
Rigid structure, 135
Robots space, 110
O
Omnidirectional robots, 5, 6
T
Trajectory-tracking, 42
P
Parameter identification, 28
Passivity, 26, 27
Path-following, 42
Path-following control, 63
Path-following with a quadrotor, 68
Path-following with a unicycle robot, 65
Positioning control, 42, 59
Propulsion, 17
U
Underactuated system, 17
Unicycle model for a differential drive robot,
8
Unicycle robot, 8
Q
Quadrotor, 16
V
Velocity-tracking error, 23
Virtual structure paradigm, 100
Download