Professional Documents
Culture Documents
ArteagaMA Local Stability Springer
ArteagaMA Local Stability Springer
Marco A. Arteaga
Alejandro Gutiérrez-Giles
Javier Pliego-Jiménez
Local Stability
and Ultimate
Boundedness in
the Control of Robot
Manipulators
Lecture Notes in Electrical Engineering
Volume 798
Series Editors
Leopoldo Angrisani, Department of Electrical and Information Technologies Engineering, University of Napoli
Federico II, Naples, Italy
Marco Arteaga, Departament de Control y Robótica, Universidad Nacional Autónoma de México, Coyoacán,
Mexico
Bijaya Ketan Panigrahi, Electrical Engineering, Indian Institute of Technology Delhi, New Delhi, Delhi, India
Samarjit Chakraborty, Fakultät für Elektrotechnik und Informationstechnik, TU München, Munich, Germany
Jiming Chen, Zhejiang University, Hangzhou, Zhejiang, China
Shanben Chen, Materials Science and Engineering, Shanghai Jiao Tong University, Shanghai, China
Tan Kay Chen, Department of Electrical and Computer Engineering, National University of Singapore,
Singapore, Singapore
Rüdiger Dillmann, Humanoids and Intelligent Systems Laboratory, Karlsruhe Institute for Technology,
Karlsruhe, Germany
Haibin Duan, Beijing University of Aeronautics and Astronautics, Beijing, China
Gianluigi Ferrari, Università di Parma, Parma, Italy
Manuel Ferre, Centre for Automation and Robotics CAR (UPM-CSIC), Universidad Politécnica de Madrid,
Madrid, Spain
Sandra Hirche, Department of Electrical Engineering and Information Science, Technische Universität
München, Munich, Germany
Faryar Jabbari, Department of Mechanical and Aerospace Engineering, University of California, Irvine, CA,
USA
Limin Jia, State Key Laboratory of Rail Traffic Control and Safety, Beijing Jiaotong University, Beijing, China
Janusz Kacprzyk, Systems Research Institute, Polish Academy of Sciences, Warsaw, Poland
Alaa Khamis, German University in Egypt El Tagamoa El Khames, New Cairo City, Egypt
Torsten Kroeger, Stanford University, Stanford, CA, USA
Yong Li, Hunan University, Changsha, Hunan, China
Qilian Liang, Department of Electrical Engineering, University of Texas at Arlington, Arlington, TX, USA
Ferran Martín, Departament d’Enginyeria Electrònica, Universitat Autònoma de Barcelona, Bellaterra,
Barcelona, Spain
Tan Cher Ming, College of Engineering, Nanyang Technological University, Singapore, Singapore
Wolfgang Minker, Institute of Information Technology, University of Ulm, Ulm, Germany
Pradeep Misra, Department of Electrical Engineering, Wright State University, Dayton, OH, USA
Sebastian Möller, Quality and Usability Laboratory, TU Berlin, Berlin, Germany
Subhas Mukhopadhyay, School of Engineering & Advanced Technology, Massey University,
Palmerston North, Manawatu-Wanganui, New Zealand
Cun-Zheng Ning, Electrical Engineering, Arizona State University, Tempe, AZ, USA
Toyoaki Nishida, Graduate School of Informatics, Kyoto University, Kyoto, Japan
Federica Pascucci, Dipartimento di Ingegneria, Università degli Studi “Roma Tre”, Rome, Italy
Yong Qin, State Key Laboratory of Rail Traffic Control and Safety, Beijing Jiaotong University, Beijing, China
Gan Woon Seng, School of Electrical & Electronic Engineering, Nanyang Technological University,
Singapore, Singapore
Joachim Speidel, Institute of Telecommunications, Universität Stuttgart, Stuttgart, Germany
Germano Veiga, Campus da FEUP, INESC Porto, Porto, Portugal
Haitao Wu, Academy of Opto-electronics, Chinese Academy of Sciences, Beijing, China
Walter Zamboni, DIEM - Università degli studi di Salerno, Fisciano, Salerno, Italy
Junjie James Zhang, Charlotte, NC, USA
The book series Lecture Notes in Electrical Engineering (LNEE) publishes the
latest developments in Electrical Engineering - quickly, informally and in high
quality. While original research reported in proceedings and monographs has
traditionally formed the core of LNEE, we also encourage authors to submit books
devoted to supporting student education and professional training in the various
fields and applications areas of electrical engineering. The series cover classical and
emerging topics concerning:
• Communication Engineering, Information Theory and Networks
• Electronics Engineering and Microelectronics
• Signal, Image and Speech Processing
• Wireless and Mobile Communication
• Circuits and Systems
• Energy Systems, Power Electronics and Electrical Machines
• Electro-optical Engineering
• Instrumentation Engineering
• Avionics Engineering
• Control Systems
• Internet-of-Things and Cybersecurity
• Biomedical Devices, MEMS and NEMS
For general information about this book series, comments or suggestions, please
contact leontina.dicecco@springer.com.
To submit a proposal or request further information, please contact the
Publishing Editor in your country:
China
Jasmine Dou, Editor (jasmine.dou@springer.com)
India, Japan, Rest of Asia
Swati Meherishi, Editorial Director (Swati.Meherishi@springer.com)
Southeast Asia, Australia, New Zealand
Ramesh Nath Premnath, Editor (ramesh.premnath@springernature.com)
USA, Canada:
Michael Luby, Senior Editor (michael.luby@springer.com)
All other Countries:
Leontina Di Cecco, Senior Editor (leontina.dicecco@springer.com)
** This series is indexed by EI Compendex and Scopus databases. **
Javier Pliego-Jiménez
Departamento de Electrónica y
Telecomunicaciones, División de Física
Aplicada
Centro de Investigación Científica y de
Educación Superior de Ensenada
Ensenada, Baja California, Mexico
© The Editor(s) (if applicable) and The Author(s), under exclusive license to Springer Nature
Switzerland AG 2022
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 Heidrun,
with everlasting love.
—Marco A. Arteaga
To my beloved family,
—Alejandro Gutiérrez-Giles
To my beloved family,
—Javier Pliego-Jiménez
Preface
vii
viii Preface
Chapter 2 deals with the robot’s kinematics, and it comprises the development of basic
rotations among two coordinate frames as well as the definition of homogeneous
transformations. Then, the three kinds of kinematics are described in full detail for
serial links manipulators, i.e. direct kinematics, inverse kinematics and differential
kinematics. By taking advantage of all the previous concepts, Chap. 3 develops the
dynamic model of robot manipulators based on the Euler–Lagrange methodology,
including the description of external forces by means of the Lagrange multipliers.
Furthermore, some of the most useful physical and structural properties of the model
are obtained, which prove to be important for control design. Chapter 4 presents some
basic concepts and results on control theory. It is not aimed at giving a deep insight,
but at making the book self-contained. However, the concepts that are inspected with
more detail are precisely those that give name to this book, i.e. local stability in
the sense of Lyapunov and ultimate boundedness. A rather colloquial development
instead of a strict analytical approach is used for the statement of the main theorems
employed for the design of control and observers schemes. Finally, Chap. 5 provides
the most elemental control laws for robot manipulators.
Part II is devoted to recapitulate more than two decades of experience by the
authors in the development of different control laws and approaches for robot manip-
ulators, as well as pointing out some very well-known schemes that comply with the
main goal of this book, i.e. either local stability or ultimate boundedness. Chapter 6
deals with the fact that most industrial robots are not really equipped with velocity
sensors, while this quantity is necessary for control laws implementation. Therefore,
it is necessary to produce an estimate of joint velocities. Although this can readily
be done by numerical differentiation in a digital computer, it is preferable for many
reasons the design of an observer. Model-based observers of the Luenberger type
are a very common solution even for highly nonlinear systems, but it is explained
how much more simpler options can be used to get just as a good performance as for
model-based solutions without needing at all the robot dynamic model for implemen-
tation. In fact, although theoretically it is possible to obtain a very accurate dynamic
model for industrial robots, in practice this is usually not the case because many
physical parameters are not known perfectly or they are even unknown. Therefore,
Chap. 7 discusses two of the most common solutions to compensate robot models
uncertainties, namely adaptive and robust control. The former makes use of the very
well-known property of model parameters linearity, while the latter deals with the
uncertainties by introducing some extra control terms to the nominal law. Pros and
cons are discussed. Chapter 8 introduces some solutions to robot force control. As
explained before, these are based on the authors’ own experiences, and therefore,
the reader will not find common solutions just as impedance or admittance control.
However, the proposed schemes take into account a wide variety of situations, just like
the possible lack of both velocities and force measurements, accurate robot models or
an implementation without computing inverse kinematics. Chapters 9 and 10 study
the intercommunication of different robot manipulators. The former deals only with
the bilateral teleoperation of two devices, while the latter takes into account three or
more, i.e. robot networks. In both cases, it is assumed that time-varying delays are
present in the communication channels, which constitutes a more realistic as well as
Preface ix
more challenging situation. Also, velocity observers are designed, and for the bilat-
eral teleoperation the concept on delayed kinematic correspondence is introduced in
contrast to the usual concept of transparency when no time delays are considered at
all. One of the key characteristics of all the chapters of Part II is that experimental
results are shown. Much unfortunately, the COVID-19 pandemic that humanity has
endured during the writing of this book kept the National Autonomous University
of Mexico closed, so that instead of using the industrial robots A255 and A465
for some experiments, the also reliable but simpler Geomagic Touch manipulators
were employed. While the outcomes are still valid, these smaller robots are easier to
control, and it is worthy to point this out.
Part III discusses the modeling of three of the robots available at the Laboratory
for Robotics of the School of Engineering of the National Autonomous University
of Mexico. Chapters 11 and 12 study the kinematic and dynamic modeling of the
industrial robots A465 and A255 by CRS Robotics, respectively. While the kine-
matic models can be gotten with high accuracy, the dynamic ones are computed
by making many simplifications. This has to be so because the links geometries
are not symmetric, their masses densities are not uniform, and the manufacturer
provides little information altogether. One of the main drawbacks of using indus-
trial robots for testing control–observer approaches is that sometimes they do not
allow to program them since the manufacturer includes its own control algorithms.
Therefore, Chap. 13 makes a proposal about how some hardware devices can be
built to replace the original control units, thus allowing the implementation of newly
developed control schemes. Finally, Chap. 14 computes the kinematic and dynamic
models of the haptic device Geomagic Touch, employed as mentioned before in all
the experiments of the second part of the book.
Part I Preliminaries
1 A General Overview of Robot Manipulators . . . . . . . . . . . . . . . . . . . . . 3
1.1 Brief History of Robot Manipulators . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 Industrial Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.3 Common Kinematic Arrangements . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3.1 Articulated Manipulator . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.2 Spherical Manipulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3.3 SCARA Manipulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3.4 Cylindrical Manipulator . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3.5 Cartesian Manipulator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.4 Wrists and End-Effectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.1 Spherical Wrist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.4.2 Common End-Effectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Some Other Important Issues to Take into Account . . . . . . . . . . . . 13
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Position, Orientation and Velocity of Rigid Robot
Manipulators . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1 Rigid Motions and Homogeneous Transformations . . . . . . . . . . . . 15
2.1.1 Rotations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2 Composition of Rotations . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.3 Different Parametrizations for Rotation Matrices . . . . . . 25
2.1.4 Unit Quaternion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.1.5 Homogeneous Transformations . . . . . . . . . . . . . . . . . . . . . 31
2.1.6 Skew Symmetric Matrices . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.1.7 Angular Velocity and Acceleration . . . . . . . . . . . . . . . . . . 37
2.2 Direct Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.1 Kinematic Chains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.2.2 The Denavit-Hartenberg Representation . . . . . . . . . . . . . . 43
2.3 Inverse Kinematics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
xi
xii Contents
Abstract Robot manipulators are a very particular kind of robots. They are mainly
employed in the industry and therefore they are also known as industrial robots.
Although they can be used for very specialized tasks, their main characteristic is the
reprogrammability, i.e. the possibility of using the same manipulator for different
tasks just by changing the control program code. Great accuracy and repeatability
are expected and necessary to accomplish the desired jobs, and these depend on
a combination of physical mechanical characteristics as well as on the design of
appropriate control schemes. Due to the high nonlinear nature of robot manipulators,
control design represents on its own quite a challenge.
Robot manipulators were created in the twentieth century, although some kind of
automated mechanical machines existed as early in history as in ancient Greece
and Babylon. It is well known that the term robot comes from the Czech word
robota and means subordinated work. It was first used in the science fiction play
Rossum’s Universal Robots by Karel C̆apek. Outside science fiction, the first robots
were created after the Second World War as a solution to the problem of handling
hazardous materials, with the seminal works of Goertz (published several years
after their development). Those first robots were of the master-slave type with a
mechanical coupling. The objective of these mechanisms was to mimic the arm and
hand movements of the operator. Later, the mechanical coupling was substituted by
electrical and hydraulic actuators. In the same decade, George C. Devol developed
a fully automated mechanism called programmed articulated transfer device. The
main novelty of this device was its capability to follow a set of instructions that
could be reprogrammed. Following this idea, the first industrial robot was presented
in 1959 by Unimation, Inc. The manipulator called Unimate, designed by Joseph F.
Engelberger, was successfully installed in a General Motors assembly line in 1961.
After these first experimental designs, a boom of commercial robotic arms occurred
in the 1960s. The American Machine and Foundry (AMF) company introduced the
programmable cylindrical manipulator VERSATRAN in 1962, designed by Harry
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 3
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_1
4 1 A General Overview of Robot Manipulators
Johnson and Veljko Milenkovic. In the same decade, the Freddy arm, which was
pioneer in integrating the manipulator itself with vision and intelligent systems,
was developed at the University of Edinburgh. In 1969, Victor Scheinman invented
the Stanford arm, which was the first six-axes manipulator with a spherical wrist,
following the suggestions for easier arm solutions proposed by Donald L. Pieper in his
PhD thesis. Years later, Scheinman contributed to the design of the also famous MIT
and PUMA arms. In the next two decades, computer-controller robotic manipulators
were widely adopted in the industry, at first mainly in the automotive, but latter
became gradually employed also in different areas such as chemical, electronics,
and metal industries.
The theory of robotic manipulation was developed at the same time as its phys-
ical counterpart. In 1955, Jacques Denavit and Richard S. Hartenberg proposed a
systematic method to analyze the kinematics of a general open-chain mechanisms.
By employing matrix algebra, they were able to represent the position and orienta-
tion of any two coordinate frames as an homogeneous transformation matrix. These
coordinate frames can be in turn attached to any link of the manipulator, thus solving
the direct kinematics problem. Inverse kinematics turned out to be more involved,
even for open-chains, and several methods were developped to obtain a closed or an
approximate solution. As mentioned above, in 1968 Donald L. Pieper proposed a
design method for robotic manipulators called 321 kinematic structure, which always
leads to a closed form solution for the inverse kinematics problem. This kind of struc-
ture is still used in most of the commercially available robotic arms. The study of the
dynamics and its application to the nonlinear control problem was a very intensive
research topic in the 1980s and early 1990s, resulting in most of the well known
nonlinear control techniques for industrial robots such as sliding modes, adaptive,
and passivity-based controllers.
With the millennium change, a new perspective in robotic manipulators arose
as well. While in the 20th century the great majority of the installed robots were
intended for industrial purposes, in the first two decades of the 21th century an
increasing number of applications are focused on human-centered systems and con-
sequently on safe human-robot interaction. One example of such devices is the da
Vinci Surgical System, developed by Intuitive Surgery Inc. Approved for its usage in
human interventions in 2000, nowadays around 5000 units are installed worldwide.
Some other examples of robots outside industry are the ones employed in hazardous
environments (field robotics), those used to enhance human capabilities (human aug-
mentation) and those designed to improve the quality of life (service robotics). All
these trends have in common that the manipulators are no longer located in highly
structured environments. Such unstructured nature represents a great challenge for
the research community in a number of different areas, which in turn makes multi-
disciplinary and collaborative research mandatory for the upcoming years.
1.2 Industrial Robots 5
Fig. 1.1 Robots A255 and A465 by CRS Robotics and the OMNI Phantom at the Laboratory for
Robotics of the National Autonomous University of Mexico
Robot manipulators are also known as industrial robots. Figure 1.1 shows those avail-
able at the Laboratory for Robotics of the School of Engineering of the National
Autonomous University of Mexico.
First of all, it is necessary to define what a robot manipulator is. The International
Organization for Standardization provides Definition 1 of manipulating industrial
robots in ISO 8373.
One of the key elements of the previous definition is the reprogrammability since
it implies that the very same manipulator can be used for many possible applications,
and that with good accuracy and flexibility. To understand how this can be done, it
is better to begin with the most basic elements of a robot manipulator:
1. Links (connected by joints)
2. Joints:
a. Revolute (R)
b. Prismatic (P)
A revolute joint allows to rotate two links around the joint axis, while the prismatic
joint allows a linear displacement of the links as depicted in Fig. 1.2.
The joint variables are usually denoted by θi for revolute joints and by di for the
prismatic ones, where i = 1, . . . , n. n is the total number of joints of the manipulator
and it is known as the number of Degrees of Freedom (DOF) of the manipulator. A
6 1 A General Overview of Robot Manipulators
2D
3D
robot should have 6 DOF because 3 of them are necessary for arbitrary positioning
and 3 more for arbitrary orientation. A smaller number of DOF prevents achieving
any arbitrary position and orientation of the robot’s end-effector, while a bigger
number makes the manipulator to be kinematically redundant. Roughly speaking,
the manipulator’s reachable workspace is the total volume spanned by the robot’s
end-effector when it executes all possible movements. On its own this definition
may just be of little utility, except for avoiding collisions. More important is the
dexterous workspace, within which the manipulador can reach any position with
arbitrary orientation. But reaching a position is kind of fuzzy. The precision of a
manipulator is a measure of how close the robot’s end-effector can reach a point
within its workspace. The repeatability on the other hand is a measure of how close
it can reach a point taught with anteriority. Usually, digital encoders are employed to
measure the value of a joint variable, while the end-effector position and orientation
are computed by taking into consideration the kinematic structure of the manipulator.
For that reason, industrial robots are designed to be rigid.
As it will be discussed later in full detail in Chap. 2, the inverse kinematics problem
can be splitted in two easier challenges, inverse position and inverse orientation. To
achieve this, the last three joints of industrial robots are chosen to have the structure
of a spherical wrist, while for the first three joints there are usually five categories:
articulated, spherical, SCARA, cylindrical and Cartesian manipulators.
1.3 Common Kinematic Arrangements 7
If in the previous configuration the third joint is replaced by a prismatic one (RRP),
then the spherical manipulator is gotten as shown in Fig. 1.5.
The name of this configuration comes from the fact that spherical coordinates can
straightforwardly be employed to define the position of the end-effector or the wrist
center with respect to a frame fixed at the intersection of the z 1 and z 2 axes. The
corresponding workspace can be seen in Fig. 1.6.
shoulder
elbow
θ1
body
base
8 1 A General Overview of Robot Manipulators
θ3
θ2
θ1
z2
θ1 d3
The Selective Compliant Articulated Robot for Assembly (SCARA) manipulator does
also have a RRP arrangement, but with a different design (the joint axes z 0 , z 1 and
z 2 are parallel) as shown in Fig. 1.7.
This configuration is widely used in assembly tasks and it is different in appearance
to the spherical manipulator despite having both a RRP structure. The corresponding
workspace can be seen in Fig. 1.8.
1.3 Common Kinematic Arrangements 9
θ1
d3
The cylindrical manipulator has a RPP arrangement, as shown in Fig. 1.9. Since the
first joint is revolute and the last two are prismatic, this configuration owns its name
due to the fact that cylindrical coordinates can be employed to describe the end-
effector position with respect to the base. The corresponding workspace is shown in
Fig. 1.10.
10 1 A General Overview of Robot Manipulators
z2
z1
d2
z0
θ1
1.3 Common Kinematic Arrangements 11
The Cartesian manipulator has all of its joints prismatic (PPP), as it is shown in
Fig. 1.11. For this kind of manipulators, the end-effector position, or the center of the
wrist, are directly the Cartesian coordinates given by the joint variables leading to the
simplest of all configurations. The corresponding workspace is shown in Fig. 1.12.
z0
z2
d1
12 1 A General Overview of Robot Manipulators
The connection between the arm and the end-effector is called the wrist. In the
previous section the spherical wrist was mentioned many times because, while the
manipulator’s main body can take any of the five basic configurations shown before,
the last three joints are usually chosen to form precisely a spherical wrist, where its
three axes intersect at one single point known as its center. This is shown in Fig. 1.13.
The particular arrangement of the spherical wrist largely simplifies the inverse
kinematic analysis as explained in detail in Sect. 2.3. It is worthy pointing out that
the wrist may just have less than three joints for some manipulators, which diminishes
the capability of reaching any arbitrary orientation.
pitch
roll
yaw
1.4 Wrists and End-Effectors 13
The main tool of the manipulator is located at the end of the wrist and it is called
end-effector. Perhaps the most usual one is a simple gripper as shown in Fig. 1.14.
Since the gripper can just open and close, a more sophisticated end-effector can
be a mechanical hand, for example. Some other important tools are soldering irons,
spray guns, cameras and some times even just a single finger (see Fig. 1.1).
Other important aspects to consider when working with robot manipulators are the
following:
1. To move each of the joints some actuators are needed, being the most commonly
used:
a. Electric actuators, as DC, AC or induction motors can be employed in robot
manipulators. They are usually cheap, clean and silence, which explains their
popularity. Also, DC motors dynamics can be straightforwardly included in
the general robot model, thus allowing an easier design and implementation
of control laws.
b. Hydraulic actuators are fast and they can generate big torques, which allows
the manipulator to move heavy loads. However, they require much more
peripheral equipment like pumps, there may be some hydraulic fluid leaks
and they are noisy.
c. Pneumatic actuators are cheap, but they are difficult to control, so that its
applicability in robotics is not too much.
2. Application area: Depending on the tasks, the robot manipulators can be classi-
fied as assembly or non-assembly. The first class corresponds usually to small
electrically driven robots, while to the second one belong those manipulators
capable of moving huge heavy loads or those employed for handling different
items.
3. Control approach: The precision that a robot manipulator can reach depends
both on physical mechanical issues and on the control technique employed for
the actuators. Choosing a control scheme depends on many factors, but specially
on the task to be accomplished and the information available to implement the
14 1 A General Overview of Robot Manipulators
control law. The easiest, yet not meaningless, task is position regulation, while
some of the most challenging ones is bilateral teleoperation with time varying
delays. Other needs can be the reconstruction of non available measurements or
model parameter estimation. This books deals with all these topics.
References
Fu KS, Gonzalez RC, Lee CSG (1987) Robotics: control, sensing, vision, and intelligence. McGraw-
Hill, USA
Goertz RC, Thompson WM (1954) Electronically controlled manipulator. Nucleonics (US) Ceased
publication 12
Goertz RC (1954) Mechanical master-slave manipulator. Nucleonics (US) Ceased publication 12
Murray RM, Li Z, Sastry SS (1994) A mathematical introduction to robotic manipulation. CRC
Press, Boca Raton, FL
Ortega R, Spong MW (1989) Adaptive motion control of rigid robots: a tutorial. Automatica
25(6):877–888
Sciavicco L, Siciliano B (2000) Modeling and control of robot manipulators, 2nd edn. Springer,
London
Siciliano B, Khatib O (2016) Springer handbook of robotics. Springer
Slotine JJE, Li W (1987) On the adaptive control of robot manipulators. Int J Robot Res 6(3):49–59
Slotine J-JE (1985) The robust control of robot manipulators. Int J Robot Res 4(2):49–64
Spong MW, Hutchinson S, Vidyasagar M (2006) Robot modeling and control. Wiley, USA
Chapter 2
Position, Orientation and Velocity
of Rigid Robot Manipulators
Regulating the position and orientation of a rigid robot manipulator may be quite
a big challenge, beginning with how to describe both quantities in the first place.
A common solution consists in establishing as many coordinate frames as degrees
of freedom the robot has, plus one for the end-effector, where the operating tool is
assumed to be fixed. This allows to compute in a rather direct way the relationship
between two coordinate systems and then just to accumulate the effect of all frames.
2.1.1 Rotations
Consider Fig. 2.1, where a point p ∈ R3 is represented in the coordinate frame ox0 ,y0 ,z0
as a vector. This is a very common representation in Cartesian coordinates where
each axis, x0 , y0 and z 0 , has associated a unit vector in its own direction, i0 , j 0 and
k0 respectively. Therefore, the vector p can be obtained as the following sum:
k0
j0
y0
i0 O
x0
Since the coordinate system ox0 ,y0 ,z0 is right handed, the vectors i0 , j 0 and k0
satisfy
k0 = i0 × j 0 j 0 = k0 × i0 and i0 = j 0 × k0 , (2.2)
and
i0 · i0 = 1 j0 · j 0 = 1 and k0 · k0 = 1. (2.3)
The last relationships imply of course that i0 , j 0 and k0 are unit vectors. Also, the dot
product of different vectors is always zero, i.e.
i0 · j 0 = 0 j0 · k0 = 0 and k0 · i0 = 0. (2.4)
Consider now Fig. 2.2, where the very same vector is depicted, but this time together
with another coordinate frame ox1 ,y1 ,z1 .
Clearly, p can be expressed as
p
z1
i1 k1
y0
O
j1
x0
y1
or
⎡ ⎤
px1
p = ⎣ p y1 ⎦ . (2.7)
pz1
While (2.1) and (2.6) are still perfectly compatible, (2.5) and (2.7) make little sense,
and the reason may be rather obvious. The first couple of equations provide a sum of
vectors, while the second one provide how those vectors are expressed in different
coordinate frames. Therefore, it would be more convenient to rewrite (2.1) and (2.6)
as
⎡ ⎤ ⎡ ⎤
px0 px1
0
p = ⎣ p y0 ⎦ and 1 p = ⎣ p y1 ⎦ , (2.8)
pz0 pz1
respectively, where in general 0 p = 1 p despite they describe the very same vector p.
The reason for defining two different coordinate frames is that this might constitute
an advantage for the representation of a particular point or vector in the space, but
now it is necessary to find the relationship between 0 p and 1 p. In fact, from (2.1)
and (2.6) one gets
This relationship can better be understood when both coordinates systems are
removed as shown in Fig. 2.3.
18 2 Position, Orientation and Velocity of Rigid Robot Manipulators
px1 i1
pz0 k0
px0 i0 + py0 j 0
py1 j 1 + pz1 k1
By using the properties given in (2.3) and (2.4), one can easily get
where
⎡ ⎤
i1 · i0 j 1 · i0 k1 · i0
0
R1 = ⎣ i1 · j 0 j 1 · j 0 k1 · j 0 ⎦ . (2.14)
i1 · k0 j 1 · k0 k1 · k0
0
R1 ∈ R3×3 represents a transformation which maps the vector p expressed in ox1 ,y1 ,z1 ,
i.e. 1 p, to its representation in the frame ox0 ,y0 ,z0 , i.e. 0 p. Note that the very same
procedure can be employed to find the transformation from ox0 ,y0 ,z0 to ox1 ,y1 ,z1 :
1
p = 1 R0 0 p, (2.15)
where
⎡ ⎤
i0 · i1 j 0 · i1 k0 · i1
1
R0 = ⎣ i 0 · j 1 j 0 · j 1 k 0 · j 1 ⎦ . (2.16)
i0 · k1 j 0 · k1 k0 · k1
2.1 Rigid Motions and Homogeneous Transformations 19
A matrix whose inverse is its own transpose is said to be orthogonal and this implies
that the columns of 0 R1 must be unit vectors orthogonal to each other. Furthermore, in
general the determinant of an orthogonal matrix takes the only two possible values
±1 since the determinant of a matrix equals that of its transpose. Now, consider
writing the columns of 0 R1 as r1 , r2 , r3 ∈ R3 . The meaning of these columns is easy
to understand. Just choose 1 p = i1 = [1 0 0]T , which means that r1 describes the
direction of the x1 -axis but in ox0 ,y0 ,z0 . The same can be said for r2 and r3 respectively
for the y1 and z 1 axes. But since 0 R1 does not change neither the orientation nor the
magnitude of a vector but just the coordinate frame where the vector is expressed,
then r1 , r2 and r3 must own the very same properties as i1 , j 1 and k1 . On the other
hand, it is possible to compute the determinant of 0 R1 as:
0
det R1 = rT1 (r2 × r3 ) . (2.18)
Since ox1 ,y1 ,z1 is aright handed coordinate system, then one must have r1 = r2 × r3 .
Therefore it is det 0 R1 = rT1 r1 = 1. This means that this particular set of orthogonal
matrices have only +1 as determinant and they are called rotation matrices and they
are said to belong to the group S O(3), standing for Special Orthogonal Group of
dimension 3.
Example
cos(θ) x1
θ
cos(θ)
sin(θ)
θ
x0
z0 ,z1
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1 0 0
i = ⎣0⎦ j = ⎣1⎦ and k = ⎣0⎦ (2.20)
0 0 1
is used and recall that r1 and r2 are actually i1 and j 1 but expressed in ox0 ,y0 ,z0 . Trivially
from Fig. 2.4 one gets
⎡ ⎤
cos(θ )
r1 = ⎣ sin(θ ) ⎦ (2.21)
0
and
⎡ ⎤
− sin(θ )
r2 = ⎣ cos(θ ) ⎦ . (2.22)
0
Finally, since the rotation takes place around a main axis it is customary to use the
notation Rz,θ to designate the corresponding rotation matrix.
2.1 Rigid Motions and Homogeneous Transformations 21
Rz,0 = I (2.24)
because in the very end no rotation is taking place. On the other hand, if after rotating
around z by an angle θ , a second rotation takes place also around z by a new angle φ,
then one actually has one single basic rotation around z but by a total angle θ + φ.
In fact, it is not difficult to show that the following relationship is satisfied
R−1
z,θ = Rz,−θ . (2.26)
This result was expected since it is equivalent to undo the rotation of θ to return
ox1 ,y1 ,z1 to its original position coincident with ox0 ,y0 ,z0 . Finally, the other two basic
rotations can easily be computed as:
⎡ ⎤
1 0 0
Rx,ψ = ⎣ 0 cos(ψ) − sin(ψ) ⎦ (2.27)
0 sin(ψ) cos(ψ)
⎡ ⎤
cos(φ) 0 sin(φ)
R y,φ =⎣ 0 1 0 ⎦. (2.28)
− sin(φ) 0 cos(φ)
Quite obviously Rx,ψ and R y,φ share the same properties as Rz,θ .
represents a rotational transformation between the coordinate systems ox0 ,y0 ,z0 and
ox1 ,y1 ,z1 . As seen for basic transformations, rotating twice around the very same axis
results in a new basic transformation with the sum of two angles as total rotation.
However, as shown in (2.25) this is equivalent to multiplying the basic rotations. It
turns out that this fact is valid in general as long as the new rotation is carried out with
respect to the current frame. To check this out, suppose there is a third coordinate
frame ox2 ,y2 ,z2 , so that the vector p has now three representations 0 p, 1 p and 2 p,
depending on the particular coordinate frame. There must exist rotation matrices so
22 2 Position, Orientation and Velocity of Rigid Robot Manipulators
where i R j ∈ S O(3). Note that 0 R1 and 0 R2 represent rotations with respect to ox0 ,y0 ,z0 ,
while 1 R2 does with respect to ox1 ,y1 ,z1 . Combining (2.32) and (2.30) yields
0
p = 0 R1 1 R2 2 p. (2.33)
As a matter of fact, it is easy to show that this is a general rule, i.e. for n + 1 coordinate
systems it holds
0
Rn = 0 R1 · · · n−1 Rn . (2.35)
Note, however, that the key assumption to get (2.35) is that every rotation of the chain
is carried out with respect to the current frame. The question is what happens when-
ever the rotations are carried out with respect to a fixed frame (e.g. the inertial one).
Example
Suppose that a 90◦ rotation is carried around y0 followed by another 90◦ rotation
around z 0 (not around z 1 !). The result can be appreciated in Fig. 2.5.
Just as explained before, rotations matrices can be obtained by inspection. Based
on the figure one has
z0
y2
y0 y1 z2
x0 z1
x1 x2
z0 y2
y0 y1 x2
x0 z1 z2
x1
⎡ ⎤
0 01
0
R̄1 = ⎣ 0 1 0 ⎦ , (2.36)
−1 0 0
and
⎡ ⎤
1 0 0
1
R̄2 = ⎣ 0 0 1 ⎦ , (2.37)
0 −1 0
where the notation (¯·) is used to distinguish the rotations with respect to current
frames (although the first one is the very same). This means that
⎡ ⎤⎡ ⎤ ⎡ ⎤
0 01 1 0 0 0 −1 0
0
R̄2 = 0 R̄1 1 R̄2 = ⎣ 0 1 0 ⎦ ⎣ 0 0 1 ⎦ = ⎣ 0 0 1 ⎦ . (2.38)
−1 0 0 0 −1 0 −1 0 0
Also by inspection it can be appreciated that the result is correct. However, this
approach becomes rather impractical and very involved for arbitrary rotation angles
and multiple coordinate frames. It would be for sure more desirable to carry out
the rotations with respect to current frames, but the result is quite different if one
just write down the basic rotation matrices and does the computation, as shown in
Fig. 2.6.
Based on the figure one gets
⎡ ⎤ ⎡ ⎤
0 01 0 −1 0
0
R1 = ⎣ 0 1 0 ⎦ and 1
R2 = ⎣ 1 0 0 ⎦ . (2.39)
−1 0 0 0 0 1
z0 z1
y0 y1 y1
x0 z1 x1
x1
z1
y2
y1
x1 z2
x2
Fig. 2.7 Substituting rotations with respect to a fixed frame by rotations with respect to current
frames
Since 0 R2 in (2.40) is not the same as that in (2.38), a natural question is whether it is
possible to get the same result as in (2.38) but with rotations with respect to current
frames. The answer to this question is yes. Consider Fig. 2.7 where the same end result
as in Fig. 2.5 is gotten but with a set of rotations with respect to the corresponding
current frames.
Based on the figure it is easy to see that 0 R2 can be obtained by
⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤ ⎡ ⎤
0 01 0 0 −1 0 −1 0 0 01 0 −1 0
0
R̄2 = ⎣ 0 1 0 ⎦ ⎣ 0 1 0 ⎦ ⎣ 1 0 0 ⎦ ⎣ 0 1 0 ⎦ = ⎣ 0 0 1 ⎦ .(2.41)
−1 0 0 10 0 0 0 1 −1 0 0 −1 0 0
I
The key point is that the first two rotations produce an identity matrix, so that in the
very end 0 R̄2 can be obtained by carrying out rotations with respect to the current
frame but in reverse order, i.e.
0
R̄2 = 1 R2 0 R1 . (2.42)
Despite the example is quite trivial, this result can be shown to be general, no matter
how many rotations are considered. In general, if the actual coordinate frame oxb ,yb ,zb
with respect to the frame oxa ,ya ,za is expressed through the rotation matrix a Rb and one
wants to perform a rotation Rα over another coordinate frame oxc ,yc ,zc , the resulting
rotation a Rd can be computed by the composition
2.1 Rigid Motions and Homogeneous Transformations 25
a
Rd = a Rb c RTb Rα c Rb , (2.43)
where the last three terms represent a similarity transformation, which is a well
known result of linear algebra. In the example, a = c = 0, b = 1, 0 R1 = Rx,90◦ and
Rα = Rz0 ,90◦ .
The nine elements of a rotation matrix R ∈ S O(3) are not independent. Both columns
and rows are unit vectors representing the orientation of the axes x, y and z of a right-
handed coordinate system. Therefore, in the end only three parameters are necessary
to characterize R. However, by no means these three parameters are unique and there
exist multiple options.
Since only three parameters are necessary to specify any arbitrary rotation, a natural
way to describe them is by means of the so called Euler Angles (φ, θ, ψ). For this
case, the total rotation is the result of three consecutive rotations with respect to the
current frame. Note that it makes no sense at all to carry out two consecutive rotations
around the same axis, so that the set of possible combinations reduces to 12 (XYX,
XYZ, XZX, XZY, YXY, YXZ, YZX, YZY, ZXY, ZXZ, ZYX, and ZYZ).
Figure 2.8 shows the most employed set of Euler Angles, which consists first of a
basic rotation around the z-axis, followed by another around y and the last one also
around z, resulting in
θ
y0 , y0
φ
y0
φ
θ ψ
x0
x1
x0
x0
26 2 Position, Orientation and Velocity of Rigid Robot Manipulators
0
R1 = Rz,φ R y,θ Rz,ψ
⎡ ⎤⎡ ⎤⎡ ⎤
cφ −sφ 0 cθ 0 sθ cψ −sψ 0
= ⎣ sφ cφ 0 ⎦ ⎣ 0 1 0 ⎦ ⎣ sψ cψ 0 ⎦
0 0 1 −sθ 0 cθ 0 0 1
⎡ ⎤
cφ cθ cψ − sφ sψ −cφ cθ sψ − sφ cψ cφ sθ
= ⎣ sφ cθ cψ + cφ sψ −sφ cθ sψ + cφ cψ sφ sθ ⎦ . (2.44)
−sθ cψ sθ sψ cθ
A more complex problem is the inverse one, i.e. given a rotation matrix R ∈
S O(3), with components ri j , i, j = 1, 2, 3, compute the angles φ, θ , and ψ, such
that the composition (2.44) results in the given matrix. To do this, consider first the
function atan2 = atan2(y, x), which is the arc tangent of two arguments returning
an angle which corresponds to the given quadrant, i.e. is the angle θ such that
x y
cos θ = and sin θ = . (2.45)
x2 + y2 x2 + y2
On the other hand, in the degenerated case when r33 = ±1, there are infinitely many
solutions. In fact, it is easy to see that for r33 = 1 the composition degenerates into
two consecutive rotations about the z axis. Therefore, a solution is
θ =0 (2.49)
ψ + φ = atan2(r21 , r11 ). (2.50)
θ =π (2.51)
ψ − φ = atan2(r21 , −r11 ). (2.52)
As in these two cases the solution involves the sum or the difference of φ and ψ, it
is common to set φ = 0 to obtain a single solution.
2.1 Rigid Motions and Homogeneous Transformations 27
For this representation, the inverse problem solution can be found if r31 = −sθ =
±1 =⇒ cθ = 0, as
θ = atan2 −r31 , 1 − r31
2
(2.54)
θ = −π/2 (2.57)
φ + ψ = atan2 (−r12 , r22 ) , (2.58)
θ = π/2 (2.59)
φ − ψ = atan2(r23 , r22 ). (2.60)
Once again, a closed solution can be found by setting the value of one of the two
angles a priori, e.g. ψ = 0.
β
a
ay
y0
ax α
x0
⎡ ⎤
ax
a = ⎣ ay ⎦ , (2.61)
az
ax
cos α =
ax + a 2y
2
sin β = ax2 + a 2y
cos β = az .
2.1 Rigid Motions and Homogeneous Transformations 29
R = Ra,θ (2.64)
and
⎡ ⎤
r32 − r23
1 ⎣ r13 − r31 ⎦ ,
a= (2.66)
2 sin(θ ) r − r
21 12
where Tr(·) denotes the trace operator. Note that the representation is not unique
since the very same result can be gotten by using −a as axis and performing −θ
degrees of rotation, i.e.
Furthermore, if θ = 0◦ then R becomes the identity and any vector a can be considered
as the axis of rotation.
where θ and a are the same values as those employed in the axis/angle repre-
sentation in Fig. 2.9. η ∈ R is known as the scalar part of the quaternion, while
T
= x y z ∈ R3 is the vectorial part. These quantities are related by
η2 + 2
x + 2
y + 2
z = η2 + T = 1. (2.70)
On the contrary, given an arbitrary rotation matrix R ∈ S O(3) with elements ri j for
i, j = 1, 2, 3, it holds
1
η= r11 + r22 + r33 + 1 (2.72)
2⎡ √ ⎤
sign(r32 − r23 )√ r11 − r22 − r33 + 1
1⎣
= sign(r13 − r31 )√−r11 + r22 − r33 + 1 ⎦ , (2.73)
2
sign(r21 − r12 ) −r11 − r22 + r33 + 1
where sign(x) = 1 for x ≥ 0 and sign(x) = −1 for x < 0. Note that in (2.72) and
(2.73) it is assumed that η ≥ 0, meaning that θ ∈ [−π π ].
The unit quaternion gotten using R−1 = RT is denoted by Q−1 and it is given by
1
η̇ = − T ω (2.75)
2
1
˙ = E(η, )ω, (2.76)
2
O0 y0
x0
Till now it has been shown how a vector can be represented in more than one coor-
dinate frame by means of rotation matrices as long as the origins of all coordinate
frames are coincident. Consider now Fig. 2.10.
Since the coordinate frames are parallel, the unit vectors i0 , j 0 , k0 are necessarily
parallel to i1 , j 1 , k1 , respectively. The vector 0 d 1 ∈ R3 goes from the origin o0
of ox0 ,y0 ,z0 to the origin o1 of ox1 ,y1 ,z1 , expressed in ox0 ,y0 ,z0 . This way, any point p
represented as 0 p and 1 p in the different coordinate frames as before can be related
as a regular sum of vectors, i.e.
0
p = 1p + 0d1. (2.79)
The most general situation arises when the coordinate frame ox1 ,y1 ,z1 is not only
translated but also rotated with respect to ox0 ,y0 ,z0 , as shown in Fig. 2.11. For that case
the relationship (2.79) makes no sense because 1 p is still expressed in ox1 ,y1 ,z1 , while
0
p and 0 d 1 are expressed in ox0 ,y0 ,z0 . However, by comparing Fig. 2.10 with Fig. 2.11
it can be seen that in the very end one has a regular sum of vectors, which makes
only sense if and only if all vectors are expressed in the same coordinate frame. It
turns out that expressing 1 p in ox0 ,y0 ,z0 is trivial if the rotation matrix 0 R1 is known,
so that instead of (2.79) one can employ
0
p = 0 R1 1 p + 0 d 1 . (2.80)
O0 y0
x0
But, on the other hand, since the relationship between 0 p and 2 p is a rigid motion,
then it can be described by
0
p = 0 R2 2 p + 0 d 2 . (2.83)
Equation (2.84) shows that, as before, the total rotation can be obtained by multiplying
0
R1 by 1 R2 , while Eq. (2.85) shows that the position vector from o0 to o2 is the sum
of the vectors from o0 to o1 , i.e. 0 d 1 , and then the vector from o1 to o2 but expressed
in ox0 ,y0 ,z0 , i.e. 0 R1 1 d 2 as it had been deducted before. This can also be clearly
appreciated in Fig. 2.12.
Quite naturally it would be desirable to have only expressions of the form (2.84)
rather than of the form (2.85), i.e. products of matrices resulting in another matrix
of the same kind (a group structure) instead of a sum of them. This goal can be
accomplished by putting all the information of rotation and translation in a single
transformation matrix H ∈ R4×4 of the form
R d
H= T , (2.86)
0 1
y0
O0
x0
RT −RT d
H −1 = . (2.87)
0T 1
This way, Eqs. (2.84) and (2.85) can be written in a more compact form as
0
H2 = 0H11H2
0 0 1 1
R1 d 1 R2 d 2
=
0T 1 0T 1
0 1 0 1 0 0
R1 R2 R1 d 2 + 0 d 1 R2 d 2
= = , (2.88)
0T 1 0T 1
T
where 0T = 0 0 0 . However, the relationship between 0 p and 1 p given by
0
p = 0 R1 1 p + 0 d 1 ,
and
1
p
1
p̄ = . (2.90)
1
0
p̄ = 0 H 1 1 p̄. (2.91)
The set of all 4 × 4 matrices of the form (2.86) is denoted by E(3) (Euclidean group
of order 3). The basic homogeneous transformations are
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
1 0 0 a 1 0 00 1 0 0 0
⎢0 1 0 0⎥ ⎢0 1 0 b⎥ ⎢0 1 0 0⎥
T x,a =⎢
⎣0
⎥ , T y,b = ⎢ ⎥ , T z,c = ⎢ ⎥, (2.92)
0 1 0⎦ ⎣0 0 1 0⎦ ⎣0 0 1 c⎦
0 0 0 1 0 0 01 0 0 0 1
for rotations, regarding the axes x, y and z, respectively. It is customary to set the
notation
nsad
H= , (2.94)
0001
where in view of the definition of H, n, s and a represent the directions of the axes
x1 , y1 and z 1 with respect to ox0 ,y0 ,z0 , while d represents the position of the origin of
o1 expressed in the same coordinate frame. Most important is that the same rules of
composition of rotations matrices are valid for homogeneous transformations, both
with respect to current or fixed frames.
ST + S = O. (2.95)
The set of all 3 × 3 skew symmetric matrices is denoted by SS(3). If S ∈ SS(3) and
it has si j , i, j = 1, 2, 3 elements, then (2.95) is equivalent to nine equations of the
form
si j + s ji = 0. (2.96)
From this relationship it is obvious that sii = 0, while the rest of the elements of S
must satisfy si j = −s ji (for i = j). This means that S has only three free elements.
2.1 Rigid Motions and Homogeneous Transformations 35
T
Let’s say that those three parameters are put together in a vector a = ax a y az to
define a particular skew symmetric matrix of the form
⎡ ⎤
0 −az a y
S(a) = â = (â) = ⎣ az 0 −ax ⎦ . (2.97)
−a y ax 0
S(a) can be seen as a linear operator since given any two vectors a, b ∈ R3 , and any
two scalars α, β ∈ R it holds
S(a)b = a × b, (2.99)
This property can be proved by direct computation, but care should be taken since
this relationship is not true in general but only for orthogonal matrices.
Another interesting property for any R ∈ S O(3) and any a, b ∈ R3 , is that
after (2.99) and (2.100) one has
RS(a)RT b = R a × RT b
= (Ra) × RRT b
= (Ra) × b
= S (Ra) b. (2.101)
Now, suppose that the rotation matrix R is a function of the single variable θ , i.e.
R = R(θ ) ∈ S O(3). Since R is orthogonal for all θ it follows
dR T dRT
R (θ ) + R(θ ) = O. (2.104)
dθ dθ
If it is defined
dR T
S= R (θ ), (2.105)
dθ
then one has
T
dR T dRT
ST = R (θ ) = R(θ ) . (2.106)
dθ dθ
S + ST = O. (2.107)
dR
= SR(θ ). (2.108)
dθ
Equation (2.108) is very important, since it says that computing the rotation matrix
derivative equals to multiply the rotation matrix R by a skew-symmetric matrix S. A
common case occurs when R is a basic rotation or a composition of basic rotations.
Example
Therefore
dR y,θ
= S(j)R y,θ . (2.110)
dθ
In a similar manner, it can be shown that
dRx,θ dRz,θ
= S(i)Rx,θ , and = S(k)Rz,θ . (2.111)
dθ dθ
Example
Let Ra,θ be a rotation matrix of an angle θ over the axis vector a given in (2.66):
⎡ ⎤
r32 − r23
1 ⎣ r13 − r31 ⎦ .
a=
2 sin(θ ) r − r
21 12
In the last section, the relationship between the position and orientation of several
coordinate systems was established by introducing homogeneous transformations. In
this section, it will be discussed how to represent angular velocities and accelerations
in the same context. Suppose that a rotation matrix R is time-dependent, so R =
R(t) ∈ S O(3) for all t ∈ R. By a similar argument as the employed to compute the
derivative of R with respect to θ , it can be computed
Example
which is the well known expression of the linear velocity as the cross product of two
vectors. Now, suppose a more general motion of the frame ox1 ,y1 ,z1 with respect to
the frame ox0 ,y0 ,z0 represented by the time-dependent homogeneous transformation
⎡0 ⎤
R1 (t) 0 d 1 (t)
0
H 1 (t) = ⎣ ⎦. (2.117)
0T 1
For the sake of simplicity, time dependency and the indexes 0, 1 will be omitted, i.e.
0
p = R1 p + d. (2.118)
By taking the time derivative of the previous relation and taking into account that 1 p
is constant
0
ṗ = Ṙ1 p + ḋ
= S(ω)R1 p + ḋ
= ω × r + v, (2.119)
2.1 Rigid Motions and Homogeneous Transformations 39
where r = R1 p is the vector from the origin o1 to p, expressed in the frame ox0 ,y0 ,z0 ,
and v is the velocity of the origin o1 with respect to ox0 ,y0 ,z0 . If the vector 1 p is not
constant with respect to the frame ox1 ,y1 ,z1 , then one must add the term R1 ṗ, which
is the velocity of 1 p expressed in the frame ox0 ,y0 ,z0 .
An expression to compute the relative acceleration of two coordinate frames can
be found as follows. First, notice that:
d da db
a×b= ×b+a× . (2.120)
dt dt dt
and rewrite (2.119) as
0
ṗ − ḋ = Ṙ1 p + R1 ṗ = ω × (R1 p) + R1 ṗ. (2.121)
= ω̇ × r + ω × (ω × r) + ω × (R ṗ) + (ω × R)1 ṗ + R1 p̈
1
Therefore, it is obtained
0
p̈ = ω̇ × r + ω × (ω × r) + 2ω × (R1 ṗ) + a, (2.123)
where
0
R2 = 0 R1 1 R2 , (2.127)
and
0
d 2 = 0 d 1 + 0 R1 1 d 2 . (2.128)
As seen before, all the previous relations are time-dependent functions. On the one
hand, by taking the time derivative of both sides of (2.127), one obtains
0
Ṙ2 = 0 Ṙ1 1 R2 + 0 R1 1 Ṙ2 . (2.129)
Now, while the first term in the right hand side of (2.129) is given by
0
Ṙ1 1 R2 = S(0 ω1 )0 R1 1 R2 = S(0 ω1 )0 R2 , (2.131)
the second term in the right hand side of (2.129) must be analyzed more thoroughly.
By employing (2.102)
RS(a)RT = S (Ra) ,
In other words, angular velocities can be summed as long as they are expressed in the
same coordinate frame, in this case ox0 ,y0 ,z0 . Furthermore, the above representation
can be extended to any number of frames, e.g. if
2.1 Rigid Motions and Homogeneous Transformations 41
0
Rn = 0 R1 1 R2 · · · n−1 Rn , (2.135)
then
0
Ṙn = S(0 ωn )0 Rn , (2.136)
where
0
ωn = 0 ω1 + 0 R1 1 ω2 + 0 R2 2 ω3 + · · · + 0 Rn−1 n−1 ωn . (2.137)
In this section, the direct kinematics for rigid robots will be developed. The direct
kinematics problem can be formulated as follows: given the values for the joint
variables, compute the position and the orientation of the end-effector. The joint
variables are the angles for the case of revolute joints and the linear displacements
for the case of prismatic joints.
y3
x3
link 3
y1
d2 x1
z3
link 2 z1 y3
joint 2 z2
link 1 z0 joint 3
x2
joint 1 θ1 θ3
y0
x0 base
(link 0)
Fig. 2.13 Definition of frame coordinates on the different elements of a robot manipulator
i−1
Ai = i−1 Ai (qi ). (2.138)
i
T j = i Ai+1 i+1 Ai+2 i+2 Ai+3 · · · j−2 A j−1 j−1 A j if i < j
i
Tj = I if i = j
j −1
i
T j = Ti if i > j
From the above definitions, it follows that the position of any point of the end-
effector is constant when expressed in frame n as mentioned before, independently of
the robot configuration. Denote the position and orientation of the end-effector with
respect to the base system as a vector 0 d n ∈ R3 and a rotation matrix 0 Rn ∈ S O(3),
respectively, and define the homogeneous matrix
0
Rn 0 d n
0
Tn = , (2.139)
0T 1
so that the position and orientation of the end-effector with respect to the base frame
are given by
0
T n = 0 A1 (q1 ) · · · n−1 An (qn ). (2.140)
2.2 Direct Kinematics 43
The rotation matrix i R j expresses the orientation of the jth frame with respect to the
ith frame and it is given by
i
R j = i Ri+1 · · · j−1 R j . (2.143)
Algorithm 2.1 Given a robot manipulator with n joints, the following algorithm
assigns the coordinate frames such that the Denavit-Hartenberg convention is satis-
fied:
1. Locate and enumerate the joint axes z0 , . . . , zn−1 . Align the zi axis with the axis
of motion, rotational or linear, of the (i + 1)th joint.
2. Assign an orthonormal right-handed frame ox0 ,y0 ,z0 to the robot base, with the
z0 axis along the axis of motion of joint 1. Locate the origin o0 in a convenient
point over z0 . The axes x0 and y0 can then be located conveniently as long as they
remain orthogonal to the z0 axis and form a right-handed coordinate frame.
3. Locate the origin oi , for i = 1, . . . , n − 1, on the intersection of the zi axis and
the common normal to zi and zi−1 . If zi intersects zi−1 , locate the origin oi on
44 2 Position, Orientation and Velocity of Rigid Robot Manipulators
the intersection. If zi and zi−1 are parallel, locate the origin oi on any convenient
point over zi .
4. Set the axis xi , for i = 1, . . . , n − 1, along the common normal to zi and zi−1
passing through the origin oi , or along the normal direction to the plane zi –zi−1
if zi intersects zi−1 .
5. Set the axis yi , for i = 1, . . . , n − 1, to form a right-handed coordinate frame.
6. Establish the end-effector coordinate frame oxn ,yn ,zn . Locate the origin on in the
most important point of the end-effector, e.g. center of a gripper, tip of the tool,
etc. Set the axis zn parallel to zn−1 passing through on . Set yn conveniently, e.g.
on the direction in which the gripper closes. Finally, set xn to form a right-handed
coordinate frame.
Algorithm 2.1 provides an easy way to locate the different coordinate frames nec-
essary to compute the complete direct kinematics of a robot manipulator. It remains
but to obtain the corresponding homogeneous transformation matrices for each cou-
ple of links i − 1 and i, for i = 1, . . . , n. While this could be done by inspection as
mentioned before, it turns out that the particular frames locations allow to describe
each transformation as the product of four basic transformations. This can better be
understood by analyzing Fig. 2.14. The two coordinate frames are not really inde-
pendent since the xi axis is perpendicular both to zi−1 and zi . This does not mean that
xi−1 and xi point in the same direction but they differ by an angle θi which represents
a rotation around zi−1 . Once this rotation is carried out and xi−1 and xi point in the
same direction, then to align them a translation by di along zi−1 has to be performed,
while to make the origins coincide a new translation by ai along xi has to be done.
Finally, to align zi−1 and zi , a new rotation around xi by an angle αi has to be carried
out. This leads to the following homogeneous transformation:
αi
joint i
zi
Oi
xi
ai
di link i
zi−1
joint i + 1
yi−1
1
link i −
Oi−1
xi−1 θi
i−1
Ai = Rz,θi T z,di T x,ai Rx,αi
⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤
cθi −sθi 0 0 100 0 1 0 0 ai 1 0 0 0
⎢ sθi cθi 0 0 ⎥ ⎢ 0 1 0 0 ⎥ ⎢ 0 0 0⎥ ⎢ ⎥
=⎢ ⎥⎢ ⎥⎢ 1 ⎥ ⎢ 0 cαi −sαi 0 ⎥
⎣ 0 0 1 0 ⎦ ⎣ 0 0 1 di ⎦ ⎣ 0 0 1 0 ⎦ ⎣ 0 sαi cαi 0 ⎦
0 0 01 000 1 0 0 0 1 0 0 0 1
⎡ ⎤⎡ ⎤⎡ ⎤⎡ ⎤
cθi −sθi 0 0 100 0 1 0 0 0 1 0 0 ai
⎢ sθi cθi 0 0 ⎥ ⎢ 0 1 0 0 ⎥ ⎢ 0 cαi −sαi 0 ⎥ ⎢ ⎥
=⎢ ⎥⎢ ⎥⎢ ⎥⎢0 1 0 0 ⎥
⎣ 0 0 1 0 ⎦ ⎣ 0 0 1 di ⎦ ⎣ 0 sαi cαi 0 ⎦ ⎣ 001 0⎦
0 0 01 000 1 0 0 0 1 000 1
⎡ ⎤
cθi −sθi cαi sθi sαi ai cθi
⎢ sθi cθi cαi −cθi sαi ai sθi ⎥
=⎢⎣ 0 sαi
⎥, (2.145)
cαi di ⎦
0 0 0 1
where the four quantities θi , di , ai , and αi are parameters of the ith element and of
the ith joint. These quantities are known as angle, distance, offset distance, and
offset angle, respectively. Since the matrix i−1 Ai is a function of one single variable,
necessarily three of these parameters are constant. In fact, θi is variable for a revolute
joint and di is variable for a prismatic joint, whereas the remaining three are constant.
For the sake of easiness, the following algorithm is introduced.
αi
zi−1
xi−1
θi
xi
xi
It is worth to point out that, contrarily to what is expected, the D-H representation
does not require 6 parameters (3 for position and 3 for orientation) to relate each pair
of coordinate frames, but only 4. This is possible due to the constraints imposed on
the frames assignment.
2.2.2.2 Examples
Example
Consider the two degrees of freedom planar robot shown in Fig. 2.16
Let the axes z0 and z1 be normal to the page. The coordinate system ox0 ,y0 ,z0 is
located as shown in the figure, i.e. the origin o0 is established at the intersection
y1 a2
q2
x1
q1
x0
a1
2.2 Direct Kinematics 47
Table 2.1 D-H parameters of the two degrees of freedom planar manipulator
Joint ai αi di θi
1 a1 0◦ 0 θ1 (t)
2 a2 0◦ 0 θ2 (t)
of the axis z0 with the page, whereas x0 is arbitrarily chosen and the system is
accomplished by locating y0 according to the right hand rule. Once the base system is
fixed, the procedure described in the Denavit-Hartenberg algorithm above is followed
to establish the frames ox1 ,y1 ,z1 and ox2 ,y2 ,z2 . The obtained parameters are shown in
Table 2.1:
Now, the matrices 0 A1 and 1 A2 can be computed by taking into account (2.146)
and the table parameters as
⎡ ⎤ ⎡ ⎤
c1 −s1 0 a1 c1 c2 −s2 0 a2 c2
⎢ s1 c1 0 a1 s1 ⎥ ⎢ s2 c2 0 a2 s2 ⎥
0
A1 = ⎢
⎣ 0 0 1 0 ⎦ and
⎥ 1
A2 = ⎢
⎣ 0 0 1 0 ⎦.
⎥
0 0 0 1 0 0 0 1
0 0 0 1 0 0 0 1
⎡ ⎤
c1 c2 − s1 s2 −c1 s2 − s1 c2 0 a2 c1 c2 − a2 s1 s2 + a1 c1
⎢ s1 c2 + c1 s2 −s1 s2 + c1 c2 0 a2 s1 c2 + a2 c1 s2 + a1 s1 ⎥
=⎢⎣
⎥
⎦
0 0 1 0
0 0 0 1
⎡ ⎤
c12 −s12 0 a2 c12 + a1 c1
⎢ s12 c12 0 a2 s12 + a1 s1 ⎥
=⎢⎣ 0
⎥,
⎦
0 1 0
0 0 0 1
where s12 = sin(θ1 + θ2 ) and c12 = cos(θ1 + θ2 ). Note that the first two elements on
the fourth column of this matrix are the components of the origin o2 with respect to
the base frame, i.e.
x = a1 c1 + a2 c12
y = a1 s1 + a2 s12 .
48 2 Position, Orientation and Velocity of Rigid Robot Manipulators
z3
θ5
z5
d6
z4
oc
θ4
In other words, (x, y) are the coordinates of the end effector in the base frame. On
the other hand, the upper-left part of this matrix, i.e. the rotation part of 0 T 2 , gives
the orientation of the frame ox2 ,y2 ,z2 with respect to the base frame.
Example
Consider the spherical wrist configuration shown in Fig. 2.17. Since the spherical
wrist is attached to the robot’s main body made usually up of three joints, then in
the figure the axes are numbered as z3 , z4 and z5 and they intersect each other at the
center of the wrist denoted by oc . The corresponding Denavit-Hartenberg parameters
are summarized in Table 2.2.
It can be easily shown that the joint variables θ4 , θ5 , and θ6 are the Euler angles φ,
θ , and ψ for the Z Y Z configuration, respectively, with respect to the frame ox3 y3 z 3 .
In order to see this compute the matrices 3 A4 , 4 A5 , and 4 A6 , which according to
Table 2.2 are
2.2 Direct Kinematics 49
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
c4 0 −s4 0 c5 0 s5 0 c6 −s6 0 0
⎢ s4 0 c4 0 ⎥ ⎢ s5 0 −c5 0⎥ ⎢ s6 c6 0 0 ⎥
3
A4 = ⎢
⎣ 0 −1 0 0 ⎦
⎥ 4
A5 = ⎢
⎣0
⎥ 5
A6 = ⎢ ⎥
⎣ 0 0 1 d6 ⎦ .
1 0 0⎦
0 0 0 1 0 0 0 1 0 0 0 1
By comparing the rotation matrix 3 R6 of 3 T 6 with the Euler angles composition (2.44)
⎡ ⎤
cφ cθ cψ − sφ sψ −cφ cθ sψ − sφ cψ cφ sθ
Rz,φ R y,θ Rz,ψ = ⎣ sφ cθ cψ + cφ sψ −sφ cθ sψ + cφ cψ sφ sθ ⎦ ,
−sθ cψ sθ sψ cθ
it can be seen that θ4 , θ5 , and θ6 are exactly the Euler angles φ, θ , and ψ with respect
to the coordinate frame ox3 y3 z 3 .
Example
Consider the robot manipulator with two revolute joints shown in Fig. 2.18. This
robot has the same kinematic structure of the Furuta pendulum when the parameter
1 is set to zero. The coordinate frames which are also shown in the figure were
x0
θ2
θ1
50 2 Position, Orientation and Velocity of Rigid Robot Manipulators
Table 2.3 D-H parameters of the two degrees of robot shown in Fig. 2.18
Joint ai αi di θi
1 1 90◦ b1 θ1 (t)
2 2 0◦ b2 θ2 (t)
assigned according to the D-H convention. Notice that the origin of the coordinate
frame x1 y1 z 1 is placed outside of the body of the robot.
The D-H parameters of the robot are shown in Table 2.3 and the homogeneous
transformation matrices are given by
⎡ ⎤ ⎡ ⎤
c1 0 s1 1 c1 c2 −s2 0 2 c2
⎢ s1 0 −c1 1 s1 ⎥ ⎢ s2 c2 0 2 s2 ⎥
0
A1 = ⎢
⎣0
⎥, 1
A2 = ⎢ ⎥.
1 0 b1 ⎦ ⎣0 0 1 b2 ⎦
0 0 0 1 0 0 0 1
Finally, the orientation and end-effector position of the robot are given by
⎡ ⎤
c1 c2 −c1 s2 s1 c1 ( 1 + 2 c2 ) + b2 s1
0
T 2 = 0 A1 1 A2 = ⎣ s1 s2 −s1 s2 −c1 s1 ( 1 + 2 c2 ) − b2 c1 ⎦ .
s2 c2 0 b1 + 2 s2
2.3.1 Introduction
It has already been shown how to determine the pose of the end-effector in terms
of the joint variables. In this section, the inverse problem will be studied, i.e. how
to find the joint variables given the pose of the end-effector. This problem is known
as inverse kinematics, which is, in general, more difficult to solve than the direct
kinematics problem. The inverse kinematics problem can be established as follows:
given a 4 × 4 homogeneous transformation by
0
Rd od
0
Hd = ∈ S E(3), (2.147)
0T 1
with 0 Rd ∈ S O(3), find if exists the solution (or multiple solutions) of the equation
0
T n (q1 , . . . , qn ) = 0 H d , (2.148)
2.3 Inverse Kinematics 51
where
0
T n (q1 , . . . , qn ) = 0 A1 · · · n−1 An . (2.149)
Equation (2.148) gives 12 nonlinear equations with n variables to solve, which can
be written as
ti j (q1 , . . . , qn ) = h i j , i = 1, 2, 3, j = 1, 2, 3, 4, (2.150)
qk = f k (h 11 , . . . , h 34 ), k = 1, . . . , n. (2.151)
The closed form of solutions are preferred not only for their low computational cost,
but because they allow to choose between different valid solutions if necessary.
The existence of solutions of the inverse kinematics problem depends not only
on mathematical considerations but also depends on physical limitations. One can
assume that at least one solution of (2.151) exists if the given pose for the end-effector
lies in the workspace of the particular manipulator, i.e. 0 H d in (2.151) corresponds
to a valid configuration in the dexterous workspace of the manipulator.
Although the inverse kinematics problem is very difficult to solve for robots with
many degrees of freedom, when the last three joint axes intersect each other at one
point it is possible to decouple the inverse kinematics problem into two simpler cases,
known in the literature as inverse position and inverse orientation. In other words,
for a manipulator with six or more degrees of freedom with their last three joints
forming a spheric wrist, the inverse kinematics can be solved in two easier steps:
first to find the position of the wrist axes intersection point and then the orientation
of the wrist itself.
52 2 Position, Orientation and Velocity of Rigid Robot Manipulators
oc
y6 z6
z0 o6
x0
For simplicity, assume that the robot has exactly six degrees of freedom and that
the last three joint axes intersect at a point oc . Then Eq. (2.148) is equivalent to solve
simultaneously
0
R6 (q1 , . . . , q6 ) = 0 Rd (2.152)
o6 (q1 , . . . , q6 ) = od , (2.153)
where od and 0 Rd are the given position and orientation for the end-effector, respec-
tively.
The fact that the axes z4 , z5 , and z6 intersect at oc implies that the origins o4 and
o5 coincide at this position as well. An important consequence is that the movement
of the last three joints does not change at all the position of oc , so that the center of
the wrist depends exclusively on the first three joints.
By taking into consideration that the origin o6 fixed at the end-effector is simply
a translation from oc along z5 by the distance d6 , as shown in Fig. 2.19, it can be
concluded that o6 specified in the frame ox0 ,y0 ,z0 is given by
o6 = oc + d6 z6 . (2.154)
oc = od − d6 0 Rd k. (2.155)
T
Note that 0 Rd k = z6 because k = 0 0 1 . As mentioned before, the position of the
wrist center oc does not depend on the last three joints, so that the first goal is to
determine the values of the first three joints which satisfy (2.155). Recall that the
orientation objective is to drive 0 R6 = 0 Rd , i.e.
0
R6 = 0 Rd = 0 R3 3 R6 , (2.156)
2.3 Inverse Kinematics 53
once the first three joints values have been determined by solving (2.155). The impor-
tance of the spheric wrist is now evident, since the matrix 3 R6 is a function of the
angles θ4 , θ5 , and θ6 with the same composition of the Euler angles ZYZ, as it was
shown in the direct kinematics of the wrist example. Note also that the right hand
side of (2.157) is a product of quantities known at this point. Therefore, to obtain the
solution for the last three joints, it is sufficient to extract the ZYZ Euler angles from
the matrix 3 R6 in (2.157).
For the common kinematic configurations, a geometric method will be studied to find
the solution to the inverse position problem, i.e. to find the joint variables q1 , q2 , q3
corresponding to the center of the wrist oc given by (2.155). The reason for using
a geometric method instead of an analytic one is, on the one hand, the difficulty to
obtain such analytic solution and, on the other hand, most of the commercial manip-
ulators are of one of the five basic kinematic configurations: Cartesian, cylindrical,
spherical, SCARA, and anthropomorphic, along with a spheric wrist attached to
them. In general, the complexity of the inverse kinematic problem increases with the
number of D-H parameters different from zero.
Consider the anthropomorphic configuration shown in Fig. 2.20, where the D-H coor-
dinate frames assignment is already shown.
The configuration after the kinematic decoupling is shown in Fig. 2.21.
To apply the geometric method for solving the inverse kinematics, it is convenient
to redraw the manipulator in a configuration in which all the revolute joints have
values different from 0, ±π/2, ±π, . . ., and the prismatic joints have values different
from zero. For the present example, such configuration is displayed in Fig. 2.22.
After driving the manipulator into this convenient configuration, the components
oc , denoted by ocx , ocy , ocz , can be projected on the plane x0 y0 as shown in Fig. 2.23.
In this figure, it can be seen that
θ1 = β + γ . (2.158)
The geometric method basically relies on forming triangles with some of their
sides or angles known, and solve them. In this example, to find β, consider the right
54 2 Position, Orientation and Velocity of Rigid Robot Manipulators
a1 a2 d4 d6
y1
x3 x4 , x5 x6
d2 z1 o1 x1
x2 z3
o2,3 o4,5 o6 z , z
5 6
z2 z4 y6
d1 z0
y0
x0
o0
d2 z1 o1 x1
o2,3 oc
z2
d1 z0
y0
x0
o0
x1
θ2 z2
z1
z0 y0
θ1
x0
2.3 Inverse Kinematics 55
ocy oc
x1 r
γ
θ1 β
ocx x0
d2
γ = atan2 d2 , ± r − d2 = atan2 d2 , ± ocx
2 2 2 + o2 − d 2
cy 2 . (2.160)
Notice that this solution exists only if (ocx , ocy ) = (0, 0), i.e. when the wrist center
is not located exactly above the first joint axis. For the manipulator presented in this
example, this case is not possible, because of the offset d2 . Nevertheless, there exist
many manipulators without this offset, for which such situation is possible. This is
known as singular configuration or singularity, and will be addressed in the next
section.
To find the angles θ2 and θ3 , consider the projection of the robot on the plane x1 y1 ,
which is shown in Fig. 2.24.
First, notice that θ3 = α + π/2. Now, by applying the law of cosines
m 2 − a22 − d42
cos(α) = = D. (2.163)
2a2 d4
56 2 Position, Orientation and Velocity of Rigid Robot Manipulators
m
d4
ocz − d1
x3 α θ3 α
x2
ϕ
a2
δ θ2
x1
r − a1
x0
From Fig. 2.24 one can see that θ2 = δ − ϕ. The angle δ can be computed as
To get ϕ one can use α and form a right triangle with sides a2 + d4 cos(α) and
d4 sin(α). Hence, this angle can be computed as
Note that there are four valid solutions for the inverse kinematics, as a result of
combining the two solutions given by choosing the signs in (2.161) and in (2.164).
In (2.161), the signs + and − correspond to the right arm and left arm solutions,
while in (2.164) correspond to the elbow down and elbow up solutions, respectively.
2.3 Inverse Kinematics 57
x2 β y1
θ 2 z2
β
x1 θ1 x0
z1
d1 z0
y0
x0
ocy oc
θ1
ocx x0
as long as (ocx , ocy ) = (0, 0). The case (ocx , ocy ) = (0, 0) is a singular point and θ1
can take any value. To find the solution for the second and third joints, it is convenient
to project the robot on the x1 y1 plane, as shown in Fig. 2.28.
In the figure, r is defined by r 2 = ocx
2
+ ocy2
, and by the Pythagorean theorem it is
(d3 + d4 )2 = ocx
2
+ ocy
2
+ (ocz − d1 )2 , (2.169)
In this section, the relationship between joint velocities and end-effector veloci-
ties will be developed. Mathematically speaking, the direct kinematics equations
define a function that maps the joint variables to the position and orientation of the
end-effector in the Cartesian space. The relationship between the velocities is thus
naturally given by taking the time derivative of the direct kinematics function. Since
it depends only on the joint positions, by using the chain rule the relationship between
the joint and Cartesian velocities is given by a matrix, which is called the Jacobian
matrix, or simply Jacobian. This matrix is one of the most important and useful
quantities in robotics, with a great number of applications from dynamic modeling
to manipulability analysis, path planing, force control, visual servoing, etc. The same
approach can be used to relate the velocity of any point on the robot and the joint
velocities.
2.4 Differential Kinematics 59
In the most general case, the Cartesian linear and angular velocities can be rep-
resented by a vector of dimension 6. In this section, first for a manipulator with
n joints, the corresponding 6 × n configuration-dependent Jacobian matrix will be
developed, which maps the joint velocities to end-effector Cartesian velocities. Sec-
ond, the same procedure will be employed to compute the Jacobian for any arbitrary
point on the robot. Later, the configurations which make the Jacobian to lose rank,
known as singularities will be studied. Finally, the relationship between the joint
and end-effector accelerations will be discussed.
There are basically two important types of Jacobians that are useful for robotics, the
analytic Jacobian and the geometric Jacobian. To derive the first one, let us bundle
the Cartesian position and the orientation of the end-effector in the vector
0
dn
x= , (2.172)
φ
Thus, the vector φ is just a parametrization of the rotation matrix 0 Rn (q). For the
general case of the 3D Cartesian space, a vector-valued function f (q) : Rn → R3+ p
of the end-effector pose in terms of the n joint positions can be constructed, where p
is the dimension of the orientation parametrization, e.g. p = 3 for Euler angles and
p = 4 for unit quaternions. In the particular case of planar robots, the position and
orientation can be described by a vector φ ∈ R3 . Therefore, the direct kinematics
can be expressed as
x = f (q). (2.174)
The quantity J A (q) = ∂f (q)/∂q ∈ R(3+ p)×n is the analytic Jacobian of the manipu-
lator.
60 2 Position, Orientation and Velocity of Rigid Robot Manipulators
φ
q2
q1
x0
Example
For representing the position, it is sufficient to take the first two components
of the end-effector position vector o3 , i.e. 0 d 3 . On the other hand, the angle φ can
be employed to represent the orientation, as shown in Fig. 2.29. This angle can be
computed as φ = q1 + q2 + q3 and it is simply the angle between the end-effector
and the horizontal line. Now, the direct kinematics can be written as
⎡ ⎤ ⎡ ⎤
ox a1 c1 + a2 c12 + a3 c123
x = ⎣ oy ⎦ = ⎣ a1 s1 + a2 s12 + a3 s123 ⎦ = f (q). (2.177)
φ q1 + q2 + q3
In the above example, the computation of the analytic Jacobian was quite easy,
since the direct kinematics function (2.177) is rather simple. In general, the compu-
2.4 Differential Kinematics 61
tation of the analytic Jacobian is more difficult for non planar robots with revolute
joints, because the function representing the orientation part is not as simple as in
the example.
In contrast with the analytic Jacobian, the geometric Jacobian relates the joint veloc-
ities q̇(t) with the linear and angular velocities of the end-effector. Let
0
vn = 0 ḋ n (2.179)
denote the end-effector linear velocity and let 0 ωn be its angular velocity. As explained
in Sect. 2.1.7, this angular velocity is related to the rotation matrix by
S 0 ωn = 0 Ṙn 0 RTn . (2.180)
where J v and J ω are 3 × n matrices. Obviously, (2.181) and (2.182) can be written
in compact form as
0
vn
ẋ = = 0 J n q̇, (2.183)
0
ωn
where ẋ bundles both linear and angular end-effector velocities and 0 J n is composed
as
Jv
0
Jn = . (2.184)
Jω
The matrix 0 J n above is the geometric Jacobian of the manipulator, or simply Jaco-
bian. Notice that 0 J n is always a 6 × n matrix, where n is the number of manipulator
joints, as usual. However, if n < 6 it is customary to choose only those rows of 0 J n
which are more relevant in order to have a n × n Jacobian. In what follows, the rela-
tionship between joint velocities and end-effector velocities will be studied in order
to develop a method to compute the Jacobian. For simplicity’s sake instead of 0 J n
throughout the book the notation J or J(q) will be employed.
62 2 Position, Orientation and Velocity of Rigid Robot Manipulators
The end-effector linear velocity is simply 0 ḋ n , which is given by the chain rule as
n
∂ 0dn
0
ḋ n = q̇i . (2.185)
i=1
∂qi
∂ 0dn
J vi = .
∂qi
The above expression can be interpreted as the value of the end-effector linear velocity
when q̇i = 1, and q̇ j = 0, with j = i, for i, j = 1, . . . , n. In other words, the ith
column of J v can be generated by making all the joint velocities zero, except for
that of the ith joint, which is made exactly one. The joints can be either prismatic or
revolute and, since their contribution to the motion of the end-effector is different,
will be analyzed separately as follows.
Prismatic joints
If the ith joint is prismatic, then 0 R j is independent of qi = di , for all j. Let us
express 0 d n as
0
d n = 0 d i−1 + 0 Ri−1 i−1 d n . (2.186)
∂ 0dn
0
ḋ n = q̇i
∂qi
∂ 0 d i−1 ∂ 0 Ri−1 i−1 d n
= q̇i + q̇i . (2.187)
∂qi ∂qi
∂ i−1
dn
0
ḋ n = 0 Ri−1 q̇i = 0 Ri−1 i−1 ḋ n . (2.188)
∂qi
Now, i−1 ḋ n = q̇i k since it is a prismatic joint and the velocity is expressed with
respect to the frame i − 1 and as usual k = [0 0 1]T . Thus, it is satisfied
0
ḋ n = q̇i 0 Ri−1 k = q̇i zi−1 , (2.189)
where zi represents the orientation of the z-axis of the coordinate system oxi ,yi ,zi but
expressed in ox0 ,y0 ,z0 . Since the ith column of J v is obtained when all joint velocities
2.4 Differential Kinematics 63
q̇i on zn
z0 yn
y0
x0
o0
are zero but q̇i = 1, one can conclude that such column is given by
∂ 0dn
j vi = = zi−1 . (2.190)
∂qi
Since the motion of the ith joint only affects the frames i, . . . , n, then both 0 d i−1
and 0 Ri−1 are constant in such case. Hence, the velocity of the end-effector is given
by
0
ḋ n = 0 Ri−1 i−1 ḋ n . (2.193)
Now, since the motion of the ith joint is composed of a rotation over the zi−1 axis by
the quantity qi , the resulting linear velocity on the end-effector is
i−1
ḋ n = q̇i k × i−1 d n , (2.194)
where (2.192) has been used. Notice that it is also employed (2.100), i.e. R(a × b) =
Ra × Rb. Accordingly, for this case the ith column of J v is given by
∂ 0dn
jvi = zi−1 × 0 d n − 0 d i−1 . (2.196)
∂qi
To derive the procedure for obtaining the relation between joint velocities and the
end-effector angular velocity, first recall (2.137) from Sect. 2.1.7, i.e.
0
ωn = 0 ω1 + 0 R1 1 ω2 + 0 R2 2 ω3 + · · · + 0 Rn−1 n−1 ωn ,
which basically states that angular velocities can be directly added as long as they are
expressed in the same frame. Following this, it is possible to obtain the end-effector
angular velocity with respect to the base frame by expressing the angular velocity of
each element with respect to such frame and then adding these velocities. If the ith
joint is a revolute one, then the rotation axis is zi−1 and the rotation angle is qi . Hence,
the angular velocity of the ith element, expressed in the i − 1 frame is given by
i−1
ωi = q̇i k. (2.199)
2.4 Differential Kinematics 65
On the other hand, if the ith joint is prismatic, then the motion of the ith frame with
respect to the (i − 1)th frame is a linear translation and thus
i−1
ωi = 0. (2.200)
As a result, the angular velocity of the end-effector 0 ωn in the base frame is given
by
n
0
ωn = ρ1 q̇1 k + ρ2 q̇2 0 R1 k + · · · + ρn q̇n 0 Rn−1 k = ρi q̇i zi−1 , (2.201)
i=1
where
if the ith joint is prismatic. These equations are useful to find the geometric Jacobian
of any manipulator for which the Denavit-Hartenberg methodology is valid, for which
66 2 Position, Orientation and Velocity of Rigid Robot Manipulators
such computations are very straightforward since all quantities are available from
the D-H algorithm. Finally, it is worth to point out that the procedure above can be
mimicked to obtain the linear and angular velocity of any element of the manipulator
different from the end-effector.
Example
Consider the 3 degrees of freedom planar manipulator of example of Sect. 2.4.1 dis-
played in Fig. 2.29. By following the D-H algorithm, one can find the transformation
matrices
⎡ ⎤ ⎡ ⎤
c1 −s1 0 a1 c1 c12 −s12 0 a1 c1 + a2 c12
⎢ −s1 c1 0 a1 s1 ⎥ 0 ⎢ −s12 c12 0 a1 s1 + a2 s12 ⎥
0
T1 = ⎢ ⎥
⎣ 0 0 1 0 ⎦ , T2 = ⎣ 0
⎢ ⎥ , and
⎦
0 1 0
0 0 0 1 0 0 0 1
⎡ ⎤
c123 −s123 0 a1 c1 + a2 c12 + a3 c123
⎢ −s123 c123 0 a1 s1 + a2 s12 + a3 s123 ⎥
0
T3 = ⎢⎣ 0
⎥.
⎦
0 1 0
0 0 0 1
On the other hand, the columns of the lower part J ω are simply
⎡ ⎤ ⎡ ⎤ ⎡ ⎤
0 0 0
jω1 = z0 = ⎣0⎦ , j ω2 = z1 = ⎣0⎦ , and j ω3 = z2 = ⎣0⎦ .
1 1 1
As expected, the upper part, the linear velocity of the end-effector, is the same as
that in (2.178), if the third row is obviated. However, despite the last row of (2.178)
and (2.208) are the same, this is not true in general.
It is important to notice that in (2.175) and in (2.183) the same notation ẋ has
been employed, though representing different quantities. Although, the first three
components of both Jacobians are the same, the last three ones are in general different.
0
ωn in (2.183) represents the angular velocity of the end-effector frame with respect
to the base and it has a precise physical meaning. However, its integral over time
does not have it unless the rotation takes place around one single axis, where then it
represents precisely the angle of rotation. On the other hand, φ̇ in (2.175) does not
own any physical meaning, while φ represents some orientation parameters, e.g. the
Euler angles.
Example
For the unaware reader it may be surprising that 0 ωn dt angular velocities does not
have a physical meaning in general since when rotating around one single axis it
represents the angle of rotation. To see this, suppose the following angular velocity
is chosen from 0 ≤ t ≤ 1 s:
⎡ ⎤
0
rad
ω1 = ⎣ 0 ⎦
π s
2
This is equivalent to a basic rotation around the z0 axis by 90◦ , i.e. Rz,90◦ . Then from
1 < t ≤ 2 s choose
⎡ ⎤
0
⎣ π ⎦ rad
ω2 = 2 ,
0 s
which is equivalent to a basic rotation around the y0 axis by 90◦ , i.e. R y,90◦ . Therefore,
the total rotation is given by
0
R1 = R y,90◦ Rz,90◦ . (2.209)
68 2 Position, Orientation and Velocity of Rigid Robot Manipulators
Now, suppose it is chosen first ω2 for 0 ≤ t ≤ 1 s, and ω1 for 1 < t ≤ 2 s. For that
case the total rotation is given by
0
R1 = Rz,90◦ R y,90◦ . (2.210)
Clearly
0
R1 = 0 R1 . (2.211)
Therefore, the result is the same and it cannot be related at all with (2.211).
2.4.3 Singularities
ẋ = J(q)q̇, (2.212)
dx = J(q)dq. (2.213)
Example
Consider again the example of the three degrees of freedom planar manipulator
shown in Fig. 2.29. Since its analytic Jacobian (2.178) is a square matrix, its singular
points can be obtained by computing its determinant given by
Hence, the analytic Jacobian loses rank when q2 = kπ/2, for any integer k. These
points correspond to the configurations for which the arm formed by the first two
links of the manipulator is either full-stretched or full-contracted. As mentioned
above, such configurations correspond to points on the border of the manipulator
workspace.
References
Beer FP, Johnston ER Jr, Mazurek DF, Cornwell PJ (2013) Vector mechanics for engineers: statics
and dynamics, 10th edn. McGraw-Hill, USA
Fu KS, Gonzalez RC, Lee CSG (1987) Robotics: control, sensing, vision, and intelligence. McGraw-
Hill, USA
Murray RM, Li Z, Sastry SS (1994) A mathematical introduction to robotic manipulation. CRC
Press, Boca Raton, FL
Sciavicco L, Siciliano B (2000) Modeling and control of robot manipulators, 2nd edn. Springer,
London
Siciliano B, Villani L (1999) Robot force control. Kluwer Academic Publishers, The Netherlands
Spong MW, Hutchinson S, Vidyasagar M (2006) Robot modeling and control. Wiley, USA
Strang G (2006) Linear algebra and its applications, 4th edn. Thompson Brooks, USA
Chapter 3
Dynamics of Rigid Robot Manipulators
The equations of motion of rigid robot manipulators are a set of analytical equations
to describe their dynamics that are useful for many purposes, e.g. control-observer
design, computer simulation, parameter estimation, robot design, etc. It is possi-
ble to obtain a dynamic model by using physical laws leading to a set description
based on the number of joints of the manipulator as well as geometrical and inertial
characteristics of the links. Perhaps the two most employed methodologies are the
Euler-Lagrange and the Newton-Euler equations. In this chapter the former will be
presented in detail.
where
L = Lagrangian function = kinetic energy K − potential energy P
K = total kinetic energy of the manipulator
P = total potential energy of the manipulator
qi = generalized coordinate of the manipulators
τi = generalized force or torque applied at the ith joint to move the ith link.
For robot manipulators the generalized coordinates are joint angles or displace-
ments, depending on whether the ith joint is revolute or prismatic.
Let the ith link of a robot be made up of a set of particles and let ρi be the mass
density, for i = 1, . . . , n. Let Bi be the tridimensional space region occupied by the
link, such that
ρi (x, y, z)dx dy dz = m i , (3.2)
Bi
where m i is the total mass of the ith link. The corresponding kinetic energy is then
given by
1
Ki = viT (x, y, z)vi (x, y, z)ρi (x, y, z)dx dy dz
2
Bi
1
= viT (x, y, z)vi (x, y, z)dm, (3.3)
2
Bi
where dm stands for the infinitesimal mass of the particle located at the coordinates
(x, y, z). When a body moves in the space not all particles move with the same
velocities. Therefore, it is more convenient to use the link’s center of mass, which
can be expressed as:
1
0
r̄i = 0
ri dm, (3.4)
mi
Bi
where 0 r̄i stands for the position of the ith center of mass and 0 ri represents any point
on the object. Note that 0 r̄i is fixed on the ith link and therefore it is independent of
the mass differential, which means that the previous equation is equivalent to
0
r̄i − 0 ri dm = 0, (3.5)
Bi
3.1 Dynamic Modeling of Rigid Robot Manipulators 73
zci
xci ci
ri
nk
- 1 ) - th li
(i yci
i-th link
0
r̄ i
0
ri
z0
y0
x0
Fig. 3.1 An extra coordinate frame can be attached to the center of mass of the ith link
because
0
r̄i dm − 0
ri dm = 0
r̄ m − 0
ri dm = 0. (3.6)
i i
Bi Bi 0
r̄i does not depend on m i Bi
This property of the center of mass allows to attach a new coordinate frame in the
ith link as shown in Fig. 3.1.
When the link moves, the velocity of a point on it with respect to the base
coordinate frame and expressed on the same coordinate frame can be computed
by using (2.119)
0
vi = 0 v̄i + 0 ω̄i × 0 Rci ci ri , (3.7)
where ci ri is the position of the same point but with respect to the center of mass
frame. Note that it is also possible to express 0 vi with respect to the coordinate frame
fixed at the ith center of mass, oxci ,yci ,zci , just by multiplying by the corresponding
rotation matrix ci R0 = 0 RTci . Then, the velocity of the particle located at 0 ri with
respect to the base frame but express in oxci ,yci ,zci is given by
74 3 Dynamics of Rigid Robot Manipulators
0
ci
vi = ci R0 0 vi = 0 RTci 0 vi = 0 RTci v̄i + 0 ω̄i × 0 Rci ci ri
= 0 RTci 0 v̄i + 0 RTci 0 ω̄i × 0 RTci 0 Rci ci ri
= ci R0 0 v̄i + ci R0 0 ω̄i × ci R0 0 Rci ci ri
= ci v̄i + ci ω̄i × ci ri . (3.8)
By recalling that the cross product can be carried out by using a skew symmetric
matrix one gets
ci
vi = ci v̄i + S(ci ω̄i )ci ri . (3.9)
This relationship is useful because the kinetic energy of the link has to be the same
in any frame, so that by substituting (3.9) in (3.3) yields
1 ci T ci
Ki = v̄i + S(ci ω̄i )ci ri v̄i + S(ci ω̄i )ci ri dm
2
Bi
1
= ci T ci
v̄i v̄i + ci v̄iT S(ci ω̄i )ci ri + ci riT S(ci ω̄i )Tci v̄i
2
Bi
where the last four terms represent the four integrals to be solved. The first one can
be calculated as
1 ci T ci 1
Ki1 = v̄i v̄i dm = m i ci v̄iT ci v̄i , (3.11)
2 2
Bi
where it has been taken advantage of the fact that ci v̄i is independent of the link mass.
Ki1 represents the translational part of the kinetic energy. As to Ki2 it is
1 1
Ki2 = v̄i S( ω̄i )ci ri dm
ci T ci
= ci v̄iT S(ci ω̄i ) ci
ri dm = 0, (3.12)
2 2
Bi Bi
because
ci
ri dm = m i ci r̄i = 0, (3.13)
Bi
in view of the fact that ci r̄i is independent of the mass and it represents the i center
of mass position with respect to the frame fixed precisely at that center of mass. For
the same reason one also has
3.1 Dynamic Modeling of Rigid Robot Manipulators 75
1
Ki3 = ri S ( ω̄i )ci v̄i dm
ci T T ci
= 0. (3.14)
2
Bi
which is not as direct as the first three terms. First of all consider rewriting
1
Ki4 = Tr S(ci ω̄i )ci ri ci riT ST (ci ω̄i ) dm
2
Bi
⎛ ⎞
1 ⎝ ci
= Tr S( ω̄i ) ci
ri ci riT dmST (ci ω̄i )⎠
2
Bi
1
= Tr S(ci ω̄i )J i ST (ci ω̄i ) , (3.16)
2
where it has been taken advantage that ci ω̄i is associated to the center of mass position
and thus it can be taken outside the integral, while ci ri represents the position of all
particles of the link. The matrix J i ∈ R3×3 is given by
Ji = ci
ri ci riT dm, (3.17)
Bi
or
⎡ 2 ⎤ ⎡ ⎤
xi dm xi y2 i dm xi z i dm j11 j12 j13
J i = ⎣ xi yi dm yi dm yi z i dm ⎦ = ⎣ j12 j22 j23 ⎦ . (3.18)
xi z i dm yi z i dm z i2 dm j13 j23 j33
11 = −ω̄3i (−ω̄3i j22 + ω̄2i j23 ) + ω̄2i (−ω̄3i j23 + ω̄2i j33 )
12 = ω̄3i (−ω̄3i j12 + ω̄2i j13 ) − ω̄1i (−ω̄3i j23 + ω̄2i j33 )
13 = −ω̄2i (−ω̄3i j12 + ω̄2i j13 ) + ω̄1i (−ω̄3i j22 + ω̄2i j23 )
21 = −ω̄3i (ω̄3i j12 − ω̄1i j23 ) + ω̄2i (ω̄3i j13 − ω̄1i j33 )
22 = ω̄3i (ω̄3i j11 − ω̄1i j13 ) − ω̄1i (ω̄3i j13 − ω̄1i j33 )
23 = −ω̄2i (ω̄3i j11 − ω̄1i j13 ) + ω̄1i (ω̄3i j12 − ω̄1i j23 )
32 = ω̄3i (−ω̄2i j11 + ω̄1i j12 ) − ω̄1i (−ω̄2i j13 + ω̄1i j23 )
33 = −ω̄2i (−ω̄2i j11 + ω̄1i j12 ) + ω̄1i (−ω̄2i j12 + ω̄1i j22 ).
Therefore
Tr(S(ci ω̄i )J i ST (ci ω̄i )) = −ω̄3i (−ω̄3i j22 + ω̄2i j23 ) + ω̄2i (−ω̄3i j23 + ω̄2i j33 )
+ω̄3i (ω̄3i j11 − ω̄1i j13 ) − ω̄1i (ω̄3i j13 − ω̄1i j33 )
−ω̄2i (−ω̄2i j11 + ω̄1i j12 ) + ω̄1i (−ω̄2i j12 + ω̄1i j22 )
⎡ ⎤⎡ ⎤
T j22 + j33 − j12 − j13 ω̄1i
= ω̄1i ω̄2i ω̄3i ⎣ − j12 j11 + j33 − j23 ⎦ ⎣ ω̄2i ⎦
− j13 − j23 j11 + j22 ω̄3i
Ii
where Ixxi , Iyyi , Izzi are moments of inertia and Ixzi , Ixyi , Iyzi are products of
inertia computed with respect to oxci ,yci ,zci . From (3.16) it is
3.1 Dynamic Modeling of Rigid Robot Manipulators 77
1 ci T ci
Ki4 = ω̄ I i ω̄i , (3.21)
2 i
which represents the rotation part of the kinetic energy of the ith link. After (3.11)
and (3.21) the total kinetic energy is given by
1 ci T ci 1
Ki = m i v̄i v̄i + ci ω̄iT I i ci ω̄i
2 2
1 ci 0 T ci 0 1 ci 0 T ci 0
= m i R0 v̄i R0 v̄i + R0 ω̄i I i R0 ω̄i
2 2
1 1
= m i 0 v̄iT ci RT0 ci R0 0 v̄i + 0 ω̄iT ci RT0 I i ci R0 0 ω̄i . (3.22)
2 2
Finally, it is
1 0 T0 1
Ki = m i v̄i v̄i + 0 ω̄iT 0 Rci I i 0 RTci 0 ω̄i . (3.23)
2 2
To compute the lineal and angular velocities of the ith center of mass, Jacobian
matrices can be computed to get
0
v̄i = J vci (q)q̇ and 0
ω̄i = J ωci (q)q̇. (3.24)
n
K= Ki , (3.25)
i=1
1 T
K= q̇ H(q)q̇, (3.26)
2
where
n
H(q) = m i J Tvci (q)J vci (q) + J Tωci (q)0 Rci (q)I i 0 RTci (q)J ωci (q) . (3.27)
i=1
Let P be the total potential energy of a robot manipulator and Pi the potential energy
of the ith link, which can straightforwardly be computed as
78 3 Dynamics of Rigid Robot Manipulators
for i = 1, 2, . . . , n, and
⎡ ⎤
gx
ḡ = ⎣ g y ⎦
gz
is a gravity vector expressed in the base coordinate frame. For example, for the link
depicted in Fig. 3.1 it is
⎡ ⎤
0
ḡ = ⎣ 0 ⎦ ,
−g0
n
n
P= Pi = − m i ḡT0 r̄i . (3.29)
i=1 i=1
1 n
L = q̇T H(q)q̇ + m i ḡT0 r̄i . (3.30)
2 i=1
d ∂L ∂L
− = τ, (3.31)
dt ∂ q̇ ∂q
1Technically, ∂(·)
∂ q̇ produces a row vector; however, for simplicity’s sake it is considered here a
column vector although this is an abuse of notation.
3.2 Equations of Motion of a Robot Manipulator 79
The next step is to compute a model in matrix form by developing the left hand
side of (3.31). Beginning with ∂L
∂q
, from (3.30) and (3.31) one gets
n
∂L ∂ 1 ∂ T
− =− m i ḡ r̄i −
T0
q̇ H(q)q̇ . (3.32)
∂q ∂q i=1 2 ∂q
The first term of the right hand side of (3.32) represents the gravity vector g(q) ∈ Rn ,
whose jth element can be obtained by:
n
∂
gj = − m i ḡ r̄i ,
T0
(3.33)
∂q j i=1
∂ P
g(q) = . (3.34)
∂q
The second term of the right hand side of (3.32) belongs to the vector of Coriolis and
centrifugal torques to be obtained later. Prior to it, the first part of (3.31) is developed:
d ∂L d
= H(q)q̇ = H(q)q̈ + Ḣ(q)q̇. (3.35)
dt ∂ q̇ dt
The vector H(q)q̈ is already in its final form, while Ḣ(q)q̇ ∈ Rn belongs as well to the
vector of Coriolis and centrifugal torques denoted here by hc (q, q̇) ∈ Rn . Therefore,
it is
1 ∂ T
hc (q, q̇) = Ḣ(q)q̇ − q̇ H(q)q̇ . (3.36)
2 ∂q
Using (3.36) to compute hc (q, q̇) is not practical. Instead it is a common and better
practice to write hc (q, q̇) as
for a matrix C(q, q̇) ∈ Rn×n . To find the elements of this matrix consider that the ith
element of hc (q, q̇), h ci is given by
80 3 Dynamics of Rigid Robot Manipulators
n
1 ∂h k j
n n
h ci = ḣ i j q̇ j − q̇k q̇ j
j=1
2 k=1 j=1 ∂qi
n
n ∂h i j 1 ∂h k j
n n
= q̇k q̇ j − q̇k q̇ j
j=1 k=1
∂qk 2 k=1 j=1 ∂qi
n n
∂h i j 1 ∂h k j
= − q̇k q̇ j . (3.38)
k=1 j=1
∂qk 2 ∂qi
one gets
n
n
1 ∂h i j ∂h ik ∂h k j
h ci = + − q̇k q̇ j i = 1, . . . , n. (3.40)
k=1 j=1
2 ∂qk ∂q j ∂qi
Let
1 ∂h i j ∂h ik ∂h k j
ck ji = + − = c jki , (3.41)
2 ∂qk ∂q j ∂qi
where ck ji are the Christoffel symbols of the first kind. Based on them, the i jth
element of C(q, q̇) for i, j = 1, . . . , n is given by
n
ci j = ck ji q̇k i, j = 1, . . . , n. (3.42)
k=1
m2
q2
/2
m1
q1 x0
/2
Example
Consider the 2-DOF planar robot analyzed in the first example of Sect. 2.2.2.2 and
that it is shown in Fig. 3.2.
For simplicity’s sake both links are considered to be slender rods with the same
length , but different masses m 1 and m 2 , respectively. No friction effects are
included. The first step is to compute the inertia matrix according to (3.27). In fact,
it is not difficult to get from the first example of Sect. 2.4.2.2
⎡ ⎤ ⎡ ⎤
− 2 s1 0 −s1 − 2 s12 − 2 s12
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
⎢ c 0⎥
J vc1 =⎢ ⎥ J vc2 =⎢
⎢ c1 +
c
2 12
c ⎥,
2 12 ⎥
(3.45)
⎢ 2 1 ⎥ ⎣ ⎦
⎣ ⎦
0 0 0 0
82 3 Dynamics of Rigid Robot Manipulators
and
⎡ ⎤ ⎡ ⎤
00 00
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
J wc1 =⎢
⎢0 0⎥⎥ J wc2 =⎢
⎢0 0⎥⎥. (3.46)
⎣ ⎦ ⎣ ⎦
1 0 1 1
Besides it is
⎡ ⎤ ⎡ ⎤
c1 −s1 0 c12 −s12 0
0
Rc1 = ⎣ s1 c1 0 ⎦ 0
Rc2 = ⎣ s12 c12 0 ⎦ . (3.47)
0 0 1 0 0 1
It remains to compute I 1 and I 2 in (3.20). Since slender rods are considered and the
moments and products of inertia are computed with respect to the center of mass of
each link, then it is quite direct to get by using available relationships in basic vector
mechanical books that:
1
Ixxi = 0, Iyyi = Izzi = m i 2 and Ixyi = Ixzi = Iyzi = 0.
12
Therefore one gets
⎡ ⎤
0 0 0
⎢ 1 ⎥
I i = ⎣ 0 12 m i 2 0 ⎦. (3.48)
1
12 m i
2
0 0
By direct computation it is
⎡ ⎤
− 2 s1 0⎡ 2 ⎤
⎡ ⎤⎢ ⎥
− 2 s1 2 c1 0 ⎢ ⎥ l 0
J Tvc1 J vc1 =⎣ ⎦⎢
⎢ c 0⎥ ⎥=⎣
⎢ 4 ⎥
⎦ (3.49)
⎢ 2 1 ⎥
0 0 0 ⎣ ⎦ 0 0
0 0
⎡ ⎤
⎡ ⎤ −s1 − 2 s12 − 2 s12
−s1 − 2l s12 c1 + 2l c12 0 ⎢ ⎢
⎥
⎥
J Tvc2 J vc2 = ⎣ ⎦ ⎢
c1 + 2 c12
c ⎥
⎢ 2 12 ⎥
− 2l s12 l
c
2 12
0 ⎣ ⎦
0 0
⎡ ⎤
5 2 2
2
⎢ 4 + c2 2 c2 + 4 ⎥
2
=⎢⎣
⎥,
⎦ (3.50)
2 c + 2 2
2 2 4 4
3.2 Equations of Motion of a Robot Manipulator 83
and
⎡ ⎤
c −s1 0
001 ⎣ 1 ⎦ 001
J Twc1 0 Rc1 = s1 c1 0 = (3.51)
000 000
0 0 1
⎡ ⎤
c −s12 0
0 0 1 ⎣ 12 001
J Twc2 0 Rc2 = s12 c12 0 ⎦ = . (3.52)
001 001
0 0 1
Thus it is
⎡ ⎤⎡ ⎤
0 0 0 0 0
0 0 1 ⎢ 0 1 m 2 ⎥⎣
J Twc1 0 Rc1 I 1 0 RTc1 J wc1 = 0⎦
0 0 0 ⎣ 12 ⎦ 0
1 0
1
12 m 1
0 0 2 1 0
⎡ 1 ⎤
12 m i 2 0
=⎣ ⎦, (3.53)
0 0
and
⎡ ⎤⎡ ⎤
0 0 0 0 0
0 0 1 ⎢ 0 1 m l2 ⎥⎣
J Twc2 0 Rc2 I 2 0 RTc2 J wc2 = ⎣ 12 2 0 ⎦ 0 0⎦
001 1
0 0 m 2l 2 1 1
⎡ ⎤ 12
1 m 2 1 m 2
2 12 2 ⎥
⎢ 12
=⎣ ⎦. (3.54)
1 m 2 1 m 2
12 2 12 2
Finally the inertia matrix can be gotten as
1 ∂h 12 ∂h 11 ∂h 12 1
c121 = + − = − m 2 2 s2
2 ∂q1 ∂q2 ∂q1 2
1 ∂h 12 ∂h 12 ∂h 22 1
c221 = + − = − m 2 2 s2
2 ∂q2 ∂q2 ∂q1 2
1 ∂h 21 ∂h 21 ∂h 11 1
c112 = + − = m 2 2 s2
2 ∂q1 ∂q1 ∂q2 2
1 ∂h 21 ∂h 22 ∂h 21
c212 = + − = 0
2 ∂q2 ∂q1 ∂q2
1 ∂h 22 ∂h 21 ∂h 12
c122 = + − = 0
2 ∂q1 ∂q2 ∂q2
1 ∂h 22 ∂h 22 ∂h 22
c222 = + − = 0.
2 ∂q2 ∂q2 ∂q2
n
1
c11 = ck11 q̇k = c111 q̇1 + c211 q̇2 = − m 2 2 s2 q̇2
k=1
2
n
1 1
c12 = ck21 q̇k = c121 q̇1 + c221 q̇2 = − m 2 2 s2 q̇1 − m 2 2 s2 q̇2
k=1
2 2
n
1
c21 = ck12 q̇k = c112 q̇1 + c212 q̇2 = m 2 2 s2 q̇1
k=1
2
n
c22 = ck22 q̇k = c122 q̇1 + c222 q̇2 = 0.
k=1
To compute the gravitational vector it is necessary to get the potential energy accord-
ing to (3.29), where
3.2 Equations of Motion of a Robot Manipulator 85
⎡ ⎤ ⎡ ⎤
1 c c1 + 21 c12
⎡ ⎤ ⎢2
1
⎥ ⎢ ⎥
0 ⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎥
ḡ = ⎣ −g0 ⎦ 0
r̄1 = ⎢ 1 s1 ⎥ 0
r̄2 = ⎢ s1 + 1 s12 ⎥ ,
⎢2 ⎥ ⎢ 2 ⎥
0 ⎣ ⎦ ⎣ ⎦
0 0
so that
1 1
P = −m 1 ḡT0 r̄1 − m 2 ḡT0 r̄2 = m 1 g0 ls1 + m 2 g0 ls1 + m 2 g0 ls12 . (3.56)
2 2
By using (3.34) one gets the elements g1 and g2 of g(q) as
1 1
g1 = m 1 g0 c1 + m 2 g0 c1 + m 2 g0 c12 .
2 2
and
1
g2 = m 2 g0 c12 .
2
Summarizing the complete robot model is given by
where
⎡ ⎤
1 m 2 + 4 m 2 + m l 2 c 1 m 2 + 1 m 2 c
1 2 2 2 2 2 2
⎢3 3 3 2 ⎥
H(q) = ⎣ ⎦ (3.58)
1 m 2 + 1 m 2 c 1 m 2
⎡ 3 2 2 2 2 3 2 ⎤
1 1 1
− m 2 s2 q̇2 − 2 m 2 s2 q̇1 − 2 m 2 2 s2 q̇2
2 2
⎢ 2 ⎥
C(q, q̇) = ⎣ ⎦ (3.59)
1 m 2 s q̇ 0
2 2 1
⎡ 2 ⎤
1 m g c + m g c + 1 m g c
2 1 0 1 2 0 1 2 2 0 12
⎢ ⎥
g(q) = ⎣ ⎦. (3.60)
1 m g c
2 2 0 12
As mentioned before, friction effects can be added if desired.
86 3 Dynamics of Rigid Robot Manipulators
Suppose that the robot end-effector gets in touch with the environment as shown in
Fig. 3.3.
The contact with the object or surface can generate both forces and torques at the
end-effector with respect to the base frame given by
⎡ ⎤
fx
⎢ fy ⎥
⎢ ⎥
⎢ fz ⎥
Fe = ⎢ ⎥
⎢ τx ⎥ . (3.61)
⎢ ⎥
⎣ τy ⎦
τz
For simplicity’s sake throughout the book the vector Fe ∈ R6 will be referred to
as external forces only and it does not need to be of dimension 6 if n < 6 or if
the dimension of motion constraints, say m, is smaller than n. For that case n −
m elements of Fe will be zero. To find out how these forces are reflected at the
generalized joints, the principle of virtual work can be employed. If δq represents
the virtual joint displacement caused by Fe , then according to (2.183) the virtual
end-effector displacement must satisfy
δx = J(q)δq. (3.62)
Since the force opposes to the movement of the end-effector caused by the input
torque, then the virtual work can be computed as
δW = FTe δx − τ Te δq = FTe J(q) − τ Te δq = 0, (3.63)
τ e = J T (q)Fe . (3.64)
ϕ(q) = 0, (3.66)
d n
d
ϕ̇ j (q) = ϕ j (q) = a ji qi = 0, (3.67)
dt i=1
dt
∂ϕ j (q)
a ji = . (3.68)
∂qi
n
a ji δqi = 0, (3.69)
i=1
while once again the effect on the system dynamics is that of forces which do not
do work. Let’s denote the generalized torque associated to δqi as τ̄i (might just be a
force as well), so that in view of the Principle of Virtual Work it must hold
n
τ̄i δqi = 0 (3.70)
i=1
88 3 Dynamics of Rigid Robot Manipulators
if the virtual displacements are consistent with the constraints. Now, suppose that
each equation (3.69) is multiplied by a so called Lagrange multiplier λ j , i.e.
n
λj a ji δqi = 0 j = 1, . . . , m. (3.71)
i=1
Quite obviously it is
m
n
n
m
λj a ji δqi = λ j a ji δqi = 0, (3.72)
j=1 i=1 i=1 j=1
where it has been taken advantage of the fact that the sums are interchangeable. Also,
it is possible to add this relationship to (3.70) in order to get
⎛ ⎞
n
n
m
n
m
τ̄i δqi + λ j a ji δqi = ⎝τ̄i + λ j a ji ⎠ δqi = 0. (3.73)
i=1 i=1 j=1 i=1 j=1
At this point the multipliers are completely arbitrary while on the contrary the virtual
displacements δqi must comply with (3.69). However, if the multipliers are chosen
to satisfy
m
τ̄i = − λ j a ji i = 1, . . . , n, (3.74)
j=1
then (3.73) holds for any set δqi . Therefore, since τ̄i are generalized torques acting
at the joints, they can be included directly in (3.44) as
⎡ ⎤⎡ ⎤
a11 · · · am1 λ1
⎢ .. .. ⎥ ⎢ .. ⎥ .
H(q)q̈ + C(q, q̇)q̇ + Dq̇ + g(q) = τ − ⎣ . . ⎦⎣ . ⎦ (3.75)
a1n · · · amn λm
where
∇ϕ(q) ∈ Rm×n denotes the gradient of the surface vector ϕ(q), which maps a vector
onto the normal plane at the tangent plane that arises at the contact point described
by (3.66). J ϕ (q) is assumed to be full rank. This must indeed be the case because J ϕ (q)
provides the directions where it is possible to apply forces and having Rank(J ϕ (q)) <
m would mean that the constraints are redundant because for that case at least two
rows of J ϕ (q) would be linearly dependent. Also note that usually it is possible to
normalize the constraints to get the rows of J ϕ (q) with unitary magnitude, so that
each element of λ physically represents the force magnitude applied at the contact
point in the direction given by the corresponding row of J ϕ (q).
It is worthy to point out that λ can be computed in the following way. From (3.66)
it is
and
ϕ(x) = 0, (3.84)
meaning that
Fe = J Tϕx λ. (3.88)
Some useful properties regarding model (3.44) are presented in this section
One of the most important and better known properties of model (3.44) is the fol-
lowing.
Property 3.1 Positive definiteness of H(q). The generalized inertia matrix H(q) is
symmetric positive definite.
Proof From (3.27) it is evident that H(q) is symmetric. On the other hand, the kinetic
energy of any mechanical system can be zero only if it is at rest, i.e. if q̇ ≡ 0, so that
from (3.26) the positive definiteness is granted.
Another property that can be exploited for control and observer design is the
following.
Property 3.2 By using the Christoffel symbols of the first kind to compute C(q, q̇),
the matrix N(q, q̇) = Ḣ(q) − 2C(q, q̇) ∈ Rn×n is skew symmetric.
n
∂h i j
ḣ i j = q̇k i, j = 1, . . . , n. (3.89)
k=1
∂qk
By taking into account (3.41) and (3.42) the elements of N(q, q̇) can be computed
as
3.4 Model Properties 91
n
∂h i j ∂h i j ∂h ik ∂h k j
n i j = ḣ i j − 2ci j = − + − q̇k
k=1
∂qk ∂qk ∂q j ∂qi
∂h k j
n
∂h ik
= − q̇k .
k=1
∂q i ∂q j
Since
n
∂h ki ∂h jk
n ji = − q̇k ,
k=1
∂q j ∂qi
It should be noted that Property 3.2 is based on the employment of the Christoffel
symbols to compute C(q, q̇). Note that in general there may exist many matrices
which satisfy (3.37) and for which the previous property does not hold. However,
the following relationship is always satisfied:
To show this Hamilton’s equations of motion can be used. The first step consists in
writing (3.31) and (3.44) as
d ∂L ∂L
− = ψ = H(q)q̈ + C(q, q̇)q̇ + g(q), (3.91)
dt ∂ q̇ ∂q
where
ψ = τ − Dq̇. (3.92)
H = pT q̇ − L, (3.93)
∂L
p= . (3.94)
∂ q̇
From (3.30) it is
∂L
= H(q)q̇. (3.95)
∂ q̇
92 3 Dynamics of Rigid Robot Manipulators
1 1
H = q̇T H(q)q̇ − q̇T H(q)q̇ + P = q̇T H(q)q̇ + P = K + P. (3.96)
2 2
On the other hand, Hamilton’s canonical equations of motion can be expressed
as
∂H
q̇i = (3.97)
∂ pi
∂H
ṗi = − + ψi , i = 1, . . . , n. (3.98)
∂qi
dH ∂Hn ∂Hn
= q̇i + ṗi
dt i=1
∂qi i=1
∂ pi
n
∂H ∂H ∂H ∂H ∂H
n n
= − + ψi
i=1
∂qi ∂ pi i=1
∂ pi ∂qi i=1
∂ pi
= q̇T ψ. (3.99)
But the derivative can also be computed from (3.91) and (3.96):
dH 1 ∂P
= q̇T H(q)q̈ + q̇T Ḣ(q)q̇ + q̇T
dt 2 ∂q
1
= q̇T (ψ − C(q, q̇) − g(q)) + q̇T Ḣ(q)q̇ + q̇T g(q)
2
1
= q̇T ψ + q̇T Ḣ(q) − 2C(q, q̇) q̇. (3.100)
2
By comparing (3.99) and (3.100) one gets (3.90). In conclusion, Property 3.2 is a
particular case of (3.90).
Property 3.3 By using the Christoffel symbols of the first kind to compute C(q, q̇),
the derivative of the inertia matrix satisfies Ḣ(q) = C(q, q̇) + CT (q, q̇).
Property 3.4 The vector of Coriolis and centrifugal torques hc (q, q̇) satisfies:
Proof From (3.40) and (3.41), the i-element of hc (q, x, y) can be expressed as
⎛ ⎞
n
n
h ci (q, x, y) = ⎝ ck ji xk ⎠ y j
k=1 j=1
n
n
= c jki y j xk = h ci (q, y, x). (3.102)
j=1 k=1
Finding norm bounds for the different matrices and vectors of model (3.44) plays an
important role in proving closed loop stability for control-observer design. In fact, for
any physical system both q and q̇ must be bounded. Therefore, for simplicity’s sake
this section makes the assumption that the manipulator owns only revolute joints,
although the properties are also valid for robots with prismatic joints.
Property 3.5 The inertia matrix H(q) satisfies
Proof Since H(q) is positive definite, each vector y in Rn can be expressed in terms
of an orthonormal basis (y1 , . . . , yn ) as y = c1 y1 + · · · + cn yn which satisfies:
and
Proof Since revolute joints are considered it is possible to conclude from (3.103)
that
94 3 Dynamics of Rigid Robot Manipulators
σh = minn λ−1
max (H(q)) σH = maxn λ−1
min (H(q)). (3.108)
q∈R q∈R
Property 3.9 The matrix C(q, y) satisfies C(q, y) ≤ kc y, kc > 0.
Proof From (3.42) it can be seen that the matrix C(q, y) can be written as
1
n
C(q, y) = Bk (q)yk , (3.109)
2 k=1
∂h i j ∂h ik ∂h k j
+ − i, j = 1, . . . , n.
∂qk ∂q j ∂qi
Since the matrices Bk (q) are functions of bounded variables, they are bounded so
that Property 3.9 holds by defining:
1
n
kc = maxn Bk (q). (3.110)
2 q∈R k=1
1 T
D= q̇ Dq̇. (3.112)
2
Assuming D to be diagonal is actually a particular but important case of this
function. Equation (3.111) is valid because D is positive semidefinite.
Proof The property follows directly from (3.33) by recalling that revolute joints are
being considered.
Proof Since revolute joints are being considered, the generalized coordinates q
appear in g(q) only as argument of (bounded) sine and cosine functions, and that
∂g(q)
must be the case for ∂q , from where the property follows.
Proof Property 3.13 follows from Property 3.12 by applying the Mean Value The-
orem. Since g(q) is a continuous differentiable function and its partial derivatives
with respect to q are bounded, then the following relationship must be satisfied for
any two vectors q1 and q2 :
∂g(q)
g(q1 ) − g(q2 ) = (q1 − q2 ), (3.115)
∂q q12
96 3 Dynamics of Rigid Robot Manipulators
This section provides two properties of model (3.44) as a whole. The first one is the
based of adaptive control for robot manipulators, while the second one exploits a key
physical characteristic.
Property 3.14 With a proper choice of parameters, model (3.44) can be rewritten as
where Y(q, q̇, q̈) ∈ Rn× p is known as the regressor, and ϕ ∈ R p is a vector of param-
eters.
The proof of Property 3.14 is omitted because it is based on the Newton-Euler
equations of motion. Instead, consider the following example.
Example
⎡ ⎤
− 21 m 2 l 2 s2 q̇2 − 21 m 2 l 2 s2 q̇1 − 21 m 2 l 2 s2 q̇2
⎢ ⎥ q̇1
⎣ ⎦ q̇ +
1 m l 2 s q̇ 2
2 2 2 1 0
⎡ ⎤
1 m g lc + m g lc + 1 m g lc
1 0 1 2 0 1 2 0 12
⎢2 2 ⎥ τ1
⎣ ⎦= τ
1 2
2 m 2 g0 lc12
First of all it is necessary to find a vector ϕ. In general there are many possible
choices of parameters, but the less the better. For instance it can be chosen
⎡ ⎤ ⎡1 ⎤
ϕ1 3 m 1l 2 + 43 m 2 l 2
⎢ ⎥ ⎢ ⎥
⎢ ⎥ ⎢ ⎢
⎥
⎥
⎢ ϕ2 ⎥ ⎢ m l 2
⎥
⎢ ⎥ ⎢ 2
⎥
ϕ=⎢ ⎢ ⎥ ⎢
⎥=⎢ ⎥,
⎢ ϕ3 ⎥ ⎢ ⎥
⎢ ⎥ ⎢
1m g l ⎥
⎣ ⎦ ⎣ 2 1 0 ⎥
⎦
ϕ4 m 2 g0 l
3.4 Model Properties 97
T
< q̇, ψ >T = q̇T ψdt ≥ −β, (3.119)
0
T T
dH
= q̇T ψ ⇒ < q̇, ψ >T = q̇ ψdt =
T
dH = H(T ) − H(0) ≥ −H(0).
dt
0 0
Since H(T ) is not negative for all T , Property 3.15 follows with β = H(0). Note
that alternatively it can be done
T
< q̇, ψ >T = q̇T ψdt
0
T # $
= q̇T H(q)q̈ + q̇T C(q, q̇)q̇ + q̇T g(q) dt
0
T
1 d T 1
= q̇ H(q)q̇ − q̇T Ḣ(q) − 2C(q, q̇) q̇ + q̇T g(q) dt
2 dt 2
0
T
d 1 T
= q̇ H(q)q̇ + gT (q)q̇ dt.
dt 2
0
98 3 Dynamics of Rigid Robot Manipulators
Note that to arrive to the last relationship (3.90) was used, showing that (3.90) is
closely related to the passivity property. On the other hand, from (3.34) it is known
that2
∂ P
gT (q) = .
∂q
Therefore it is
∂ P
gT (q)q̇ = q̇ = Ṗ.
∂q
T
d
< q̇, ψ >T = (K + P) dt
dt
0
= (K + P)|0T
= H|0T
= H(T ) − H(0)
≥ −H(0).
When the robot end-effector is in contact with its environment and this can be
described by the holonomic constraint (3.84), then for model (3.87) the following
property holds.
Property 3.16 The vector ẋ can be written as
2Recall that in (3.34) some abuse of notation was made by omitting the transpose which is included
here for convenience.
3.4 Model Properties 99
Jϕx Qx = O). Note that the last equality in (3.120) is due to the fact that ϕ̇(x) =
Jϕx ẋ = 0 in view of constraint (3.84). Finally, it holds
The generalized input torque τ given in models (3.44) or (3.65) is given without
considering at all the physical actuators. In this section, the inclusion of DC motors
dynamics will be considered because this is the kind of actuators provided in all the
robots employed for experiments in this book.
Figure 3.4 shows how a DC motor can be connected to the ith joint of a robot
manipulator, for i = 1, . . . , n. The physical quantities involved in the ith motor
dynamics are the following:
K ai motor-torque constant (Nm/A)
Rai armature resistence ()
L ai armature inductance (H)
K bi back emf constant (Vs/rad)
τmi torque at the motor axis (Nm)
i ai armature current (A)
ebi back emf (V)
qmi angular position of the motor axis (rad)
qi angular position of the mechanical load axis (rad)
ri gears reduction ratio (in general ri >> 1)
Vi armature voltage (V)
The mechanical load for the present study is the ith link of the robot. The different
variables and constants can be related through the following relationships
qi
Jm fLi
qmi
Motor 1 : ri
fmi
100 3 Dynamics of Rigid Robot Manipulators
τmi = K ai i ai (3.122)
di ai
Vi = Rai i ai + L ai + ebi (3.123)
dt
ebi = K bi q̇mi (3.124)
qmi = ri qi . (3.125)
where τi is the applied net torque after the gear reduction on the mechanical load
axis (i.e. the generalized input torque in the robot modeling), Jmi is the rotor inertia
and f mi (q̇mi ) represents friction effects.
By recalling that L ai ≈ 0, i ai can be substituted from (3.122) into (3.123) and the
resulting τmi can be substituted from (3.123) into (3.126) to get
K ai τi K ai
Jmi q̈mi + f m (q̇mi ) + ebi + = Vi . (3.127)
Rai ri Rai
K ai τi K ai
ri Jmi q̈i + f mi (ri q̇i ) + K bi ri q̇i + = Vi , (3.128)
Rai ri Rai
or
1 K ai K bi τi K ai
Jmi q̈i + f mi (ri q̇i ) + q̇i + 2 = Vi . (3.129)
ri Rai ri ri Rai
Assume now that only joint viscous friction effects are present so that it is
where f mi is the joint viscous constant that can eventually be neglected. With this
simplification (3.129) becomes
% &
K ai K bi τi K ai
Jmi q̈i + f mi + q̇i + 2
= Vi , (3.131)
Rai ri r i Rai
Dj q̈ + Df q̇ + Dn τ = DK V, (3.132)
with
References 101
' mi } #
Dj = diag{J $(
Df = diag f mi + K aiRK bi
% & ai
Dn = diag 2 1
'# r$ i (
DK = K ai 1
Rai ri
Therefore, the generalized input torque vector is given by
τ = D−1
n DK V − Dj q̈ − Df q̇ , (3.133)
which can be substituted in the robot model. For example, consider (3.65) to obtain
H(q)q̈ + C(q, q̇)q̇ + Dq̇ + g(q) = D−1
n DK V − Dj q̈ − Df q̇ − J T (q)Fe . (3.134)
It is not difficult to show that all the properties given in Sect. 3.4 still hold, although
care must be taken since for Property 3.14 the generalized input has become D−1 n DK V
and, in general, Dn and DK must be assumed to be known since different constant
values contained there do not form part of the parameter vector ϕ.
References
An CH, Atkeson CG, Hollerbach JM (1985) Estimation of inertial parameters of rigid body links of
manipulators. In: Proceedings of 24th IEEE conference on decision and control, Ft. Lauderdale,
FL, USA, Dec 1985, pp 990–995
Arteaga-Pérez MA (1998) On the properties of a dynamic model of flexible robot manipulators.
ASME J Dyn Syst Meas Control 120:8–14
Atkeson CG, An CH, Hollerbach JM (1985) Rigid body load identification for manipulators. In:
Proceedings of 24th IEEE conference on decision and control, Ft. Lauderdale, FL, USA, Dec
1985, pp 996–1002
Beer FP, Johnston ER Jr, Mazurek DF, Cornwell PJ (2013) Vector mechanics for engineers: statics
and dynamics, 10th edn. McGraw-Hill, USA
Feng W, Postlethwaite I (1993) A simple robust control scheme for robot manipulators with only
joint position measurements. Int J Robot Res 12(5):490–496
Fu KS, Gonzalez RC, Lee CSG (1987) Robotics: control, sensing, vision, and intelligence. McGraw-
Hill, USA
Greenwood DT (1997) Classical dynamics. Dover Publications, INC, Mineola, New York
Kelly R, Santibáñez V, Loria A (2005) Control of robot manipulators in joint space. Springer,
London
Meirovitch L (1967) Analytical methods in vibrations. The Macmillan Company, New York, USA
102 3 Dynamics of Rigid Robot Manipulators
The goal of this chapter is to provide the basic theory necessary to develop all the
control and observer schemes in the next chapters. Although this makes the book self
contained, by no means it can be considered as a complete background of analytical
tools since most of the results are given without proof and the interested reader should
look into the references for a deeper insight. However, sketches of the proofs of the
main theorems are provided in order to better understand the control-observer design
proposed in this work. This section lists some very well known basic definitions,
concepts and important remarks.
Definition 4.1 Consider the n-dimensional vector x=[x1 · · · xn ]T , where the scalars
x1 , . . . , xn belong to R, then the set of all vectors define the n-dimensional Euclidean
space denoted by Rn .
p
xi (t)αi = 0, t ∈ [t1 , t2 ], (4.1)
i=1
holds only for the trivial solution αi = 0, ∀ i = 1, . . . , p. Otherwise, the vectors are
said to be linearly dependent on the interval [t1 , t2 ].
and a vector α ∈ R p . According to Definition 4.2, the columns of X(t) are linearly
independent on the interval [t1 , t2 ] if and only if
For a constant matrix X their columns are linearly independent if and only if
Xα = 0 ⇒ α = 0. (4.4)
Theorem 4.1 The columns of a matrix X ∈ Rn× p are linearly independent on the
interval t ∈ [t1 , t2 ] if and only if the matrix
t2
1
B= XT (t)X(t)dt (4.5)
t2 − t1
t1
is not singular. Additionally, the rows of X ∈ Rn× p are linearly independent on the
interval t ∈ [t1 , t2 ] if and only if the matrix
t2
1
B= X(t)XT (t)dt (4.6)
t2 − t1
t1
is not singular.
In this book, x stands for the standard Euclidean norm if x is a vector, i.e.
4.1 Basic Definitions and Lemmas 105
1 1
x = x12 + · · · + xn2 2 = xT x 2 , (4.7)
where λi denotes the i-th eigenvalue for i = 1, . . . , n. For any function f (t) :
[0, ∞) → Rn , the L∞ -norm is defined as
The Lipschitz condition (4.11) is related to the existence and uniqueness of the
solution of differential equations, but for the systems under study in this book such
solutions always exist. However, this condition is also necessary to guarantee stability
in the sense of Lyapunov.
Remark 4.1 It can be shown that if α1 (·) is a class K function on [0, a), then the
inverse α1−1 (·) exists, it is defined on [0, α1 (a)) and belongs to the class K as well.
Furthermore if α2 (·) is another class K function on [0, a), then the composition α1 ◦
106 4 Mathematical Background
α2 belongs to the class K as well. The very same conclusions can be drawn for class
K∞ functions. Finally, if β(·, ·) is a class KL function σ ( p, q) = α1 (β(α2 ( p), q))
belongs to the class KL as well.
V (t, 0) = 0 (4.12)
holds for all t ≥ t0 , and there exits a class K function α1 (x) such that
Remark 4.2 A much simpler definition of a positive definite function implies chang-
ing the class K function α1 (x) by a function W1 (x) satisfying i) W1 (0) = 0, ii)
W1 (x) > 0 for x = 0. However, it is always possible to find a class K function α1 (x)
so that α1 (x) ≤ W1 (x) holds. A similar W2 (x) can be employed in (4.14), but for
that case a class K function can always be found so that W2 (x) ≤ α2 (x) holds.
Therefore, conditions (4.13) and (4.14) could be redefined in terms of W1 (x) and
W2 (x), respectively. Finally, if V (t, x) is positive definite as given in Definition 4.7.3
then it is also said to be radially unbounded. In terms of W1 (x) one would have
W1 (x) → ∞ as x → ∞.
where f (t, x) is continuous in t and locally Lipschitz in x, for all t ≥ t0 and all
x ∈ D ⊂ R. Assume that [t0 , t1 ) is the maximal interval of existence of the solution
x(t) such that x(t) ∈ D. Let y(t) be a continuous function whose upper right-hand
derivative D + y(t) satisfies
4.1 Basic Definitions and Lemmas 107
with y(t) ∈ D for all t ∈ [t0 , t1 ). Then, y(t) ≤ x(t) for all t ∈ [t0 , t1 ).
where α1 (x) is a locally Lipschitz class K function defined on [0, a). For any x0 ∈
[0, a), the unique solution x(t) of (4.17) satisfies
Lemma 4.3 For any vector signals x, y, any variable time delay 0 ≤ T (t) ≤ T <
∞ and any constant α > 0, it holds
t σ 2
α T
− xT (σ ) y(θ ) dθ dσ ≤ x22 + y22 . (4.19)
2 2α
0 σ −T (σ )
4.2.1 Definition
x(t0 )
x1
x(t1 )
x(t) ∈ R2 . Throughout the rest of the chapter all phase-plane are depicted for R2 as
representative examples, but the theory is completely valid for Rn .
A particular x0 for which
f (t, x0 ) ≡ 0, (4.22)
is called an equilibrium point. Both for simplicity’s sake and because it is conceptually
the most important case for the development of the rest of the book, we assume
that 0 is an equilibrium point of (4.21). Note that this does not imply any lost of
generality and that there may well exist more than one single equilibrium point for a
particular system. The name of equilibrium point is well chosen because if x(t0 ) = 0
then x(t) ≡ 0 for all t ≥ t0 . But the natural question is, what happens if x(t0 ) = 0?
Consider the following definition.
2. Uniformly stable over [t0 , ∞) if, for each > 0, there exists a δ() > 0 such that
The set
Remark 4.3 Let us try to understand the previous definitions for our advantage in
the control-observer design of robot manipulators. First of all, the very first definition
should be understood in the following way: if it is not wished the norm of the solution
of (4.21), i.e. x(t), to become larger than a predefined value at any time, does
there exist a bound for the initial state x(t0 ) so that if smaller than this value the
norm of the state will never be larger than ? This bound is designated as δ(t0 , )
in Definition 4.8.1, and it is very important to understand that it is not chosen first
and then is computed, but exactly the other way around, if possible, i.e. if the
equilibrium is stable. Therefore, it is possible to propose a priori a region D as
as a region of interest to work in it and then to try to find the initial conditions for
which the equilibrium is stable. Note that it is rather a common practice to infer as
a function of x(t0 ) and that this does not necessarily imply a mistake but usually it
proves to be a more involved procedure. Figure 4.2 illustrates the stability concept.
The bound δ used to define stability in the sense of Lypaunov depends in general
not only on the predefined value but also on the initial time t0 . However, if it is
possible to find a bound for the initial condition which does not depend on t0 for any
t1 ≥ t0 , then Definition 4.8.2 holds, i.e. the equilibrium point is uniformly stable.
This is illustrated in Fig. 4.3.
Till now all what stability of an equilibrium point implies is that the state will
be bounded for all time as long as it is possible to find a bound for the initial
condition small enough according with the desired bound for the state. However,
Definition 4.8.3 makes a stronger implication in case the system is stable (not yet
110 4 Mathematical Background
x2
x(t)
δ(t0 , )
x1
x(t0 )
uniformly), and that is that the trajectories eventually will go back to the equilibrium
point. Condition 32 of Definition 4.8.3 defines the very important concept of regions
of attraction and it states that if the initial state belongs to the region of attraction,
then it ultimately will return to the origin. Therefore, intuitively Condition 31 appears
to be unnecessary. However, this intuition is wrong. This can easily be understood
by considering a system whose trajectories behave as shown in Fig. 4.4. In fact, just
because x0 ∈ Bδ1 (t0 ) it does not mean that x(t) ∈ Bδ1 (t0 ) for all t ≥ t0 . The trajectory
perfectly well can leave the region, but it will ultimately reenter it and tend to the
origin. If it is chosen = δ1 then the system will not be stable but x(t) will remain
bounded and tend to zero anyway. Of course, for some applications this might just be
good enough, but still technically speaking the equilibrium point will not be stable.
Definition 4.8.4 makes the stability concept independent of t0 as before and it is easy
to understand in view of the previous item.
One of the most beloved concepts in control theory is global asymptotic stability,
given in Definition 4.8.5. It simply states that the trajectory will tend to the origin
regardless the initial value x0 . There are many reasons for which global stability
is desirable. First of all it implies that the system has one single equilibrium point
and second all the system trajectories tend to it. This is in contrast to the previous
definitions, which deal just with the trajectories in a vicinity of the equilibrium
point, however large this vicinity may be. When it comes to design a controller or
an observer for robot manipulators (or any other physical system) it can prove to be
very hard to get global stability. The main premise of this book is that stability, or
local stability as it is also called, can be good enough in practical applications and
thus is a valuable goal on its own that can be easier to achieve.
4.2 Stability in the Sense of Lyapunov 111
x2
x(t)
δ()
x1
x(t0 )
Finally, Definition 4.8.6 states that if none of the previous definitions hold, then
the equilibrium point is unstable.
This section presents a very well known result regarding stability in the sense of
Lyapunov. As usual, only the information necessary for the rest of the book is pro-
vided so that many important results are excluded. Consider once again the vector
differential equation (4.21)
and suppose that for a domain D ⊂ Rn which contains the origin it is possible to find
a continuously differentiable function V (t, x) : [0, ∞) × D → R satisfying
x2
x(t)
x(t0 )
x1
δ=
Fig. 4.4 A bounded state tending to the equilibrium point does not necessarily means asymptotic
stability
V (t, x)
x2
α2 (x)
x
V (t, x)
x1
D α1 (x)
t0 t1 t
Fig. 4.5 V (t, x) bounded by α1 (x) and α2 (x) without considering (4.21) and the equilibrium
x=0
do. This is a key characteristic. Figure 4.5 depicts the concept of V (t, x) bounded by
α1 (x) and α2 (x).
It is important to note that Fig. 4.5 is not completely correct because it shows
bounds without making any association between (4.21) and (4.29) at all. In fact, by
assumption x = 0 is an equilibrium point of (4.21), which means that if at t = t1
x ≡ 0 then x ≡ 0 for all t ≥ t1 .
4.2 Stability in the Sense of Lyapunov 113
V (t, x)
x2
α2 (x)
x
V (t, x)
x1
D α1 (x)
t0 t1 t
Fig. 4.6 V (t, x) bounded by α1 (x) and α2 (x) by considering (4.21) and the equilibrium x = 0
V̇ < 0
t
t0 t1
Figure 4.6 shows the relationship between (4.21) and (4.29) correctly. Note that for
that case α1 (0) = V (t, 0) = α2 (0) = 0 for all t ≥ t1 . The question arises whether one
can conclude any kind of stability from this relationship. In the figures, V (t, 0) going
down to zero apparently indicates asymptotic stability, but how to know whether
V (t, 0) is going down? Recall that V (t, 0) is never negative. Of course, by paying
attention to the derivative V̇ (t, x) as shown in Fig. 4.7.
The derivative of V (t, x) can be computed in general as
∂V ∂V
V̇ (t, x) = + f (t, x), (4.30)
∂t ∂x
where the dependence on (4.21) becomes evident. Prior to drawing out a conclusion
about stability, it should be recalled that just because x → 0 it does not mean that
the equilibrium is stable as defined in Definition 4.8 (see Fig. 4.4). Therefore, the
stability analysis is more complex than just considering the sign of the derivative
V̇ (t, x). The first step is to take into account that the region D does not need to be a
ball as given in (4.28) because in fact it is always possible to take an > 0 to define
a ball contained in D as
114 4 Mathematical Background
x2
B
x1
Fig. 4.8 B ∈ D
B = x ∈ Rn | x ≤ ⊂ D. (4.31)
i.e. choose c strictly smaller than α1 (x) evaluated at the boundary of the ball B .
Since α1 (x) is a class K function, then the region defined as
But if V (t, x) ≤ c then α1 (x) ≤ c, so that it can be concluded that Dt,c ⊂ D1,c
because every x ∈ Dt,c is also in D1,c but not necessarily vice versa. This is shown
in Fig. 4.10.
Finally, another region can be defined as
4.2 Stability in the Sense of Lyapunov 115
x2
B
x1
D1,c
D
x2
B
Dt,c
x1
D1,c
D
x2
B
Dt,c
D2,c x1
D1,c D
For this case, if α2 (x) ≤ c then of course V (t, x) ≤ c, which means that D2,c ⊂
Dt,c as shown in Fig. 4.11. Therefore, it is possible to arrive to the following conclu-
sion
for all t ≥ t0 just based on (4.29). Note that the time-dependent region Dt,c is sur-
rounded by two time-independent surfaces.
Assume now that
V̇ (t, x) ≤ 0 (4.37)
in D. Then, any trajectory beginning in Dt0 ,c must remain in Dt,c for all t ≥ t0 because
for that case
Therefore, any solution starting in D2,c remains in Dt,c for all t ≥ t0 as well and, as a
direct consequence, in D1,c ⊂ B for all t ≥ t0 . This necessarily implies that x(t) <
for all t ≥ t0 , which will comply with Definition 4.8.2 as long as a δ() > 0 can
4.2 Stability in the Sense of Lyapunov 117
be found to have x(t0 ) < δ() as well. By noting that the condition to define D2,c
in (4.35) can be changed to x ≤ α2−1 (c), choosing
implies that x(t0 ) ∈ D2,c . Although this choice excludes the boundary of D2,c , this
is of little relevance. Therefore, it has been shown that the equilibrium x = 0 is
uniformly stable. To prove asymptotic stability, the assumption given in (4.37) should
be changed by
where W3 (x) is a continuous positive definite function on D. Note that in fact there
exists a class K function α3 (x) such that
Without any loss of generality it can be assumed that α4 (·) is locally Lipschitz. If it
were not the case, then another class K function α5 (·) satisfying α5 (·) ≤ α4 (·) can
always be found which is locally Lipschitz. Consider now the following differential
equation
according to Lemma 4.2. β1 (·, ·) is a class KL function defined on [0, c] × [t0 , ∞),
where c has been used to define Dt,c in (4.34). By the Comparison Lemma 4.1 it is
with V (t0 , x0 ) ∈ [0, c]. Therefore, any solution starting in D2,c satisfies
for all t ≥ t0 and where β(·, ·) is a class KL function as pointed out in Remark 4.1.
According to Definition 4.8.4 the equilibrium is uniformly asymptotically stable
if it is uniformly stable over [t0 , ∞), which has already been shown, and if there
exists a δ1 > 0 such that x(t0 ) < δ1 ⇒ x(t) → 0 as t → ∞. By choosing also
δ1 = α2−1 (c) as in (4.39) and by noting that β(x0 , t − t0 ) → 0 as t → ∞ because
it is a class KL function, it can be concluded that the equilibrium is uniformly asymp-
totically stable. Finally, if D = Rn and if the functions α1 (·) and α2 (·) belong to the
class K∞ , then the equilibrium is globally uniformly asymptotically stable, because
α1 (·) is radially unbounded and c in (4.32) can be defined arbitrarily large because
can also be considered arbitrarily large, so that δ() = α2−1 (c) becomes arbitrarily
large as well to include any initial condition x(t0 ). Note that α3 (·) becomes a class
K∞ function because W3 (x) is defined in Rn . The following theorem summarizes
the preceding discussion.
Theorem 4.2 Consider the nonautonomous system (4.21), i.e.
V̇ (t, x) ≤ 0.
x(t) ≤ β(x0 , t − t0 )
Remark 4.4 Defining a positive definite function V (t, x) satisfying (4.29) can prove
to be rather trivial. Therefore, such a function is called Lyapunov candidate function.
If the derivative of the candidate function actually satisfies (4.37) or (4.40) then it
is called a Lyapunov function. Note also that the class K functions in (4.29) can be
replaced by two positive definite functions W1 (x) and W2 (x) leading to the same
conclusions, but making the stability analysis slightly more complex. Since for the
positive definite functions employed is this book it is quite easy to satisfy (4.29), it
has been preferred to use these bounds from the very beginning.
This section presents also some very well known stability results whose proofs are
omitted for brevity’s sake. First of all, the previous section presented one of the main
results to prove stability in the sense of Lyapunov for nonautonomous systems. It
turns out that establishing stability for autonomous system is even more direct.
Corollary 4.1 Consider the autonomous system
ẋ = f(x), (4.49)
only solution x that can stay identically in M is the equilibrium x ≡ 0, then the
equilibrium is
1. Asymptotically stable if V̇ (x) is negative semidefinite in D.
2. Globally asymptotically stable if additionally V (x) is radially unbounded and
D = Rn .
One of the most important particular cases of autonomous systems are time invari-
ant linear systems. The following theorem provides a very well known result.
Theorem 4.4 Consider the linear time invariant autonomous system
ẋ = Ax, (4.50)
t→∞
contrary is also true, i.e. if lim f˙(t) = 0 then lim f (t) does not necessarily exists,
t→∞ t→∞
e.g. f (t) = sin(ln(t)).
4.3.1 Definition
x(t0 )
bf
a x1
Definition 4.9 The solutions of (4.21), i.e. ẋ(t) = f (t, x(t)), are said to be
1. Uniformly bounded if there exist a constant c > 0 such that for every a ∈ (0, c)
exists a positive constant b depending only on a, i.e. b = b(a) > 0, such that
4. Globally uniformly ultimately bounded if (4.52) holds for every a ∈ (0, ∞).
For the purpose of the present book, Definition 4.9.3 is of particular interest.
Figure 4.12 depicts the concept, where it is desirable to make b arbitrarily large
and bf arbitrarily small by design. Although at first sight these two goals may appear
to be easier to achieve than asymptotic stability, they represent an important chal-
lenge on its own. Note that in fact the region D in (4.28) could be also used here but
with the bound b instead of . Since there is also a bound for the initial condition
involved in (4.51), this looks very similar to the stability definition. However, it is
conceptually different since no equilibrium point is involved.
122 4 Mathematical Background
V (t, x)
x2
α2 (x)
x
V (t, x)
x1
D Vb
α1 (x)
t0 t
Fig. 4.13 V (t, x) bounded by α1 (x) and α2 (x) under condition (4.53)
In order to get some insight about the conditions for a trajectory to be uniformly
ultimately bounded, the concept of positive definite functions used to prove stability
can further be exploited. Indeed, consider once again a continuously differentiable
function V (t, x) : [0, ∞) × D → R satisfying (4.29), i.e.
whose behavior should be related to V (t, x). Note that this time it is not assumed that
the origin is an equilibrium of (4.21), although this could well be the case. Consider
a similar condition to that given in (4.40), namely
would be the very same), so that some steps of the proof can be employed to get a
result for uniform ultimate boundedness. First of all, let’s make a small change in
the definition of the constant c given in (4.32)
c = α1 (), (4.54)
where as before the constant is used to define the region B in (4.31) so that B ⊂ D.
As mentioned before, just because V̇ (t, x) is negative it does not mean that x(t)
decreases immediately and in fact x could leave D if x0 lies too close to the boundary.
Therefore, assume that
α2 (μ) < c ⇒ μ < α2−1 (c) ⇒ μ < α2−1 (α1 ()). (4.55)
It is not difficult to show that if (4.29) and (4.53)–(4.56) hold, then any solution
of (4.21) remains in D for all t ≥ t0 . To show this, note that if x0 < μ at t = t0
then (4.53) does not hold and V̇ (t, x) is indefinite. However, it would be of advantage
if it were positive or even zero, so that the worst possible situation is that V̇ (t, x) > 0
and V (t, x) grows until x(t1 ) ≡ μ at some finite time t1 > t0 . At that moment (4.53)
holds and one has V̇ (t, x) ≤ −W3 (x) so that V (t, x) decreases until once again
x(t) < μ and V̇ (t, x) becomes indefinite, and the sequence starts over. On the
other hand, if x0 ≥ μ then V (t, x) decreases until x(t) < μ and the sequence
starts over as well. Therefore, one can fairly assume that x0 = α2−1 (α1 ()) so
that (4.53) holds at t = t0 and that would be the worst possible case because V (t, x)
begins decreasing its value. In view of the previous discussion, a region can be defined
as done in (4.34)
where it is guaranteed that any trajectory starting in Dt,c remains inside because
V̇ (t, x) is negative at the boundary. Note that in order for x to be in Dt,c then x ≤
as can be concluded when V (t, x) = c = α1 () holds. Indeed, by considering (4.56)
It is also important that if x0 = α2−1 (α1 ()) then from (4.29) it is
x(t) ≤ . (4.59)
124 4 Mathematical Background
As explained before V (t, x) decreases until x(t) < μ, but if (4.53) holds again
because x(t) ≥ μ, then for that case μ can be considered as a new initial condition
norm value and one would have
and consequently
The last inequality follows after (4.55). In the end this implies that x(t) ≤ for all
t ≥ t0 . This comply with Definition 4.9.1 (uniform boundedness) by choosing b =
and a = α2−1 (α1 ()). Note that if D = Rn and α1 (·) and α2 (·) are class K∞ functions,
then Definition 4.9.2 (global uniform boundedness) holds as well. It remains to show
ultimate boundedness. Consider
and define
By noting that D1,c = B since c = α1 (), then one can conclude that
just by following the same arguments to get (4.36), where Bμ takes the place of D2,c
and implies x ≤ μ and therefore at the boundary and outside this region (4.53)
holds. This means that every trajectory starting in Dt,η remains inside, but since Dt,η
is a subset of Dt,c , then any trajectory starting inside Dt,c but outside Dt,η must enter
in this last region in a finite time because for that case
Otherwise said, (4.67) holds in the region Dt,c − Dt,η . But in view of the definition
of Dt,η , any x in this region must comply with x ≤ μ. Therefore, by recalling that
any x in Dt,c satisfies x ≤ , (4.67) holds for μ ≤ x ≤ , and over this set it is
possible to define k = min(W3 (x)), such that
This last relationship will be valid until V (t, x) = η, which must be reached in a
finite time tη obtained below
c−η
η ≤ c − k(tη − t0 ) ⇒ tη ≤ t0 + . (4.70)
k
Assume that T is the first time that x enters in Dt,η , so that in the time interval [t0 , T ]
must hold
V̇ (t, x) ≤ −W3 (x) ≤ −α3 (x) ≤ −α3 (α2−1 (V (t, x))) (4.71)
for a class K function α3 (·) and where V (t, x) ≤ α2 (x) has been taken into account.
Therefore, it is possible to recover (4.44), i.e.
with α4 (·) a class K function. Also as before one recovers (4.47), i.e.
V (t, x) ≤ β1 (V (t0 , x0 ), t − t0 )
where β1 (·, ·) and β(·, ·) are class KL functions. Since once in Dt,η the solution
remains inside, then for t ≥ t0 + T , relation (4.61) holds, i.e.
Note that if x0 ∈ Dt,η then (4.61) holds for all t ≥ t0 . Therefore, this complies
with Definition 4.9.3 (uniform ultimate boundedness) by choosing bf = α1−1 (α2 (μ))
while (4.70) shows that T must exist. Finally, if D = Rn and α1 (·) and α2 (·) are class
K∞ functions, then Definition 4.9.4 (global uniform ultimate boundedness) holds as
well. The previous discussion is summarized in the following theorem.
Then, there exits a class KL function β(·, ·) and a T ≥ 0 such that the solution
of (4.21) satisfies (4.72) and (4.73), i.e.
One of the main goals of robot control theory is trajectories tracking. The idea is to
provide a path and orientation for the robot end-effector which has to be followed as
close as possible. The desired values can be denoted as qd and q̇d , so that the tracking
error can be defined as
e = q − qd . (4.74)
Therefore, to apply the theory of the previous section the state of the error dynamics
can be defined as
e
x= . (4.75)
ė
where λ is a positive constant and m ≥ 2 is a positive integer. For this book, the case
of special interest is m = 2 to get
s = ė + λe. (4.77)
Clearly, this represents a stable linear system in the form of (4.50) but with an external
input, i.e.
ė = −λe + s, (4.78)
1 d 2
s ≤ −η|s|, (4.79)
2 dt
where η > 0. Satisfying this condition makes the surface an invariant set and the
behavior of the system once the sliding surface is reached is known as sliding mode.
Condition (4.79) guarantees that s ≡ 0 in a finite time tr in case s(t0 ) = 0. To show
this, assume without lost of generality that t0 = 0 and that s(t = 0) > 0, so that
from (4.79) one gets between t = t0 and s(t = tr ) = 0
By integrating it is
t t
s 0r ≤ −ηt 0r ⇒ s(t = tr ) − s(t = 0) = 0 − s(t = 0) ≤ −ηtr , (4.81)
and therefore
s(t = 0)
tr ≤ . (4.83)
η
Note that the result would be completely similar if s(t = 0) < 0, from which it is
concluded
|s(t = 0)|
tr ≤ . (4.84)
η
128 4 Mathematical Background
Just as explained before, s ≡ 0 implies that e, ė → 0, but satisfying the sliding con-
dition may require the use of discontinuities in the control law, which is prone to
cause chattering. Finally, the result can easily be extended to the vector case
s = ė + e, (4.85)
References
Desoer CA, Vidyasagar M (1975) Feedback systems: input-output properties. Academic, New York
Hahn W (1963) Theory and applications of Liapunov’s direct method. Prentice-Hall, Englewood
Cliffs
Hahn W (1967) Stability of motion. Springer, New York
Khalil HK (1996) Nonlinear sstems, 2nd edn. Prentice-Hall, Englewood Cliffs
Khalil HK (2002) Nonlinear systems, 3rd edn. Prentice-HallPrentice-Hall, Upper Saddle River
Nuño E, Basañez L, Ortega R, Spong MW (2009) Position tracking for non-linear teleoperators
with variable time delay. Int J Robot Res 28(7):895–910
Nuño E, Basañez L, López-Franco C, Arana-Daniel N (2014) Stability of nonlinear teleoperators
using PD controllers without velocity measurements. J Franklin Inst 351:241–258
Skelton RE (1988) Dynamic systems control: linear systems analysis and synthesis. Wiley, New
York
Slotine JJE, Li W (1991) Applied nonlinear control. Prentice-Hall, Englewood Cliffs
Vidyasagar M (1978) Nonlinear systems analysis. Prentice-Hall, Englewood Cliffs
Chapter 5
Common Control Approaches for Robot
Manipulators
Abstract Robot manipulators are designed to carry out specific tasks but at the same
time to be flexible enough to allow reprogramming if necessary. Since the variety of
possible works is too wide, the most direct way to obtain a general solution to carry
them out is to propose a time varying desired trajectory in terms of joint or work space
coordinates and then design a control law able to follow it. From a pure theoretical
point of view achieving this goal can even be trivial despite the high nonlinear
dynamics of robot manipulators. However, when it comes to implementation many
practical issues arise that make the problem much more involved than it appears to
be at the beginning. This chapter recapitulates the most basic control techniques for
robot manipulators.
Despite the high nonlinear dynamic nature of robot manipulators, it turns out that
some tasks can be carried out rather straightforwardly and let’s say easily. Assume
that it is desired to take the robot manipulator to its initial position q(0) = q 0 to a
final constant position q d ∈ Rn . The position error is therefore here and for the rest
of the book given by
e = q − qd. (5.1)
τ = −K d ė − K p e, (5.2)
where K d , K p ∈ Rn×n are diagonal positive definite matrices. Now, for simplicity’s
sake assume that g(q) = 0 and D = O in model (3.44). For that case one has the
closed loop dynamics given by
where it has been taken advantage of the fact that q̇ d ≡ 0 ⇒ ė = q̇. Consider the
following Lyapunov candidate function
1 T 1
V (e, ė) = ė H(q)ė + eT K p e. (5.4)
2 2
The corresponding derivative along (5.3) is then given by
1
V̇ (e, ė) = ėT H(q)ë + ėT Ḣ(q)ė + ėT K p e (5.5)
2
1
= −ėT K d ė + ėT Ḣ(q) − 2C(q, q̇) ė + ėT K p e − ėT K p e
2
1
= −ėT K d ė + ėT Ḣ(q) − 2C(q, q̇) ė.
2
According to Property 3.2 one has
Since V̇ (e, ė) is only negative semidefinite, Theorem 4.3 can be used. In fact,
V̇ (e, ė) ≡ 0 in the set
Therefore, one only needs to show that the only solution (e, ė) that can stay identically
in M is the equilibrium (e, ė) ≡ (0, 0). This is carried out by substituting M, i.e.
ė ≡ 0, in (5.3) to get
K p e = 0.
Since K p is positive definite its inverse exists and therefore the only solution for the
previous relationship is precisely e = 0, which shows that the origin is asymptotically
stable. But since furthermore V (e, ė) is radially unbounded in view of Property 3.7,
then one can conclude from Theorem 4.3 that it is globally asymptotically stable.
Note that neither K d nor K p need to be diagonal, but this is a common practice and
also simplifies gain tuning.
Although regulation on its own may be a very important goal, trajectory tracking is
also essential. For that case q̇ d = 0. Also, in general viscous friction can be neglected,
but gravity effects cannot if they exist. Assuming that the whole robot model is known,
then a control law that can achieve exact tracking is given by
Suppose that the gravity vector g(q) is not well known and that it is desired to achieve
position regulation. Consider once again the error e given in (5.1) with q d constant.
Since q̇ d = q̈ d = 0, one also has ė = q̇ and ë = q̈. For that case a PD controller is
not good enough, but it can be shown that a PID of the form
τ = −K p e − K d ė − K i ξ (5.10)
ξ̇ = e, (5.11)
can fulfill this goal, as long as the (diagonal) positive definite matrices K p , K d , K i ∈
Rn×n are properly chosen. The result turns out to be only locally uniformly asymp-
totically stable although the region of attraction can be arbitrarily enlarged. The usual
approach to prove stability is rather complex in the sense that the Lyapunov candidate
function contains both cross terms and the robot’s potential energy; in fact, it is even
involved to find conditions to guarantee that it is positive definite in the first place.
Roughly speaking, the proportional and derivative gains need to be large enough,
and the integral gain needs to be small enough. In this book, an alternative approach
is provided to arrive basically to the same result. Define a vector version of s given
in (4.77) as
s = ė + e ⇒ ė = −e + s, (5.12)
s→0 ⇒ e, ė → 0. (5.13)
τ = −K d s − K ω ω − K ps e (5.14)
ω̇ = s, (5.15)
132 5 Common Control Approaches for Robot Manipulators
K p = K d + K ω + K ps (5.16)
Kd = Kd (5.17)
K i = K ω . (5.18)
Note that given any arbitrary set K p , K d and K i it is not always possible to get an
equivalent set of gains K d , and K ω . For that reason, the latter have to be chosen
first in order to get the former for implementation.
Substituting (5.14) in (3.44) yields
with
x 1 = ω + K −1
ω g(q d ), (5.23)
with
⎡⎤ ⎡ ⎤
x1 x1
x = ⎣ x2 ⎦ ≡ ⎣ e ⎦ . (5.25)
x3 s
Clearly, the equilibrium point of (5.24) is x = 0 and it is unique. Also note that δ a
in (5.20) can be considered as a vanishing perturbation at the origin.
To prove that x → 0 it is taken advantage of the fact that it is already known that
the origin is uniformly asymptotically stable but not globally. Therefore, the region of
interest (4.28) mentioned in Remark 4.3 can be used to simplify the stability analysis,
i.e.
D = x ∈ Rn \ x < ,
for an arbitrarily large > 0. Consider the following positive definite function V (x)
with respect to the state variables of system (5.24)
1 T 1 1
V (x) = x K ω x 1 + eT K ps e + sT H(q)s. (5.26)
2 1 2 2
V (x) satisfies (4.29) with
just by using Property 3.2. To further manipulate (5.28), take Properties 3.9 and 3.11
into account to get by using (5.20)
e x2
xa = = . (5.30)
s x3
134 5 Common Control Approaches for Robot Manipulators
Then, directly from (5.12) one has ė ≤ λmax ()e + s, so that (5.29) becomes
where
λmin (K d ) ≥ γ1 + γ + 1, (5.35)
1
λmin (K ps ) ≥ γ + γ22 , (5.36)
4
Therefore it is
γ3
V̇ (x) ≤ −γ x a 2 1 − x a = −W3 (x). (5.39)
γ
Then, Theorem 4.3 can be used to show that the origin is (locally uniformly) asymp-
totically stable by noting that in M the only solution x of (5.24) that can stay
identically is precisely the equilibrium x ≡ 0. Note that despite V (x) is radially
unbounded the result cannot be global because D cannot be equal to Rn . By using
the proposed approach it can be concluded, roughly speaking, that stability will be
guaranteed if the derivative and the proportional gains are big enough and gains are
chosen according to (5.16)–(5.18). Note that technically this does not necessarily
mean that the equilibrium of the original error state (ξ , e, ė) is asymptotically stable.
However, it can be shown that indeed this is the case by using directly Definition 4.8
and some equivalences. This proof is omitted because in the end the main goal has
already been shown, i.e. (e, ė) → (0, 0).
While PID control can compensate the gravity term for position regulation, there
will always be a residual error for trajectory tracking. It has been already shown that
a PD+ control law can achieve this goal, but it is not the only model based technique
which can be employed. One of the earliest and better known results is the computed
torque control law given by
τ = H(q) q̈ d − K d ė − K p e + C(q, q̇)q̇ + D q̇ + g(q), (5.43)
with e given in (5.1) and K d , K p ∈ Rn×n are as before diagonal positive definite gain
matrices. Substituting (5.43) into (3.44) yields
H(q) ë + K d ė + K p e = 0. (5.44)
But since from Property 3.1 the inverse of H(q) always exists and hence
ë + K d ė + K p e = 0. (5.45)
To analyze the closed loop stability properties of control law (5.43), one just needs
to take advantage of the fact that K d , K p > O and diagonal, so that there are n
independent second order linear differential equations of the form
where ei is the ith element of e and kdi , kpi are the ith elements of the diagonals of
K d and K p , respectively, for i = 1, . . . , n. The associated characteristic equations
136 5 Common Control Approaches for Robot Manipulators
Since the eigenvalues of (5.47) do have negative real part because kdi , kpi > 0, then
it is clear that ėi , ei → 0 or ė, e → 0 for any initial condition. It is worthy pointing
out that K d and K p do not need to be diagonal to obtain the same result. Finally, it
is possible to write (5.43) as
τ = H(q)q̈ d + C(q, q̇)q̇ + D q̇ + g(q) + H(q) −K d ė − K p e . (5.48)
τ ff τ fb
The term τ ff is known as the predictive part and it is aimed at providing the necessary
input torque to keep the system along the nominal trajectory. τ fb is the feedback part,
which provides the necessary input torque to reduce tracking errors.
The main disadvantage of the computed torque control law is that it relies on an
exact knowledge of the robot model, which makes it little robust against model
uncertainties. This effect is accentuated because the predictive term ideally cancels
out the robot nonlinear dynamics. Instead, the passive structure of robot manipulators
can be exploited to achieve trajectory tracking in a more robust way. Consider the
definition of the reference velocity as
q̇ r = q̇ d − e, (5.49)
s = q̇ − q̇ r = ė + e. (5.50)
1 T
V (t) = s H(q)s, (5.53)
2
whose derivative along (5.52) is trivially given by
1 T
V̇ (t) = sT H(q)ṡ + s Ḣ(q)s (5.54)
2
1 T
= −sT K D s + s Ḣ(q) − 2C(q, q̇) s
2
= −sT K D s ≤ 0.
Since K D is positive definite, this means that V̇ (t) is negative definite. Therefore,
by applying Corollary 4.1 it can be concluded that the equilibrium s = 0 of (5.52)
is globally asymptotically stable because additionally V (t) is radially unbounded.
This in turn means that e, ė → 0.
In the previous sections, the desired trajectories for the robot manipulators are des-
ignated as q d . However, when it comes to choose these desired values, in practice
they are given in work space coordinates and therefore inverse kinematic online has
to be implemented together with the control law as shown in Fig. 5.1.
The computation of inverse kinematics is explained in Section 2.3. An alternative
to computing the inverse kinematic consists in rewriting model (3.44) directly in work
space coordinates. To do that, assume that f : Q → R p is a smooth and invertible
map from joint variables q ∈ Q to work space variables x ∈ R p . To simplify the
discussion, assume that n = p so that the number of degrees of freedom of the robot
matches the dimension of the work space. If n < 6, then the work space variables
provide only a partial parametrization of S E(3). The transformation is carried out by
using the Jacobian of the manipulator, either the analytic or the geometric. Consider
for example the relationship (2.183)
∂f
ẋ = J(q)q̇ J(q) = ,
∂q
1 Care should be taken! V (t) in (5.53) is a candidate Lyapunov function for s, but not for (e, ė).
138 5 Common Control Approaches for Robot Manipulators
The previous relationship is valid if and only if J −1 (q) exits, which implies that the
robot does not reach any singularity. This is hardly a disadvantage because singu-
larities should also be avoided to compute the inverse kinematics and therefore this
T
assumption is always made. By defining J −T = J −1 , one can get from (3.44):
d −1
J −T H J −1 ẍ + J −T C J −1 + H J ẋ + J −T D J −1 ẋ + g = J −T τ ,
dt
(5.56)
where the dependence on (q, q̇) has been omitted for simplicity. Define
This model is mainly used for control design and therefore it is unnecessary to make
the substitution of q and q̇ in terms of x and ẋ. On the other hand, it is not difficult
to show by direct computation that H̄(q) is symmetric positive definite, while as
˙
before H̄(q) − 2 C̄(q, q̇) ∈ Rn×n is skew symmetric. This is very important because
these were two of the key properties used to prove stability in the proposed control
schemes of this section and they could be implemented just by rewriting them in terms
of model (5.62). For example, the computed torque control law can be rewritten as
F = H̄(q) ẍ d − K d ẋ − K p x + C̄(q, q̇) ẋ + D̄ ẋ + ḡ(q), (5.63)
x = x − x d . (5.64)
5.5 Design in Work Space Coordinates 139
q d , q̇ d , q̈ d xd , ẋd , ẍd
Inverse
kinematics
Desired workspace
coordinates
It is important to note that for implementation it is the input torque which has to be
programmed as
τ = J T (q)F. (5.65)
The stability proof is omitted in view of its obvious similarity with the regular com-
puted torque law.
References
1. Arteaga-Pérez MA (2019) An alternative proof to the asymptotic stability of PID controllers for
regulation of robot manipulators. IFAC J. Syst. Control 9, Article 100066
2. Canudas de Wit C, Siciliano B, Bastin G (eds) (1996) Theory of robot control. Springer, London
3. Kelly R, Santibáñez V, Loria A (2005) Control of robot manipulators in joint space. Springer,
London, Great Britain
4. Murray RM, Li Z, Sastry SS (1994) A mathematical introduction to robotic manipulation. CRC
Press, Boca Raton
5. Siciliano B, Khatib O (eds) (2008) Springer handbook of robotics. Springer, Berlin
6. Slotine JJE, Li W (1987) On the adaptive control of robot manipulators. Int J Robot Res 6(3):49–
59
Part II
Looking for Semiglobal Stability
or Ultimate Boundedness
Chapter 6
Velocity Observer Design
Abstract As seen in Chap. 5, robot control design may be quite direct under ideal
circumstances. Particularly, an exact robot model and joint velocities measurements
should be available in order to implement different effective control schemes. How-
ever, in practice neither of them are available. This chapter deals with velocity esti-
mation. It is worthy to point out that due to digital implementation in computers
an acceptable estimate of joint velocities can be obtained online by numerical dif-
ferentiation, for example. Nevertheless, it is always advisable to design an observer
for this goal because even after digital implementation the system performance is
usually higher.
This section reproduces one of the first joint velocity observers for robots manipu-
lators. However, the original stability proof is changed to propose a new one based
on the general methodology of this book, i.e. define a region of interest a priori
were the results are valid instead of inferring such a region as a function of different
control/observer gains.
For the robot manipulator dynamics given by (3.44), assume that no velocities
measurements are available, i.e. q̇, and the only measurable system outputs are joint
positions, i.e. q. Let q̂ be the estimated value of q and define the observation error as
z = q − q̂. (6.1)
q̂˙ = ξ + kd z (6.2)
−1 ˙ q̂˙ − Dq̂˙ − g(q) + K o z + τ ,
ξ̇ = H (q) −C(q, q̂) (6.3)
˙ q̂˙ + Dż + K o z = 0.
H(q)z̈ + kd H(q)ż + C(q, q̇)q̇ − C(q, q̂) (6.5)
˙ = 0.
H(q)z̈ + C(q, q̇)ż + Dż + K o z + kd H(q)ż + C(q, q̂)ż (6.7)
and assume that the velocity vector q̇ is bounded for all t ≥ t0 by a constant vm , i.e.
q̇(t) ≤ vm ∀t ≥ t0 . (6.9)
This assumption is necessary because at this point no control law is under consid-
eration. Note that it is quite reasonable from a physical practical point of view. For
this state define a region of interest as done in (4.28)
Dz = x2 ∈ R2n \ x2 < , (6.10)
1 T 1
V (x2 ) = ż H(q)ż + zT K o z, (6.11)
2 2
which complies with (4.29), i.e.
by using
1 1
α1 (x2 ) = Lm x2 2 and α2 (x2 ) = LM x2 2 , (6.12)
2 2
6.1 The Nicosia and Tomei Observer 145
where
λh and λH are given in Property 3.7. By using Properties 3.2 and 3.4, the derivative
of V (x2 ) along (6.7) can straightforwardly be computed as
1
V̇ (x2 ) = żT H(q)z̈ + żT Ḣ(q)ż + żT K o z
2
˙ + żT K o z
= −żT Dż − żT K o z − żT kd H(q)ż − żT C(q, q̂)ż
= −żT D + kd H(q) + C(q, q̂) ˙ ż
By using once again Property 3.7 together with Properties 3.9 and 3.10, together
with (6.9), one gets
kd λh
ż ≤ − vm < , (6.16)
kc
kc vm
kd > . (6.17)
λh
Since V̇ (x2 ) is only negative semidefinite, Theorem 4.3 can be used. In fact,
V̇ (z, ż) ≡ 0 in the set
Therefore, it is necessary to show that the only solution (z, ż) that can stay identically
in M is the equilibrium (z, ż) ≡ (0, 0). This is carried out by substituting M, i.e.
ż ≡ 0, in (6.7) to get
K o z = 0.
Since K o is positive definite its inverse exists and as a consequence the only solution
for the previous relationship is precisely z = 0, which shows that the origin is uni-
formly asymptotically stable. As noted in Definition 4.8, (local) asymptotic stability
146 6 Velocity Observer Design
implies the existence of a region of attraction. This turns out to be important because
should the initial error state x2 (t0 ) be too large, then it will not necessarily vanish
even if x2 (t0 ) ∈ Dz . As can be inferred from (6.16), setting gains larger makes
larger and thus the region of attraction should be larger as well. It can be said that the
equilibrium is semi globally uniformly asymptotically stable. To check this intuition
out, a region of attraction can be found by using (4.29), (6.12) and the fact that V̇ ≤ 0
for x2 ∈ Dz to get
1 1
Lm x2 (t)2 ≤ V (x2 (t)) ≤ V (x2 (t0 )) ≤ LM x2 (t0 )2 , (6.19)
2 2
which means that
LM
x2 (t) ≤ x2 (t0 ) < , (6.20)
Lm
where the last inequality is mandatory to get x2 (t) ∈ Dz for all t ≥ t0 . Therefore, a
region of attraction is given by
Lm
A = x2 (t0 ) ∈ R \ x2 (t0 ) <
2n
. (6.21)
LM
One of the main reasons to design a velocity observer is to employ the estimates
in the robot control. Consider the control law (5.8) by making the substitution of
actual for estimated velocities
˙
τ = H(q)q̈d + C(q, q̂)q̇ ˙
d + Dq̇d + g(q) − K d (q̂ − q̇d ) − K p e, (6.22)
where the usual error definition e = q − qd in (5.1) has been employed and qd is
assumed to be bounded with at least first and second derivatives bounded as well. It
is not difficult to compute the closed loop dynamics as
˙
where K D = D + K d , C(q, q̂)q̇ d = C(q, q̇ − ż)q̇d and Property 3.4 have been used.
Note the similarity with (5.9). Define the state for the system closed loop dynam-
ics (6.7) and (6.23) as
⎡ ⎤
e
x1 ⎢ ė ⎥
x= =⎢
⎣z⎦,
⎥ (6.24)
x2
ż
Note that does not need to be the very same as in (6.10) because the state is
different and the observer gains will have to be retuned. Consider the following
Lyapunov candidate function
1 T 1 1 1
V (x) = ė H(q)ė + eT K p e + żT H(q)ż + zT K o z, (6.26)
2 2 2 2
which complies with (4.29), i.e.
by using
1 1
α1 (x) = Mm x2 and α2 (x) = MM x2 , (6.27)
2 2
where
and
λh and λH are given in Property 3.7. By using Properties 3.2 and 3.10, the derivative
of (6.26) along (6.7) and (6.23) satisfies
1 1
V̇ (x) = ėT H(q)ë + ėT Ḣ(q)ė + ėT K p e + żT H(q)z̈ + żT Ḣ(q)ż + żT K o z
2 2
˙
= −ėT K D ė + ėT K d ż − ėT C(q, q̇d )ż − żT (D + kd H(q))ż − żT C(q, q̂)ż
≤ −ėT K d ė + ėT K d ż + ėT C(q, ė) − C(q, q̇) ż − kd żT H(q)ż
−żT C(q, q̇) − C(q, ż) ż. (6.30)
Since ė is bounded in D and one can always define q̇d bounded, there exists vm ,
defined in (6.9). After Properties 3.7 and 3.9 and the definition of the region D
in (6.25), one gets
λmin (K d ) ≥ δ + 1 (6.32)
δ + kc (vm + ) + (λmax (K d ) + kc (vm + ))
1 2
kd ≥ 4
, (6.33)
λh
Once again V̇ (x) is only negative semidefinite and Theorem 4.3 can be used by
considering that V̇ (e, ė, z, ż) ≡ 0 only in the set
To show that the only solution (e, ė, z, ż) that can stay identically in M is the equi-
librium (e, ė, z, ż) ≡ (0, 0, 0, 0), substitute M in (6.7) and (6.23) to get
K o z = 0 and K p e = 0.
Since K o and K p are positive definite matrices the only solution for the previous
relationships to hold are z = 0 and e = 0, which shows that the origin is uniformly
asymptotically stable. A region of attraction can be found by using (4.29), (6.27) and
the fact that V̇ ≤ 0 for x ∈ D to get
1 1
Mm x(t)2 ≤ V (x(t)) ≤ V (x(t0 )) ≤ MM x(t0 )2 , (6.36)
2 2
which means that
MM
x(t) ≤ x(t0 ) < , (6.37)
Mm
where the last inequality is mandatory to get x(t) ∈ D for all t ≥ t0 . Therefore, a
region of attraction is given by
Mm
A = x(t0 ) ∈ R4n \ x(t0 ) < . (6.38)
MM
6.2 Non Model Based Observer Design 149
The scheme proposed by Nicosia and Tomei needs the whole robot model both for
the controller and the observer, where the former is the PD+ scheme given by (5.8).
However, employing controller (5.51), i.e.
can avoid using the robot model for the observer, where the usual error definition (5.1),
together with (5.49) and (5.50), i.e.
q̇r = q̇d − e
s = q̇ − q̇r = ė + e
are employed. On the other hand, consider once again the observation error given
in (6.1) and the following observer
ξ̇ = z (6.39)
q̂˙ = q̇r + kd (z + z ξ ) + z z, (6.40)
with
q̂¨ r = q̈d − q̇o − q̇d (6.42)
q̇ = q̂˙ − z z
o (6.43)
so = q̇o − q̇r . (6.44)
r = q̇ − q̇o = ż + z z, (6.45)
so that as before if r is bounded and tends to zero, then necessarily ż, z → 0. Note that
by taking into account (5.49)–(5.50) and (6.45), (6.42) and (6.44) can be rewritten as
C(q, q̇r )q̇r = C(q, q̇)q̇r + C(q, q̇r )q̇r − C(q, q̇)q̇r
= C(q, q̇)q̇r − C(q, s)q̇r , (6.48)
This means that for the variable s the closed loop dynamics is given by (compare
with (5.52))
with K D = D + K d . Since the observer does not depend on the robot model, the cor-
responding error dynamics can be obtained in terms of r by combining the derivative
of (6.40) with (6.39) to get
so that
ṙ + kd r = ṡ. (6.52)
ṙ + K H r = Bs, (6.53)
where
K H = kd I − − H −1 (q)K d (6.54)
B = −H −1 (q) C(q, q̇) + K D + C(q, q̇r ) . (6.55)
The proposed state for (6.50) and (6.53) to carry out the stability analysis is
s
x= , (6.56)
r
where x = 0 is the unique equilibrium point. Following one of the main ideas of the
present book, define a region of interest of the form (4.28), i.e.
D = x ∈ R2n \ x < ,
6.2 Non Model Based Observer Design 151
for some arbitrarily large 0 < < ∞. For any x ∈ D both s and r are bounded.
As explained in Section 4.4, these two variables represent the inputs of linear fil-
ters whose outputs are respectively e and z which must be bounded for x ∈ D. In
particular, the bound for e is denoted as emax so that
holds for x ∈ D. Care should be taken! This relationship does not hold for all t ≥ t0
unless x ∈ D for all t ≥ t0 , which still has to be enforced by finding proper con-
trol/observer gains and a region of attraction. Also, it is possible to get from (5.50)
Since q̇d is bounded by assumption, i.e. q̇d ≤ vdm for some positive constant vdm
and for all time, then after (6.58) q̇ is also bounded by
1 T 1
V (x) = s H(q)s + rT r, (6.61)
2 2
which satisfies (4.29), i.e.
with
1 1
α1 (x) = λ1 x2 and α2 (x) = λ2 x2 , (6.62)
2 2
and
1 1
λ1 = min {λh , 1} and λ2 = max {λH , 1} . (6.63)
2 2
λh and λH are given in Property 3.7. Compute the derivative of V (x) along (6.50)
and (6.53) to get
152 6 Velocity Observer Design
1
V̇ (x) =sT H(q)ṡ + sT Ḣ(q)s + rT ṙ
2
= − sT K D s + sT H(q)r − sT C(q, q̇r )s + sT K d r
− rT K H r + rT Bs. (6.64)
β1 = kc vrm (6.65)
β2 =λH λmax () + λmax (K d )
1
+ (kc (vmax + vrm ) + λmax (K D )) (6.66)
λh
1
β3 = λmax () + λmax (K d ), (6.67)
λh
by taking into account Properties 3.7, and 3.9, (6.54), (6.55), (6.59), (6.60). Therefore,
(6.64) satisfies
λmin (K d ) ≥ δ + 1 + β1 (6.69)
1
kd ≥ δ + β3 + β22 , (6.70)
4
for some δ > 0 to get
This means that Condition 2 of Corollary 4.1 is met so that the origin x = 0 of (6.50)
and (6.53) is asymptotically stable. Note that as made before a region of attraction
can be computed to be
λ1
A = x(t0 ) ∈ R 2n
\ x(t0 ) < . (6.72)
λ2
Finally, the result cannot be made global despite V (x) is radially unbounded, although
the region D can be made arbitrarily large.
6.3 Non Model Based Observer and Control Design 153
eo = q̂ − qd (6.73)
ėo = q̂˙ − q̇ .
d (6.74)
q̂˙ = ζ + z z + kd z (6.75)
ζ̇ = q̈d − ėo + kd z z, (6.76)
t
σ = K β s(ϑ) + sign(s(ϑ)) dϑ σ (t0 ) = 0, (6.79)
0
d
σ = K β s + sign(s). (6.81)
dt
154 6 Velocity Observer Design
q̇o = q̂˙ − z z
so = q̇o − q̇r ,
τ = −K p so , (6.82)
with K p ∈ Rn×n a positive definite matrix. It is possible to show that gains can always
be found to achieve e, ė, z, ż → 0, but before carrying out a mathematical analysis,
let get some insight about what is the basis of such a simple control law. Assume that
the observation errors are zero, meaning that q̂ = q and q̂˙ = q̇ and therefore q̇o = q̇,
ėo = ė, eo = e and the usual definition s = ė + e is recovered. In this case, the
control law (6.82) can be written as
τ = −K p ė + e + K γ σ . (6.83)
τ = − K p e − K p K γ σ − K p ė , (6.84)
P I D
which shows that the control law is a nonlinear PID but with the employment of an
observer and the user can tuned gains according to his/her own experience. Before
carrying out the stability proof, the following lemma is presented.
Lemma 6.1 Consider (6.79)–(6.81), and assume that it is possible to form the fol-
lowing relationship
u = s + Kγ σ , (6.85)
for some bounded input u, i.e. u ≤ ū < ∞ for all t ≥ t0 . Then σ and s are bounded
for all time.
1
α1 (σ ) = α2 (σ ) = σ 2 . (6.86)
2
Compute the derivative of V (t, σ ) using (6.81) to get by using (6.85)
d
V̇ = σ T σ = σ T K β s + σ T sign(s)
dt
= −σ T K β K γ σ + σ T K β u + σ T sign(s). (6.87)
6.3 Non Model Based Observer and Control Design 155
√
But sign(s) = sign(s1 )2 + · · · + sign(sn )2 ≤ n, so that it holds
√
V̇ ≤ − λmin (K β K γ )σ 2 + σ λmax (K β )ū + n
1 1 √
≤ − λmin (K β K γ )σ − σ λmin (K β K γ )σ − λmax (K β )ū + n .
2
2 2
(6.88)
Then, if
√
2 λmax (K β )ū + n
σ ≥ μ = , (6.89)
λmin (K β K γ )
one has
1
V̇ ≤ − λmin (K β K γ )σ 2 = −W3 (σ ). (6.90)
2
Equations (6.87)–(6.90) hold for D = Rn , and therefore a positive value can always
be found to satisfy (4.55). Furthermore, since σ (t0 ) = 0 as given in (6.79), it is easy to
show that σ ≤ μ = σmax . Finally, since σ is bounded, from (6.85) s must be bounded
as well.
To prove that both tracking and observation errors tend to zero, use r given
in (6.45), i.e.
r = q̇ − q̇o = ż + z z,
sr = q̇ − q̇r = ė + e − z + K γ σ . (6.91)
or
where
Note that as before so can be rewritten as so = sr − r, so that (6.82) and (6.93) become
τ = −K p sr + K p r, (6.95)
and
d d
q̈ − q̈d + ėo + K γ σ = q̈ − q̂¨ + z ż + kd r + K γ σ , (6.99)
dt dt
so that from (6.43), (6.45), (6.78) and (6.91) it is
d
ṙ + kd r = ṡr − K γ σ. (6.100)
dt
Define
sr
x= (6.101)
r
as state for (6.96) and (6.100) and choose for this state a region D similar to that
given in (4.28), i.e.
D = x ∈ R2n \ x ≤ b ,
for some arbitrarily large 0 < b < ∞. Although the notation could have been
employed as usual, this time it is not asymptotic stability but ultimate boundedness
of the state what it is sought for the reasons that will be explained later, so that the
notation complies with Definition 4.9.1. Note also that ≤ is used instead of <. The
procedure can be divided in three steps:
6.3 Non Model Based Observer and Control Design 157
(a) First of all, it will be shown that if x ∈ D, i.e. x ≤ b, then any other signal or
variable of interest is bounded. Care should be taken! This does not mean that it
is assumed that x is bounded for all time, this has to be eventually proven, but it
means that it is necessary to find out what happens if x ∈ D. For example, one
could have z = q − q̂ ≡ 0, but if q is not bounded then neither q̂ is bounded.
Otherwise said, the boundedness of the state does not imply the boundedness of
all other variables and this has to be shown prior to look for gains to guarantee
ultimate boundedness. This proceeds as follows. From (6.77) and (6.78) one gets
Hence
sr = q̇ − q̇r = r + s + K γ σ − z z. (6.103)
ė + e = sr + z − K γ σ , (6.104)
which is a stable linear filter with bounded input, so that e and ė must be bounded.
But, since e = q − qd , and qd and its derivatives are bounded by assumption, it
can be concluded that q and q̇ are also bounded. On the other hand, from (6.78)
one gets directly
d
q̈r = q̈d − ė + ż − K γ σ, (6.105)
dt
which must be bounded because from (6.81) it is known that dtd σ is bounded.
In turn, this means that ya in (6.94) is bounded. Thus, both ṡr in (6.96) and ṙ
in (6.100) must be bounded in D. Finally, note that u̇ = ṡr − ṙ + z ż is then
bounded.
(b) The next step is to show that, with a proper choice of gains, one can actually
achieve x ≤ b, whenever qd and at least its first and second derivatives are
bounded and x(t0 ) ≤ a for a constant a to be found. Note that Definition 4.9.1
states that b = b(a), i.e. the proposed value should be a, not b. But this is of little
relevance because Theorem 4.5 is to be used. Define
1 T 1
V (x) = sr H(q)sr + rT r, (6.106)
2 2
158 6 Velocity Observer Design
where
1 1
λ1 = min {λh , 1} and λ2 = max {λH , 1} . (6.108)
2 2
As usual, Property 3.7 has been employed. Also, by using Property 3.2, the
derivative of V (x) along (6.96) and (6.100) is given by
While V (x) is positive definite for all x ∈ R2n , its derivative cannot be negative
definite or at least negative semidefinite for all x ∈ R2n . What is sought is to
satisfy condition (4.53) in D to apply Theorem 4.5. In this region, as shown in
item a), bounds can always be found so that it holds
ya ≤ cs (6.111)
ṡr ≤ spmax (6.112)
d
σ ≤ σpmax (6.113)
dt
cr = spmax + λmax (K γ )σpmax (6.114)
are bounds only valid whenever x ∈ D. Therefore, if gains are chosen to satisfy
cs + cr
λmin (K p ) ≥ δ + 1 + (6.115)
μ
1 cs + cr
kd ≥ δ + λmax (K P )2 + , (6.116)
4 μ
6.3 Non Model Based Observer and Control Design 159
V̇ ≤ − δsr 2 − δr2
1
− sr 2 + λmax (K P )sr r − λmax (K P )2 r2
4
cs + cr cs + cr
− sr 2 − r2 + cs sr + cr r
μ μ
2
1
≤ − δx − sr − λmax (K P )r
2
2
cs + cr
− x + (cs + cr )x.
2
(6.117)
μ
Therefore it is
cs + cr
V̇ ≤ −δx2 − x (x − μ) , (6.118)
μ
To apply Theorem 4.5 it is only necessary to find so that (4.55) is satisfied, i.e.
λ1
μ< . (6.120)
λ2
This can be done just by choosing = b and noting that μ is an arbitrary control
parameter so that this goal can always be achieved by setting it small enough.
Finally, one only has to assume that condition (4.56) on x(t0 ) is fulfilled.
(c) Till now it has only been shown that x is uniformly bounded. Although ultimate
uniform boundedness can also be proven, the main goal is to show that tracking
and observation errors tend to zero. To do this, from (6.81) and (6.103) one
obtains
Note that u̇ = ṡr − ṙ + z ż, so that it must be bounded according to the discus-
sion of Step a). Now choose V1 = 21 sT s = 21 s2 to get
ds
s ≤ −λmin (K γ K β )s2 − λmin (K γ )|s| + supmax , (6.122)
dt
160 6 Velocity Observer Design
1 d ds
s2 = s ≤ − λmin (K γ ) − upmax s, (6.123)
2 dt dt
by setting η = λmin (K γ ) − upmax > 0. This can be done by choosing λmin (K γ )
large enough. Therefore, there exists a finite time tr so that s(t) ≡ 0 for all
t ≥ tr ≥ t0 according to the discussion of Section 4.4. This means that from
t ≥ tr one has s(t) = 0, so that (6.77) becomes
Since
d
ṡr − ṙ = −z ż + K γ σ. (6.127)
dt
But from (6.100) it is also
d
ṡr − ṙ = kd r + K γ σ. (6.128)
dt
Then, from (6.127)–(6.128) one has
Equation (6.129) represents a stable linear filter for z, so that z and ż tend to zero.
This in turn means from (6.125) that e and ė do tend to zero as well.
6.4 Experimental Results 161
In this section, a set of experiments is presented to show the performance of the above
observers. For this purpose, the Phantom Omni device described in Chapter 14 is
employed. For the experiments below, only the first three degrees of freedom are used,
while the remaining three are mechanically blocked, as explained in Sect. 14.2. The
dynamic model (14.3) along with the parameters shown in Sect. 14.2.5 are employed.
The experiments presented below are:
1. The Nicosia-Tomei (NT) observer (6.2)–(6.3) along with the control law (6.22)
2. The non-model based observer (NMO) in (6.39)-(6.40) with the control law (6.41)
3. The non model based observer and controller (NMOC) given in (6.75)–(6.76)
and (6.82)
For all the experiments, the desired joint trajectories are
where (a1 , a2 , a3 ) = (−30◦ , 20◦ , −60◦ ), (b1 , b2 , b3 ) = (30◦ , 30◦ , −30◦ ), and ωd =
π . The gains chosen for the experiments are shown in Table 6.1.
Figures 6.1 and 6.2 show the tracking behavior. It is important to recall that this is
the main objective and it can be concluded that the three control-observer approaches
deliver similar outcomes. Regarding the observers performances, they are difficult
to evaluate because the actual velocity q̇ is not known. Therefore, Fig. 6.3 shows
the estimated values vs the desired ones, while Fig. 6.4 shows the corresponding
errors. Finally, the input torques are shown in Fig. 6.5. Certainly, one could have
expected the worst behavior for the NT scheme because of its complete dependence
on the robot model, but as a matter of fact the discretization used to implement
the different algorithms plays an important role. Therefore, even a relatively small
sampling time can largely increase the error in calculating the integral term of the
NMOC, which explains why a zero tracking or observation error is not achieved as
foreseen theoretically. Still, perhaps this is the best option simple because it does not
need any robot model at all and it is easier to program.
Fig. 6.1 Joint position tracking: desired (· · · ), NT (- . -), NMO (—), NMOC (– –)
Fig. 6.3 Joint velocities estimation and tracking: desired (· · · ), NT (- . -), NMO (—), NMOC (– –)
References
Arteaga-Pérez MA, Castillo-Sánchez AM, Parra-Vega V (2006) Cartesian control of robots without
dynamic model and observer design. Automatica 42:473–480
Arteaga-Pérez MA, Ortiz-Espinoza A, Romero JG, Espinoza-Pérez G (2020) On the adaptive control
of robot manipulators with velocity observers. Int J Rob Nonlinear Control 30:4371–4396
Nicosia S, Tomei P (1990) Robot control by using only joint position measurements. IEEE Trans
Autom Control 35(9):1058–1061
Chapter 7
Adaptive and Robust Control
Abstract In the previous two chapters it was shown that the control of robot manip-
ulators is quite direct despite the high nonlinear nature of these systems as long as
the complete robot model is available. It was also shown that some techniques based
on sliding mode control theory can be employed to overcome the complete lack of
the robot analytical model and even the lack of velocity measurements. A possible
drawback of these control laws is that the discretization process for computer imple-
mentation tends to diminish the overall system performance. This chapter presents
other well known control techniques employed to deal with a poor knowledge of the
robot model parameters.
Most of the control laws studied in Chaps. 5 and 6 rely on the exact knowledge of the
robot manipulators. However, in practice there is usually some parameter uncertainty
that might just decrease performance. For example, consider the nominal control law
given by (5.51), i.e.
e = q − qd
q̇r = q̇d − e
s = q̇ − q̇r = ė + e,
and K d , ∈ Rn×n are positive definite diagonal matrices. However, the actual con-
troller is rather given by
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 165
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_7
166 7 Adaptive and Robust Control
where (ˆ·) means that estimated values instead of the actual model parameters are
being used. At this point it is worthy to point out that implicitly it is assumed that the
robot model structure is well known and what is uncertain are constant parameters
just as moments of inertia, link masses or lengths, for example. This is reasonable
because the robot kinematic is usually well known, but masses and center of masses
are hard to compute exactly due to a variety of factors, like the links shapes and
non uniform masses densities. In the last part of the book the computation of many
industrial robots is described, but for the moment let’s take advantage of Property 3.14
to rewrite (7.1) as
In fact, the nominal control law can be written in the very same fashion as
where it can clearly be appreciated that the difference between the actual and the
nominal laws lies in the parameter vector. Add and subtract Y a ϕ from (7.4) to get
τ = Y a ϕ̂ − K d s + Y a ϕ − Y a ϕ
= Y a ϕ − K d s + Y a ϕ̂ − ϕ
= τ n + Y a ϕ̃, (7.6)
where
ϕ̃ = ϕ̂ − ϕ (7.7)
7.1 The Adaptive Law by Slotine and Li 167
is the parameter error. Therefore, by substituting (7.6) in the robot model (3.44) the
closed loop error dynamics can be straightforwardly computed as
although ϕ̃˙ is still undefined. Consider the following Lyapunov candidate function
for s and ϕ̃
1 T 1
V (x) = s H(q)s + ϕ̃ T −1 ϕ̃, (7.10)
2 2
1
V̇ (x) = sT H(q)ṡ + sT Ḣ(q)s + ϕ̃˙ T −1 ϕ̃
2
= −sT K D s + sT Y a ϕ̃ + ϕ̃˙ T −1 ϕ̃. (7.11)
As usual, Property 3.2 has been employed. Note that ϕ is a constant vector and
therefore from (7.7) one gets
˙
ϕ̃˙ = ϕ̂. (7.12)
Choosing ϕ̂˙ implies the design of an adaptive law. The most obvious choice is
Y a ϕ̃ = 0. (7.16)
Unfortunately, x ≡ 0 is not the only solution x that can stay identically in M since
ϕ̃ may happen to lie in the null space of Y a and Theorem 4.3 cannot be employed.
This does not only imply that the equilibrium x ≡ 0 of (7.8) and (7.13) cannot be
shown to be asymptotically stable, but in fact it cannot even be shown that
lim s = 0. (7.17)
t→∞
The fact that V̇ (x) ≤ 0 while V (x) is lower bounded by 0 implies that x is bounded
for all t ≥ t0 and that V (x) tends to a constant value. Technically, this does not mean
that V̇ (x) → 0 and therefore (7.17) does not hold necessarily. However, this can be
proven by using Barbalat’s Lemma 4.5, for which it only has to be shown that V̈ (x)
is bounded. By direct computation it is
V̈ (x) = −2sT K D ṡ
= 2sT K D H −1 (q) (C(q, q̇)s + K D s − Y a ϕ̃) , (7.18)
which shows that V̈ (x) is bounded and as stated by Barbalat’s Lemma V̇ (x) → 0 and
as consequence (7.17) holds, so that in the end e and ė tend to zero as well, which is
the main control objective.
A natural question is whether it is also possible to have ϕ̃ → 0. In fact, it can
be shown that if the regressor Y a is persistently exciting, i.e. if there exist positive
constants T1 and α1 such that for all t ≥ t0 it holds
1
t+T
Assume now that joint velocities are not available. For that case the use of an observer
for velocity estimation is advisable. However, the problem becomes more involved
if the estimated parameters are used both for the observer and the controller. A
possibility is to employ the observer introduced in Sect. 6.2 in Eqs. (6.1) and (6.39)–
(6.40), i.e.
7.2 Adaptive Scheme with Velocity Observers 169
z = q − q̂
ξ̇ = z
q̂˙ = q̇r + kd (z + z ξ ) + z z,
Note the similarity of (7.1) with (7.20). The latter can be rewritten as
Y a ϕ̃ = Y(q, q̇r , q̂¨ r )ϕ̃ = H̃(q)q̂¨ r + C̃(q, q̇r )q̇r + D̃q̇r + g̃(q). (7.22)
r = q̇ − q̇o = ż + z z
q̂¨ = q̈ + r
r r
so = s − r.
ṙ + K H r = Bs,
one has
K H = kd I − − H −1 (q)K d
B = −H −1 (q) C(q, q̇) + K D + C(q, q̇r ) .
It is easy to note that the only differences between (6.50) and (7.24) and
between (6.53) and (7.25) are the terms Y a ϕ̃ and H −1 (q)Y a ϕ̃, respectively. In
Sect. 6.2 it was shown that for ϕ̃ ≡ 0 then s, r → 0 and consequently e, ė, z, ż → 0.
Intuitively in general this will not be the case, but also intuitively if ϕ̃ ≤ ϕmax < ∞
∀ t ≥ t0 , the tracking and observation errors will not tend to zero but will remain
ultimately bounded. To check this intuition out and to find out whether the ultimate
bound can be made arbitrarily small or not, consider the following state defition
s
y= , (7.26)
r
for (7.24) and (7.25). Note that this definition excludes ϕ̃ as part of the state, but
this is on purpose to treat it rather as a perturbation. Note also that ϕ̃ ≤ ϕmax < ∞
∀ t ≥ t0 can be achieved simply by considering ϕ̂ to be constant or by design of
an adaptive law specially for this goal. Then consider once again a region Dy as
in (4.28), say
Dy = y ∈ R2n \ y < ,
for some arbitrarily large 0 < < ∞. With this background Theorem 4.5 can be
employed by using
1 T 1
V (y) = s H(q)s + rT r, (7.27)
2 2
7.2 Adaptive Scheme with Velocity Observers 171
1 1
α1 (y) = λ1 y2 and α2 (y) = λ2 y2 ,
2 2
and
where λh and λh are given in Property 3.7. To show that condition (4.53) also holds
for some μ > 0, it is not difficult to get from (6.64)–(6.71) that the derivative of V (y)
along (7.24)–(7.25) satisfies
V̇ (y) ≤ −δy2 + sT + rT H −1 (q) Y a ϕ̃. (7.28)
Note that from (6.46) the boundedness of q̂¨ r in Dy can be concluded by considering
that the derivative of q̇r = q̇d − e must be bounded in Dy . This means that there
exists some yam > 0 so that Y a ≤ yam < ∞ for y ∈ Dy . Therefore, (7.28) satisfies
1
V̇ (y) ≤ − δy2 + y 1 + yam ϕmax
λh
1
= − δy2
2
1 1
− y δy − 1 + yam ϕmax , (7.29)
2 λh
2 1
y ≥ 1+ yam ϕmax = μ, (7.30)
δ λh
it holds
λ1
μ< , (7.32)
λ2
2 λ2 1
1+ yam ϕmax < δ, (7.33)
λ1 λh
λ2
y < μ = bf . (7.34)
λ1
But this means that also from t0 + T ≤ t then it holds s ≤ bf and r ≤ bf which
necessarily mean that e, ė, z and ż can be made arbitrarily small by setting δ arbitrarily
large to make μ, and therefore bf , arbitrarily small.
The previous analysis may appear to be unnecessary but it allows to show one
of the main problems to be solved when using parameter and velocity estimation
together. Complete the state y in (7.26) to include the parameter error ϕ̃, i e.
⎡ ⎤
s
y
x= = ⎣ r ⎦, (7.35)
ϕ̃
ϕ̃
so that additionally to the positive definite function V (y) in (7.27) it can be included
the term
1 T −1
Vϕ (ϕ̃) = ϕ̃ ϕ̃, (7.36)
2
7.2 Adaptive Scheme with Velocity Observers 173
to get
1
V (x) = V (y) + ϕ̃ T −1 ϕ̃, (7.37)
2
whose derivative according to (7.28) satisfies
V̇ (x) ≤ −δy2 + sT + rT H −1 (q) Y a ϕ̃ + ϕ̃˙ T −1 ϕ̃. (7.38)
Therefore, to get the same result as in the previous section, the adaptive law would
have to be
ϕ̃˙ = −Y Ta s + H −1 (q)r , (7.39)
where it has been taken into account that H −1 (q) is symmetric. Clearly, (7.39) is
not implementable. A possibility lies in designing a composite algorithm, which are
those adaptive laws that use joint tracking errors and parameter prediction errors
together. To form the latter it is necessary to get the filtered input τ f ∈ Rn as
d
τ f = −λf τ f + λf τ = −λf τ f + λf Y(q, q̇, q̈)ϕ, (7.40)
dt
with λf > 0 and where Property 3.14 is employed. The corresponding filtered regres-
sor Y f (q, q̇) ∈ Rn×p can then be computed in the same fashion as
d
Y f = −λf Y f + λf Y(q, q̇, q̈), (7.41)
dt
resulting in
t
Y f (q, q̇) = λf e−λf (t−ϑ) Y(ϑ)dϑ, (7.42)
0
where the arguments q, q̇ and q̈ have been omitted for simplicity and zero initial
conditions are chosen. Note that the effect of filtering the regressor is to eliminate
the acceleration q̈ and that since the vector of parameters is constant, then it holds
= Y f ϕ̂ − τ f = Y f ϕ̃, (7.44)
174 7 Adaptive and Robust Control
with Ŷ f (q, q̇o ) ∈ Rn×p . For simplicity’s sake, Y f or Y f (·) and Ŷ f or Ŷ f (·) will be used
hereafter as long as there is no place for confusion, while the prediction error has to
be redefined as
= Ŷ f ϕ̂ − τ f = Ŷ f ϕ̂ − Y f ϕ, (7.46)
where ∈ Rp×p is a diagonal positive definite gain matrix and β is a constant scalar
gain. Define
t+Tf
T
Ŷ f (t)Ŷ f (t)dt ≥ αf I
t
holds for some positive constants Tf and αf for all t ≥ t0 . Then, as pointed out in
many of the references at the end of this chapter, the autonomous system
˙
ϕ̃(t)
T
= −β Ŷ f Ŷ f ϕ̃ (7.51)
for some positive constants c1 , c2 and c3 . However, knowing that these conditions are
satisfied and finding the corresponding Vϕ (ϕ̃) are different things. For example, the
positive definite function given in (7.36) clearly satisfies (4.29). With this in mind
V (x) in (7.37) satisfies (4.29) with
1 1
α1 (y) = λ1 y2 and α2 (y) = λ2 y2 ,
2 2
and
1 1
λ1 = min λh , 1, and λ2 = max λH , 1, ,
λmax () λmin ()
where λh and λH are given in Property 3.7. To get a stability result, define as usual a
region of interest of the form (4.28), i.e.
D = x ∈ R2n+p \ x < ,
for some 0 < < ∞ which does not need to be the same as in Dy . In this region it
is not difficult to show that
holds for some 0 < yfm < ∞. Therefore, according to (7.28) and (7.50), V̇ (x) satis-
fies
V̇ (x) ≤ − δy2 + sT + rT H −1 (q) Y a ϕ̃
T T
− β ϕ̃ T Ŷ f Ŷ f ϕ̃ − β ϕ̃ T Ŷ f Ỹ f ϕ − ϕ̃ T Y Ta (s − r)
= − δy2 + rT I + H −1 (q) Y a ϕ̃
T T
− β ϕ̃ T Ŷ f Ŷ f ϕ̃ − β ϕ̃ T Ŷ f Ỹ f ϕ. (7.53)
T
At first sight it can be thought that c3 = βλmin (Ŷ f Ŷ f ). However, Ŷ f ∈ Rn×p and in
T
general n < p so that at most rank(Ŷ f ) = n and thus λmin (Ŷ f Ŷ f ) = 0. Therefore,
another Vϕ (ϕ̃) for which c3 > 0 must be found so that a combination of gains to get
x → 0 can be found. This positive definite function must exist if Ŷ f is persistently
exciting as said before, but it appears to be a waste of time to look for it because
in the end Ŷ f satisfying this condition is only an assumption which may be hard to
enforce. On the contrary, consider the more reasonable following assumption.
176 7 Adaptive and Robust Control
This assumption is more relaxed than it appears to be because at least the sign of
the parameter ϕi is always known (say it is positive), so that the lower bound is 0. The
upper bound can be considered any constant value arbitrarily large. Then, instead
of (7.47) consider
T
˙
ϕ̂(t) = − β Ŷ f + Y Ta so + f b ϕmi ≤ ϕ̂i (0) ≤ ϕMi , (7.55)
T T
where ρi > 1, Ŷ fi is the ith row of Ŷ f , yTai is the ith row of Y Ta , and ϕ1i < ϕ2i ≤ ϕmi <
ϕMi ≤ ϕ3i < ϕ4i . The effect of (7.56) is to keep the estimated parameters bounded
for all t ≥ t0 , which as discussed before allows at the very least to get ultimate
boundedness for s and r. To show this note that the ith element of ϕ̃˙ satisfies
T
ϕ̃˙ i = ϕ̂˙i = −γi β Ŷ fi + yTai so + fbi , (7.57)
where γi is the ith element of the diagonal of for i = 1, . . . , p. Define the positive
definite function
1 2
V = ϕ̃ , (7.58)
2γi i
if ϕ2i ≤ ϕ̂i ≤ ϕ3i , but quite obviously ϕ̂i is bounded. On the contrary, if ϕ̂i < ϕ2i ≤
ϕmi then sign(ϕ̃i ) = −1, while if ϕMi ≤ ϕ3i < ϕ̂i then sign(ϕ̃i ) = +1, so that one has
7.2 Adaptive Scheme with Velocity Observers 177
ϕ2i − ϕ̂i T
V̇ ≤ − ρi − 1 |ϕ̃i | · |β Ŷ fi + yTai so |, (7.60)
ϕ2i − ϕ1i
ϕ̂i − ϕ3i T
V̇ ≤ − ρi − 1 |ϕ̃i | · |β Ŷ fi + yTai so |, (7.61)
ϕ4i − ϕ3i
for ϕMi ≤ ϕ3i < ϕ̂i . But, due to the restriction on the initial condition, the worst
possible case for (7.60) and (7.61) can be ϕ̂i = ϕ1i or ϕ̂i = ϕ4i , respectively, so that
they become
Since ρi > 1 then V̇ < 0 implying that |ϕ̃i | diminishes its value and thus it has to
hold ϕ1i ≤ ϕ̂i (t) ≤ ϕ4i . This shows the boundedness of the estimated parameters
gotten from (7.55) and as a direct consequence the possibility of achieving ultimate
boundedness with arbitrarily small bound for s and r.
Finally, for the unaware reader it may be difficult to understand at first sight
why filtering the regressor eliminates acceleration terms. The following example is
intended to clarify this issue.
Example
If yij is the ijth element of Y(q, q̇, q̈), for i = 1, 2 and j = 1, . . . , 4, then according
to (7.41) every element yfij of Y f (q, q̇) can be computed by solving
t
−λf t
yfij (t) = yfij (0)e + λf e−λf (t−ϕ) yij (ϕ)dϕ
0
t
−λf t −λf t
= yfij (0)e + λf e eλf ϕ yij (ϕ)dϕ.
0
t
yfij (t) = λf e−λf t eλf ϕ yij (ϕ)dϕ.
0
In general, it is not possible to compute a closed form solution of the previous rela-
tionship and it has to be solved online, but to eliminate acceleration terms integration
by parts can be used according to
vdw = vw − wdv. (7.63)
t
−λf t
yf11 (t) = λf e eλf ϕ q̈1 dϕ.
0
By choosing
dw = q̈1 dϕ and v = e λf ϕ ,
to get
⎛ ⎞
t t
yf11 = λf e −λf t ⎝e q̇1 −
λf t
λf e λf ϕ
q̇1 dϕ ⎠ = λf q̇1 − λ2f e−λf (t−ϕ) q̇1 dϕ,
0 0
7.2 Adaptive Scheme with Velocity Observers 179
it can be appreciated that q̈1 has disappeared. But consider also the factor c2 q̈1 in
yf22 . For that case
t t
λf ϕ λf t
λf ϕ
e cos(q2 )q̈1 dϕ = e cos(q2 )q̇1 − λf e cos(q2 ) − eλf ϕ sin(q2 )q̇2 q̇1 dϕ.
0 0
t
λf cos(q2 )q̇1 − λf e−λf (t−ϕ) (λf cos(q2 )q̇1 − sin(q2 )q̇2 q̇1 ) dϕ,
0
where once again the acceleration has disappeared. The rest of yf22 and of the elements
of Y f (q, q̇) can be computed in the same way.
Adaptive control is a good option to compensate the lack of an accurate model param-
eter vector. However, an alternative consists in working with a constant parameter
vector and to add a robust term to the nominal control law aimed at compensating
the inaccuracies. Similar to Assumption 7.1 it is made:
Assumption 7.2 For a nominal constant value of the parameter vector ϕ, denoted
as ϕ 0 , an upper bound ρ < ∞ for the parameter error ϕ̃ is known, i.e.
ϕ̃ = ϕ 0 − ϕ ≤ ρ (7.64)
holds.
This way, instead of (7.1) one has a nominal control law given by
with K d > O as usual, Y a = Y(q, q̇, q̇r , q̈r ) as in (7.3), and (5.1), (5.49) and (5.50)
have been employed. Since in general ϕ 0 = ϕ, the control law (7.65) can be com-
plemented in the following fashion
τ = τ 0 + Y a f = Y a (ϕ 0 + f ) − K d s, (7.66)
where K D is defined as before. The last equation shows that the term f can directly
be used to deal with the error ϕ̃. A possibility is to choose
⎧
⎪
⎪ Y Ta s
⎨ −ρ Y T s if Y a s > η
T
f = a
(7.68)
⎪
⎪
⎩ ρ
− η Y Ta s if Y Ta s ≤ η
Note that this term is continuous for η > 0. To show the effect of f consider once
again
1 T
V (t, s) = s H(q)s,
2
which satisfies (4.29), i.e.
with
1 1
α1 (s) = λh s2 and α2 (s) = λH s2 ,
2 2
where λh and λH are given in Property 3.7. The derivative of V (s) along (7.67) is
given by
Y Ta s
f = −ρ ,
Y Ta s
and therefore it is
T Y Ts
sT Y a (ϕ̃ + f ) = Y Ta s ϕ̃ − ρ aT
Y a s
Y Ta s2
≤ Y Ta sϕ̃ − ρ
Y Ta s
≤ Y Ta sρ − ρY Ta s = 0.
7.3 Robust Control 181
ρ
f = − Y Ta s,
η
and therefore it is
T ρ
sT Y a (ϕ̃ + f ) = Y Ta s ϕ̃ − Y Ta s
η
ρ T 2
≤ Y a sρ − Y a s
T
η
1
= ρ Y Ta s − Y Ta s2
η
1
= ρY Ta s 1 − Y Ta s , (7.70)
η
which is valid for 0 ≤ Y Ta s ≤ η and it is always positive except for the border
values where it becomes zero. The worst possible case is given at the maximum with
respect to Y Ta s, which can be computed according to
∂ 1 2 T
Y Ta s − Y Ta s2 =1− Y s.
∂Y a s
T η η a
Of course, (7.71) can be considered valid even if η < Y Ta s, so that substituting
in (7.69) yields to
η
V̇ ≤ −λmin (K d )s2 + ρ
4
1 1 η
≤ − λmin (K d )s − λmin (K d )s2 + ρ .
2
2 2 4
This way it is easy to see that if
η 1
ρ ≤ λmin (K d )s2 ,
4 2
182 7 Adaptive and Robust Control
Therefore, if s ≥ μ it is
1
V̇ ≤ − λmin (K d )s2 = −W3 (s),
2
which complies with condition (4.53) of Theorem 4.5. Note that this time it was not
really necessary to define a region D because D ≡ Rn and the result holds for any
initial condition s(t0 ) or equivalently for any e(t0 ) and ė(t0 ). Finally, the ultimate
bound can be computed using (4.73), which for this case is
λH ρ ηλH
bf = μ= .
λH 2λmin (K d )λH
Just as made before for the adaptive scheme, in this section the tracking control
problem of rigid robot arms with model parameter uncertainty and without velocity
measurements is studied. Consider the usual definitions (5.1), (6.1), (6.43), (6.45)
and (6.73) i.e.
e = q − qd
z = q − q̂
q̇ = q̂˙ − z z
o
r = q̇ − q̇o = ż + z z
eo = q̂ − qd ,
with ∈ Rn×n a diagonal positive definite matrix. Let ϕ 0 be the nominal (constant)
value of the robot model parameters vector, given by ϕ, while for the parameter error
vector ϕ̃ = ϕ 0 − ϕ, the following assumption is made:
Assumption 7.3 Let ϕ̃i be the ith element of ϕ̃. For i = 1, . . . , p bounds are known
such that it holds
As before, the bounds ϕmi can be set arbitrarily large if necessary. Similar to (6.39)
and (6.40), the following linear observer is proposed:
q̂˙ = ξ + z z + kd z (7.75)
ξ̇ = q̈r + kd z z, (7.76)
˙ The proposed
where kd is a positive real constant and q̂ is obtained by integrating q̂.
controller is given by
τ = H 0 (q)q̈r + C 0 (q, q̇r )q̇r + D0 q̇r + g0 (q) − K d q̇o − q̇r + f
= Y a ϕ 0 − K d q̇o − q̇r + f , (7.77)
where ŝ + r̂ = q̂˙ − q̇d + e, and ηi , i = 1, . . . , p, are positive constants. Since q̇o −
q̇r = s − r, (7.77) can be written as
By substituting (7.79) in the robot model (3.44) and using Property 3.4 to have
C(q, q̇r )q̇r = C(q, q̇)q̇r + C(q, q̇r )q̇r − C(q, q̇)q̇r
= C(q, q̇)q̇r − C(q, q̇r )s, (7.80)
ṙ + kd r = ṡ. (7.83)
C(q, q̇)s + C(q, q̇r )s = C(q, q̇)r − C(q, q̇)r + C(q, q̇ + q̇r )s, (7.85)
yields to
for some 0 < < ∞. As usual, the key idea is that whenever x ∈ D then the bound-
edness of r implies that of z and ż due to ż = −z z + r. On the other hand, the
boundedness of s and z implies from (7.73) that e and ė must be bounded. Also, since
qd and its derivatives are bounded by assumption then so are q and q̇. Therefore,
from (7.72) q̇r and q̈r must be bounded, and as direct consequence Y a (q, q̇r , q̈r ) is
7.4 Control-Observer Robust Scheme 185
bounded as well. This in turn means that f is bounded according to (7.78) and so
must be then ṡ in (7.81) in view of Property 3.1. From (7.86) this means that ṙ is
bounded as well. Consider
1 T 1
V (x) = s H(q)s + rT H(q)r, (7.88)
2 2
which satisfies (4.29), i.e.
with
1 1
α1 (x) = λh x2 and α2 (x) = λh x2 . (7.89)
2 2
λh and λH are given in Property 3.7. By taking into account Property 3.2, compute
the derivative of V (x) along (7.81) and (7.86) to get
q̇ ≤ vm
q̇r ≤ vrm
%
p
μa = 2 max yai ϕmi ,
i=1
so that
μa
Y a ϕ̃ ≤ ,
2
and
%p
ϕmi yai yTai ŝ + r̂ μa
f ≤ ≤ ,
i=1
yai ŝ + r̂ + ηi
T 2
186 7 Adaptive and Robust Control
hold. Then, by using K D = D + K d and taking into account that Properties 3.7, 3.9
and 3.10 one has
Therefore, by choosing
For
μa
x ≥ =μ (7.95)
δ
it is
subject to
λH
μ< , (7.97)
λh
so that condition (4.53) of Theorem 4.5 is satisfied, and as consequence the trajec-
tories are ultimately bounded according to (4.73), i.e.
λH
x ≤ μ = bf , ∀ t ≥ t0 + T , (7.98)
λh
for some T > 0. At this point, it is evident that the smaller one wishes bf to be the
larger control gains must be. However, f tries to avoid using large gains by mimicking
up to some point (7.68). To understand this, for a small bf it holds ŝ + r̂ ≈ s + r and
therefore q̂˙ ≈ q̇. Make this substitution in (7.78) to have the term (s + r)T (Y a ϕ̃ + f )
in (7.90) approximated by
7.4 Control-Observer Robust Scheme 187
(s + r)T (Y a ϕ̃ + f )
%
p
ϕmi yTai (s + r) 2
≤ yTai (s + r) ϕmi −
i=1
yTai (s + r) + ηi
%p
≤ ϕmi ηi = η. (7.99)
i=1
In other words, if q̂˙ ≈ q̇, f becomes a robust term like the one given in (7.68),
where joint velocities are available. Using the same arguments as in Sect. 7.3, it is
straightforward to show that making the parameters ηi small enough may do x
tend to an even smaller region than the nominal one given by (7.98). While this is
not a formal proof, it helps to understand how f works.
In the previous sections it was taken advantage of Property 3.14 to compensate model
parameters inaccuracies. The main disadvantage of the approaches considered before
is that the model structure should be well known. This does not allow to deal explicitly
with non modeled dynamics. The Generalized Proportional Integral (GPI) observers
attempt to compensate non modeled dynamics with p-degrees polynomials and they
represent an alternative. To illustrate this technique, consider the computed torque
control law seen in Sect. 5.3 rewritten in the following form
& '
τ = H(q) q̈d − 2ζ ωn ė − ω2n e + C(q, q̇)q̇ + Dq̇ + g(q), (7.100)
where e = q − qd is the tracking error given in (5.1), and ζ and ωn ∈ Rn×n are positive
definite diagonal matrices. This leads to the closed loop dynamics
ë + 2ζ ωn ė + ω2n e = 0, (7.101)
which guarantees that tracking errors will tend to zero. Although theoretically the
control problem is exactly solved, cancelling C(q, q̇)q̇ + Dq̇ + g(q) is not really
possible. A basic GPI observer requires only the inertia matrix H(q) at the cost of
not achieving exact tracking but ultimate boundedness. To understand this approach,
assume that for any desired trajectory qd exists an ideal yet unknown control input
τ ∗ achieving exact tracking. For that case it must hold
Then one can form the closed loop tracking error dynamics as
where z ∈ Rn is defined as
& '
z = − H −1 (q) C(q, q̇)q̇ + Dq̇ + g(q)
& '
+ H −1 (qd ) C(qd , q̇d )q̇d + Dq̇d + g(qd ) − H −1 (qd )τ ∗ . (7.104)
But (7.105) is not implementable because z is unavailable. The goal of the GPI design
is to estimate z and ė (not q̇!) simultaneously so that (7.105) becomes
( )
τ = H(q) −2ζ ωn ėˆ − ω2n e − ẑ , (7.106)
where (ˆ·) is the estimate of (·). The closed loop dynamics is then given by
After (7.107), if both ẽ2 and z̃ can be made arbitrarily small, then e and ė can also
become arbitrarily small. The main problem is that z in (7.104) actually lumps all
unknown or uncertain terms and therefore it does not even own a well defined struc-
ture. To find a substitute for the dynamic behavior of z assume that it has a smooth
enough behavior so that in any time interval [t1 , t2 ] it can be approximated by a
polynomial of the form
%
p−1
z= ai t i + r, (7.110)
i=0
z(t) p−1
z(t) = ai ti + r()
i=0
t2 t
t1
Fig. 7.1 Approximation of z by a polynomial on the time interval [t1 , t2 ].
Now, consider the fact that the constant coefficients in (7.110) allow to get the
following equivalent description to describe z which is valid for t ∈ [t0 , ∞):
ż = ż1 = z2 (7.111)
..
.
żp−1 = zp = ż(p−1) (7.112)
(p) (p)
żp = r = ż . (7.113)
Recall that it has been assumed that r(p) exists. On the other hand, the polynomial
description in (7.110) is observable from the measurable position coordinate. Indeed,
from (7.103) it is
meaning that z can be written in terms of the output q, a finite number of its time
derivatives, the known quantity qd (t), and the control input, τ . Hence, z is observable.
Therefore, a linear Luenberger observer can be designed to estimate z, for which it
is necessary to rewrite model (7.103) as
ė = e2 (7.115)
−1
ė2 = H (q)τ + z1 , (7.116)
190 7 Adaptive and Robust Control
where it has been set z1 = z and e2 = ė. Based on (7.111)–(7.113) and (7.115)–
(7.116) and by defining
where λ0 , . . . , λp+1 ∈ Rn×n are diagonal positive definite matrices. System (7.111)–
(7.113) and (7.115)–(7.116) in closed loop with the GPI control–observer scheme
given by (7.106) and (7.120)–(7.124) delivers the error dynamics
dp
ẽ(p+2) + λp+1 ẽ(p+1) + · · · + λ0 ẽ = r(p) = z. (7.132)
dt p
7.5 Generalized Proportional Integral (GPI) Observer 191
Rewrite (7.132) as
ẋ = Ax + Br(p) , (7.133)
where
⎡ ⎤
ẽ
⎢ .. ⎥
x=⎣ . ⎦ (7.134)
(p+1)
ẽ
is the error state and A ∈ Rn(p+1)×n(p+1) and B ∈ Rn(p+1)×n are constant matrices
given by
⎡ ⎤
O I ··· O
⎢ .. .. ⎥
⎢ . ⎥
A=⎢ . ⎥ (7.135)
⎣ O O ··· I ⎦
−λ0 −λ1 · · · −λp+1
& 'T
B = O ··· O I . (7.136)
be Hurwitz. Note that the scalar s to denote the Laplace variable should not be
confused with the vector sliding variable s. This renders system (7.133) stable. Define
the following region of the form (4.28), i.e.
D = x ∈ Rn(p+1) \ x < , (7.138)
where is a positive constant that can be arbitrarily large. By using a rather involved
procedure it can be shown that whenever x ∈ D, then any signal of interest is bounded
and the state x is ultimately bounded with a final bound that can be made arbitrarily
small by choosing the roots of (7.137) as far on left hand side of the s plane as
possible. The proof is skipped because it does not rely directly on Theorem 4.5.
It is interesting to note that the observer (7.120)–(7.124) needs only the inertia matrix
to be known for implementation, but since in the end there is no reason at all to assume
it well known while the rest of the model is not, a possibility to omit it as well is
the following. When the robot model and velocity measurements are available, it has
been shown that the control law (5.51), i.e.
192 7 Adaptive and Robust Control
q̇r = q̇d − e
s = q̇ − q̇r = ė + e,
have been used with K d , ∈ Rn×n diagonal positive definite matrices. In closed loop
one gets
with
However, the control law can no longer be given by (7.106). Instead, it can be used
so that if both ẽ˙ and z̃ can be made arbitrarily small, then it can easily be shown that s
(and as a direct consequence e and ė) can be made arbitrarily small as well. However,
the control law (7.142) still relies on the exact knowledge of the inertia matrix H(q).
Suppose that it is unknown and that it is approximated by the simple substitution
H(q) ≡ I. (7.144)
This last equation makes apparent that ẑ tries to compensate H(q)z rather than z
alone. For this reason it is more convenient to redefine z in (7.141) as
z = H(q) ė − q̈r − H −1 (q){C(q, q̇)q̇r + Dq̇ + g(q)}
= H(q) ė − q̈r − C(q, q̇)q̇r − Dq̇ − g(q). (7.147)
ė = e2 (7.148)
−1 −1
ė2 = H (q)(τ − C(q, q̇)s) − ė + H (q)z1 (7.149)
ż1 = z2 (7.150)
..
.
żp−1 = zp (7.151)
(p)
żp = r , (7.152)
where z1 = z has been used as before and it is assumed that r(p) exists. The observer
is now given by
where τ is not employed in (7.154) because it cannot be canceled exactly and thus
its introduction does not represent any advantage. Also, instead of (7.146) one has
On the other hand, from (7.150)–(7.152) and (7.155)–(7.157) one can compute
or
ẽ¨ + λp+1 ẽ˙ + λp ẽ = H −1 (q)(−K d s + K d ẽ˙ − C(q, q̇)s) + H̄(q)z̃ + z̃, (7.165)
and by computing the pth derivative of (7.165) and substituting in (7.159) one gets
ẋ = Ax + Br̄f , (7.168)
with r̄f = r(p) + f (p) . As before, if a region of interest of the form (4.28) is defined,
then it can be shown that a combination of roots for the polynomials in (7.137) can
always be chosen to make the sliding variables (s, ṡ) and the tracking errors (e, ė, ë)
in (7.158) and the observation errors x in (7.134) arbitrarily small. Furthermore, the
estimate ẑ1 becomes arbitrarily close to the real value z. Once again, the proof is
omitted because it is very involved and not based on Theorem 4.5.
The desired trajectory in joint coordinates for all the experiments below is given
by ⎡ ⎤
−30 ◦ + 30 ◦ (1 − cos(π t))
qd = ⎣ 20 ◦ + 30 ◦ (1 − cos(π t)) ⎦ , (7.169)
−60 ◦ − 30 ◦ (1 − cos(π t))
whereas the desired velocities and accelerations, q̇d and q̈d , are obtained by taking
the time derivative of the desired joint position.
Slotine–Li Adaptive Controller
Tuning Guide
The necessary equations to implement the Slotine–Li adaptive controller are (5.1),
(5.49), (5.50), (7.4), and (7.13). To tune the controller consider the following sug-
gestions.
• Set an initial guess for the parameters vector, ϕ̂(t0 ), it can be the zero vector if no
knowledge of the parameters is available.
• At first, neglect the adaptive term, Y a ϕ̂, by setting = O, and tune the remaining
one as a standard PD controller by setting K d equal to the derivative gain matrix,
and set = K −1d K p , where K p is the proportional gain matrix.
• Now, set as a diagonal matrix, for which every element on the diagonal cor-
responds to the adaptation gain of a particular parameter. Start by setting very
small adaptation gains and gradually increase them until the parameters tend to a
constant value within a desired settling time.
Experiment
The gains chosen for the implementation of the Slotine–Li algorithm by following
the tuning guide are displayed in Table 7.1. The position tracking in joint coordi-
nates is shown in Fig. 7.2, and the corresponding tracking error in Fig. 7.3. The
joint velocities estimated by means of a derivative filter are shown along with the
desired joint velocities in Fig. 7.4. The time evolution of the estimated parame-
ters is shown in Fig. 7.5. The initial guess for the parameters vector was set to
& 'T
ϕ̂ = 0 0 0 0.02 0.02 0.02 0 0 . The first three parameters correspond to the iner-
tia matrix and Coriolis vector, the next three correspond to viscous friction and the
last two to the gravity vector.
Fig. 7.2 Slotine–Li controller, joint position tracking: desired (· · · ), real (—)
Table 7.2 Chosen gains for the adaptive scheme of Sect. 7.2.
Gain Value
Kd diag{0.01, 0.01, 0.01}
diag{50, 50, 25}
1 × 10−5 diag{1, 1, 1, 1, 1, 1, 10, 10}
kd 200
z diag{1, 1, 1}
β 10
Experiment
The gains chosen for the implementation of the scheme of Sect. 7.2 by following
the tuning guide above are displayed in Table 7.2. The position tracking is dis-
played in Fig. 7.6, whereas the corresponding tracking error is shown in Fig. 7.7.
The joint velocities estimated by the proposed observer are shown along with the
desired joint velocities in Fig. 7.8. The time evolution of the estimated parame-
ters is shown in Fig. 7.9. The initial guess for the parameters vector was set to
& 'T
ϕ̂ = 0 0 0 0.02 0.02 0.02 0 0 as in the Slotine–Li scheme.
198 7 Adaptive and Robust Control
Fig. 7.4 Slotine–Li controller, joint velocities: desired (· · · ), numerical derivative (—)
Robust Controller
Tuning Guide
The equations required to implement the robust controller of Sect. 7.3 are the track-
ing variables (5.1), (5.49), (5.50), the control law (7.66), and the function defined
in (7.68). For this scheme, a nominal parameters vector ϕ 0 is also required. The
following directions might be useful when implementing this controller.
• At first, set ρ = 0 in (7.68), and tune the remaining one as a standard PD plus
Feedforward controller.
• Set ρ to satisfy (7.64).
• Finally, set η > 0, perhaps after looking at the time-plot of Y Ta s to obtain the desired
performance.
7.7 Experimental Results 199
Fig. 7.5 Slotine–Li controller, estimated parameters: θ̂1 (—), θ̂2 (—), θ̂3 (—), θ̂4 (—), θ̂5 (– –),
θ̂6 (– –), θ̂7 (– –), θ̂8 (– –)
Table 7.3 Chosen gains for the robust controller of Sect. 7.3
Gain Value
Kd diag{0.01, 0.01, 0.01}
diag{50, 50, 25}
η 40
ρ 0.0005
Experiment
By following the above tuning guide, the gains chosen for the implementation of
the robust controller described in Sect. 7.3 are displayed in Table 7.3. The nominal
value for the parameters vector was set to
& 'T
ϕ 0 = 0.0045 0.0003 0.0045 0.0014 0.0012 0.0006 0.0049 0.013 ,
after the estimation reported in Sect. 14.2.5. The position tracking is displayed in
Fig. 7.10, whereas the corresponding tracking error is shown in Fig. 7.11. The joint
velocities obtained by a derivative filter are shown along with the desired joint veloc-
ities in Fig. 7.12.
200 7 Adaptive and Robust Control
Fig. 7.6 Adaptive scheme with velocity observers, joint position tracking: desired (· · · ), real (—)
Fig. 7.7 Adaptive scheme with velocity observers, joint position tracking error
Experiment
The gains chosen for the implementation of the scheme of Sect. 7.4 by following the
tuning guide above are displayed in Table 7.4. The nominal value for the parameters
vector was set to
& 'T
ϕ 0 = 0.0045 0.0003 0.0045 0.0014 0.0012 0.0006 0.0049 0.013 ,
after the estimation reported in Sect. 14.2.5. The position tracking is displayed in
Fig. 7.13, and the corresponding tracking error is shown in Fig. 7.14. The joint veloc-
ities estimated by the proposed observer are shown along with the desired joint
velocities in Fig. 7.15.
GPI Observer
Tuning Guide
To implement the GPI observer controller of Sect. 7.5, the required equations are the
tracking error (5.1), the observer Eqs. (7.117)–(7.124), and the control law (7.106).
The tuning procedure can be carried out as follows.
202 7 Adaptive and Robust Control
Fig. 7.8 Adaptive scheme with velocity observers, joint velocities: desired (· · · ), observer (—)
Table 7.4 Chosen gains for the control-observer scheme of Sect. 7.4
Gain Value
Kd diag{0.01, 0.01, 0.01}
diag{50, 50, 25}
kd 200
z diag{1, 1, 1}
η 1 × 10−6
ϕmi 5 × 10−5 , i = 1, 2, . . . , 8
• Select the degree of the polynomial p in (7.110) to define the order of the dynamic
extension that represents the internal model for the unknown dynamics. As a
rule, the higher p the accurate the signals the controller can reject, at the cost of
increasing undesired effects like the well known peaking phenomena arising when
employing high-gain observers. For the common tasks of robotic manipulation,
usually p = 2 is a good choice.
• Set the pole observers of the diagonal matrix polynomial (7.138) as far in the left
of the complex plane as the bandwidth allows it, and compute the observer gains
7.7 Experimental Results 203
Fig. 7.9 Adaptive scheme with velocity observers, estimated parameters: θ̂1 (—), θ̂2 (—), θ̂3 (—),
θ̂4 (—), θ̂5 (– –), θ̂6 (– –), θ̂7 (– –), θ̂8 (– –)
Table 7.5 Chosen gains for the GPI observer scheme of Sect. 7.5
Gain Value
p 2
λ0 8.1 × 105 I
λ1 10.8 × 104 I
λ2 5.4 × 103 I
λ3 120I
ζ I
ωn 40I
0.4 s
λ0 , . . . , λp+1 . As a rule, the higher the sampling frequency, the larger can be these
poles in magnitude.
• Choose the constant matrices ζ and ωn according to a desired second-order system
response.
204 7 Adaptive and Robust Control
Fig. 7.10 Robust controller, joint position tracking: desired (· · · ), real (—)
where is the time duration of the peaking. Finally, multiply ê2 and ẑi , i = 1, . . . , p,
by fclutch .
Experiment
The gains chosen for the implementation of the scheme of Sect. 7.5 by following the
tuning guide above are displayed in Table 7.5. The position tracking is displayed in
Fig. 7.16, whereas the corresponding tracking error is shown in Fig. 7.17. The joint
velocities estimated by the proposed observer are shown along with the desired joint
velocities in Fig. 7.18.
7.7 Experimental Results 205
Fig. 7.12 Robust controller, joint velocities: desired (· · · ), numerical derivative (—)
• At first, neglect the ẑ term in the control law (7.145), and tune the remaining one
as a standard PD controller by setting K d equal to the derivative gain matrix, and
= K −1d K p , where K p is the proportional gain matrix.
Remark 7.2 To improve the performance of the controller, another constant matrix
different from the identity in (7.144) can be used, which better approximates H(q),
e.g. H(q0 ), where q0 is any point on the desired joint trajectory.
Experiment
The gains chosen for the implementation of the scheme of Sect. 7.6 by following
the tuning guide above are displayed in Table 7.6. To improve the performance, the
constant matrix ⎡ ⎤
0.0049 0 0
H 0 = H(0) = ⎣ 0 0.0097 0.0048⎦ ,
0 0.0048 0.0045
obtained with the parameters estimated in Sect. 14.2.5, was employed instead the
identity in (7.144). The position tracking is displayed in Fig. 7.19, whereas the cor-
responding tracking error is shown in Fig. 7.20. The joint velocities estimated by the
proposed observer are shown along with the desired joint velocities in Fig. 7.21.
7.7 Experimental Results 207
Fig. 7.13 Control-observer robust scheme, joint position tracking: desired (· · · ), real (—)
Table 7.6 Chosen gains for the GPI observer without inertia matrix scheme of Sect. 7.6
Gain Value
p 2
λ0 6.25 × 106 I
λ1 5 × 105 I
λ2 1.5 × 104 I
λ3 200I
Kd diag{0.05, 0.05, 0.05}
diag{20, 40, 20}
Since the desired trajectories are the same for all the above experiments, it is worth
to compare the performance of the controllers. Notice however, that two of the con-
trollers require velocity measurements, which are actually obtained through posi-
tions by means of filter derivatives. For this reason, only the performance of the
position tracking error is taken into account, by employing the Root-Square-Mean
208 7 Adaptive and Robust Control
Error (RMSE) index. The results of this comparison for each joint, along with the
sum of all joints RMSE, are displayed in Table 7.7.
It is worth to point out that the RMSE of the GPI observer described in Sect. 7.5 is
greatly affected by the peaking at the start of the trajectories. In fact, if the first 1 s of
the experiment is not taken into account to compute the RMSE, the GPI observer gets
second best performance, just below the GPIO without inertia matrix of Sect. 7.6.
7.7 Experimental Results 209
Fig. 7.15 Control-observer robust scheme, joint velocities: desired (· · · ), observer (—)
Fig. 7.16 GPI Observer, joint position tracking: desired (· · · ), real (—)
210 7 Adaptive and Robust Control
Fig. 7.19 GPI Observer without inertia matrix, joint position tracking: desired (· · · ), real (—)
Fig. 7.20 GPI Observer without inertia matrix, joint position tracking error
212 7 Adaptive and Robust Control
Fig. 7.21 GPI Observer without inertia matrix, joint velocities: desired (· · · ), observer (—)
References
Anderson BDO (1977) Exponential stability of linear equations arising in adaptive identification.
IEEE Trans Autom Control 22(1):83–88
Anderson BDO, Moore JB (1969) New results in linear system stability. SIAM J Control 7(3):398–
414
Arteaga-Pérez MA, Gutiérrez-Giles A (2014) On the GPI approach with unknown inertia matrix in
robot manipulators. Int J Control 87(4):844–860
Arteaga-Pérez MA, Kelly R (2004) Robot control without velocity measurements: new theory and
experimental results. IEEE Trans Robotics Autom 20(2):297–308
Arteaga-Pérez MA, Ortiz-Espinoza A, Romero JG, Espinoza-Pérez G (2020) On the adaptive control
of robot manipulators with velocity observers. Int J Robust Nonlinear Control 30:4371–4396
Diop S, Fliess M (1991) Nonlinear observability, identifiability and persistent trajectories. In: Pro-
ceedings of the 36th IEEE conference on decision and control, Brighton, UK, Dec 1991
Fliess M, Marquez R, Delaleau E, Sira-Ramírez H (2002) Correcteurs proportionnels intègraux
généralisés. ESAIM: Control Optim Calc Var 7(2):23–41
Ioannou PA, Sun J (1996) Robust adaptive control. Prentice-Hall, USA
Kalman RE (1960) Contributions to the theory of optimal control. Boletín de la Sociedad Matemática
Mexicana 5:102–119
Kelly R, Santibáñez V, Loria A (2005) Control of robot manipulators in joint space. Springer,
London
Khalil HK (2002) Nonlinear systems, 3rd edn. Prentice-Hall, Upper Saddle River, NJ
Morgan AP, Narendra KS (1977) On the uniform asymptotic stability of certain linear nonau-
tonomous differential equations. SIAM J Control Optim 15(1):5–24
References 213
Slotine JJE, Li W (1987) On the adaptive control of robot manipulators. Int J Robotics Res 6(3):49–
59
Slotine JJE, Li W (1989) Composite adaptive control of robot manipulators. Automatica 25(4):509–
519
Slotine JJE, Li W (1991) Applied nonlinear control. Prentice-Hall, Englewood Cliffs, NJ
Spong MW (1992) On the robust control of robot manipulators. IEEE Trans Autom Control
37(11):1782–1786
Tang Y, Arteaga-Pérez MA (1994) Adaptive control of robot manipulators based on passivity. IEEE
Trans Autom Control 39(9):1871–1875
Chapter 8
Force Control
Abstract When a robot gets in contact with its environment, represented by a rigid or
flexible surface for example, then the manipulators’ movements become constrained.
For that case it is advisable to implement directly or indirectly a force control strategy
to avoid damages both on the robot and to the environment. If the contact surface
is well known then it is also possible to change the control objective not only to
get position tracking but also force tracking or regulation. Some of the new arising
challenges are the possible lack of both velocities and force measurements, a poor
model of the environment or high friction effects. This chapter is meant to deal
with the force tracking control when the contact surface is assumed to be rigid and
frictionless so that the force and velocity components of the end-effector can be split
into two tangent planes.
Assume that the end-effector of a robot manipulator gets in touch with its environment
represented in work space coordinates as in (3.84), i.e.
ϕ(x) = 0,
1The notation 0 pn is preferred for this chapter instead of 0 d n for being more congruent with the
environment description.
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 215
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_8
216 8 Force Control
0
ṗn
ẋ = = J(q)q̇,
0
ωn
to make explicit that ϕ(x) = 0 depends indeed only on the upper part of x. This turns
out to be relevant if (2.183) is preferred because for that case x is given by
⎡ ⎤
0 0
pn
pn
x= = ⎣ t ⎦. (8.2)
0
φn 0
ωn dϑ
t0
As explained in Sect. 2.4.2, 0 φ n in (8.2) does not have any physical meaning. Still,
there is no analytical reason at all not to employ it as long as only force and not
torque control of the end-effector is pursued, i.e. only unconstrained orientation is
considered. On the other hand, since 0 φ n does not have any physical meaning it cannot
be measured, but for implementation online it can be approximated by employing
0
φ n (kT ) = 0 φ n ((k − 1)T ) + J ω (q){q(kT ) − q((k − 1)T )} (8.3)
where J ω (q) ∈ R3×n is the lower part of the geometric Jacobian J(q) and T is the
sampling time. One can further set2
⎤ ⎡
x
⎢ y ⎥
⎢ ⎥
⎢ z ⎥
x=⎢ ⎥
⎢ φx ⎥ . (8.4)
⎢ ⎥
⎣ φy ⎦
φz
Consider now the robot model of a manipulator in contact with its environment given
by (3.87), i.e.
2 Using x as vector and x as scalar (to designate the x-coordinate) should not cause any confusion.
8.1 Robot Force Control Without Dynamic Model 217
∂ϕ(x)
J ϕx = .
∂x
The goal of this section is to avoid using inverse kinematics by proposing a desired
position trajectory xd ∈ Rn and then defining a tracking error
x = x − xd (8.5)
directly in work space coordinates. It is assumed that xd and its first two derivatives
are bounded. Suppose that velocity measurements are not available. Then, an estimate
of x is given by x̂, and the observation error is defined in the same fashion as for joint
coordinates in (6.1), i.e.
z = x − x̂. (8.6)
eo = x̂ − xd = x − z. (8.7)
λ = λ − λd , (8.8)
where λd ∈ Rm is the desired bounded force, with at least its first derivative bounded.
Consider Property 3.16 to define the sliding variable
s = Qx (ėo + x eo ) + J +
ϕx ξ 2 F = sp + sf , (8.9)
where x ∈ Rn×n and ξ 2 ∈ Rm×m are diagonal positive definite matrices and
F = λdϑ. (8.10)
t0
As made before, the design approach is based on making s tend to zero. Note that sp
and sf are orthogonal vectors, and that P x J + +
ϕx = J ϕx . Thus, they both become zero if
s → 0. But recall that J ϕx is assumed to be full rank and so must be J +
T
ϕx , so that
F = 0 (8.11)
218 8 Force Control
Fig. 8.1 Planes tangent to the surface at actual and desired positions. a Large tracking error; b small
tracking error
holds because ξ 2 is a positive definite matrix. However, the fact that sp becomes zero
does not necessarily implies that ėo and x eo will do it as well. To achieve this goal,
once again it will be taken advantage of a local stability analysis. For that instance,
rewrite first the tracking error as
In Fig. 8.1 it can be appreciated that the smaller the tracking error, the more it
tends to belong to the plane tangent to the contact surface, which can be expressed
as
How small the error must be for (8.13) to hold depends on how smooth the surface
is. After Property 3.16, if (8.13) is valid then one also has
8.1 Robot Force Control Without Dynamic Model 219
x ≤ ψ (8.15)
x = Qx x + P x x, (8.16)
where in general P x x = 0. This case is depicted in Fig. 8.2, where it can be appreciated
that the vector x lying in the space spanned by P x must be constant. This is easy to
understand because P x x represents the minimal distance to the surface. Note also
that for the plane J ϕx in (3.85) is constant and therefore so are Qx and P x . This in
turn from (8.16) implies that
ẋ = Qx ẋ, (8.17)
which fulfills (3.120) as well. As to xd , it must comply with (8.16), so that it is chosen
xd = Qx xd + P x xd ≡ Qx xd + P x x (8.18)
ẋd = Qx ẋd . (8.19)
Assume that ẋ is not available and thus it has to be estimated. But the estimated x̂
has to comply with (8.16) as well, otherwise said, the estimated variable must have
form similar to (8.18)–(8.19), i.e.
x̂ = Qx x̂ + P x x (8.20)
x̂˙ = Q x̂,
˙
x (8.21)
where P x x is constant and known. To make sure that this goal is achieved, it can be
used
t
x̂ = Qx ˙
x̂dϑ + Px x (8.22)
t0
⎛ t
⎞
to enforce x̂˙ to lie in the space spanned by Qx , while z ∈ Rn×n is a diagonal positive
definite matrix and kd is a positive constant. Obviously, one has P x x̂˙ = 0 and since
P x x = P x x̂ = P x xd , it holds
z = Qx z eo = Qx eo . (8.24)
from which it can be concluded that both eo and ėo tend to zero if sp tends to zero,
and for that it is enough that s does. Should that be the case, this can be used to show
that x, ẋ, z and ż do tend to zero. The design approach is based on the controller
described in Sect. 6.3, for which consider
ẋr = Qx (ẋd − x eo ) − J +
ϕx ξ 2 F − K γ σ , (8.27)
8.1 Robot Force Control Without Dynamic Model 221
t
σ = K β s(ϑ) + sign(s(ϑ)) dϑ (8.28)
t0
d
σ = K β s + sign(s). (8.30)
dt
Then, consider
sx = ẋ − ẋr = Qx (ẋ + x eo ) + J +
ϕx ξ 2 F + K γ σ . (8.31)
The previous definitions allow to design the control-observer scheme directly in work
space coordinates, but instead of rewriting model (3.87) in those coordinates, it is
more convenient to define
where
Assumption 8.2 The robot manipulator does not reach any singularity, so that
J −1 (q) always exits and it holds
q̇ = J −1 (q)ẋ. (8.35)
sx = r + kd r(ϑ)dϑ + J +
ϕx ξ 2 F + K γ σ . (8.43)
0
Now consider the following definition for the state of the error dynamics (8.10),
(8.40) and (8.45)
⎡ ⎤
sr
y = ⎣ r ⎦, (8.46)
F
D = y ∈ R2n+m \ y < ,
is defined for some 0 < < ∞. On the contrary to the previous chapters, cannot be
made arbitrary large because it must be chosen small enough to comply with (8.15).
Certainly, for a plane ψ can be fairly large, but still is not really free. A stability
proof can be carried out following three basic steps: (a) The boundedness of y implies
the boundedness of any other closed loop variable. (b) With a proper choice of gains,
the observer (8.22)–(8.23) and the control law (8.39) guarantee the boundedness
of the state y in closed loop. (c) If all closed loop variables are bounded, then the
inclusion of the sign function in (8.28) make all errors tend to zero.
(a) It has to be shown that if y is bounded by , then any other signal is bounded.
This is completely similar to the procedure given in Sect. 6.3 and it proceeds as
follows. From (8.27) one has
− Qx (ẋd − x eo ) + J +
ϕx ξ 2 F = −ẋr − K γ σ . (8.47)
Then, from (8.9), (8.25) and (8.31) one gets after some manipulation
u = s + Kγ σ , (8.48)
with
u = sx − ż, (8.49)
an equation of the form (6.85). Since y is bounded, so are sr , r and F. Then,
from (8.32), (8.37) and the assumption that J −1 (q) exists, sx and ż must be
bounded, which in turn implies that u is bounded. By applying Lemma 6.1, one
concludes that s and σ must be bounded in D. From (8.9) and (8.26), this implies
that both eo and ėo are bounded. Then, by using (8.5), (8.6), (8.24)–(8.25), one
can rewrite (8.31) as
ẋ + x x = sx + x z − J +
ϕx ξ 2 F − K γ σ . (8.50)
Note that F is bounded because y is bounded, and thus the righthand side
of (8.50) must be bounded. Now, since the lefthand side represents a stable
224 8 Force Control
linear filter, x and ẋ are bounded too. This in turn implies that x and ẋ
are bounded, because xd and ẋd are so. Since q̇ = J(q)−1 ẋ, q̇ must be bounded.
Furthermore, q must be bounded since no singularity has been reached. Consider
now q̇r = J −1 (q)ẋr , which is bounded from (8.27); its derivative is given by
−1 −1 d
q̈r = J̇ (q)ẋr + J (q) Qx (ẍd − x ėo ) − J+
ϕx ξ 2 λ − Kγ σ . (8.51)
dt
Note that from (8.30) it is known that dtd σ is bounded, but it has to be shown that
λ in (8.8) is bounded, where λd is bounded by assumption.The boundedness
of the Lagrange multiplier λ can be shown by using (3.83), i.e.
−1
λ = J ϕ (q)H −1 (q)J Tϕ (q) J ϕ (q)H −1 (q){τ − τ̄ } + J̇ ϕ (q)q̇ ,
where τ̄ = C(q, q̇)q̇ + Dq̇ + g(q). Therefore, λ will be bounded as long as the
input torque τ is bounded because it has been shown that all the other variables are
bounded in D. By taking into account the fact that after (8.31)–(8.32) and (8.36)–
(8.38) one has so = J(q)sr − r, from (8.39) one has
d
ṙ + kd r = ṡx − J +
ϕx ξ 2 λ − K γ σ, (8.53)
dt
which means that ṙ, and thus ẍ in (8.45), must be bounded. Finally, note that
from (8.37) and (8.49), u̇ = ṡx − z̈ is bounded.
(b) The next step is to show that, with a proper choice of gains, one can actually
achieve y < , whenever xd and at least its first and second derivatives are
bounded. Theorem 4.5 is employed as usual. However, this time the ultimate
bound for y given by (4.73) is not important, but rather it is sought that y never
leaves D as long as y(t0 ) satisfies (4.56). Assume that this is the case. If (4.29)
and (4.53) are satisfied in D for some V (y), then y will never leave D and thus
one concludes that y < for all t ≥ t0 as desired. Now define
1 T
V (y) = y My, (8.54)
2
8.1 Robot Force Control Without Dynamic Model 225
with M = block diag {H(q) I ξ 2 }. Clearly (4.29) is satisfied, i.e.
with
and
1 1
λ1 = min λh , 1, λmin (ξ 2 ) and λ2 = max λH , 1, λmax (ξ 2 ) ,
2 2
where Property 3.7 has been used. After Property 3.2, the derivative of V
along (8.10), (8.40) and (8.45) is given by
From (8.32) it is sr = J −1 (q)sx ⇒ sTr J T = sTx which combined with (8.31) and
Property 3.16 gives
J ϕx Jsr = J ϕx sx = J ϕx J +
ϕx ξ 2 F + J ϕx K γ σ = ξ 2 F + J ϕx K γ σ , (8.56)
or
V̇ = − sTr K DP sr − kd rT r − FT ξ 1 ξ 2 F
− σ T K γ J Tϕx λ + ξ 1 F
− sTr ya + rT Qx (ẍ + x ėo ) + sTr K p J −1 r. (8.58)
While V is positive definite for all y ∈ R(2n+m) , to apply Theorem 4.5 the region
D is necessary to show that (4.53) holds. According to the discussion given in
item a), every signal in D is bounded, so that bounds can be found to satisfy
226 8 Force Control
ᾱ1 = max σ T K γ J Tϕx ξ 1 + ya + Qx (ẍ + x ėo ) (8.59)
∀y∈D
ᾱ2 = max σ T K γ J Tϕx λ (8.60)
∀y∈D
c2 = max J −1 (q). (8.61)
∀y∈D
λmin (K p ) = 1 + δ (8.63)
1
kd = δ + λ2max (K p )c22 (8.64)
4
λmin (ξ 1 ξ 2 ) = δ, (8.65)
1
V̇ = − δy2 = −W3 (y). (8.68)
2
Finally, to apply Theorem 4.5 it should be noted that condition (4.55) is satisfied
just by choosing μ arbitrarily small.
(c) Showing that x, ẋ, z, ż and F tend to zero can be done as shown in Step c)
of the proof in Sect. 6.3. Combine From (8.7), (8.9) and (8.31) to get an equation
of the form (6.85), i.e.
u = s + Kγ σ ,
8.1 Robot Force Control Without Dynamic Model 227
with
u = sx + Qx ż. (8.69)
By computing its derivative and using (8.30) one gets an equation of the
form (6.121), i.e.
ṡ = −K γ K β s − K γ sign(s) + u̇.
Since u̇ is bounded, then by using the same arguments as for Step c) of the proof
in Sect. 6.3 one concludes that in a finite time from (8.9) and (8.24)–(8.25) it
holds
0 = ėo + x eo + J +
ϕx ξ 2 F = sp + sf .
ėo + x eo = 0,
sx = ẋ + x x − x z + J +
ϕx ξ 2 F + K γ σ
= ėo + x eo + ż + x z − x z + J +
ϕx ξ 2 F + K γ σ
= r − z z + J +
ϕx ξ 2 F + K γ σ .
d
ṡx − ṙ = kd r + J +
ϕx ξ 2 λ + K γ σ.
dt
Therefore it holds
which represents a stable linear filter for z, meaning that z, ż → 0. But from (8.70)
x, ẋ → 0.
228 8 Force Control
It only remains to show that λ → 0, for which Lemma 4.5 can be used. First
of all, F is bounded and has a limit because F → 0 as t → ∞, so that
in order for λ to tend to zero, it only has to be shown that it is uniformly
continuous, or equivalently, that dtd λ is bounded. But, since λ = λ − λd and
λd and its derivative are assumed to be bounded, it remains only to show that dtd λ
is bounded. From (3.83), it can be seen that the derivative of λ must indeed be
bounded because after the discussion of Step a) all variables have been proven
to be bounded. Therefore, λ → 0.
Finally, force control performance can be improved for unconstrained orientation
by keeping the end-effector perpendicular to the contact surface. The best option is
to employ the unit quaternion. Define
0
ṗd
ẋd = , (8.72)
0
ωd − kε 0 Rd d ε n
t
with xd = t0 ẋd dϑ. kε is a positive scalar gain, 0 pd is the desired position of the end-
effector as before, 0 ωd ∈ R3 is the desired angular velocity, and 0 Rd ∈ R3×3 is the
desired rotation matrix, i.e. it represents the desired orientation. d ε n ∈ R3 is the vector
part of the unit quaternion associated to the rotation matrix given by d Rn = 0 RTd 0 Rn ,
where 0 Rn ∈ R3×3 is the rotation matrix between the end-effector frame and the base
frame. Note that the desired position 0 pd has to be chosen to satisfy (8.1), and that
care should be taken to avoid getting a not bounded xd . Also, the desired orientation
0
Rd has to be chosen perpendicular to the surface at ϕ(0 pd ) = 0. It has already been
shown that x → 0 and ẋ → 0, so that the position error requires no extra analysis,
but the orientation case does. When x = 0, the orientation error dynamics is easily
computed as
ωn + kε 0 Rd d ε n = 0, (8.73)
d ωn + kε d ε n = 0. (8.74)
Then, it should be noted that the unit quaternion is given by a scalar and a vectorial
part by Q = {d ηn , d n } as explained in Sect. 2.1.4. These should be considered as the
state related to the orientation error whose derivatives can be computed as
1d T d
d
η̇n = − ωn (8.75)
2 n
1 d
d
˙n = ηn I − S d n d ω n , (8.76)
2
8.1 Robot Force Control Without Dynamic Model 229
Note that for d n = 0 one has d ωn = 0 after (8.74). Consider the following positive
definite function
d 2
Vε = ηn − 1 + d ε Tn d εn . (8.79)
η2 + 2
x + 2
y + 2
z = η2 + T
= 1.
Since for d n = 0 one has d ωn = 0, then from (8.75) and (8.76) it is not possible
to know to which equilibrium the trajectory is tending. To get an insight about this
issue, substitute (2.70) in (8.79) to get
d 2
Vε = ηn − 1 + 1 − d ηn2 = 2 1 − d ηn . (8.81)
Vε = 4. (8.82)
Consider once again the relationship between workspace coordinates and joint coor-
dinates given by (2.175) and (2.183), i.e.
0 0
ṗn ṗn
ẋ = = J(q)q̇ or ẋ = = J(q)q̇, (8.84)
0
φ̇ n 0
ωn
where for the first case J(q) represents the analytic Jacobian and for the second
t one
it stands for the geometric Jacobian. In general, for n = 6 it is 0 φ n = t0 0 ωn dϑ,
but for simplicity’s sake an abuse of notation is made by using (8.2). This is done
because the approach of this section can be employed with any of the two Jacobians
and for which the design of a force control-observer scheme where the desired task
is directly given in workspace coordinates is introduced. Say that Assumption 8.2
holds and use (3.84), i.e.
ϕ(x) = 0,
H c ẍ + C c ẋ + Dc ẋ + gc = f − J Tϕx λ, (8.85)
where
−1
and J̇ (q) = dtd J −1 (q) . The first step is the velocity observer design directly in
workspace coordinates. On the contrary to the observer introduced in the last section,
it is no longer assumed that the contact surface is a plane, but all the errors used before
are employed again, i.e. (8.5)–(8.8). Consider now
x̂ = x̂(t0 ) + ˙
x̂(ϑ) dϑ (8.91)
t0
t
where z , K d ∈ Rn×n are diagonal positive definite matrices. At this point, it is still
valid that if Assumption 8.1 holds, then the approximations (8.13) and (8.14) also
hold. However, since the constraint is not necessarily a plane anymore, in order to
make a similar assumption for the observation errors one should have
z ≤ ψ (8.93)
hold. Certainly, these relationships are in principle only valid at t = t0 , but it will
be shown that it is possible to design a control law to make them valid for all time.
To describe the observer error dynamics, it is taken advantage of a local analysis
where (8.15) and (8.93) hold and it is defined similar to (6.43) and (6.45) the following
variables
where (3.120) has been used. Then compute the derivative to get
For control design assume that the vector of Lagrange multipliers λ ∈ Rm is not
measurable so that an estimated value has to be computed as λ̂ ∈ Rm . Of course, the
regular force errors (8.8) and (8.10) can no longer be used and the following auxiliary
errors have to be introduced
λ̄ = λ̂ − λd , (8.99)
and
t
where λd ∈ Rm is the desired bounded force, with at least its first derivative bounded.
Instead of (8.9) one has
s = Qx (ėo + x eo ) + J +
ϕx ξ 2 F̄ = sp + sf , (8.101)
but as before sp and sf are orthogonal vectors, and they both must become zero if s
vanishes. In that case, since J Tϕx and J +
ϕx are assumed to be full rank, one has
s = 0 ⇒ sf = 0 ⇒ F̄ = 0, (8.102)
because ξ 2 ∈ Rm×m is a positive definite diagonal matrix. On the other hand, note
that by assuming as before Qx x = x Qx (e.g. by setting x = kx I, with kx > 0),
then in view of (8.13) and (8.14) it is
From (8.103) one can conclude that both eo and ėo tend to zero if sp → 0, i.e.
if s → 0. Furthermore, consider once again (8.28), or (8.30), and alike to (8.27)
and (8.31) define
ẋr = Qx (ẋd − x eo ) − J +
ϕx ξ 2 F̄ − K γ σ (8.104)
sx = ẋ − ẋr = Qx (ẋ + x eo ) + J+
ϕx ξ 2 F̄ + Kγ σ . (8.105)
where ya = H c ẍr + C c ẋr + Dc ẋr + gc . Based on all previous definitions, the pro-
posed control law is
with ξ 1 , ξ 3 ∈ Rm×m diagonal positive definite matrices. Note that for implementation
it must be employed
τ = J T (q)f (8.109)
ϕ̈(x) = J ϕx ẍ + J̇ ϕx ẋ = 0, (8.111)
˙
C c = C c (x, x̂) (8.116)
Ĵ˙ ϕx = J̇ ϕx (x, x̂).
˙ (8.117)
234 8 Force Control
Then, the state of the errors dynamics in (8.98), (8.100) and (8.110) can be defined
as
⎡ ⎤
sx
y = ⎣ r ⎦. (8.118)
F̄
but with the constraint that cannot be made arbitrary large. On the contrary, it
has to be chosen small enough for (8.15) and (8.93) to hold. Recall that for that
it is mandatory to choose xd satisfying (3.84) but also far away enough from any
singularity and with bounded first and second derivatives. In the same fashion, the
desired bounded force λd must be bounded as well as its first derivative.
To employ Theorem 4.5, consider the following positive definite function for y
in (8.118)
1 T
V (y) = y My, (8.119)
2
with
and
1 1
λ1 = min λh , 1, λmin (ξ 2 ξ 3 ) and λ2 = max λH , 1, λmax (ξ 2 ξ 3 ) ,
2 2
where Property 3.7 has been used.
As done in the previous section, three steps are necessary to prove local asymptotic
stability in D.
(a) First of all, it can be shown that whenever y is bounded by 0 < < ∞, then any
other signal related to the closed loop system is bounded. This step is ommited
because it is completely similar to that shown in the previous section.
(b) The next step is to set gains to enforce y < for all t ≥ t0 . This can be done
by using Theorem 4.5. By direct computation the derivative of V in (8.119)
along (8.98), (8.100) and (8.110) is given by
8.2 Velocity and Force Observers for the Control of Robot Manipulators 235
1 T
V̇ = sTx Ḣ c sx + sTx H c ṡx + rT ṙ + F̄ ξ 2 ξ 3 λ̄
2
= − sTx K DP sx + sTx K p r − sTx ya − sTx J Tϕx λ − sTx J Tϕx ξ 1 F̄
− sTx J Tϕx ξ 3 λ̄ + rT Qx (ẍ + x ėo ) + rT Q̇x (ẋ + x eo )
T
− rT K d r + F̄ ξ 2 ξ 3 λ̄. (8.120)
From (8.105) it is
T
sTx J Tϕx = F̄ ξ 2 + σ T K γ J Tϕx , (8.121)
T −1
because after Property 3.16 it is J ϕx J +
ϕx = J ϕx J ϕx J ϕx J ϕx
T
= I and J ϕx Qϕx =
O. By substituting (8.121) in (8.120)
T
V̇ = − sTx K DP sx + sTx K p r − sTx ya − rT K d r + F̄ ξ 2 ξ 3 λ̄
T T
− F̄ ξ 2 λ − σ T K γ J Tϕx λ − F̄ ξ 1 ξ 2 F̄ − σ T K γ J Tϕx ξ 1 F̄
T
− F̄ ξ 2 ξ 3 λ̄ − σ T K γ J Tϕx ξ 3 λ̄
+ rT Qx (ẍ + x ėo ) + rT Q̇x (ẋ + x eo ) . (8.122)
ᾱ1 = max ya (8.123)
∀y∈D
ᾱ2 = max Qx (ẍ + x ėo ) + Q̇x (ẋ + x eo ) (8.124)
∀y∈D
ᾱ3 = max σ T K γ J Tϕx ξ 1 + λT ξ 2 (8.125)
∀y∈D
ᾱ4 = max σ T K γ J Tϕx (ξ 3 λ̄ + λ). (8.126)
∀y∈D
where α = ᾱ1 + ᾱ2 + ᾱ3 . To achieve (4.53), gains can be chosen as
λmin (K p ) = 1 + δ (8.128)
1
λmin (K d ) = δ + λ2max (K p ) (8.129)
4
λmin (ξ 1 ξ 2 ) = δ, (8.130)
1
V̇ = − δy2 = −W3 (y). (8.133)
2
Condition (4.55), i.e.
then it can be concluded that y ∈ D for all t ≥ t0 , which allows to conclude this
part of the proof.
(c) Till now it has been proven that y is bounded by as long as the initial condition
is small enough and gains are properly set. Showing that F̄, x and ẋ, z, ż, x
and ẋ tend to zero can be done as shown in Step c) of the proof of the previous
section. To show that λ̄ → 0, once again Lemma 4.5 can be used. First of all,
it is known that F̄ is bounded and has a limit (F̄ → 0) as t → ∞. Then, in
order for λ̄ to tend to zero, dtd λ̄ must be bounded. Since λ̄ = λ̂ − λd and
λd and its derivative are assumed to be bounded, it remains only to show that
d
dt
λ̂ is bounded. From (8.100) and (8.114) one has
8.2 Velocity and Force Observers for the Control of Robot Manipulators 237
d d
λ̂ = λd − (I + ξ 3 )−1 ξ 1 λ̄+
dt dt
d −1 T −1
−1 T −1 d
J ϕx H c J ϕx f x + J ϕx H c J ϕx f . (8.134)
dt dt x
From Step a), the right hand side of (8.134) must be bounded. This in turn means
that dtd λ̂ and dtd λ̄ are bounded. After the aforementioned lemma λ̄ tends to
zero. On the other hand, since x̂˙ → ẋ one must have from (8.112) and (8.113)
that λ̂ → λ. Finally, this necessarily means that λ = λ − λd → 0.
As it was shown in Sect. 7.5 a possibility to deal with uncertain model parameters
are the Generalized Proportional Integral (GPI) observers. Consider model (3.77),
i.e.
where J ϕ (q) = ∇ϕ(q) ∈ Rm×n as given in (3.78) with respect to the holonomic
constraint given in (3.66), i.e.
ϕ(q) = 0 ,
which arises when the manipulator is in contact with the environment. Therefore,
J ϕ (q) maps a vector into the normal plane at the contact point. It is assumed that
J ϕ (q) is full rank, i.e. rank(J ϕ (q)) = m. Note that usually J ϕ (q) can be normalized
to get
J ϕ = 1. (8.135)
In the following it will be assumed that this is the case. If the position tracking error
is defined by
where qd fulfils (3.66), then completely similar to (8.13), if e is small enough it holds
because the error tends to be tangent to the surface. But in fact Property 3.16 is valid
also for joint space coordinates, i.e. q̇ = Q(q)q̇ so that it holds as well
238 8 Force Control
Indeed, “small enough” does not necessarily mean e ≈ 0, so that it is more convenient
to make the following assumption equivalent to (8.15).
e ≤ ψ (8.139)
Define
to have
!
q̈ = H −1 (q) τ − N(q, q̇) + z1 . (8.143)
Just like in the previous section, in order to design a force control law it will be
necessary to estimate both the force λ and the state q̇. However, this time the same
approach as that of Sect. 7.5 will be employed, for which it is necessary to assume
that the vector z1 can be expressed as in (7.110), i.e.
"
p−1
z1 (t) = ai t i + r(t) , (8.144)
i=0
ż1 = z2 (8.145)
ż2 = z3
..
.
ż p−1 = z p
ż p = r( p) (t) . (8.146)
8.3 GPI Based Velocity/Force Observer Design for Robot Manipulators 239
On the contrary to Sect. 7.5, the following GPI observer directly estimates velocities
instead of errors
where
ẽ = q − q̂ . (8.152)
Also, q̂2 is an estimated value for q̇. In order to compute the system closed loop
dynamics, consider the following error definitions
where
N(q, q̇) − N(q, q̂2 ) = C(q, q̇)q̇ − C(q, q̂2 )q̂2 + Dẽ2 . (8.160)
By applying Property 3.4 and after a rather direct computation one gets
C(q, q̂2 )q̂2 = C(q, q̇ − ẽ˙ − λ p+1 ẽ)(q̇ − ẽ˙ − λ p+1 ẽ)
= C(q, q̇)q̇ − 2C(q, q̇)(ẽ˙ + λ p+1 ẽ) + C(q, ẽ˙ + λ p+1 ẽ)(ẽ˙ + λ p+1 ẽ),
(8.163)
which means that by taking this relationship and (8.161) into account, (8.160) can
be rewritten as
where the equality q̇ = ė + q̇d has been employed. Combine with (8.161) to have
with
f (t) = −H −1 (q) 2C(q, ė + q̇d )(ẽ˙ + λ p+1 ẽ)
−C(q, ẽ˙ + λ p+1 ẽ)(ẽ˙ + λ p+1 ẽ) + D(ẽ˙ + λ p+1 ẽ) . (8.167)
Finally, by computing the p-th derivative of (8.166) and substituting in (8.159) one
gets
8.3 GPI Based Velocity/Force Observer Design for Robot Manipulators 241
Equation (8.168) represents the observer closed loop dynamics and it can be rewritten
in the form (7.133)–(7.136) as
with rf = r( p) + f ( p) and
⎡ ⎤
ẽ
⎢ .. ⎥
xo = ⎣ . ⎦ (8.170)
( p+1)
ẽ
⎡ ⎤
O I ··· O
⎢ .. .. ⎥
⎢ . ⎥
A=⎢ . ⎥ (8.171)
⎣ O O ··· I ⎦
−λ0 −λ1 · · · −λ p+1
!T
B = O ··· O I . (8.172)
The next step is to design the force observer. Consider that after (8.141) it is
λ = (J +
ϕ ) H(q)z1 ,
T
(8.174)
because J ϕ is full rank. But since an estimated value of z1 is known, then it is quite
direct to get an estimated value for λ as
λ̂ = (J +
ϕ ) H(q)ẑ1 ,
T
(8.175)
λ̃ = λ − λ̂ = (J + + T
ϕ ) H(q)z1 − (J ϕ ) H(q)ẑ1
T
= (J +
ϕ ) H(q)z̃1 ,
T
(8.176)
where z̃1 = z1 − ẑ1 is the observation error for z1 . Note that as mentioned before it
is assumed that J ϕ = 1 and that the robot pushes on the surface so that the force
242 8 Force Control
is always positive or zero. For that case, when the constraint in (3.66) has dimension
one, i.e. m = 1, so that λ̂ is a scalar value, then it holds
τ = − K v (q̂2 − q̇d ) − K p e − K i Q e dϑ
t0
− J Tϕ (q)λd + kFi J +
ϕ (q)F̄ , (8.178)
where K v , K p ∈ Rn×n are positive definite diagonal matrices and as usual (·)d denotes
the desired value of (·), which is assumed to be bounded, as well as its derivatives,
both for forces and positions. Also, (8.99) and (8.100) are used again, i.e.
λ̄ = λ̂ − λd
t
F̄ = λ̄ dϑ .
t0
To compute the closed loop system dynamics consider first rewriting (8.178) as
− J Tϕ (q)λd + kFi J +
ϕ (q)F̄
t
= − K v ė − K p e − K i Q e dϑ
t0
− J Tϕ (q)λd + kFi J + ˙
ϕ (q)F̄ + K v (ẽ + λ p+1 ẽ), (8.179)
where (8.162) was taken into account. Define the auxiliary variable
ẇ = ė + e (8.180)
with ∈ Rn×n a diagonal positive definite matrix. As before, the goal is to carry
out a local stability analysis where (8.139) is valid, so that e = Qe and ė = Qė hold.
Furthermore, by assuming Q = Q (e.g. by setting = kλ I, with kλ > 0) then
also holds ẇ = Qẇ, so that the control law in (8.179) is equivalent to
τ = −K v ẇ − K̄ i Qw − J Tϕ λd + kFi J + ˙
ϕ (q)F̄ + K v (ẽ + λ p+1 ẽ), (8.181)
8.3 GPI Based Velocity/Force Observer Design for Robot Manipulators 243
with
K p = K v + K̄ i (8.182)
K i = K̄ i . (8.183)
1
H(q)q̈ = − C(q, q̇)q̇ − Dq̇ + g(q) − K v ẇ − K̄ i Qw + J Tϕ λ
2
1 1 1 ˙
+ J Tϕ λ + kFi J + +
ϕ F̄ + kFi J ϕ F̄ + K v (ẽ + λ p+1 ẽ), (8.184)
2 2 2
where λ = λ − λd is the force error as given in (8.8). The previous expression may
not be adequate to carry out the stability analysis, but consider defining
1 −1 T 1
q̇r = q̇d − e − K −1 −1 +
v K̄ i Qw + K v J ϕ λ + kFi K v J ϕ F̄ (8.185)
2 2
s = q̇ − q̇r
−1 1 −1 T 1 −1 +
= (ẇ + K v K̄ i Qw) + − K v J ϕ λ − kFi K v J ϕ F̄
2 2
= sp + s f . (8.186)
1 T 1
H(q)ṡ + C(q, q̇)s + K d s = J ϕ λ + kFi J +
ϕ F̄ + ya , (8.187)
2 2
where K d = D + K v and
ya = K v (ẽ˙ + λ p+1 ẽ) − H(q)q̈r + C(q, q̇)q̇r + Dq̇r + g(q) . (8.188)
Then, the complete closed loop system dynamics is described by equations (8.100),
(8.169) and (8.187), for which the corresponding state vector is defined as
⎡ ⎤
xo
x = ⎣ s ⎦. (8.189)
F̄
For this state it is always possible to define a region of the form (4.28), i.e.
D = x ∈ Rn( p+2)+m |x < ,
244 8 Force Control
where is a positive constant chosen small enough for (8.15) to hold. Then, it
can be shown that for qd a desired bounded trajectory fulfilling constraint (3.66)
with at least their first p + 2 derivatives bounded and a bounded desired force λd
whose derivatives up to p + 2 are also bounded, a combination of gains always exist
to make the tracking errors (e, ė), the observation errors xo , and the force errors
(λ, λ̃, λ̄, F̄) arbitrarily small as long as the initial condition x(t0 ) lies in a
subset of D chosen small enough to avoid the trajectory x leaving D during the
transient response. Furthermore, the estimate ẑ1 becomes arbitrarily close to the real
value z1 . The proof is omitted because it is rather involved and not directly based in
the theory presented in Chap. 4. Note that it may be required that the initial velocity
be zero because for that case the initial observation and tracking errors can easily be
set to zero.
i.e. a sinusoidal over the Cartesian axis y0 . The reason to select such trajectory is
the limitation imposed by keeping the end-effector perpendicular to the surface,
when using the three-degrees-of-freedom configuration of the Phantom robot. The
desired Cartesian velocities are obtained by taking the time-derivative of the desired
positions. In turn, the desired force is defined by
Table 8.1 Chosen gains for the force control without dynamic model scheme of Sect. 8.1
Gain Value
Kp 0.2I
x 20I
kd 10
z 10I
Kβ 5I
Kγ 0.1I
ζ1 0.5I
ζ2 I
• At first, neglect the force control terms as well as the sliding mode ones, by setting
λd = 0 and ζ 1 = ζ 2 = K β = K γ = O.
• Tune the observer gains, kd and z , satisfying (6.65)–(6.67) and (6.69)–(6.70), to
minimize the observation error z.
• Tune the remaining position control tracking as a standard PD controller, with
K p as the derivative gain and x = K −1 p K px , where K px is the proportional gain
matrix.
• Increase K γ slowly to improve the tracking performance, but preventing the actu-
ators to present chattering.
• Increase K β slowly in the same manner.
• Include the force control terms and increase ζ 1 and z2 until obtaining the desired
force tracking performance.
Experiment
The selected gains for the implementation of the controller presented in Sect. 8.1, by
following the tuning guide above are displayed in Table 8.1. The Cartesian position
tracking is shown in Fig. 8.3, whereas the corresponding tracking error is displayed
in Fig. 8.4. The Cartesian velocities estimated by the proposed observer, displayed
along with the desired velocities, are presented in Fig. 8.5. In Fig. 8.6, the force
tracking and the force tracking error are shown as well.
Velocity and Force Observers
Tuning Guide
The equations needed to implement the controller based on the velocity and force
observers of Sect. 8.2 are the tracking and observation errors (8.5)–(8.7), the force
error definitions (8.8) and (8.10), the force observation errors (8.99)–(8.100), the
velocity observer (8.92), the dynamics in workspace coordinates (8.86)–(8.90), the
auxiliary variables (8.101), (8.103)–(8.105), and (8.107), the control law (8.108)–
(8.109), and the force observer (8.114). The tuning of this controller-observer can
be carried out as follows.
246 8 Force Control
Fig. 8.3 Robot force control without dynamic model, Cartesian position tracking: desired (· · · ),
real (—)
• At first, neglect the force control terms as well as the sliding mode ones, by setting
λd = 0 and ζ 1 = ζ 2 = ζ 3 = K β = K γ = O.
• Tune the observer gains, kd and z , satisfying (6.65)–(6.67) and (6.69)–(6.70), to
minimize the observation error z.
• Tune the remaining position tracking control as a standard PD controller, with
K p as the derivative gain and x = K −1 p K px , where K px is the proportional gain
matrix.
• Increase K γ slowly to improve the tracking performance, but preventing the actu-
ators to present chattering.
• Increase K β slowly in the same manner.
• Include the force control terms and increase ζ 1 and z2 until obtaining the desired
force tracking performance.
• Finally, increase ζ 3 slowly to improve the force tracking. Note that ζ 3 = I
for (8.114) to be well defined.
Experiment
The selected gains for the implementation of the controller presented in Sect. 8.2, by
following the tuning guide above are displayed in Table 8.2.
8.4 Experimental Results 247
Fig. 8.4 Robot force control without dynamic model, Cartesian position tracking error
Remark 8.1 Because of the extra weight added by the force sensor, the parameters
obtained in Sect. 14.2.5 are no longer valid. Instead, a new identification was carried
out following the same methods of Sect. 14.2.5, giving the new parameters vector
!T
θ 0 = 0.0011 0.0044 0.0045 0.0457 0.0831 0.0771 0.0125 0.0242 .
The Cartesian position tracking is shown in Fig. 8.7, whereas the corresponding
tracking error is displayed in Fig. 8.8. The Cartesian velocities estimated by the pro-
posed observer, displayed along with the desired velocities, are presented in Fig. 8.9.
The force tracking and force estimation, as well as the corresponding force tracking
error and force observation error, are shown in Fig. 8.10.
248 8 Force Control
Fig. 8.5 Robot force control without dynamic model, Cartesian velocities: desired (· · · ),
observer (—)
Table 8.2 Chosen gains for the velocity and force observers based controller of Sect. 8.2
Gain Value
Kp 20I
x 20I
kd 10
z 10I
Kβ 5I
Kγ 0.1I
ζ1 0.5I
ζ2 I
ζ3 0.01I
8.4 Experimental Results 249
Fig. 8.6 Robot force control without dynamic model, contact forces (up) and force error (down):
desired (· · · ), measured (—)
• Choose the degree of the polynomial, p, in (8.144) to define the order of the state
extension, which in turn is the internal model for the unknown signals. As a rule,
the higher this value, the more accurate will be the estimation of the unknown
terms lumped in z1 , but the peaking phenomena is worsen. For most manipulation
tasks, p = 2 is a good choice.
• Compute the matrix gains λ0 in (8.168), by defining the poles of the polyinomial
matrix in the left-hand side of this equation. Locate the poles as far on the open
left-half complex plane as the bandwidth of the system allows it. As a rule, the
more on the left the poles are located, the more accurate the observer estimation,
but at the expense of augmenting the peaking phenomena and the sensitivity to
noise.
250 8 Force Control
Fig. 8.7 Velocity and force observers, Cartesian position tracking: desired (· · · ), real (—)
• Now, neglect temporarily the force control terms by making λd = 0 and kFi = 0,
and tune the remaining ones as a standard PID controller to get the desired position
tracking performance.
• Finally, include the force control terms and increase slowly kFi to obtain the desired
force tracking performance.
Remark 8.2 Note that since this controller is designed in joint coordinates, the
inverse and differential kinematics are required for the implementation.
Remark 8.3 Due to the high gain nature of GPI observers, sometimes it may be
advisable to filter ẑ1 in the following form
λ̂f = (J +
ϕ ) H(q)zf .
T
(8.191)
8.4 Experimental Results 251
Fig. 8.8 Velocity and force observers, Cartesian position tracking error
where is the time duration of the peaking. Finally, multiply ê2 and ẑi , i = 1, . . . , p,
by f clutch .
Experiment
The gains chosen for the implementation of the GPI force/velocity observers based
force controller of Sect. 8.3, by following the tuning guide above, are shown in
Table 8.3. The Cartesian position tracking is shown in Fig. 8.11, whereas the corre-
sponding tracking error is displayed in Fig. 8.12. The Cartesian velocities estimated
by the proposed observer, displayed along with the desired velocities, are presented
in Fig. 8.13. The force tracking and force estimation, as well as the corresponding
force tracking error and force observation error, are shown in Fig. 8.14.
252 8 Force Control
Fig. 8.9 Velocity and force observers, Cartesian velocities: desired (· · · ), observer (—)
Fig. 8.10 Velocity and force observers, contact forces (up), force tracking error (middle), and force
observation error (down): desired (· · · ), measured (—), observer (- . -)
8.4 Experimental Results 253
Table 8.3 Chosen gains for the GPI force/velocity observers based controller of Sect. 8.3
Gain Value
λ0 1 × 108 I
λ1 4 × 106 I
λ2 6 × 104 I
λ3 400I
Kp 5I
Ki 0.1I
Kv 0.05I
kFi 0.5
0.8 s
Fig. 8.11 GPI velocity/force observers, Cartesian position tracking: desired (· · · ), real (—)
254 8 Force Control
Fig. 8.13 GPI velocity/force observers, Cartesian velocities: desired (· · · ), observer (—)
References 255
Fig. 8.14 GPI velocity/force observers, contact forces (up), force tracking error (middle), and force
observation error (down): desired (· · · ), measured (—), observer (- . -)
References
Arimoto S (1995) Joint-space orthogonalization and passivity for physical interpretations of dex-
terous robot motions under geometric constraints. Int J Robust Nonlinear Control 5(4):259–284
Arteaga-Pérez MA, Castillo-Sánchez AM, Parra-Vega V (2006) Cartesian control of robots without
dynamic model and observer design. Automatica 42:473–480
Arteaga-Pérez MA, Rivera-Dueñas JC (2007) Force control without inverse kinematics nor robot
model. In: Proceedings CD ROM. European Control Conference ECC07. Kos Island, Greece, pp
4385–4392
Arteaga-Pérez MA, Rivera-Dueñas JC, Gutiérrez-Giles A (2013) Velocity and force observers for
the control of robot manipulators. ASME J Dyn Syst Meas Control 135:064502.1–064502.7
Gutiérrez-Giles A, Arteaga-Pérez MA (2014) GPI based velocity/force observer design for robot
manipulators. ISA Trans 53(4):929–938
Rivera-Dueñas JC, Arteaga-Pérez MA (2013) Robot force control without dynamic model: theory
and experiments. Robotica 31:149–171
Siciliano B, Villani L (1999) Robot force control. Kluwer Academic Publishers, The Netherlands
Slotine JJE, Li W (1991) Applied nonlinear control. Prentice-Hall, Englewood Cliffs, NJ
Chapter 9
Bilateral Teleoperation
Figure 9.1 shows the five basic elements of a bilateral teleoperation system. The first
component is a human being, the operator, who directly interacts with the second
element, the local or master manipulator. The third component is a communication
channel for the exchange of different signals, among other positions, velocities,
forces, video, etc. The fourth element is the remote or slave robot which interacts
with the fifth component, the environment. It is not difficult to get a dynamic model
for the system depicted in Fig. 9.1 based on model (3.44), where the notation local
(l) and remote (r) is preferred over the common one of master-slave. It is assumed
that both manipulators have n DOF and the same kinematic configuration, although
a scale factor might just be necessary if they have different sizes.
τ h ∈ Rn represents the torque applied by the human operator to the local robot and
τ e ∈ Rn is the environment interaction.
Figure 9.1 also shows a particular case, i.e. when time varying delays are present
in the communication channel. Note that not necessarily all the signals shown in the
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 257
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_9
258 9 Bilateral Teleoperation
figure are usually transferred. For instance, velocities are most likely not available.
This does not only make the control, and perhaps the observer, design more complex
because its stability is difficult to be proven analytically, but it makes less clear what
are the main objectives to pursue. And that for a good reason. The usual concepts
of telepresence and transparency are defined for systems without communication
delays. The former is rather a subjective objective that means that the operator has the
feeling of being in the remote environment, while the latter implies that the physical
medium between he/she and the environment does not impose any dynamics, i.e. that
local and remote robots dynamics are cancelled out. The concept of transparency is
not only fundamental, but also objectively quantifiable in two usual ways. The first
one is the following:
Criterion Transparency based on impedance
1. The impedance felt by the operator, say Zh , must be equal to the task impedance,
say Ze , i.e. Zh ≡ Ze , where the following relationships hold τ h (s) = Zh (q̇l (s))
and τ e (s) = Ze (q̇r (s)) as well.
2. Velocities must be equal, i.e. q̇l (t) = q̇r (t).
9.1 Fundamental Concepts of Bilateral Manipulators Systems 259
ei = qi − qdi . (9.4)
Assume now that, somehow, it is possible to get ei ≡ 0 in a finite time. Then, accord-
ing to (9.3) and (9.4) one must have
This relationship must be valid despite any human torque τ h and any environmental
force τ e , which allows only two possibilities: either qi (t) = q j (t) = qc for some
constant vector, perhaps satisfying a constraint on the remote side, or a synchronized
movement arises when the sum of the time delays is constant. Therefore, it turns out
that with this particular tracking errors definitions, making them exactly zero prevents
the human operator to cause any desired motion on the local side other than constant
regulation. The same can be said for forces. Therefore, one of the two possibilities
should be chosen in advanced. When the remote manipulator is in free motion it
makes just sense to choose i = r and j = l, but if it is in constrained motion then it
makes more sense to choose i = l and j = r. The reason is that for the first case the
260 9 Bilateral Teleoperation
corresponding choice implies that when the remote manipulator is in free motion it
should track the (delayed) trajectory commanded by the human operator at the local
side. In contrast, for the second situation the corresponding choice implies that the
remote surface is being reconstructed at the local side for the human operator. But
regarding the force applied by the remote robot to the environment, it is important
that this be commanded by the human operator, which implies that one should choose
i = r and j = l. This choice appears to be the best because even if the operator does
not know when the remote robot will apply the desired force, he/she knows it simply
because he/she is commanding it. This can be summarized as:
Criterion
Delayed kinematic correspondence
1. When τ h (t) = τ e (t) = 0, it should be achieved that ql (t) = qr (t − Tr (t)) and
qr (t) = ql (t − Tl (t)), meaning that either a consensus arises reaching a constant
equal position or a synchronized periodic movement takes place. This corre-
sponds to the free motion case.
2. For free movement of the remote manipulator, i.e. τ h (t) = 0 but τ e (t) = 0, then
it should be achieved qr (t) = ql (t − Tl (t)), meaning that the remote manipulator
should track the delayed position of the local one.
3. For constrained motion, i.e. τ h (t) = 0 and τ e (t) = 0, then one of the three ideal
responses should be achieved:
a. ql (t) = qr (t − Tr (t))
b. Fe (t) = Fh (t − Tl (t))
c. Both ql (t) = qr (t − Tl (t)) and Fe (t) = Fh (t − Tl (t)) hold,
where relationship (3.64) has been used, i.e.
Note that the term transparency is excluded in the previous criterion on purpose, but
when Tl (t) = Tr (t) ≡ 0 then Criterion 9.1 is recovered. With this in mind the design
of a control-observer scheme for a system like that depicted in Fig. 9.1 is introduced.
First of all, note that under definition (9.3) the derivative of the desired trajectory is
given by
q̇di (t) = 1 − Ṫ j (t) q̇ j (t − T j (t)). (9.7)
9.2 Control and Observer Design 261
Unless programmed, it is not possible to known Ṫ j (t). Assume also that no velocities
measurements are available, so that q̇ j is not known for j = r, l. For that reason an
observer is necessary to obtain an estimate q̂˙ j ; but even with that estimate q̇di (t)
would not be available, so that it can be used
as a substitution of the not available q̇di , where as usual if i = l, then j = r and vice
versa. Based on the control-observer scheme of Section 6.3, the following velocity
observer is proposed
ξ̇ i = zi (9.9)
ζ i = q̇ˆ di − xi ei + K di zi ξ i (9.10)
q̂˙ = ζ + zi zi + K di zi ,
i i (9.11)
where zi , xi , K di ∈ Rn×n are positive definite diagonal matrices, with the usual
observer error
zi = qi − q̂i , (9.12)
where q̂i is obtained by computing the integral of q̂˙ i in (9.11). The associated control
scheme requires of the following definitions
is more advisable to include some force feedback so that a force tracking error can
be defined as
t
pi = Fi dt, (9.21)
0
where K fi ∈ Rn×n are positive definite diagonal matrices. One of the main character-
istics of the previous approach is its simplicity. In fact, as made clear by Eq. (6.84), at
heart there is a PID controller for each robot for position tracking, and from (9.22)–
(9.23) it is also clear that one has a PI controller for force tracking. Another key
characteristic is that they are the same both for the local and the remote manipula-
tor. This is one of the reasons why this notation is preferred over the more usual of
master-slave, because any of the robots can be moved by a human operator while
the other will try to follow the command given on the other side. Therefore, even if
no force feedback is available, the human operator will have some sense of telepres-
ence, so that at least Criterion 9.3.1 and Criterion 9.3.3a can be achieved. To show
this, assume that that is precisely the case and compute the error dynamics of sys-
tem (9.1)–(9.2) in closed loop with observer (9.9)–(9.11) and the control laws (9.18)
and (9.19). Define for i = l, r
Now, consider system (9.1) in closed loop with the control law (9.18), and (9.2) in
closed loop with (9.19). By using (9.17), (9.24), (9.25) and by taking into account
that soi = q̇oi − q̇ri = sqi − ri it can be obtained
By computing the derivative of this expression and by using (9.9) and (9.25) one gets
the observer closed loop dynamics as
d
ṙi + K di ri = ṡqi − K γ i σi. (9.30)
dt
Define the error state for the closed loop dynamics (9.26) and (9.30) as
⎡ ⎤
sql
⎢ sqr ⎥
x=⎢ ⎥
⎣ rl ⎦ . (9.31)
rr
for some 0 < < ∞. It can be shown in the very same fashion as done in Section 6.3
that whenever x is bounded by (i.e. x ∈ D), then any other signal related to the
closed loop system dynamics is bounded, as long as the following assumption is
made.
Assumption 9.1 The human and environment torques as well as their derivatives are
bounded for all time, i.e. there exist positive constants bh , bdh , be and bde such that
Fh ≤ bh < ∞, dtd Fh ≤ bdh < ∞, Fe ≤ be < ∞, and dtd Fe ≤ bde < ∞ ∀
t ≥ t0 . Furthermore, the robot manipulators do not reach any singularity so that the
inverse matrices J i−1 (qi ) always exist.
With this in mind, the following procedure is completely similar to that given in
Section 6.3:
1. The first step is to show how to set gains to make x(t) bounded for all time, i.e.
x ∈ D ∀ t ≥ t0 , as long as the initial condition x(t0 ) is also contained in D. In
order to do this, consider
264 9 Bilateral Teleoperation
1 T
V (x) = x Mx, (9.32)
2
with M = block diag {H l (ql ), H r (qr ), I, I}, which satisfies (4.29) after Prop-
erty 3.7, i.e.
with λ1 = 21 λmin (M) and λ2 = 21 λmax (M). By taking into account Property 3.2,
the derivative of V (x) along (9.26) and (9.30) is given by
V̇ (x) = − sTql K vl sql + sTql K al żl + K pl rl + yal − gl − τ h
− sTqr K vr sqr + sTqr K ar żr + K pr rr + yar − gr + τ e
d
− rl K dl rl + rl ṡql − K γ l σ l
T T
dt
d
− rr K dr rr + rr ṡqr − K γ r σ r
T T
dt
≤ − λmin (K vl )sql 2 − λmin (K vr )sqr 2
+ sql λmax (K al )żl + λmax (K pl )rl
+ sql yal − gl − τ h
+ sqr λmax (K ar )żr + λmax (K pr )rr
+ sql yar − gr + τ e
d
− λmin (K dl )rl 2 + rl ṡ
ql − K σ
dt
γl l
d
− λmin (K dr )rr 2 + rr ṡ
qr − K σ
r . (9.34)
dt
γr
Since the stability analysis is valid only in D, there must exist positive constants
such that
Also, in D it is satisfied
for some positive constant z max i , while directly from (9.25) one gets
Then, by taking into account (9.35)–(9.40), Property 3.11 and Assumption 9.1,
it is possible to rewrite V̇ (x) in (9.34) as
λmin (K vl ) ≥ 1 + 2δ (9.45)
λmin (K vr ) ≥ 1 + 2δ (9.46)
βl2
λmin (K dl ) ≥ + 2δ (9.47)
4
β2
λmin (K dr ) ≥ r + 2δ, (9.48)
4
where δ is a positive constant. Then, it is straightforward to get
Define
β
μ= . (9.50)
δ
Then, whenever x ≥ μ one has
By taking into account (9.33), conditions (4.29) and (4.53) of Theorem 4.5 are
fulfilled in D. According to the same theorem, the initial condition must comply
with (4.56), i.e.
266 9 Bilateral Teleoperation
λ1
x(t0 ) ≤ ,
λ2
By using this equation and the fact that ṡqi − z̈i is bounded in D, it can be
shown that si ≡ 0 in a finite time tr ≥ 0 as shown in Section 6.3. Then, take into
account (9.9)–(9.13) to get
which represents a stable linear filter for zi with input zero, so that zi , żi → 0.
3. While the observations errors tend to zero, the tracking errors can only be shown
to be bounded in a finite time. To prove this, recall that si = 0 in a finite time
tr ≥ t0 , so that from (9.8) and (9.13) one has
with
ki
ei ≤ ki e−λi (t−t0 ) ei (t0 ) + sup ui (ϑ), (9.62)
λi 0≤ϑ≤t
for some positive constants ki and λi . Clearly, the first term will vanish as t → ∞,
but it is necessary to show that λkii can be made arbitrarily small. To simplify the
discussion, suppose that the eigenvalues of xi are chosen all real and distinct,
satisfying
xi d i j = λi j d i j , (9.64)
ηik
T
d il = δkl , (9.66)
n
e(t−t0 )xi = eλi j (t−t0 ) d i j ηiTj . (9.67)
j=1
n
n
e(t−t0 )xi ≤ eλi j (t−t0 ) d i j ηi j = eλi j (t−t0 ) , (9.68)
j=1 j=1
n
e(t−t0 )xi ≤ eλi1 (t−t0 ) = neλi1 (t−t0 ) = ne−λi (t−t0 ) , (9.69)
j=1
with λi = |λi1 |. By setting ki = n one gets (9.61). Recalling that every variable is
bounded in D and taking into account Assumption 9.2, there must exist a positive
constant u max i so that ui ≤ u max i < ∞ ∀ t ≥ t0 . Since e−λi t → 0, then for a large
enough time the ultimate bound for ei will satisfy according to (9.62)
ki
ei (t) ≤ u max i = δmax i . (9.70)
λi
Since λi = min |λ(xi )|, by choosing λi large enough then δmax i becomes arbitrarily
small for i =l, r.
4. Suppose that τ h = τ e = 0, then all tracking errors tend to zero and consensus is
achieved, i.e. ql (t) = qr (t) = qc for some constant qc . This behavior corresponds
to Criterion 9.3.1 and to prove it assume that the bounds δmax i in (9.70) are chosen
small enough to make the tracking error negligible, i.e. el ≈ 0 and er ≈ 0, so
that according to (9.3) and (9.4) the following holds
Equation (9.72) is valid for any unrelated variable time delays Ti (t) and T j (t) and
for an arbitrarily small tracking error, which in general can only be satisfied if and
only if qi (t) ≡ qc for some constant vector qc . This also implies that q̇i (t) → 0 so
that the input of the filter in (9.58) becomes zero even if time delays are variable,
meaning that one has ėi , ei → 0 exactly, not only approximately. For that reason
one must have qr (t) = ql (t) ≡ qc , i.e. consensus is achieved. Of course, it is
worthy to mention that the robots can also have a synchronized movement in
the sense that they track each other with a periodic behavior if the round delay
9.2 Control and Observer Design 269
is constant, i.e. the sum Ti (t) + T j (t) is constant. The reason is that (9.72) can
also be fulfilled if the manipulators track each other with a periodic behavior.
This, however, depends on the particular characteristics of the time delays and
it is a behavior that cannot be induced by gain tuning. Note that consensus is
guaranteed for τ h = τ e = 0 without needing the exact knowledge of the gravity
vector, which represents an advantage over previous approaches.
5. Suppose that τ h = 0 but τ e = 0 but one still has el ≈ 0. For that case the
human operator will not be able to move the local manipulator and the previous
item 4 will still be valid because (9.70) holds regardless τ h and τ e , i.e. regardless
the values of bh and be , although according to (9.45)–(9.48), δ has to be chosen
larger to keep the same value of μ in (9.50) as for the case when τ h = τ e = 0.
Thus, el ≈ 0 means that the human operator will be treated as a perturbation
and rejected by the controller, so that he/she will not be able to move the local end-
effector according with (9.72). In order to avoid this undesirable effect el ≈ 0
should not hold so that the human operator be able to move the local end-effector,
while the remote tracking error er can as before be made arbitrarily small. This
corresponds to Criterion 9.3.2.
6. Suppose that τ h = 0 and τ e = 0 and assume that el ≈ 0 does not hold, so
that the human operator is able to move the local end-effector. Then, once the
movement of the remote robot is constrained, he/she will undergo delayed kine-
matic correspondence in the sense that he/she will no longer be able to freely
move the local end-effector in the direction the remote manipulator is applying
the contact force and the remote contact surface will locally be reproduced with
an error no larger than δmax l . This is true because the value of el cannot be
larger than δmaxl in (9.70), meaning that the remote surface is being reproduced
with an error no larger than δmax l . This corresponds to Criterion 9.3.3a.
7. Item 6 makes clear that force feedback is mandatory to achieve Criterion 9.3.3c.
To show this, under the control laws (9.22)–(9.23), the closed loop dynamics is
once again given by (9.26), but this time with
where the − sign is for i = l and the + sign is for i = r. Note that (9.6) has
been used to get (9.73). Thus, should τ pl and τ pr be bounded, then exactly the
very same conclusions can be drawn as before, i.e. items 1–6 hold. However,
while Assumption 9.1 guarantees the boundedness of Fi , that of pi cannot
be assumed and it has to be enforced by gain tuning. To do so, it is convenient
to rewrite (9.26) as
where
spi = sqi − K −1 −1 T
vi τ pi = sqi ± K vi J i (qi ) Fi + K fi pi , (9.75)
270 9 Bilateral Teleoperation
and
ybi = − H i (q̈ri + K −1 −1
vi τ̇ pi ) + C i (q̇ri + K vi τ pi ) + Di q̇ri + K ai q̇ri .
(9.76)
Clearly, the positive definite function V (x) in (9.32) can be employed once
again, with a proper new region D. Note that new but fully equivalent equations
of the form (9.33) to (9.52) can be gotten as long as pi is bounded because
d
dt
Fi is bounded by Assumptions 9.1 and 9.2. Certainly, the values of the
constants in (9.35)–(9.38) and (9.42)–(9.44) would be different, but that remains
a minor detail since ultimate boundedness of the system trajectories could still be
guaranteed by gain tuning just as before. Therefore, only the boundedness of pi
needs to be proven. Recall that by Assumption 9.1 the inverse J i−T (qi ) always
exists. Then, to ensure the boundedness of pi , eq. (9.75) can be rewritten as
Fi = −K fi pi ∓ J i−T (qi )K vi spi − sqi (9.78)
to allow to describe the system’s closed loop dynamics by (9.30), (9.74) and
(9.78) and to define a new closed loop state as
⎡ ⎤
spl
⎢ spr ⎥
⎢ ⎥
⎢ rl ⎥ x
⎢
y=⎢ ⎥
⎥ = p . (9.79)
⎢ rr ⎥
⎣ pl ⎦
pr
for some 0 < < ∞ can be defined for the state y, so that the boundedness of
every signal of interest is guaranteed in Dy as before. The usefulness of (9.30),
(9.74) and (9.78) is that being pi part of the state, then conditions can be found
to enforce the boundedness of y by using Theorem 4.5. The main goal is to
obtain an equation of the form (9.49) but for the state y. As a matter of fact,
as said before and without any lost of generality V (x) in (9.32) can be used to
arrive exactly to (9.49) (in terms of the new x) just by properly changing the
9.2 Control and Observer Design 271
1 T 1 1
Vp (p) = p p = pTl pl + pTr pr , (9.80)
2 2 2
and
1 T
Vy (y) = V (x) + Vp (p) = y Ny, (9.81)
2
where N = block diag {H l (ql ), H r (qr ), I, I, I, I}. As before, it satisfies condi-
tion (4.29) after Property 3.7 with α1 (y) = λy1 y2 , and α2 (y) = λy2 y2
for λy1 = 21 λmin (N) and λy2 = 21 λmax (N). Then, by direct computation it can be
shown that V̇y (y) ≤ −δy2 holds for some δ > 0 by setting gains large enough
whenever y ≥ μ with μ arbitrary small. This allows to employ once again
Theorem 4.5. Certainly, this proves that it is always possible to find a set of
gains to keep p bounded. As previously discussed, just the boundedness of
p ensures that items 1–6 still hold. From (9.78) it is possible to obtain
d
Fi = −K fi Fi ∓ ωi (9.82)
dt
Tuning guide
The equations required to implement the bilateral teleoperation scheme presented in
this chapter are the tracking error definitions (9.3) and (9.4), the relationship (9.6),
the observer (9.9)–(9.12, the auxiliary variables (9.13)–(9.17), the force error def-
initions (9.20) and (9.21), and the control laws (9.22) and (9.23). The following
suggestions can be followed to tune the controller.
• At first, neglect the force control terms as well as the sliding mode ones, by setting
K fi = K fi = K βi = K γ i = O, i = l, s.
• Tune the observer gains, kd and z , satisfying (6.65)–(6.67) and (6.69)–(6.70), to
minimize the observation error z.
• Tune the remaining position tracking controllers as standard PD ones, with K pi as
the derivative gain matrices and xi = K −1 pi K pxi , where K pxi are the proportional
gain matrices.
• Add damping by setting K al and K ar to obtain a stable teleoperation in presence
of time-delays. Note that the larger these gains, the more stable will be the teleop-
erator, but at the expense of making it stiffer.
• Increase the gains K γ i slowly to improve the tracking performance, but preventing
the actuators to present chattering.
• Increase the gains K βi slowly in the same manner.
• Include the force control terms and increase K fl and K fr until obtaining the desired
force tracking performance.
Experiments
The gains employed to evaluate the scheme of this chapter for both constant and
time-varying delays, obtained by following the suggestions above are summarized
in Table 9.1.
Constant time-delay
For this scenario, asymmetrical delays are artificially created for each robot, being
Tl = 0.5 s for the local manipulator and Tr = 0.4 s for the remote one. The experiment
starts in free motion for about 40 s, then enters in contact with a rigid surface, and
finally returns to free motion again.
The tracking position in joint coordinates for this case is shown in Fig. 9.2, whereas
the corresponding tracking error is displayed in Fig. 9.3. A comparison between the
joint velocities obtained through a numerical derivative and the ones estimated by
the observer is presented in Fig. 9.4 for the local, and in Fig. 9.5 for the remote
manipulator. The contact force along with the force reflected to the local operator is
shown in Fig. 9.6, with their corresponding force tracking errors displayed in Fig. 9.7.
Time-varying delay
In this case, again, asymmetrical delays are artificially created for each robot, but
time-varying. The time-delay for the local manipulator is created through a ran-
dom function taking values in the interval Tl ∈ [0.45, 0.55] s, whereas the time-
delay random function for the remote manipulator takes values in the interval
Tr ∈ [0.65, 0.75] s. A plot of the mentioned time-varying delays is shown in Fig. 9.8.
The experiment starts in free motion for about 30 s, then enters in contact with a rigid
surface, and finally returns to free motion again.
274 9 Bilateral Teleoperation
The tracking position in joint coordinates for this case is shown in Fig. 9.9, with
their corresponding tracking errors displayed in Fig. 9.10. A comparison between
the joint velocities obtained through a numerical derivative and the ones estimated
by the observer is presented in Fig. 9.11 for the local, and in Fig. 9.12 for the remote
manipulator. The contact force along with the force reflected to the local operator
is shown in Fig. 9.13, with their corresponding force tracking errors displayed in
Fig. 9.14.
When comparing the graphics of the constant delay case with those of the time-
varying delay, it can be seen that even the relatively low time-variation of 0.1 s,
affects in a great manner the performance of the position tracking, particularly when
interacting with the environment. Nevertheless, it can be also appreciated that the
teleoperator remained stable during all the experiments.
9.3 Experimental Results 275
Fig. 9.4 Constant time-delay, joint velocity estimation for the local manipulator: observer (—),
numerical (– –)
Fig. 9.5 Constant time-delay, joint velocity estimation for the remote manipulator: observer (—),
numerical (– –)
276 9 Bilateral Teleoperation
Fig. 9.8 Variable time-delay, time delays: Tl (t) (up), Tr (t) (down)
Fig. 9.11 Variable time-delay, joint velocity estimation for the local manipulator: observer (—),
numerical (– –)
9.3 Experimental Results 279
Fig. 9.12 Variable time-delay, joint velocity estimation for the remote manipulator: observer (—),
numerical (– –)
References
Aldana CI, Romero E, Nuño E, Basañez L (2015) Pose consensus in networks of heterogeneous
robots with variable time delays. Int J Robust Nonlinear Control 25(14):2279–2298
Arteaga-Pérez MA, Castillo-Sánchez AM, Parra-Vega V (2006) Cartesian control of robots without
dynamic model and observer design. Automatica 42:473–480
Arteaga-Pérez MA, López M, Nuño E, Hernández-Ortiz O (2019) On the delayed kinematic cor-
respondence with variable time delays for the control of the bilateral teleoperation of robots. Int
J Control. https://doi.org/10.1080/00207179.2019.1707287
Arteaga-Pérez MA, Morales M, López M, Nuño E (2018) Observer design for the synchronization
of bilateral delayed teleoperators. Eur J Control 43:20–32. https://doi.org/10.1016/j.ejcon.2018.
06.001
Callier FM, Desoer CA (1991) Linear system theory. Springer, New York
Chopra N, Spong MW, Lozano R (2008) Synchronization of bilateral teleoperators with time delay.
Automatica 44:2142–2148
Hashtrudi-Zaad K, Salcudean SE (2002) Transparency in time-delayed systems and the effect of
local force feedback for transparent teleoperation. IEEE Trans Robot Autom 18(1):108–114
Khalil HK (2002) Nonlinear systems, 3rd edn. Prentice-Hall, Upper Saddle River
Lawrence DA (1993) Stability and transparency in bilateral teleoperation. IEEE Trans Robot Autom
9(5):624–637
References 281
Nuño E, Basañez L, Ortega R (2011) Passivity-based control for bilateral teleoperation: a tutorial.
Automatica 47(3):485–495
Passenberg C, Peer A, Buss M (2010) A survey of environment-, operator-, and task-adapted con-
trollers for teleoperation systems. Mechatronics 20:787–801
Slawiñski E, Mut VA, Fiorini P, Salinas LR (2012) Quantitative absolute transparency for bilateral
teleoperation of mobile robots. IEEE Trans Syst Man Cybern Part A Syst Humans 42(2):430–442
Yokokohji Y, Yoshikawa T (1994) Bilateral control of master-slave manipulators for ideal kinesthetic
coupling: formulation and experiments. IEEE Trans Robot Autom 10(5):605–620
Chapter 10
Robot Networks
Abstract The consensus problem for networks of multiple agents consists in reach-
ing an agreement between certain coordinates of interest using a distributed con-
troller. For a robot network, there are multiple communication channels, each of
them possibly with a time varying delay, which makes the stability analysis and the
control design more complex. A common way to analyze the consensus problem
for this case is by employing algebraic graphs. Usually, the graph is assumed to be
undirected and connected. This chapter deals with the design of a control law with a
velocity observer to solve the Leader Follower Consensus Problem and the Leader-
less Consensus Problem in networks of fully actuated robots modeled as undirected
weighted graphs.
for i = 1, . . . , N .
10.2 Leaderless Consensus Problem (LCP) 285
For the leaderless consensus problem (LCP) the control objective is that all robot
positions reach a consensus with zero velocity, i.e. for all i = 1, . . . , N there exists
qc ∈ Rn such that
One of the most common approaches to achieve this goal is to use a PD control law
with damping inclusion and gravity cancellation of the form
N
τ i = gi (qi ) − pi ai j (qi − q̄ j ) − di q̇i (10.4)
j=1
q̄ j = q j (t − T ji (t)), (10.5)
where zi , K di ∈ Rn×n are positive definite and diagonal matrices and (ˆ·) is the
estimated value of (·). The usual observation error definition (6.1)
zi = qi − q̂i ,
is employed. Note that the observer (10.6)–(10.7) requires the knowledge of the N
inertia matrices, while the control law (10.4) becomes
N
τ i = gi (qi ) − pi ai j (qi − q̄ j ) − di q̂˙ i . (10.8)
j=1
To compute the closed loop dynamics, from (10.2), (10.8) and (6.1) it is
N
H i (qi )q̈i + C i (qi , q̇i )q̇i + K vi q̇i + pi ai j (qi − q̄ j ) − di żi = 0, (10.9)
j=1
286 10 Robot Networks
where
K vi = Di + di I. (10.10)
As to the observer closed loop dynamics, once again a sliding variable of the
form (6.45) is employed, i.e.
N
q̂¨ i = zi żi + K di żi + K di zi zi − pi H i−1 (qi ) ai j (qi − q̄ j ), (10.12)
j=1
N
q̈i = ṙi + K di ri − pi H i−1 (qi ) ai j (qi − q̄ j ), (10.13)
j=1
To show that the control objective (10.3) can be achieved with this control-observer
scheme define the error
ei j = qi − q j , (10.15)
for each subsystem dynamics (10.9), (10.11) and (10.14) and where xi ∈ Rn(3+ni ) .
Then consider also for each manipulator the following positive definite function
10.2 Leaderless Consensus Problem (LCP) 287
1
N
1 T 1 1
Vi = q̇i H i (qi )q̇i + ai j qi − q j 2 + riT ri + γi ziT −1
zi zi , (10.17)
2 pi 4 j=1 2 2
with γi > 0. As usual, by taking Property 3.7 into account, condition (4.29) holds
for each Vi , i.e.
αi1 (xi ) = λi1 xi 2 ≤ Vi ≤ λi2 xi 2 = αi2 (xi ), (10.18)
with
λhi 1 1 1 γi
λi1 = min , min ai j , , (10.19)
2 pi 4 j∈Ni 2 2 λmax (zi )
and
λHi 1 1 1 γi
λi2 = max , max ai j , , . (10.20)
2 pi 4 j∈Ni 2 2 λmin (zi )
This way, for the whole robot network the following positive definite function can
be used
N
V (x) = Vi , (10.21)
i=1
with
⎡ ⎤
x1
⎢ ⎥
x = ⎣ ... ⎦ . (10.22)
xN
By using Property 3.2, the derivative of Vi in (10.17) along (10.9), (10.11) and (10.14)
can directly be computed as
288 10 Robot Networks
⎛ ⎞
1 T⎝ N
V̇i = − q̇i K vi q̇i + pi ai j (qi − q̄ j ) − di żi ⎠
pi j=1
1
N
+ ai j (qi − q j )T (q̇i − q̇ j )
2 j=1
− riT K di ri − riT H i−1 (qi ) C i (qi , q̇i )q̇i + K vi q̇i − di żi + γi ziT −1
zi żi
di di
≤ − q̇i 2 + q̇iT (−zi zi + ri ) − riT K dhi ri
pi pi
N
1
N
− q̇iT ai j (qi − q̄ j ) + ai j (qi − q j )T (q̇i − q̇ j )
j=1
2 j=1
− ri H i (qi ) C i (qi , q̇i )q̇i + K vi q̇i + di zi zi − γi ziT zi + γi ziT −1
T −1
zi ri ,
(10.24)
where
t
q j − q̄ j = q j − q j (t − T ji (t)) = q̇ j (θ )dθ, (10.26)
t−T ji (t)
one gets
⎛ ⎞
N
N t
⎜ ⎟
q̇iT ai j (qi − q̄ j ) = q̇iT ai j ⎝qi − q j + q̇ j (θ )dθ ⎠
j=1 j=1 t−T ji (t)
N
N t
= q̇iT ai j (qi − q j ) + q̇iT ai j q̇ j (θ )dθ. (10.27)
j=1 j=1 t−T ji (t)
1
N N
ai j (q̇i − q̇ j )T (qi − q j ) − q̇iT ai j (qi − q j ) =
2
j=1 j=1
1
N N
1
ai j (q̇i − q̇ j )T − q̇iT (qi − q j ) = − ai j (q̇i + q̇ j )T (qi − q j ).
2 2
j=1 j=1
(10.28)
10.2 Leaderless Consensus Problem (LCP) 289
di di
V̇i ≤ − q̇ 2 + q̇iT (−zi zi + ri ) − riT K dhi ri
pi i pi
t
1
N N
− T
ai j q̇i q̇ j (θ )dθ − ai j (q̇i + q̇ j )T (qi − q j )
j=1
2 j=1
t−T ji (t)
− riT H i−1 (qi ) C i (qi , q̇i )q̇i + K vi q̇i + di zi zi − γi ziT zi + γi ziT −1
zi ri .
(10.29)
The next step consists in adding all the derivatives V̇i to get the derivative of V (x).
However, prior to do it consider the following
N
N
ai j (q̇i + q̇ j )T (qi − q j ) =
i=1 j=1
N
N
ai j q̇iT qi − q̇iT q j + q̇Tj qi − q̇Tj q j =
i=1 j=1
N
ai1 q̇iT qi − q̇iT q1 + q̇T1 qi − q̇T1 q1 + · · · + ai N q̇iT qi − q̇iT q N + q̇TN qi − q̇TN q N =
i=1
a11 q̇T1 q1 − q̇T1 q1 + q̇T1 q1 − q̇T1 q1 + · · · + a1N q̇T1 q1 − q̇T1 q N + q̇TN q1 − q̇TN q N +
..
.
a N 1 q̇TN q N − q̇TN q1 + q̇T1 q N − q̇T1 q1 + · · · + a N N q̇TN q N − q̇TN q N + q̇TN q N − q̇TN q N = 0.
N
di di
V̇ ≤ − q̇i 2 + q̇iT (−zi zi + ri )
i=1
pi pi
N t
− ai j q̇iT q̇ j (θ )dθ − riT K dhi ri
j=1 t−T ji (t)
−riT H i−1 (qi ) C i (qi , q̇i )q̇i + K vi q̇i + di zi zi − γi ziT zi + γi ziT −1
zi ri . (10.30)
Since the stability analysis is only intended to be valid in D, then from the state
definitions (10.16) and (10.22) it holds
By taking into account K dhi = K di − di H i−1 (qi ), and Properties 3.7 and 3.9 one gets
from (10.30)
290 10 Robot Networks
N
di di di
V̇ ≤ − q̇i 2 + λmax (zi )q̇i zi + q̇i ri
i=1
pi pi pi
N t
− ai j q̇iT q̇ j (θ )dθ
j=1 t−T ji (t)
di
− λmin (K di )ri 2 + ri 2
λhi
kci + λmax (K vi ) di
+ q̇i ri + λmax (zi )zi ri
λhi λhi
γi
− γi zi 2 + zi ri . (10.32)
λmin (zi )
di kci + λmax (K vi )
βi = + , (10.33)
pi λhi
to rewrite V̇ as
N
di di
V̇ ≤ − q̇i 2 + βi q̇i ri + λmax (zi )q̇i zi
pi pi
i=1
N t
− ai j q̇iT q̇ j (θ)dθ
j=1 t−T ji (t)
! " ! "
di di γi
− λmin (K di ) − ri 2 + λmax (zi ) + zi ri − γi zi 2 .
λhi λhi λmin (zi )
(10.34)
Choose gains as
di ≥ pi (2 + δ̄di ) (10.35)
! "2
1 di
γi ≥ λmax (zi ) + 1 (10.36)
4 pi
! "2
di 1 di γi β2
λmin (K di ) ≥ + λmax (zi ) + + i + δri (10.37)
λhi 4 λhi λmin (zi ) 4
where δri and δ̄di are positive constants. With this choice it is quite direct to get
⎧ ⎫
N ⎪
⎨
N t ⎪
⎬
V̇ ≤ −δ̄di q̇i 2 − δri ri 2 − ai j q̇iT q̇ j (θ )dθ . (10.38)
⎪ ⎪
i=1 ⎩ j=1 t−T ji (t)
⎭
10.2 Leaderless Consensus Problem (LCP) 291
t
V̇ (σ )dσ = V (t) − V (t0 )
t0
⎧ & '⎫
N ⎨ N 2 ⎬
αi T ji
≤ −δ̄di q̇i 22 − δri ri 22 + ai j q̇i 22 + q̇ j 22 ,
⎩ 2 2αi ⎭
i=1 j=1
(10.39)
(10.41)
N
V (t) + δdi q̇i 22 + δri ri 22 ≤ V (t0 ). (10.43)
i=1
Since this relationship is valid only for x ∈ D, it is necessary to guarantee that x will
never leave this region. After (10.23) and (10.43) one must have
292 10 Robot Networks
Satisfying (10.46) makes (10.43) valid for all time t ≥ t0 , which implies that
• q̇i , ri ∈ L2 ∀ i = 1, . . . , N
• V (t) ∈ L∞
After (10.17), the latter fact ensures that
• q̇i , qi − q j , ri , zi ∈ L∞ ∀ i, j = 1, . . . , N
From (10.11) one necessarily has
• żi ∈ L∞ ∀ i = 1, . . . , N
and consequently
• q̂˙ i ∈ L∞ ∀ i = 1, . . . , N
and from (10.14)
• ṙi ∈ L∞ ∀ i = 1, . . . , N
because only revolute joints are considered for simplicity. Since ri ∈ L2 ∩ L∞
Lemma 4.4 can be employed to show that
• ri → 0 ∀ i = 1, . . . , N
But from (10.11) this proves that
• zi , żi → 0, and q̂i → qi , q̂˙ i → q̇i ∀ i = 1, . . . , N
On the other hand, from (10.5) it is
where it has been shown that qi − q j is bounded. As for the second term, Schwartz’s
inequality, i.e.
10.2 Leaderless Consensus Problem (LCP) 293
⎡ t ⎤ 21 ⎡ t ⎤ 21
t
aT (θ )b(θ )dθ ≤ ⎣ a(θ )2 dθ ⎦ ⎣ b(θ )2 dθ ⎦ , (10.48)
t0 t0 t0
t
) )
q j − q j (t − T ji (t)) ≤ T ji (t)
2 )q̇ j (θ ))2 dθ
t−T ji (t)
t
) )
≤ T ji )q̇ j (θ ))2 dθ ≤ T ji q̇ j 2 , (10.50)
2
t0
t t
) ) ) )
)q̇ j (θ ))2 dθ ≤ )q̇ j (θ ))2 dθ (10.51)
t−T ji (t) t0
d
H i (qi ) q̈ + Ḣ i (qi )q̈i + Ċ i (qi , q̇i , q̈i )q̇i + C i (qi , q̇i )q̈i
dt i
N
+ K vi q̈i − di z̈i + pi ai j (q̇i − (1 − Ṫ ji (t))q̇ j (t − T ji (t))) = 0,
j=1
(10.52)
it is possible to show that dtd q̈i must also be bounded ∀ i = 1, . . . , N since H i (qi ) is
full rank and Ṫ ji (t) is bounded by Assumption 10.2. Furthermore, one can conclude
from Lemma 4.5 (Barbalat’s Lemma) that
• q̈i → 0 ∀ i = 1, . . . , N
because
∞
q̈i (θ )dθ = q̇i (∞) − q̇i (t0 ) = −q̇i (t0 ). (10.53)
t0
N
pi ai j (qi − q̄ j ) = 0. (10.54)
j=1
The fact that velocities are zero at the equilibrium makes q̄ j = q j (t − T ji (t)) ≡
q j (t), and the following holds
N
pi ai j (qi − q j ) = 0, (10.55)
j=1
N
ai j qi − ai1 q1 − · · · − aii qi − · · · − ai N q N = 0. (10.56)
j=1
According with (10.1), li j = −ai j unless i = j, for which case aii = 0 but li j =
N
k=1 aik , which means that from (10.56) one gets
li1 q1 + · · · + li N q N = 0, (10.57)
Define
⎡ ⎤
q1
⎢ ⎥
q = ⎣ ... ⎦ (10.59)
qN
Recall now that the Laplacian L matrix has almost only positive eigenvalues with
the exception of one single zero eigenvalue and that any eigenvector associated to
that single zero eigenvalue is given by α1 N ∈ R N where α is any real value different
from zero and 1 N is a column vector filled with ones. This means that
(L ⊗ I n )q = 0 (10.61)
q1 = · · · = q N ≡ qc , (10.62)
with qc a constant vector, precisely because L has one single zero eigenvalue asso-
ciated to the eigenvector 1n .
Leader follower consensus problem (LFCP)
The constant vector qc in (10.62) can in fact be any constant vector. This represents
a serious drawback in practical situations because physically a robot manipulator
can only reach those positions in its work space. Therefore, it is more desirable that
the network can be regulated at a given constant leader pose qle ∈ Rn . Of course,
it makes little sense to give this information to all of the robots of the network, so
that qle is only available to a certain set of them, i.e. instead of (10.3) one has to
accomplish
It turns out that the control law (10.8) needs a minimal change to achieve this goal,
since it has to be modified as
296 10 Robot Networks
N
τ i = gi (qi ) − pi ai j (qi − q̄ j ) − di q̂˙ i − pi bli (qi − qle ), (10.64)
j=1
where bli is positive for n l < N manipulators, while the rest of them are zero. This
modification needs also to be included in the observer, so that (10.7) needs to be
changed as
⎧ ⎫
⎨N ⎬
ξ̇ i = K di zi zi − pi H i−1 (qi ) ai j (qi − q̄ j ) + bli (qi − qle ) . (10.65)
⎩ ⎭
j=1
To analyze the stability properties of the new scheme an extra error definition only
for those robots where bli > 0 is given by
ei = qi − qle , (10.66)
while the definition of x in (10.22) is still valid. Finally, the positive definite functions
Vi in (10.17) have also to be modified as
1
N
1 T bli
Vi = q̇i H i (qi )q̇i + |qi − qle |2 + ai j qi − q j 2
2 pi 2 4 j=1
1 T 1
+ ri ri + γi ziT −1
zi zi . (10.68)
2 2
Note that (10.18) still holds, but with
λhi 1 1 bli 1 γi
λi1 = min , min ai j , , min , (10.69)
2 pi 4 j∈Ni 2 2 2 λmax (zi )
and
λHi 1 1 bli 1 γi
λi2 = max , max ai j , , max , . (10.70)
2 pi 4 j∈Ni 2 2 2 λmin (zi )
10.2 Leaderless Consensus Problem (LCP) 297
It is now possible to use Vi in (10.68) together with V (x) in (10.21) to arrive by direct
computation to the very same conclusions as before, i.e.
• q̇i , ri , qi − q̄ j , q̈i ∈ L∞
• q̇i , ri , zi , żi → 0, ṙi → 0, z̈i → 0
• qi − qle ∈ L∞
Most important, this can be done under the same stability conditions (10.35)–(10.37)
and (10.42) for i, j = 1, . . . , N . However, equation (10.9) changes to
when necessary. As before, the computation of the derivative of this equation allows
to arrive to the conclusion that
• q̈i → 0 ∀ i = 1, . . . , N
As to the equilibrium point instead of (10.55) one has
N
ai j (qi − q j ) + bli (qi − qle ) = 0. (10.72)
j=1
By defining B = diag (bl1 , . . . , blN ) with bli = 0 when necessary and using q
in (10.59), the last equation can be rewritten using the Kronecker product as
Therefore, using this expression and (10.60) one can write (10.72) as
or
Ll = B + L. (10.78)
But since L is a positive semidefinite matrix with one single zero eigenvalue, the
addition of B is enough to make the matrix Ll symmetric and positive definite. This
means that (10.77) can hold if and only if
q − (1 N ⊗ qle ) = 0, (10.79)
qi ≡ qle , (10.80)
Experiments
Two experiments are carried out to test the LCP controller of Sect. 10.2, one with
constant time-delays in the communication channel and the other one with variable
time-delays. For the first case, different time-delays are considered for each robot, i.e.
T12 = T13 = 0.45 s, T21 = T23 = 0.65 s and T31 = T32 = 0.85 s. In the time-varying
delays case, there are considered T12 = T13 ∈ [0.4, 0.5] s, T21 = T23 ∈ [0.6, 0.7] s,
and T31 = T32 ∈ [0.8, 0.9] s. A plot of the time delays is shown in Fig. 10.2.
The interconnection constants are assumed to be ai j = 5, i = j. Each robot is
manually drove to an arbitrary initial position, aided by a gravity compensation
10.3 Experimental Results 299
Fig. 10.2 Artificially implemented time-delays: robot 1 (up),robot 2 (middle), robot 3 (down)
torque, before running the controller. The chosen gains for the implementation of the
LCP controller for both constant and time-varying delays are shown in Table 10.1.
Constant time-delay
The time evolution of the joint positions for all three robots is displayed in Fig. 10.3.
From this graphic, it can be seen that the robots reach a consensus position in steady
state, after about 3 s. The joint velocities estimated by the observer along with the
ones obtained by a derivative filter are shown in Figs. 10.4, 10.5 and 10.6, for robots
1,2, and 3, respectively.
300 10 Robot Networks
Fig. 10.3 LCP under constant time-delays, joint positions: robot 1 (—), robot 2 (—), robot 3 (—)
Fig. 10.4 LCP under constant time-delays, joint velocity estimation for robot 1: observer (—),
numerical (– –)
10.3 Experimental Results 301
Fig. 10.5 LCP under constant time-delays, joint velocity estimation for robot 2: observer (—),
numerical (– -)
Time-varying delay
The time evolution of the joint positions for all three robots is shown in Fig. 10.7. As
in the constant delay case, the robots reach a consensus position after about 3 s. The
joint velocities estimated by the observer along with the ones obtained by a derivative
filter are shown in Figs. 10.8, 10.9 and 10.10, for robots 1, 2, and 3, respectively.
Tuning guide
The required equations for the implementation of the LFCP scheme of Sect. 10.2 are
the observer equations (10.6) and (10.65), and the control law (10.64). To tune the
controller, the following suggestions might be useful.
• Tune the observer gains, kd and z , satisfying (6.65)–(6.67) and (6.69)–(6.70), to
minimize the observation error z.
• Set the interconnection gains pi > 0.
302 10 Robot Networks
Fig. 10.6 LCP under constant time-delays, joint velocity estimation for robot 3: observer (—),
numerical (– –)
• Add damping by setting the di gains to satisfy (10.35). Note that the larger these
gains, the more stable will be the robots’ motion, but at the expense of making
them stiffer.
Experiments
In order to test the LFCP controller of Sect. 10.2, the same two scenarios as in the LCP
problem are considered, i.e. constant and variable time-delays in the communication
channel. For these case, the same delays of the LCP problem are considered, i.e. the
ones depicted in Fig. 10.2.
The interconnection constants are assumed to be ai j = 5, i = j. It is considered
that only the robot 1 receives information from the leader, by setting bl1 = 15. The
leader position is set to
T
qle = −30◦ 45◦ −90◦ .
Fig. 10.7 LCP, under variable time-delays, joint positions: robot 1 (—), robot 2 (—), robot 3 (—)
Constant time-delay
The joint positions for all three robots are shown in Fig. 10.11. In this figure, it can
be seen that all the three robot positions approach to the leader reference in steady
state after about 3 s, though some oscillations are still present in joint 1 of robots 1
and 3. The joint velocities estimated by the observer along with the ones obtained
by a derivative filter are shown in Figs. 10.12, 10.13, and 10.14, for robots 1,2, and
3, respectively.
304 10 Robot Networks
Fig. 10.8 LCP under variable time-delays, joint velocity estimation for robot 1: observer (—),
numerical (– –)
Time-varying delay
The time evolution of the joint positions for all three robots is shown in Fig. 10.15. As
in the constant delay case, the robots approach to the leader position after about 3 s,
with less oscillations than in the constant delay case. The joint velocities estimated
by the observer along with the ones obtained by a derivative filter are shown in
Figs. 10.16, 10.17, and 10.18, for robots 1,2, and 3, respectively.
10.3 Experimental Results 305
Fig. 10.9 LCP under variable time-delays, joint velocity estimation for robot 2: observer (—),
numerical (– –)
Fig. 10.10 LCP under variable time-delays, joint velocity estimation for robot 3: observer (—),
numerical (– –)
306 10 Robot Networks
Fig. 10.11 LFCP under constant time-delays, joint positions: robot 1 (—), robot 2 (—), robot 3 (—)
Fig. 10.12 LFCP under constant time-delays, joint velocity estimation for robot 1: observer (—),
numerical (– –)
10.3 Experimental Results 307
Fig. 10.13 LFCP under constant time-delays, joint velocity estimation for robot 2: observer (—),
numerical (– -)
Fig. 10.14 LFCP under constant time-delays, joint velocity estimation for robot 3: observer (—),
numerical (– –)
308 10 Robot Networks
Fig. 10.15 LFCP, under variable time-delays, joint positions: robot 1 (—), robot 2 (—), robot 3 (—)
Fig. 10.16 LFCP under variable time-delays, joint velocity estimation for robot 1: observer (—),
numerical (– –)
10.3 Experimental Results 309
Fig. 10.17 LFCP under variable time-delays, joint velocity estimation for robot 2: observer (—),
numerical (– –)
400
200
0
-200
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
100
0
-100
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
400
200
Fig. 10.18 LFCP under variable time-delays, joint velocity estimation for robot 3: observer (—),
numerical (– –)
310 10 Robot Networks
References
Abstract Parts I and II deal mainly with analytical results for the modeling and
control of robot manipulators. Although the main algorithms are expressed in a rather
generic way so that they are useful for any robot manipulator, in practice each of
them has its own particularities. The last part of the book deals with the mathematical
description of some of the robots present at the Laboratory for Robotics of the School
of Engineering at the National Autonomous University of Mexico, UNAM. This
chapter is devoted to developing the kinematic and dynamic models of the robot
A465 by CRS Robotics.
To be able to work with the A465, the first step is to describe its direct kinematic as
explain in Sect. 2.2. First of all, seven coordinate frames are assigned according to the
Denavit-Hartenberg Algorithm 1 (see Fig. 11.2). Then, Algorithm 2 is employed to
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 313
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_11
314 11 The Robot CRS 465
Table 11.1 Denavit-Hartenberg parameters (θi , αi , di , ai ) for the robot CRS A465
Joint θi (◦ ) αi (◦ ) di (m) ai (m)
1 q1 90 0.33 0
2 q2 0 0 0.305
3 q3 90 0 0
4 q4 −90 0.33 0
5 q5 90 0 0
6 q6 0 0.076 0
d4 d6
x2 .x3 x4 , x5 q5 x6
q4 q6
y2 z3 y4
z5 , z6
z2 .y3 z4 , y5 y6
y1 a2
q3
x1
z1
z0 d1
q2 y0
x0
q1
Fig. 11.2 Coordinate frames for the robot A465 assigned according to the Denavit-Hartenberg
Algorithm 1.
⎡ ⎤
c2 −s2 0 a2 c2
⎢ s2 c2 0 a 2 s2 ⎥
1
A2 = ⎢
⎣0
⎥ (11.2)
0 1 0 ⎦
0 0 0 1
⎡ ⎤
c3 0 s3 0
⎢ s3 0 −c3 0⎥
2
A3 = ⎢
⎣0
⎥ (11.3)
1 0 0⎦
0 0 0 1
⎡ ⎤
c4 0 −s4 0
⎢ s4 0 c4 0⎥
3 ⎢
A4 = ⎣ ⎥ (11.4)
0 −1 0 d4 ⎦
0 0 0 1
⎡ ⎤
c5 0 s5 0
⎢ s5 0 −c5 0⎥
4
A5 = ⎢
⎣0
⎥ (11.5)
1 0 0⎦
0 0 0 1
316 11 The Robot CRS 465
⎡ ⎤
c6 −s6 0 0
⎢ s6 c6 0 0⎥
5
A6 = ⎢
⎣0
⎥ (11.6)
0 1 d6 ⎦
0 0 0 1
where c23 = cos(q2 + q3 ) and s23 = sin(q2 + q3 ). On the other hand, the orientation
of the robot 0 R6 is expressed as follows
0
R6 = 0 R3 3 R6 (11.9)
⎡ ⎤
c4 c5 s6 − s4 s6 −c4 c5 s6 − s4 c6 c4 s5
3
R6 = ⎣ s4 c5 c6 + c4 s6 −s4 c5 s6 + c4 c6 s4 s5 ⎦ . (11.11)
−s5 c6 s5 c6 c5
Notice that the rotation matrix 3 R6 matches the rotation matrix obtained with the
Euler angles Z Y Z , i.e. the joints q4 , q5 and q6 constitute a set of Euler angles Z Y Z
with respect to the coordinate frame x3 y3 z 3 .
x
y
r
y a
z
z
c x
b
Fig. 11.3 Inertia tensor of a rectangular prism and cylinder used to approximate the links of the
robot A465
the links are approximated by rectangular prisms and cylinders with uniform mass
density as shown in Fig. 11.3. Recall that the inertia tensors of a rectangular prism
and of a cylinder, denoted by I p and I c respectively, are given by
⎡ ⎤
1
12
m(b2 + c2 ) 0 0
Ip = ⎣ 0 1
12
m(a 2
+ c2 ) 0 ⎦
0 0 1
12
m(a + b )
2 2
⎡ ⎤
1
12
m(3r 2 + 2 ) 0 0
Ic = ⎣ 0 1
12
m(3r 2 + 2 ) 0 ⎦
1
0 0 2
mr 2
where m is the mass of the object and the geometric parameters a, b, c, d and r are
shown in Fig. 11.3.
The inertia matrix of the manipulator is given by (3.27), i.e.
6
H(q) = m i J Tvci (q) J vci (q) + J Tωci (q)0 Ri I i 0 RiT J ωci (q) , (11.12)
i=1
where the Jacobian matrices J vci (q) ∈ R3×6 can be computed as follows
J vc1 (q) = z 0 × 0 r̄ 1 O 3×5
J vc2 (q) = z 0 × 0 r̄ 2 z 1 × (0 r̄ 2 − 0 p1 ) O 3×4
318 11 The Robot CRS 465
J vc3 (q) = z 0 × 0 r̄ 3 z 1 × (0 r̄ 3 − 0 p1 ) z 2 × (0 r̄ 3 − 0 p2 ) O 3×3
J vc4 (q) = z 0 × 0 r̄ 4 z 1 × (0 r̄ 4 − 0 p1 ) z 2 × (0 r̄ 4 − 0 p2 ) · · ·
z 3 × (0 r̄ 4 − 0 p3 ) O 3×2
J vc5 (q) = z 0 × 0 r̄ 5 z 1 × (0 r̄ 5 − 0 p1 ) z 2 × (0 r̄ 5 − 0 p2 ) · · ·
z 3 × (0 r̄ 5 − 0 p3 ) z 4 × (0 r̄ 5 − 0 p4 ) 0
J vc6 (q) = z 0 × 0 r̄ 6 z 1 × (0 r̄ 6 − 0 p1 ) z 2 × (0 r̄ 6 − 0 p2 ) · · ·
z 3 × (0 r̄ 6 − 0 p3 ) z 4 × (0 r̄ 6 − 0 p4 ) z 5 × (0 r̄ 6 − 0 p5 )
T
where z 0 = 0 0 1 and z j = 0 R j z 0 ; these vectors can be extracted from the homo-
geneous transformation matrix 0 A j with j = 1, . . . , 6. The vectors 0 r̄ j ∈ R3 denotes
the position of the center of mass of the jth link and 0 p j is the position vector of the
origin of the frame j. The Jacobian matrices associated with the angular velocities
are given by
⎡ ⎤
0 0 ··· 0
J ωc1 = ⎣0 0 ··· 0⎦
1 0 ··· 0
⎡ ⎤
0 s1 · · · 0
J ωc2 = ⎣ 0 −c1 · · · 0⎦
1 0 ··· 0
⎡ ⎤
0 s1 s1 · · · 0
J ωc3 = ⎣ 0 −c1 −c1 · · · 0⎦
1 0 0 ··· 0
⎡ ⎤
0 s1 s1 c1 s23 · · · 0
J ωc4 = ⎣ 0 −c1 −c1 s1 s23 · · · 0 ⎦
1 0 0 −c23 · · · 0
⎡ ⎤
0 s1 s1 c1 s23 s1 c4 − c1 c23 s4 0
J ωc5 = ⎣ 0 −c1 −c1 s1 s23 −s1 c23 s4 − c1 c4 0 ⎦
1 0 0 −c23 −s23 s4 0
11.3 Dynamics of the Robot A465 319
⎡ ⎤
0 s1 s1 c1 s23 s1 c4 − c1 c23 s4 s5 (s1 s4 + c1 c23 c4 ) + c1 s23 c5
J ωc6 = ⎣ 0 −c1 −c1 s1 s23 −s1 c23 s4 − c1 c4 s1 s23 c5 − s5 (c1 s4 − s1 c23 c4 ) ⎦ .
1 0 0 −c23 −s23 s4 s23 c4 s5 − c23 c5
To proceed, let us compute the center of mass and inertia tensor of the robot’s
links. The position of the center of mass of each link can be computed using the
homogeneous transformation matrices 0 A1 . . . . , 0 A6 as follows
0
r̄ j = 0 A j j r̄ j , j = 1, . . . , 6 (11.13)
T T
where 0 r̄ j = 0 r̄ j 1 ∈ R4 and j r̄ j = j r̄ j 1 ∈ R4 . The constant vector j r̄ j ∈
R3 is the position of the link’s center of mass expressed with respect to frame j.
Now, it is possible to begin with the computation of the different moments of
inertia. First of all, link 1 is approximated according to Fig. 11.4 and where the
coordinate frames ox0 y0 z0 and ox1 y1 z1 are shown. The total mass of the link is given
m11 m13
m12
d1
c1
z0
y0
1 2 1 2
Ixx1 = m 11 r11 + c11
2
+ 2m 11 211 + (d1 − c1 )2 + 3r12 + c122
6 12
1 2 1
Iyy1 = m 11 3r11 + c11 + m 12 r12
2 2
6 2
1 2
Izz1 = m 11r11 + 2m 11 d1 − 2c1 + m 12 3r12
2
+ c122
+ m 12 212
12
where it is assumed that m 11 = m 13 , r11 = r13 and 11 = 13 . The parameters of the
first link are shown in Table 11.2.
The second link is approximated by a rectangular prism. Figure 11.5 shows the
coordinate frames and parameters of link 2. It is assumed that the center of mass is
located along the x2 -axis, i.e.
11.3 Dynamics of the Robot A465 321
z2
a2
c2
y1
z1
x2
y2
b2
z2
xc2
yc2
zc2 y1 2
z1
c2
⎡ ⎤
c2 − a2
2
r̄ 2 = ⎣ 0 ⎦. (11.15)
0
The diagonal elements of the inertia tensor computed with respect to frame 2 are
given by
1
Ix x2 = m 2 b22 + c22
12
1
I yy2 = m 2 c22 + 22 + m 2 22
12
1
Izz2 = m 2 b22 + 22 + m 2 22
12
322 11 The Robot CRS 465
z3
y3
c3
x3 xc3
3
r3
c3 zc3
y3 yc3
11.3 Dynamics of the Robot A465 323
1 2
Ix x3 = m 3 3r3 + 23 + m 3 2c3
2
1
I yy3 = m 3 3r32 + 23 + m 3 2c3
2
1
Izz3 = m 3r32 .
2
Another reasonable assumption is to locate the center of mass at the origin of the
frame 3, which leads to c3 = 0. The parameters of the third link are given in
Table 11.3.
Top view
y3 y4
z3 c4 z4
d4
4
yc4 r4
y3
z3 zc4
Fig. 11.7 Coordinate frames and geometry of link 4 for the robot A465
324 11 The Robot CRS 465
y4 z5
c5
y5
5
x5 xc5
z5 r5
zc5
y5 yc5
The coordinate frames and the different parameters of the fourth link are shown
in Fig. 11.7. In this case, the position of the center of mass is given by
⎡ ⎤
0
4
r̄ 4 = ⎣ d4 − c4 ⎦ . (11.17)
0
The numerical values of the parameters of link 4 are given in Table 11.4. Since it is
approximated by a cylinder, the diagonal elements of its inertia tensor are
1
Ix x4 = m 4 3r42 + 24 + m 4 (d4 − c4 )2
12
1
I yy4 = m 4 r42
2
1
Izz4 = m 4 3r42 + 24 + m 4 (d4 − c4 )2 .
12
Figure 11.8 shows the coordinate frame and the different parameters of link 5.
Similar to links 3 and 4, the fifth link is approximated by a cylinder and the position
of its center of mass expressed with respect to frame 5 is given by
11.3 Dynamics of the Robot A465 325
x5
x6
y5 z5
c6 d6
z6
y6
Fig. 11.9 Coordinate frames and geometry of link 6 for the robot A465.
⎡ ⎤
0
5
r̄ 5 = ⎣ 0 ⎦ . (11.18)
c5
The elements of the inertia tensor of the fifth link are given by
1
Ix x5 = m 5 3r52 + 25 + m 5 2c5
12
1
I yy5 = m 5 3r52 + 25 + m 5 2c5
12
1
Izz5 = m 5r52 .
2
The numerical values of the parameters are shown in Table 11.4.
The last link is approximated by a cylinder as shown in Fig. 11.9.
The position of the center of mass of the sixth link is given by
⎡ ⎤
0
6
r̄ 6 = ⎣ 0 ⎦. (11.19)
c6 − d6
326 11 The Robot CRS 465
On the other hand, the diagonal elements of the inertia tensor are
1
Ix x6 = m 6 r62 + 26 + m 6 (c6 − d6 )2
12
1
I yy6 = m 6 r62 + 26 + m 6 (c6 − d6 )2
12
1
Izz6 = m 6r62 .
2
The different parameters of link 6 are given in Table 11.4. Finally, the elements of
the inertia matrix H(q) ∈ R6×6 can be computed as
Recall that as explained in Sect. 3.2, the elements of the matrix C(q, q̇) are computed
as a function of the elements of H(q) and they are omitted here simplicity’s sake.
As to the gravity vector g(q) ∈ R6 , its elements are given by
g1 = 0
g2 = m 2 gc2 c2 + (m 3 + m 4 + m 5 + m 6 )ga2 c2 + (m 4 c4 + (m 5 + m 6 )d4 )gs23
+ (m 5 c5 + m 6 c6 )(s23 c5 + c23 c4 s5 )
g3 = (m 3 c3 + m 4 c4 + (m 5 + m 6 )d4 )gs23 + (m 5 c5 + m 6 c6 )g(s23 c5 + c23 c4 s5 )
g4 = −(m 5 c5 + m 6 c6 )gs23 s4 s5
g5 = (m 5 c5 + m 6 c6 )g(c23 s5 + c23 c4 s5 )
g6 = 0
Table 11.5 Main characteristic of the DC motors for the robot A465
Motor Brand Model Gear ratio
Motor 1 Cleveland motion controls M H 3515 r1 = 100
Motor 2 Cleveland motion controls M H 3515 r2 = 100
Motor 3 Cleveland motion controls M H 3515 r3 = 100
Motor 4 Cleveland motion controls M H 3515 r4 = 101
Motor 5 Tamagawa T S3253N r5 = 100
Motor 6 Tamagawa T S908N 7 r6 = 101
Abstract The robot A255 by CRS Robotics is a smaller industrial robot than the
A465 but with only five degrees of freedom. It owns also a special kinematic arrange-
ment which makes it an interesting case of study.
This chapter is devoted to developing the kinematics and dynamic models of the
robot manipulator A255 by CRS Robotics shown in Figs. 1.1 and 12.1.
The robot A255 is a serial-link manipulator manufactured by the Canadian com-
pany CRS Robotics. Its main characteristics are the following:
• Five degrees of freedom made up of rigid links and revolute joints.
• The actuators are DC motors equipped with harmonic drive gears.
• Each joint is equipped with a high resolution encoder that measures the joint
angular position.
• The nominal payload is 1 kg.
• The total weight of the robot is 17 kg.
The robot A255 is an open-chain serial manipulator made up of five joints, labeled as
qi with i = 1, . . . , 5. The main difference between the robot A465 is that the joints
2, 3 and 4 of the robot A255 are remotely driven by timing belts. Therefore, the joint
angle qi is not affected by the previous joint angles qi−1 (i = 3, 4) and Algorithm 2
cannot be used. These three joints are measured with respect to the same axis of
rotation. However, it is still possible to employ the Denavit-Hartenberg Algorithm 1
to assign the coordinate frames for each joint. Figure 12.2 shows the result in doing
so.
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 329
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_12
330 12 The Robot CRS 255
a3 d5
y3 , x4
y2 q4 x5
q5
x2
z5
x3 , z4
z2 z3
y1 a2 y5
q3
x1
z1
z0 d1
q2 y0
x0
q1
Fig. 12.2 Coordinate frames of the robot A255 assigned according to the Denavit-Hartenberg
Algorithm 1
12.2 Kinematics of the Robot A255 331
The kinematic parameters of the robot are shown in Table 12.1. Although Algo-
rithm 2 could be used for some joints, all the homogeneous transformation matrices
are computed by inspection and they are given by
⎡ ⎤
c1 0 s1 0
⎢ s1 0 −c1 0⎥
0
A1 = ⎢
⎣0
⎥ (12.1)
1 0 d1 ⎦
0 0 0 1
⎡ ⎤
1 0 0 a2 c2
⎢0 1 0 a 2 s2 ⎥
1
A2 = ⎢
⎣0
⎥ (12.2)
0 1 0 ⎦
0 0 0 1
⎡ ⎤
1 0 0 a3 c2
⎢0 1 0 a 3 s3 ⎥
2
A3 = ⎢
⎣0
⎥ (12.3)
0 1 0 ⎦
0 0 0 1
⎡ ⎤
−s4 0 c4 0
⎢ c4 0 s4 0⎥
3
A4 = ⎢
⎣ 0
⎥ (12.4)
1 0 0⎦
0 0 0 1
⎡ ⎤
c5 −s5 0 0
⎢ s5 c5 0 0⎥
4
A5 = ⎢
⎣0
⎥. (12.5)
0 1 d5 ⎦
0 0 0 1
332 12 The Robot CRS 255
Similar to the robot A465, the links of the robot A255 are approximated by regular
prisms, cylinders and solid disks. In this case, the inertia matrix is given after (3.27)
by
5
H(q) = m i J Tvci (q) J vci (q) + J Tωci (q)0 Ri I i 0 RiT J ωci (q) (12.9)
i=1
where the Jacobian matrices associated with the linear velocities J vci ∈ R3×5 are
computed as follows
∂ r̄ i
J vci (q) = , i = 1, . . . , 5 (12.10)
∂q
where r̄ i ∈ R3 is the center of mass of the i-th link, while the Jacobian matrices
associated to the angular velocities are given by
12.3 Dynamics of the Robot A255 333
⎡ ⎤
0 0000
J ωc1 = ⎣0 0 0 0 0⎦
1 0000
⎡ ⎤
0 s1 0 0 0
J ωc2 = ⎣0 −c1 0 0 0 ⎦
1 0 000
⎡ ⎤
0 s1 s1 0 0
J ωc3 = ⎣ 0 −c1 −c1 0 0 ⎦
1 0 0 00
⎡ ⎤
0 s1 s1 s1 0
J ωc4 = ⎣ 0 −c1 −c1 −c1 0 ⎦
1 0 0 0 0
⎡ ⎤
0 s1 s1 s1 c1 c4
J ωc5 = ⎣ 0 −c1 −c1 −c1 s1 c4 ⎦ .
1 0 0 0 s4
The next step is to compute the center of mass and the inertia tensor of each link.
The first one is divided in three different bodies approximated by two cylinders and a
rectangular prism as shown in Fig. 12.3. For simplicity, it is assumed that the center
of mass of the link is located along the z 0 -axis, i.e.
y1 b13 y1
a13 m12
13
m13
d1 c12
x1
z1 m11 x1
z1
r11
z0 11 z0
c1 y0 y0
x0 x0
Fig. 12.3 Coordinate frames and geometry of link 1 for the robot A255
334 12 The Robot CRS 255
⎡ ⎤
0
0
r̄ 1 = ⎣ 0 ⎦ .
c1
On the other hand, by applying the parallel axis theorem, the diagonal elements of
inertia matrix I 1 are given by
2
1 2 2
2
1
Ixx1 = m 1i 3r1i2 + c1i + m 1i 21i + 2
m 13 a13 + c13
2
i=1
2 i=1
12
2
1 2 2
3
1
Iyy1 = m 1i 3r1i2 + c1i + m 1i 21i + 2
m 13 a13 + b13
2
i=1
2 i=1
12
2
1 1
Izz1 = m 1i r1i2 + m 13 b13
2
+ c13
2
+ m 13 213
i=1
2 12
The parameters of link 1 for the robot A255 are shown in the Table 12.2.
The second link is approximated by a rectangular prism. Figure 12.4 shows the
coordinate frames and the kinematic parameters associated with link 2. It is assumed
that the center of mass is along the y2 -axis, thus the vector position expressed with
respect to the base frame is given by
⎡ ⎤
c c2
0
r̄ 2 = ⎣ c s2 ⎦ .
d1
y2
y2
x2
z2 x2
z2
c2
a2
a2 y1 y1
b2 c2
z1 x1
z1 x1
Fig. 12.4 Coordinate frames and geometry of link 2 for the robot A255
1 1
Ixx2 = m 2 a22 + b22 + m 2 a22 (12.11)
12 2
1
Iyy2 = m 2 b22 + c22 (12.12)
12
1 1
Izz2 = m 2 a22 + b22 + m 2 a22 , (12.13)
12 2
whose values can be seen in Table 12.3.
In a similar way, the third link is approximated by a rectangular prism and its
assumed that the center of mass is located along the x3 -axis as shown in Fig. 12.5.
This assumption yields to the following expression of its center of mass
⎡ ⎤
c1 (a2 c2 + c3 c3 )
0
r̄ 3 = ⎣ s1 (a2 c2 + c3 c3 ) ⎦ . (12.14)
d1 + a2 s2 + c3 s3
336 12 The Robot CRS 255
Table 12.3 Parameters of the links 2 and 3 for the second link for the robot A255
Link 2 Link 3
Parameter Value Units Parameter Value Units
a2 0.254 m a3 0.254 m
b2 0.1 m b3 0.1 m
c2 0.1 m c3 0.1 m
c2 0.15 m c3 0.2 m
m2 3 kg m3 2 kg
a3
y2
c3
y3
z2
x2
z3
x3
y2
a3
y3
x2
z2
b3
z3 x3
c3
Fig. 12.5 Coordinate frames and geometry of link 3 for the robot A255
In this case, the diagonal elements of the inertia matrix I 3 computed with respect to
frame ox3 y3 z3 are given by
1
Ix x3 = m 3 b32 + c32
12
1 1
I yy3 = m 3 a32 + c32 + m 3 a32
12 2
1 1
Izz3 = m 3 a32 + b32 + m 3 a32 .
12 2
12.3 Dynamics of the Robot A255 337
z3
x3 , z4
y3
z3
r3 x3
The kinematic and dynamic parameters of link 3 are shown in Table 12.3. The coor-
dinate frames and geometry of the fourth link is shown in Fig. 12.6.
The link is approximated by a solid disk and it is assumed that the center of mass
is located at the origin of frame ox4 y4 z4 . Therefore, the position vector of the center
of mass is given by
⎡ ⎤
c1 (a2 c2 + a3 c3 )
0
r̄ 4 = ⎣ s1 (a2 c2 + a3 c3 ) ⎦ (12.15)
d1 + a2 s2 + a3 s3
and the inertia tensor computed with respect to frame ox4 y4 z4 is given by
⎡1 ⎤
m 4 r42 0
4
0
I 4 = ⎣ 0 41 m 4 r42 0 ⎦ ,
0 0 21 m 4 r42
Table 12.4 Parameters of the links 4 and 5 for the robot A255
Link 4 Link 5
Parameter Value Units Parameter Value Units
r4 0.04 m r5 0.03 m
d4 0 m d5 0.0508 m
c4 0 m c5 0.045 m
m4 1 kg m5 0.5 kg
z4
x4 z5
y5
x5
r5
z5
y5
Finally, the kinematic and dynamic parameters of the link are given in Table 12.4.
12.3 Dynamics of the Robot A255 339
With the previous information, the elements of the inertia matrix for the robot
A255 are given by
g1 = 0
5
g2 = c2 gc2 m 2 + a2 gc2 mj
j=3
5
g3 = c3 gc3 m 3 + a2 gc3 mj
j=4
g4 = c5 m 5 gc4
g5 = 0
340 12 The Robot CRS 255
Table 12.5 Main characteristic of the DC motors for the robot A255
Motor Brand Model Gear ratio
Motor 1 Cleveland motion M H 3515 r1 = 72
controls
Motor 2 Cleveland motion M H 3515 r2 = 72
controls
Motor 3 Cleveland motion M H 3515 r3 = 72
controls
Motor 4 Cleveland motion M H 3515 r4 = 16
controls
Motor 5 Tamagawa T S3253N r5 = 8
where g = 9.8 (m/s2 ) is the gravity constant. Finally the parameters of the different
DC motors of the robot are shown in Tables 12.5 and 12.6.
Chapter 13
Adapting the Robots CRS 465 and 255 for
Original Control Laws Implementation
Abstract The robots A465 and A255 by CRS Robotics are industrial manipulators
whose controllers are provided by the manufacturer and therefore they cannot be
programmed by the user. When it comes to the implementation of different control
laws or observers it is necessary to buy additional data acquisition boards if available
or, if these special boards are not available, then it is mandatory to adapt the devices
for this particular goal. This is not a minor challenge and this chapter makes a proposal
about how this can be done.
Figure 13.1 depicts a typical arrangement of an industrial robot and its control unit
as provided by the manufacturer.
This chapter introduces hardware level modifications of the CRS A465 and CRS
A255 robots (in what follows, A465 and A255 for short) and their corresponding
control modules, the CRS-C500C units (C500C for short), in order to have an open
architecture. Rather than a closed architecture, an open architecture allows to imple-
ment advanced control and estimation algorithms like those developed in Part II of
the book. Each industrial robot is actuated through an amplification stage with elec-
tromechanical protection mechanisms. The central control units process the signals
coming from the robots, i.e. joint encoders, which are employed in the default motion
control algorithm. The original system for the A255 and A465 industrial manipula-
tors is made up of the manipulators themselves along with a control unit (C500C)
and a teach pendant, as shown in Figs. 13.2 and 13.3, respectively. Some important
mechanical characteristics of the manipulators are summarized in Table 13.1.
The C500C unit has a 486-based embedded computer with an embedded oper-
ating system (CROS) developed by the manufacturer. This unit also has a power
supply stage for all the input and output devices, an input/output board to acquire the
encoder signals and to send the output voltages to the manipulator motors through
an amplification stage. The electrical characteristics of the amplification stage are
listed in Table 13.2.
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 341
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_13
342 13 Adapting the Robots CRS 465 and 255 …
Table 13.1 Specifications of the CRS A465 and CRS A255 manipulators
Specification A465 robot A255 robot
Weight 32 kg 17 kg
Load (max) 3 kg 2 kg
Load (nominal) 2 kg 1 kg
Reach (X − Y ) 711.2 mm 560 mm
Actuators DC servo motors DC servo motors
Transmission Armonic gears Armonic gears and
straight/conic gears
Joint motion range
Waist +175◦ to −175◦ +175◦ to −175◦
Shoulder + 90◦ to −90◦ +110◦ to 0◦
Elbow +110◦ to −110◦ 0◦ to −125◦
Wrist 1 +180◦ to −180◦ –
Wrist 2 +105◦ to −105◦ +110◦ to -110◦
Wrist 3 +180◦ to −180◦ +180◦ to −180◦
Table 13.2 Electrical limit values at the power amplification stage: input voltage (vi ), output
voltage (vo ), and output current (i o )
Joint A465 robot A255 robot
vi (V) vo (V) i o (A) Gain vi (V) vo (V) i o (A) Gain
Waist ± 10 ± 70 12 7 ± 10 ± 25 2 2.5
Shoulder ± 10 ± 70 12 7 ± 10 ± 25 2 2.5
Elbow ± 10 ± 70 12 7 ± 10 ± 25 2 2.5
Wrist 1 ± 10 ± 30 3 3 – – – –
Wrist 2 ± 10 ± 30 3 3 ± 10 ± 25 2 2.5
Wrist 3 ± 10 ± 30 3 3 ± 10 ± 25 2 2.5
The joints are actuated by DC motors with different kinds of mechanical trans-
missions. The manufacturer controller consists of a closed-architecture PID posi-
tion/velocity control, which receives the encoder signals and computes the output
voltages. A diagram of this controller is shown in Fig. 13.4.
As mentioned above, the joint positions are measured by means of optical
encoders. The encoders provided in both the A255 and the A465 robots are of the
incremental type with two channels (A and B), i.e. are quadrature encoders. There is
a third channel that serves as a mark to calibrate the position measurement (channel
Z). A typical plot of these signals is shown in Fig. 13.5. The quadrature encoders
provided in both robots are the LDA-051-1000 by SUMTAK, powered by 5 V and
with a current consumption of 140 mA. Along with the three above channel signals,
the encoders also provide their logic negatives, i.e. the Ā, B̄, and Z̄ signals.
344 13 Adapting the Robots CRS 465 and 255 …
slots, which can be connected to one of the several I/O modules offered by National
Instruments.
In the present modification, two types of I/O modules were employed: the models
NI-9401 and NI-9263. The NI-9401 module is a general purpose digital input/output
board, with 8 configurable channels. This module supports TTL signals and has a
sampling rate of 9 MHz. The input voltages interval is 2–5.25 V. These modules are
employed to process the A, B, and Z encoder signals for a total of 11 joints, i.e. 6
and 5 for the A465 and the A255 robots, respectively. Thus, five NI-9401 modules
are employed in this adaptation.
In turn the NI-9263 can generate up to four analog signals by means of isolated
16-bits digital to analog converters (DAC). These channels have also built-in short-
circuit and over-voltage protectors. The output voltage limits are ±10 V, with load
currents up to 1 m A. The slew-rate for each channel is 4 V/μs. Since the total number
of joints for both manipulators is 11, three NI-9263 modules are employed for the
current modification.
The maximum electric power required by the CompactRIO and the eight afore-
mentioned modules is of 20 W. The source voltage must be between 19 and 30 V,
although the manufacturer recommends a power source of 24 V that supports at least
2 A. In order to satisfy these requirements, a 24 V Quint power source by Phoenix
Contact is employed, which is capable of delivering up to 5 A.
Three DB25 connectors are employed to manage the signals coming to and from
the robots, namely [AB], [Z], and [VCOM], for each robot. The [AB] and [Z] wires
carry the digital signals coming from the encoders, while the [VCOM] send the
commanded voltages to the amplification stage which in turn sends the amplified
voltages to the motors. These wires are connected to the acquisition hardware by
an ad-hoc designed PCB board. The trace widths proposed for this board are of
24 mils (0.609 mm), supporting a maximum of 460 mA and a temperature rise of
1 ◦ C. A ground plane with a thickness of 35 mm is also included in the PCB, to avoid
crosstalk between adjacent traces. See Figs. 13.8 and 13.9.
For each robot, the connections are divided into two parts, namely a digital and
an analog stage. The signals transmitted by the A465 manipulator encoders are the
digital channels A, B, and Z , and their digital negatives Ā, B̄, and Z̄ , respectively.
All these signals present a drop in the transmitted voltage as well as added noise due
to the imperfections on the transmission wires, as shown in Fig. 13.10.
13.2 Hardware Modification 347
Fig. 13.8 Upper view of the C500C module showing the added DB-25 [AB], [Z], and [VCOM]
connectors
As mentioned above, the NI-9401 modules employed for the acquisition of these
signals work with TTL signals, which is not the case for the unprocessed signals as
the one shown in Fig. 13.10. To solve this problem, the integrated circuit 26LS32 is
employed, which is a quadruple line receiver with three state outputs. The output of
this circuit is shown in Fig. 13.11, where it can be appreciated that the noise has been
significantly diminished.
Note that the number of signals is reduced to half after this circuit, since it com-
bines channels A, B, and Z with their logic negatives Ā, B̄, and Z̄ into one single
signal for each channel, which by abuse of notation will be called A, B, and Z . To
connect the 26LS32 output signals to the NI-9401 modules, an isolation stage is
proposed by means of HCPL2630 optocouplers. Each DIP package has two outputs
with a maximum speed of 10 Mb/s. For example, two channels for a joint encoder
can be connected to a single DIP as shown in Fig. 13.12.
R1 and R2 are set to 220 to have a polarization current for the internal led of
about 1.5 mA. The pull-up resistors R3 and R4 are set to 350 in order to minimize
the signal propagation time and the signal deformation. Finally, 15 pF capacitors are
included at the output side as recommended in the HCPL2630 datasheet.
348 13 Adapting the Robots CRS 465 and 255 …
Fig. 13.9 Back view of the C500C module showing the added DB-25 [AB], [Z], and [VCOM]
connectors
Fig. 13.10 Signal measured directly from channel A of the A465 first joint encoder
Fig. 13.11 Output of the 26LS32 line receiver for channel A of the A465 first joint
Fig. 13.13 HCPL2630 optocoupler output for the channel A of the A465 first joint
350 13 Adapting the Robots CRS 465 and 255 …
Fig. 13.14 Signal conditioning circuit for the A465 manipulator encoders
The A255 manipulator does not transmit neither the logic negative signals of the
encoders nor the H SW bits. Therefore, in this case the use of the 26LS32 line
receiver is omitted, and only the optocoupler stage is employed by means of the same
HCPL2630 DIP circuits mentioned before. The schematics of the circuit employed
13.2 Hardware Modification 351
Fig. 13.15 Signal conditioning circuit for the A465 manipulator encoders
352 13 Adapting the Robots CRS 465 and 255 …
Fig. 13.16 Signal conditioning circuit for the A465 manipulator H SW bits
13.2 Hardware Modification 353
Fig. 13.17 Signal measured directly from channel A of the A255 first joint encoder
Fig. 13.18 HCPL2630 output optocoupler for channel A of the A255 first joint
for this stage is displayed in Fig. 13.17. The output of the optocoupler is shown in
Fig. 13.18. The connection diagram of the incremental encoders for the robot A255
are depicted in Figs. 13.19 and 13.20.
Fig. 13.19 Signal conditioning circuit for the A255 manipulator encoders
13.2 Hardware Modification 355
Fig. 13.20 Signal conditioning circuit for the A255 manipulator encoders
356 13 Adapting the Robots CRS 465 and 255 …
Fig. 13.21. The modules share the same ground of the C500C module, but they are
isolated from the CompactRIO and the NI-9401 modules. Since each module has
four analog channels, i.e. a total of 12 analog channels are available, and the total
number of motors is 11, there is a remaining analog output channel. This channel is
employed to control the emergency brake, labeled as BT N _C T R L in Fig. 13.21.
Figure 13.22 shows the final modified hardware for the main power source of the
CompactRIO and the designed electronic board delivers 24 V. To obtain a 5 V power
source, the Recom R785.0-0.5 integrated circuit is used. A 1N4004 diode is included
at the input to prevent undesirable backward currents. Also, a single-pole double-
throw relay is included, activated by two jumpers JP1 and JP2 (see Fig. 13.23).
The encoder signals A, B, and Z of the 11 joint encoders and the output voltages
to the 11 motors are processed by the embedded system CompactRIO FPGA, which
is programmed according to the National Instruments software LabVIEW. Three
main components are employed in this program, and they are repeated for each joint.
13.3 Software Implementation 357
Therefore, three main virtual instruments are created to simplify the main program,
as shown in Table 13.3.
By taking into account the virtual instruments of Table 13.3, the encoder total
count and the output voltages generation for each joint is carried out according to the
flow diagram of Fig. 13.24. Next, this same flow diagram is repeated for all eleven
joints. Finally, the eleven blocks are included into a single Do-While cycle. A Tick
Count block was added to have control of the sample period, which is 5 μs. Therefore,
the obtained sample rate for the whole system is 200 kS/s.
358 13 Adapting the Robots CRS 465 and 255 …
Fig. 13.24 Flow diagram of the encoder counter and the output voltage generator for one joint
360 13 Adapting the Robots CRS 465 and 255 …
Reference
CRS Robotics Corporation (2000) C500 controller user guide. CRS Robotics Corporation, Burling-
ton, Ontario, Canada
Chapter 14
The Geomagic Touch Haptic Device
Abstract The robots A465 and A255 by CRS Robotics are industrial manipulators
able to carry out a wide variety of tasks. However, for haptic purposes their inertias
can be too high, for which it is desirable to have available low inertia manipulators.
This is the case of he Geomagic Touch haptic device. This chapter develops its
kinematic and dynamic models.
The Geomagic Touch haptic device, shown in Figs. 1.1 and 14.1, is an upgraded
version of the Phantom Omni device and it has become very popular in the last
few years since great number of researchers have employed it for the experimental
validation of different control algorithms. Such popularity is due to several factors,
in particular to its very high cost/benefit ratio. Additionally, its well developed API
makes it a very attractive choice for students and practitioners searching for a ready-
to-use platform. However, since this device is intended for haptics and virtual graphics
applications, there is not much information available about the kinematics from the
manufacturer. Moreover, despite its wide use, there are very few kinematic and
dynamic models available in the literature.
The kinematic model of the Geomagic Touch by considering all its five degrees
of freedom (DoF) is developed in this section. A Denavit-Hartenberg assignment
according to Algorithm 1 is shown in Fig. 14.2.
The propose of this assignment is to have the minimal number of parameters. For
this reason, the ox0 ,y0 ,z0 frame is located at the intersection of the first two joint axes.
There are some other practical considerations to be made, namely:
© The Author(s), under exclusive license to Springer Nature Switzerland AG 2022 361
M. A. Arteaga et al., Local Stability and Ultimate Boundedness in the Control
of Robot Manipulators, Lecture Notes in Electrical Engineering 798,
https://doi.org/10.1007/978-3-030-85980-0_14
362 14 The Geomagic Touch Haptic Device
a2 d4 a5
z0 , y1 x3 , y2 x4 y5
y0 y4
x0 , x1 x2 , z3 x5
z1 z2 z4 z5
Fig. 14.2 Denavit-Hartenberg assignment for the 5 DoF Geomagic Touch configuration
• The rotation axes of joints 1 and 4, i.e. z 0 and z 3 are opposed to those defined by
the manufacturer. Therefore, the sign of the positions read from these joints must
be changed (multiplied by −1).
• As the rotation axis of the first joint is in the opposite direction, the torque com-
manded to the first joint must be also multiplied by −1. Since the 4th joint is not
actuated, this adjustment is not necessary for the fourth joint.
• The assignment of the x5 axis is also in the opposite direction. Therefore, an offset
of −180◦ must be added to the 5-th joint measurement.
• The actuator and the position sensor for the third joint are physically located at
the second joint. Thus, strictly speaking the Geomagic Touch robot is not a serial
manipulator. Nevertheless, it can be seen as a serial one, by making the adjustment
where qiread , i = 1, . . . , 5, is the i-th joint value measured by employing the manu-
facturer API. A summary of the above adjustments is presented in Table 14.1.
Given the above considerations, one can apply the Denavit-Hartenberg Algorithm 2
to obtain the parameters given in Table 14.2.
The values for a2 and d4 shown in Table 14.2 were obtained through a standard
kinematic calibration. Notice that the values employed by the manufacturer in the
API are a2 = 0.13335 [m] and d4 = 0.13335 [m], which are not physically accurate.
Now, it is possible to compute the homogeneous transformation from the ox0 y0 z0
frame to the ox5 y5 z5 frame, i.e. 0 T 5 = 0 R5 0 p5 . The end effector position is given
by
⎡ ⎤
a5 c5 (c1 c4 c23 + s1 s4 ) − a5 c1 s5 s23 + c1 (a2 c2 + d4 s23 )
0
p5 = ⎣ a5 c5 (c4 c23 s1 − c1 s4 ) − a5 s1 s5 s23 + s1 (a2 c2 + d4 s23 ) ⎦ ,
−c23 d4 + a2 s2 + a5 (c23 s5 + c4 c5 s23 )
There are two other coordinate frames that can be of interest, namely, the base and
the default frames. The base frame is the one located at the base of the robot, i.e. at the
intersection of the z 0 axis with the table that supports the manipulator. Accordingly,
this frame is just a translation over the z 0 axis of the ox0 y0 z0 frame in Fig. 14.2. On
the other hand, the default frame is the one defined by the manufacturer, related with
the ox0 y0 z0 frame in Fig. 14.2 by both a translation and a rotation. The homogeneous
transformations relating these two frames with the ox0 y0 z0 frame described above are
⎡ ⎤ ⎡ ⎤
1 0 0 0 0 0 1 tx
⎢ 0 1 0 0⎥ ⎢ 1 0 0 0 ⎥
Base
T0 = ⎢
⎣0
⎥ and Default
T0 = ⎢ ⎥,
0 1 d⎦ ⎣0 1 0 −tz ⎦
0 0 0 1 0 0 0 1
As stated in Sect. 2.4, the manipulator geometric Jacobian J(q) can be decomposed
into two parts, namely
J v (q)
J(q) = , (14.2)
J ω (q)
14.1 Characteristics of the Geomagic Touch Manipulator 365
The dynamic model below was obtained by employing the Euler–Lagrange equations
of motion, as described in Sect. 3.1.1. These equations result in the well known
Lagrangian model
Since the matrix C(q, q̇) can be obtained from the matrix H(q) by computing the
Christoffel symbols of the first kind and D is a diagonal matrix accounting for the
viscous friction coefficients, only the H(q) matrix and the g(q) vector are given
below. The components of the matrix H(q) are given by
366 14 The Geomagic Touch Haptic Device
The inertia tensors are computed by assuming that all the off-diagonal terms, i.e. the
cross products of inertia, are zero. The first body is a hollow sphere of radius r1 and
mass m 1 , with principal inertia moments given by
2
Ixx1 = Iyy1 = Izz1 = m 1r1.
3
The second and third bodies are considered solid cuboids, with sides b2 and c2 , and
b3 and c3 , respectively, and lengths a2 and l3 . While a2 is a Denavit-Hartenberg
parameter, l3 is the part of d4 that corresponds to the third link, so that when summed
to the part corresponding to the fourth link it satisfies d4 = l3 + l4 . The principal
moments of inertia for the second and third link, after applying the parallel axis
theorem, yields
m2 2
Ixx2 = b + c22
12 2
m2
Iyy2 = 4a22 + c22
12
m2
Izz2 = 4a22 + b22
12
m3
Ixx3 = 4l32 + c32
12
m3
Iyy3 = 4l32 + b32
12
m3 2
Izz3 = b + c32 .
12 3
The fourth and fifth bodies are assumed to be cylindrical, with radii r4 and r5 , and
lengths l4 and a5 , with l4 as explained above. For these two links, the principal
moments of inertia are
m4
Ixx4 =Izz4 = 3r42 + l42
12
m4 2
Iyy4 = r
2 4
m5
Iyy5 =Izz5 = 3r52 + a52 + m 5 δ52
12
m5 2
Ixx5 = r ,
2 5
where δ5 is the distance from the center of mass of the fifth link to the z 5 axis. On
the other hand, the components of the vector g(q) are computed as
g1 = 0
g2 = g c2 c2 m 2 + c4 c5 c23 c5 m 5 + a2 c2 (m 3 + m 4 + m 5 )
+ c3 m 3 s23 + c4 m 4 s23 + d4 m 5 s23 − c5 m 5 s5 s23
368 14 The Geomagic Touch Haptic Device
g3 = g (c3 m 3 s23 + c4 m 4 s23 + m 5 (d4 s23 + c5 (c4 c5 c23 − s5 s23 )))
g4 = −gc5 c5 m 5 s4 s23
g5 = gc5 m 5 (c5 c23 − c4 s5 s23 ) ,
A widely used configuration for the Geomagic Touch consists in a simplified fully-
actuated three DoF robot by blocking the last two joints. As shown in Fig. 14.3, the
last link is not straight because the fifth joint cannot be fixed at −90◦ .
• The rotation axis of joint 1, i.e. z 0 , is opposed to that considered by the manufac-
turer. Therefore, the sign of the position read from this joint must be changed (mul-
tiplied by −1).
• The torque commanded to the first joint must be also multiplied by −1.
• The actuator and the position sensor for the third joint are physically located at
the second joint. Thus, strictly speaking the Geomagic Touch robot is not a serial
a2 a3
z0 , y1 x3 , y2 y3
y0
x3
x0 , x1 x2 , z3
z1 z2
z3
where qiread , i = 1, . . . , 3, is the i-th joint value measured by employing the man-
ufacturer API.
The homogeneous
transformation
from the ox0 y0 z0 frame to the ox3 y3 z3 frame is denoted
by 0 T 3 = 0 R3 0 p3 , from which the end effector position is given by
370 14 The Geomagic Touch Haptic Device
⎡ ⎤
(a2 c2 + a3 c23 ) c1
0
p3 = ⎣ (a2 c2 + a3 c23 ) s1 ⎦ ,
a2 s2 + a3 s23
The same coordinate frames transformations Base T0 and Default T0 of Sect. 14.1.2
can be employed for this case to find the end-effector coordinates with respect to the
base and default frames.
As stated in Sect. 2.4, the manipulator geometric Jacobian J(q) can be decomposed
into two parts, namely
J v (q)
J(q) = , (14.5)
J ω (q)
The corresponding Lagrangian model, similar to that given in Sect. 14.1.4 is devel-
oped below for this configuration. Since for the present case the dynamic model is
much shorter, along with the matrix H(q) and the vector g(q), the matrix C(q, q̇)
is given as well, computed by means of the Christoffel symbols of the first kind. The
components of the matrix H(q) are
The inertia tensors are computed by assuming that all the off-diagonal terms, i.e. the
cross products of inertia, are zero. The first body is a hollow sphere of radius r1 and
mass m 1 , with principal inertia moments given by
2
Ixx1 = Iyy1 = Izz1 = m 1r12 .
3
The second and third bodies are considered as solid cuboids, with sides b2 and h 2 ,
and b3 and h 3 , respectively, and lengths a2 and a3 . The principal moments of inertia
for the second and third link, after applying the parallel axis theorem, yields
m2
Ixx2 = b22 + h 22
12
m2
Iyy2 = 4a22 + h 22
12
m2
Izz2 = 4a22 + b22
12
m3
Ixx3 = b32 + h 23
12
m3
Iyy3 = 4a32 + h 23
12
m3
Izz3 = 4a32 + b32 .
12
1 The notation ceij is used to avoid confusion with the shorthand notation for the cosine function.
372 14 The Geomagic Touch Haptic Device
ce11 = c2 q̇2 s2 Ixx2 + c23 q̇2 s23 Ixx3 + c23 q̇3 s23 Ixx3 − c2 q̇2 s2 Iyy2 − c23 q̇2 s23 Iyy3
− c23 q̇3 s23 Iyy3 − m 2 c2 q̇2 s2 2c2 + m 3 − a2 c23 q̇2 s2 c3 − a2 c2 q̇2 s23 c3
− a2 c2 q̇3 s23 c3 − a22 c2 q̇2 s2 − c23 q̇2 s23 2c3 − c23 q̇3 s23 2c3
ce12 = c2 q̇1 s2 Ixx2 + c23 q̇1 s23 Ixx3 − c2 q̇1 s2 Iyy2 − c23 q̇1 s23 Iyy3 − c2 q̇1 m 2 s2 2c2
+ m 3 − 2a2 c2 c3 q̇1 s2 c3 − a2 c22 q̇1 s3 c3 − a22 c2 q̇1 s2 + a2 q̇1 s22 s3 c3 + c2 q̇1 s2 s32 2c3
− c2 c32 q̇1 s2 2c3 − c22 c3 q̇1 s3 2c3 + c3 q̇1 s22 s3 2c3
ce13 = c23 q̇1 s23 Ixx3 − c23 q̇1 s23 Iyy3 + m 3 −a2 c2 q̇1 s23 c3 − c23 q̇1 s23 2c3
ce21 = −c2 q̇1 s2 Ixx2 − c23 q̇1 s23 Ixx3 + c2 q̇1 s2 Iyy2 + c23 q̇1 s23 Iyy3 + m 2 c2 q̇1 s2 2c2
+ m 3 2a2 c2 c3 q̇1 s2 c3 + a2 c22 q̇1 s3 c3 + a22 c2 q̇1 s2 − a2 q̇1 s22 s3 c3 − c2 q̇1 s2 s32 2c3
+ c2 c32 q̇1 s2 2c3 + c22 c3 q̇1 s3 2c3 − c3 q̇1 s22 s3 2c3
A linear parametrization and a model identification of the three DoF robot is carried
out in this section in order to identify the constant quantities in the dynamic model.
In order to obtain a more compact model, in this section it is assumed that the second
and third bodies are slender rods instead of solid cuboids, as considered before. This
simplification implies that the distances r1 , b2 , h 2 , b3 , and h 3 can be assumed to
be zero and in consequence Iyy1 = Ixx2 = Ixx3 = 0, and Iyy2 = Izz2 I2 and Iyy3 =
Izz3 I3 . Recall, from Property 3.14 that the left hand side of the Lagrangian model
14.2 Simplified Three DoF Geomagic Touch 373
can be expressed as a product of a regressor Y (q, q̇, q̈) ∈ Rn× p and a vector of
constant parameters ϕ ∈ R p , where p is the number of parameters, i.e.
⎡ ⎤
c22 π1 + c2 c23 π2 + s23
2
π3 0 0
H(q) = ⎣ 0 π1 + 2c3 π2 + π3 c3 π2 + π3 ⎦ (14.7)
0 c3 π2 + π3 π3
⎡ ⎤
0
g(q) = ⎣g (c2 π7 + c23 π8 )⎦ , (14.8)
gc23 π8
1
ce11 = −c2 s2 q̇2 π1 − (c2 s23 (q̇2 + q̇3 ) + s2 c23 q̇2 ) π2 + c23 s23 (q̇2 + q̇3 )π3
2
1
ce12 = −c2 s2 q̇1 π1 − (s2 c23 + c2 s23 ) q̇1 π2 + s23 c23 q̇1 π3
2
1
ce13 = − c2 s23 q̇1 π2 + c23 s23 q̇1 π3
2
1
ce21 = c2 s2 q̇1 π1 + (s2 c23 + c2 s23 ) q̇1 π2 − s23 c23 q̇1 π3
2
ce22 = −s3 q̇3 π2
ce23 = −s3 (q̇2 + q̇3 ) π2
1
ce31 = c2 s23 q̇1 π2 − c23 s23 q̇1 π3
2
ce32 = s3 q̇2 π2
ce33 = 0.