Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
MODULAR FRAMEWORK FOR DYNAMIC MODELING
AND ANALYSES OF TREE-TYPE ROBOTIC SYSTEMS
SURIL VIJAYKUMAR SHAH
DEPARTMENT OF MECHANICAL ENGINEERING
INDIAN INSTITUTE OF TECHNOLOGY DELHI
MAY 2011
© Indian Institute of Technology Delhi (IITD), New Delhi, 2011
MODULAR FRAMEWORK FOR DYNAMIC MODELING
AND ANALYSES OF TREE-TYPE ROBOTIC SYSTEMS
by
SURIL VIJAYKUMAR SHAH
Department of Mechanical Engineering
Submitted
in partial fulfillment of the requirements for the degree of
DOCTOR OF PHILOSOPHY
to the
INDIAN INSTITUTE OF TECHNOLOGY DELHI
HAUZ KHAS, NEW DELHI-110016
MAY 2011
CERTIFICATE
This is to certify that the thesis entitled Modular Framework for Dynamic
Modeling and Analyses of Tree-Type Robotic Systems being submitted by Mr. Suril
Vijaykumar Shah to the Indian Institute of Technology Delhi for the award of the degree
of Doctor of Philosophy is a bonafide record of original research work carried out by
him under our supervisions in conformity with rules and regulations of the institute.
The results contained in this thesis have not been submitted, in part or in full, to
any other University or Institute for the award of any Degree or Diploma.
Dr. S. K Saha Dr. J. K. Dutt
Professor Professor
Department of Mechanical Engineering
Indian Institute of Technology Delhi
New Delhi-110016, India
i
ii
Dedicated to my
Parents
who have always been my source of inspiration, guidance and encouragement,
and my gratitude for whom can never be put in words
iii
iv
ACKNOWLEDGEMENTS
When I look back at my PhD years it amazed me and at the same time I am thankful
for all I have received throughout these years. This period has shaped me as a person and
has steered me to where I am now.
I would like to express my deep and sincere gratitude to my supervisor, Professor
Subir Kumar Saha, for his invaluable guidance and support. He has always encouraged
me to work intensively, even when I was thinking about doing something else. He has
enlightened me through his wide knowledge of multibody dynamics and his deep
intuitions about where it should go. His knowledge and logical way of thinking has been
of great value for me. Without his encouragement and constant guidance, realization of
this thesis would have not been possible. I am deeply grateful to my co-supervisor,
Professor Jayanta Kumar Dutt for his continued encouragement and invaluable
suggestions during this work. All the discussions with him have always motivated me to
do better in my work. He showed me different ways to approach a research problem and
the need to be persistent to accomplish any goal. Besides my supervisors, I would like to
thank the rest of the Student Research Committee (SRC): Prof. K. Gupta, Prof S.
Mukherjee and Prof. I. N. Kar, for their insightful comments and suggestions.
Far too many people to mention individually have assisted in so many ways
during my work at IIT Delhi. They all have my sincere gratitude. In particular, I would
like to thank Mr. D. Jaitly and Mr. Diwan Singh, the technical staff, and Dr. Ali
Rahamani, Dr. Ashish Mohan, Dr. Himanshu Chaudhry, Dr. Naresh Kamble, Mr. Rajeev,
Mr. Majid, Mr. Vinay, Mr. Arun, Mr. Rajkumar, Mr. Mangal, Mr. Vineet, Mr. Amit and
v
vi
Mr. Mukesh, all currently or previously stayed for their research work or project in the
Mechatronics Laboratory of IIT Delhi. I would also like to thank fellow Ph.D. students
and friends Mr. Dhaval, Mr. Kaushal and Mr. Mitesh for the time we spent together after
the laboratory hours. My thanks are also due to all the office staff of the department for
their kind support and co-operation.
I am also greatly indebted to my teachers in the past. I greatly appreciate the
guidance of Mr. Bhavesh Mistry during my master's thesis. He instigated research ability
in me and motivated me to pursue Ph. D.
I am thankful to all my family members and friends for helping me in innumerable
ways. Specially, I thank my brother Sohil for his constant encouragement throughout this
period and taking all my duties in my absence. Penultimate thanks go to my wonderful
parents, for always being there when I needed them most, and never complaining about
how infrequently I visited them. They deserve far more credit than I can ever give them.
My final and most heartfelt acknowledgment goes to my wife Kruti. Her support,
encouragement, and companionship have turned my journey through IIT into a pleasure.
Suril Vijaykumar Shah
Department of Mechanical Engineering
Indian Institute of Technology Delhi
ABSTRACT
Robots have evolved since the birth of first industrial robot in 1961. Rapid
industrialization, automation, rate of production and maximizing human comfort in the
modern times have necessitated various multifaceted applications of robots, which are
required to perform complex tasks. As a result, multiple-chain tree-type robotic systems
such as multi-fingered robotic arms, legged vehicles, humanoid robots, etc. have
emerged. Successful as well as fast operation of such robots calls for systematic, efficient,
and as far as possible generic computational framework to predict dynamic behavior. The
framework should be useful in robot operation, trajectory planning, simulation and
control. Driven by this motivation, an attempt has been made in this work to develop a
modular framework for dynamic modeling and analysis of tree-type robotic systems.
After a detailed survey of relevant literature, modular framework for predicting the
dynamic behavior of tree-type robotic systems has been proposed with the help of a
generic extension of the concept of the Decoupled Natural Orthogonal Complement
(DeNOC) matrices, introduced elsewhere. The DeNOC matrices offer quite a few
advantages, e.g., analytical expressions of the elements of the vectors and matrices that
appear in the dynamic equations of motion, decomposition of the inertia matrix giving
deeper insight into the associated dynamics, unified development of recursive inverse and
forward dynamics algorithms, etc.
Robots having general tree-type architectures have been considered first. The concept of
kinematic modules, where each module is essentially a serial-chain system, has been
introduced. Macroscopically, module may be viewed similar to a link in the serial chain
system. Next, module-level DeNOC matrices are obtained by following the recursive
relationships between any two adjoining modules. This generalizes and encapsulates the
concept of the DeNOC matrices, originally proposed for the serial-chain systems. The
constrained equations of motion are then obtained by using the module-level DeNOC
matrices or simply module-DeNOC matrices. Modular framework offers many
advantages, as it makes the kinematic as well as dynamic representation compact, allows
vii
module-level expression of various entities, and enables repeated use of module-level
computations.
It is worth mentioning that, while deriving the DeNOC matrices for coupled links, a
significant contribution is made in modeling of multiple-degrees-of-freedom (multiple-
DOF) joints. For example, a spherical joint has been modeled as a combination of three
intersecting revolute joints such that it characterizes different variations of the Euler angle
representation. Hence, a novel concept of Euler-Angle-Joints (EAJs) is introduced to
represent a spherical joint and subsequently for unified representation of multiple-DOF
joints that commonly appear in spatial systems.
Another important contribution of this work is contained in the analytical decomposition
of the Generalized Inertia Matrix (GIM) of a tree-type robotic system. Following the
DeNOC-based approach, it is possible to obtain module-level analytical expression of the
GIM, which is used for module-level decomposition of the GIM in the form UDUT ,
where U and D are the block upper-triangular and diagonal matrices, respectively. The
decomposition allows analytical inversion of the GIM. The analytical inversion provides
recursive forward dynamics algorithm, an insight into the associated dynamics, and can
be helpful in predicting any inconsistency in the dynamic behavior of a robot.
Empowered with the previous advantages, studies of dynamic behavior of fixed-base as
well as floating-base robotic systems have been taken up. Initially, motion and force
analyses of several fixed-base tree-type systems, e.g., a robotic gripper, biped, and hyper-
degrees-of-freedom (hyper-DOF) system, are reported. This is followed by the approach
where the legged robots are modeled as a floating-base with several branches (limbs or
legs) emanating from the floating-base. Such approach provides more realistic modeling
of the legged robots. In order to show the effectiveness of the modeling approach, legged
robots are simulated under model-based control laws (e.g., computed-torque and
feedforward). Computational complexities in terms of operation counts and CPU times
are also reported to show that the proposed methodology performs much better than many
commonly used methodologies, reported in literature. The efficacy of the approach
increases with the complexity, primarily with total number of links and number of
multiple-DOF joints in the system.
viii
ix
CONTENTS
Certificate i
Acknowledgements v
Abstract vii
Contents ix
List of Figures xv
List of Tables xix
List of Symbols and Abbreviations xxi
Chapter 1 1
INTRODUCTION 1
1.1 Motivation 1
1.2 Tree-type Robotic Systems 2
1.3 Dynamics 4
1.4 Important Contributions 5
1.5 Thesis Organization 7
Chapter 2 11
BACKGROUND AND LITERATURE SURVEY 11
2.1 Robotic Systems 11
2.1.1 Serial robots 12
2.1.2 Tree-type robotic hand 13
2.1.3 Legged robots 14
2.2 Representations of Rotations 17
2.2.1 Denavit-Hartenberg parameters 17
2.2.2 Euler-Angle-Joints 18
2.3 Dynamic Modeling 18
2.3.1 Equations of motion 19
2.3.2 Orthogonal complements 20
x
2.3.3 Other formulations 22
2.3.4 Open vs. closed chains 22
2.3.5 Dynamics of legged robots 23
2.4 Robot Dynamics Algorithms 24
2.4.1 Model-based control 25
2.4.2 Recursive algorithms 26
2.4.3 Inverse dynamics 27
2.4.4 Forward dynamics 28
2.4.4.1 Implicit inversion 28
2.4.4.2 Other forward dynamics algorithms 30
2.5 Concluding Remarks 30
2.6 Research Objectives 32
2.7 Summary 32
Chapter 3 35
EULER-ANGLE-JOINTS (EAJs) 35
3.1 Euler Angles 36
3.2 Denavit-Hartenberg (DH) Parameters 38
3.3 Euler-Angle-Joints (EAJs) 41
3.3.1 DH parameterization of Euler angles 41
3.3.2 Elementary rotations 43
3.3.3 Composite rotations 45
3.4 Euler Angles Using Euler-Angle-Joints (EAJs) 47
3.4.1 ZYZ-EAJs 47
3.4.2 ZXZ-EAJs 51
3.4.3 ZXY-EAJs 52
3.4.4 XYX-EAJs 55
3.4.5 Other-EAJs 59
3.5 Representation of a Spherical Joint in a Robotic System Using EAJs 63
3.6 Singularity in EAJs 64
3.7 Multiple-DOF Joints 65
3.8 Summary 66
xi
Chapter 4 67
KINEMATICS OF TREE-TYPE ROBOTIC SYSTEMS 67
4.1 Kinematic Modules 67
4.2 Intra-Modular Velocity Constraints 70
4.2.1 Presence of multiple-DOF joints 73
4.2.2 An illustration: A spatial double pendulum 76
4.3 Inter-Modular Velocity Constraints 77
4.4 Examples 81
4.4.1 A robotic gripper 81
4.4.2 A planar biped 83
4.4.3 A spatial biped 84
4.5 Summary 86
Chapter 5 87
DYNAMICS OF TREE-TYPE ROBOTIC SYSTEMS 87
5.1 Dynamic Formulation Using the DeNOC Matrices 87
5.1.1 NE equations of motion for a module 87
5.1.2 NE equations of motion for a tree-type system 90
5.1.3 Minimal-order equations of motion 91
5.1.4 Wrench due to external force, F
w 92
5.2 Generalized Inertia Matrix (GIM) 93
5.3 Module-level Decomposition of the GIM 95
5.4 Inverse of the GIM 100
5.5 Examples 102
5.5.1 A robotic gripper 102
5.5.2 A biped 104
5.6 Advantages of Modular Framework 105
5.7 Summary 106
Chapter 6 109
RECURSIVE DYNAMICS FOR FIXED-BASE ROBOTIC SYSTEMS 109
6.1 Recursive Dynamics 109
6.1.1 Inverse dynamics 110
xii
6.1.2 Forward dynamics 114
6.2 Applications 118
6.2.1 Robotic gripper 118
6.2.2 A biped 123
6.2.3 Hyper-DOF systems 130
6.3 Computational Complexity 132
6.4 Summary 136
Chapter 7 137
RECURSIVE DYNAMICS FOR FLOATING-BASE LEGGED ROBOTS 137
7.1 Recursive Dynamics 139
7.1.1 Inverse dynamics 140
7.1.2 Forward dynamics 146
7.2 Biped 151
7.2.1 A planar biped 152
7.2.2 Spatial biped 157
7.3 Quadruped 164
7.4 Hexapod 169
7.5 Computational Efficiency 173
7.6 Summary 177
Chapter 8 179
SIMULATION OF CONTROLLED LEGGED ROBOTS 179
8.1 Model-based Control 179
8.1.1 Computed-torque control 180
8.1.2 Feedforward control 183
8.2 Biped 184
8.2.1 Planar biped 185
8.2.1.1 Computed-torque control 185
8.2.1.2 Feedforward control 186
8.2.2 Spatial biped 188
8.3 Quadruped 189
8.4 Hexapod 191
8.5 Summary 193
xiii
Chapter 9 195
CONCLUSIONS AND FUTURE WORK 195
9.1 Scope of future work 198
References 199
Appendix A. CLOSED-LOOP SYSTEM 213
Appendix B. COMPUTATIONAL COMPLEXITY 221
Appendix C. TRAJECTORY GENERATION OF LEGGED ROBOT 241
Appendix D. ENERGY BALANCE 249
Appendix D. FOOT-GROUND INTERACTION 253
Publications out of this Work 259
Brief Bio-Data of the Author 261
xiv
xv
LIST OF FIGURES
Fig. 1.1 Examples of tree-type robotic systems 3
Fig. 2.1 Robotic systems 12
Fig. 2.2 Industrial robots 12
Fig. 2.3 Robotic hands 14
Fig. 2.4 Legged robots 15
Fig. 2.5 Inverse and forward dynamics 24
Fig. 2.6 Model-based control laws 25
Fig. 3.1 ZYZ Euler angles 37
Fig. 3.2 Frame convention for modified Denavit and Hartenberg (DH) parameters 39
Fig. 3.3 A spherical represented by three intersecting revolute joints 42
Fig. 3.4 Rotation about Z axis denoted as QZ( ) 43
Fig. 3.5 Rotation about Y axis 44
Fig. 3.6 Rotation about X axis 44
Fig. 3.7 Equivalent transformation 45
Fig. 3.8 Representation of DH frames for ZYZ EAJs 49
Fig. 3.9 Representation of DH frames for ZXZ EAJs 51
Fig. 3.10 Representation of DH frames for ZXY EAJs 53
Fig. 3.11 Representation of DH frames for XYX EAJs 57
Fig. 3.12 Representation of a spherical joint by using YXZ EAJs 64
Fig. 3.13 EAJs and singularity 65
Fig. 4.1 Tree-type architectures 68
Fig. 4.2 Different module architectures for the tree-type system in Fig 4.1(a) 68
Fig. 4.3 The kth
and (k-1)th
links coupled by joint k 70
Fig. 4.4 Representation of multiple-DOF joints 74
Fig. 4.5 A spatial double pendulum 76
Fig. 4.6 Module Mi and its parent M 77
Fig. 4.7 Definition of i 80
xvi
Fig. 4.8 A robotic gripper and its modularization 82
Fig. 4.9 A planar biped and its modularization 83
Fig. 4.10 A spatial biped and its modularization 84
Fig. 5.1 Motion of the link ki of module Mi 88
Fig. 5.2 External forces and moments on link #k 92
Fig. 5.3 The ith
composite module 94
Fig. 6.1 A robotic gripper and it modularization 119
Fig. 6.2 Joint torques for robotic gripper 122
Fig. 6.3 Simulated joint angles for robotic gripper 123
Fig. 6.4 Convergence of joint angle 11 123
Fig. 6.5 A 7-link biped and its module architecture 124
Fig. 6.6 Designed trajectories of the trunk COM and ankle of the spatial biped 125
Fig. 6.7 Joint trajectories of the spatial biped obtained from trunk and ankle trajectories
by using inverse kinematics relationships 126
Fig. 6.8 Torque requirement at joints of the biped 127
Fig. 6.9 Simulated joint angles for the biped 128
Fig. 6.10 Energy balance for the biped 129
Fig. 6.11 A hyper-DOF multibody system 130
Fig. 6.12 Simulation of 2.5m chain with 400 DOF (2 Sec) 131
Fig. 6.13 Energy balance for the long chain 132
Fig. 6.14 Performance of the proposed inverse dynamics algorithm for a system with
multiple-DOF joints 134
Fig. 6.15 Performance of the proposed forward dynamics algorithm for a system with
multiple-DOF joints 135
Fig. 6.16 Comparison of CPU time for hyper-systems (number of steps= 9×105) 136
Fig. 7.1 A 7-link planar biped 152
Fig. 7.2 Designed trajectories of the trunk COM and ankle of the planar biped 154
Fig. 7.3 Joint trajectories of the planar biped obtained from trunk and ankle trajectories by
using inverse kinematics relationships 154
Fig. 7.4 Motions of trunk (Floating-base) of the planar biped 155
Fig. 7.5 Joint torques at different joints of the planar biped 155
Fig. 7.6 Horizontal Reaction (HR) and Vertical Reaction (VR) on the feet of the planar
biped 156
xvii
Fig. 7.7 Simulated motions of trunk of the planar biped 156
Fig. 7.8 Simulated joint motions of the planar biped 157
Fig. 7.9 A spatial biped and its modularization 158
Fig. 7.10 Designed trajectories of the trunk COM and ankle of the spatial biped 158
Fig. 7.11 Joint trajectories of the spatial biped obtained from trunk and ankle trajectories
by using inverse kinematics relationships 159
Fig. 7.12 Motions of trunk of the spatial biped 160
Fig. 7.14 Simulated motions of trunk of the spatial biped 162
Fig. 7.15 Simulated joint motions of the spatial biped 163
Fig. 7.16 A quadruped and its modularization 165
Fig. 7.17 Designed trajectories of the trunk COM and ankle of the quadruped 165
Fig. 7.18 Joint trajectories of the quadruped obtained from trunk and ankle trajectories by
using inverse kinematics relationships 166
Fig. 7.19 Motions of trunk of the quadruped 167
Fig. 7.20 Joint torques at different joints of the quadruped 167
Fig. 7.21 Simulated motions of trunk of the quadruped 168
Fig. 7.22 Simulated joint motions of the quadruped 168
Fig. 7.23 A hexapod and its modularization 169
Fig. 7.24 Designed trajectories of the trunk COM and ankle of the hexapod 170
Fig. 7.25 Joint trajectories of the hexapod obtained from trunk and ankle trajectories by
using inverse kinematics relationships 170
Fig. 7.26 Motions of trunk of the hexapod 171
Fig. 7.27 Joint torque at different joints of the hexapod 172
Fig. 7.28 Simulated motions of trunk of the hexapod 172
Fig. 7.29 Simulated joint motions of the hexapod 173
Fig. 7.30 Performance of the proposed inverse dynamics algorithm for a system with
multiple-DOF joints 175
Fig. 7.31 Performance of the proposed forward dynamics algorithm for a system with
multiple-DOF joints 176
Fig. 8.1 Computed-torque control scheme 182
Fig. 8.2 Feedforward control scheme 184
Fig. 8.3 Simulated motion of trunk of the planar biped under computed-torque control 185
Fig. 8.4 Simulated joint motions of the planar biped under computed-torque control 186
Fig. 8.5 Simulated motion of trunk of the planar biped under feedforward control 187
xviii
Fig. 8.6 Simulated joint motions of the planar biped under feedforward control 187
Fig. 8.7 Simulated motion of trunk of the spatial biped under control 188
Fig. 8.8 Simulated joint motions of the spatial biped under control 189
Fig. 8.9 Simulated motion of trunk of the quadruped under control 190
Fig. 8.10 Simulated joint motions of the quadruped under control 191
Fig. 8.11 Simulated motion of trunk of the hexapod under control 192
Fig. 8.12 Simulated joint motions of the hexapod under control 192
Fig. A.1 A robotic leg 214
Fig. A.2 A carpet scrapping mechanism 214
Fig. A.3 Graph representation of the robotic leg 215
Fig. A.4 Tree-type representation of robotic leg 215
Fig. A.5 Module architecture of the robotic leg 215
Fig. A.6 Torque require at joint 11 218
Fig. A.7 Simulated joint angle (Input link) 219
Fig. A.8 Error in joint angle 219
Fig. C. 1 Zero-Moment-Point 241
Fig. C. 2 Parameters of biped 242
Fig. C.3 Inverted-Pendulum-Model 243
Fig. C.4 Parameters of ankle trajectories 245
Fig. C.5 Joint motions of a biped 246
Fig. C.6 Geometry of a biped to determine the joint motions 247
Fig. D.1 Energy balance for planar biped 251
Fig. D.2 Energy balance for spatial biped 251
Fig. D.3 Energy balance for quadruped 252
Fig. D.4 Energy balance for hexapod 252
Fig. E.1 Firm ground model 254
Fig. E.2 Dusty ground model 256
Fig. E.3. Different types of foot contact 257
xix
LIST OF TABLES
Table 3.1 Rotation matrices using Euler Angles 38
Table 3.2 DH parameters for ZYZ EAJs 48
Table 3.3 DH parameter for ZXZ EAJs 51
Table 3.4 DH parameters for ZXY EAJs 53
Table 3.5 DH parameters for XYX EAJs 57
Table 3.6 Euler-Angle-Joints 60
Table 3.7 Required constant matrix multiplication/Additional set of DH parameter for the
EAJs 63
Table 6.1 Recursive O(n) inverse dynamics algorithm for fixed-base robotic systems 113
Table 6.2 Recursive O(n) forward dynamics algorithm for fixed-base robotic systems 118
Table 6.3 Steps of inverse dynamics for robotic gripper 119
Table 6.4 Steps of forward dynamics for robotic gripper 120
Table 6.5 Joint motions for robotic gripper 121
Table 6.6 Model parameters for the biped 125
Table 6.7 Computational complexity of the recursive O(n) inverse dynamics algorithm for
fixed-base systems 132
Table 6.8 Computational complexity of the recursive O(n) forward dynamics algorithm
for fixed-base systems 133
Table 7.1 Recursive O(n) inverse dynamics algorithm for floating-base robotic systems
145
Table 7.2 Recursive O(n) forward dynamics algorithm for floating-base robotic systems
150
Table 7.3 Computational complexity of the recursive O(n) inverse dynamics algorithm for
floating-base systems 174
Table 7.4 Computational complexity of the recursive O(n) forward dynamics algorithm
for floating-base systems 174
Table A.1: Model parameters of the robotic leg 218
xx
Table B.1 Computational count for recursive inverse dynamics of fixed-base system 235
Table B.2 Computational count for recursive forward dynamics of fixed-base system 236
Table B.3 Summary of computational count for the kth
link 237
Table B.4 Computational count for recursive inverse dynamics of floating-base system
238
Table B.5 Computational count for recursive forward dynamics of the floating-base
system 239
Table B.6 Summary of computational count for the kth
link 240
Table C.1 Trajectory parameters for biped 246
Table C.2 Trajectory parameter for legged robots 248
LIST OF SYMBOLS AND ABBREVIATIONS
The important symbols and abbreviations are listed here in alphabetical order. Notational
rules followed in this thesis are as follows:
Matrices are in boldface upper-case letters.
Column matrices, algebraic vectors and arrays are in boldface lower-case letters.
Scalars are in light face letters.
Identification of an item (link or module, etc.) using italics lower or upper case.
A ‘ ’ over an entity signifies that it is associated with a kinematic module or simply
module of the tree-type systems under study.
Latin letters
A 6(n+ 0)×6(n+ 0) matrix for a module
Ak,k-1, ,Ai h 6×6 link-twist propagation matrix from (k-1)th
link to kth
link, and 6ni×6n
h
module-twist propagation matrix from hth
module to ith
module
, ,
ˆˆ ,A Ak j i h 6×6 articulated link-twist propagation matrix, and 6n
i×6n
h articulated
module-twist propagation matrix
1, 1,,k k k ka a 1 3-dimensional position vector of the origin of the kth
link from the origin
of (k-1)th
link, and the 3×3 cross-product tensor associated with vector
1,k ka
ak, ka Link length, i.e., one of the Denavit-Hartenberg (DH) parameter, and 3-
dimensional vector associated with ak
Bk , B i , B Elementary upper triangular matrix (EUTM), Elementary block upper
triangular matrix (EBUTM), and block upper triangular matrix
bk, kb Joint offset (DH parameter) and 3-dimensional vector associated with bk
C (n+n0)×(n+n0) Matrix of Convective Inertia (MCI) terms
D, D (n+n0)×(n+n0) diagonal matrix, and (n+n0)×(n+n0) module-level block
diagonal matrix
dk, kd 1 3-dimensonal vector from the origin of the k
th link to its center-of-mass,
and the 3× 3 cross-product tensor associated with vector dk
xxi
Ek , Ei , E Coupling matrices for kth
link, ith
module, and generalized coupling
matrix. Their sizes are 6×6, 6ni×6n
i and 6(n+ 0)×6(n+ 0), respectively
ek 3-dimensional unit vector parallel to the axis of rotation or translation
Fk kth
Frame
fk 3-dimensional vector of force applied at Ok
g 3-dimensional vector of gravitational acceleration
hk, hi Scalar generalized force due to Coriolis, centrifugal, gravity, and external
forces and moments terms, and ni-dimensional vector of hk terms for the
ith
module
h Generalized vector of forces due to Coriolis, centrifugal, gravity, and
external forces and moments terms
kh , hi Scalar, and n
i-dimensional vector
I, Ii,j (n+n0)×(n+n0) Generalized Inertia Matrix (GIM), and (i,j)th
block
element of I whose size is ni×n
j
Ik 3×3 inertia tensor of the kth
link
ˆIi n
i×n
i inertia matrix of the i
th articulated module
Kp, Kd Matrices of proportional and derivative gains
kp, kd Proportional and derivative gains (scalars)
ki k
th link of the i
th module (scalar)
mk Mass of the kth
link
ˆkm Mass moment of inertia of articulated body k
Mi ith
module
Mk , M i , M Mass matrices of kth
link, ith
module, and generalized mass matrix. Their
sizes are 6×6, 6ni×6n
i, and 6(n+ 0)×6(n+ 0), respectively.
ˆ, M Mk k 6×6 mass matrices of kth
composite- and articulated-body, respectively
ˆ, M Mi i
6ni×6n
i mass matrices of i
th composite- and articulated-module,
respectively
N 6(n+ 0)×(n+n0) Natural Orthogonal Complement (NOC) matrix
Ni 6ni×n
i module-joint-rate propagation matrix associated with i
th module
Nl, Nd 6(n+ 0)×6(n+ 0) and 6(n+ 0)×(n+n0) link-level Decoupled Natural
Orthogonal Complement (DeNOC) matrices
xxii
,N Nl dd 6(n+ 0)×6(n+ 0) and 6(n+ 0)×(n+n0) module-level DeNOC matrices
ni , n Total number of joint variables in the i
th module and total number of joint
variables in all the modules excluding the base module.
n0 DOF of the base of robotic systems. n0 =0 for fixed-base and n0 =6 for
floating-base
n1, n2, n3 Total number of joint variables associated with 1-, 2-, 3-DOF joints,
respectively
nk 3-dimensional vector of moments applied at Ok
Ok Origin of kth
link
ok 3-dimensional linear velocity vector of the origin of the kth
link
k 6 k× k joint-motion-propagation matrix when kth
joint has multiple-DOF
pk 6-dimensional joint-motion propagation vector of the kth
joint
q, , q q (n+n0)-dimensional vectors of generalized independent coordinates, its
time rate and acceleration, respectively
0q 6-dimensional independent coordinates of the floating-base
Qk , Q kth
elementary rotation matrix, and overall rotation matrix
rk 3-dimensonal vector from the center-of-mass of the kth
link to the origin
of (k+1)th
link
s Total number of modules (excluding base module) in a tree-type system
sk,j, ,k js 1 3-dimensonal vector from the origin of k
th link to the j
th point of
application of external force, and 3×3 cross-product tensor associated
with sk,j
Sk,j 6×6 matrix associated with vector ,k js
Tk 4×4 kth
homogeneous transformation matrix
tk, tk6-dimesional vectors of twist, and twist-rate
,i it t 6ni-dimesional vectors of module-twist, and module-twist-rate
U, U (n+n0)×(n+n0) upper-triangular matrix, (n+n0)×(n+n0) module-level
block upper-triangular matrix
,Ui j Block upper triangular matrix
,U Vi i (n+n0)×n
i matrices
wE
, wC
, wD 6(n+ 0)-dimensional generalized wrenches due to external, constraint,
xxiii
and driving moments and forces, respectively
wk , wi , w 6-dimesional vector of wrench for the kth
link, 6ni-dimesional vector of
wrench for the ith
module, and 6(n+ 0)-dimensional vector of generalized
wrench
* *, ,k iw w w*
Inertia wrench for kth
link, ith
module, and generalized inertia wrench.
Their sizes are 6-, 6ni-, and 6(n+ 0)-dimensional, respectively
0 Vector of zeros or null vector. Its size is compatible to the dimensions of
the matrices and vectors where it appears
O Matrix of zeros or null matrix with size compatible to the dimensions of
the matrices where it appears
O’s All other block elements are null matrices. Their size are compatible to
the matrices where it appears
1 Identity matrix of size compatible to the dimensions of the matrices
where it appears
,1 1i i ni×n
i and 6n
i×6n
i identity matrices
Greek letters
k twist angle (DH parameter)
, i or (i) Parent, and parent of i
i Array of all the module upstream from as well as including the module i
k Number of joint variables associated with kth
joint
, k k 6-dimensional vectors
, i i 6ni-dimensional vectors
i Total number of links in the i
th module
0 0=0 for fixed-base and 0=1 for floating-base
i n
i-dimensional joint-rate of the i
th module and n-dimensional vector of
joint rates
k, k Joint angle and joint rate of kth
joint
, i i 6n
i×n
i matrices
,k k 6-dimensional vectors
, 1k k 6 k×6 k-1 twist-propagation matrix when k
th joint has multiple-DOF
xxiv
, i i 6ni-dimensional vectors
, k k 6-dimensional vectors
i or (i) Array of children of i
k, i , Torque at kth
joint, ni-dimensional vector of joint torques for i
th module,
and (n+n0)-dimensional vector of generalized forces and torques
(n+n0)-dimensional generalized vector of non-inertial forces
,k i 6×6 matrix of kth
articulated body transformation and 6ni×6n
i matrix of i
th
articulated module transformation
k, i Scalar generalized force due to of non-inertial forces, and ni-dimensional
vector of k terms for the ith
module
ˆi i Scalars
ˆi i
ni-dimensional vectors
k , ˆ
, i i 6-dimensional vector, and 6n
i×n
i matrices
,k k 1 3-dimensional vector of angular velocity of the kth
link, and 3×3 cross-
product tensor associated with k
k, i , Angular velocity matrices for kth
link, ith
module, and generalized angular
velocity matrix. Their sizes are 6×6, 6ni×6n
i, and 6(n+ 0)×6(n+ 0),
respectively.
Abbreviations
ADAMS Automatic Dynamic Analysis of Mechanical Systems (A commercial
software)
BRGE Block Reverse Gaussian Elimination
CT Computed-Torque
COM Center-of-Mass
CRBA Composite Rigid Body Algorithm
DAE Differential Algebraic Equations
DeNOC Decoupled Natural Orthogonal Complement
DH Denavit-Hartenberg
DOF Degree-of-Freedom
EAJs Euler-Angle-Joints
EL Euler-Lagrange
xxv
xxvi
FF Feedforward
GE Gaussian Elimination
GIM Generalized Inertia Matrix
IPM Inverted Pendulum Model
MCI Matrix of Convective Inertia
MDH Modified Denavit-Hartenberg
NE Newton-Euler
NOC Natural Orthogonal Complement
ODEs Ordinary Differential Equations
O(n) Order (n)
O(n3) Order (n
3)
RNEA Recursive Newton-Euler Algorithm
RGE Reverse Gaussian Elimination
sym Symmetric
ZMP Zero Moment Point
Chapter 1
INTRODUCTION
1.1 Motivation
Robots find applications in automobile, electronics, chemical and many other industries.
The field of robotics has evolved since the development of industrial robots, which have
mainly fixed base with serial-chain architecture. Since then many new applications like
maintenance task of industrial plants, operations in dangerous and emergency
environments, surveillance, maneuvering in unknown terrains, tele-surgery, human care,
grasping and manipulation of complex objects, multi-point force and tactile feeling, etc.
have come into existence. As a result, multiple-chain tree-type robotic systems such as
multi-fingered robotic arm, legged vehicle, humanoid robot, etc. have emerged. They are
referred to as tree-type robotic systems in this work. Trajectory planning, dynamic
analysis, obtaining stability criterion, and control are some of the basic issues with such
systems. Research in these areas has growing interest and is active field of the robotics.
Dynamic analysis, specifically, involves either force or motion analysis or both. Whereas
force analysis attempts to find the driving and reactive forces for given input motion, the
motion analysis obtains system’s configuration under the input forces. Force analysis
helps in design and control of robotic systems, whereas motion analysis allows one to
study and test a design virtually without really building a real prototype and is called
virtual prototyping.
There has been significant increase in the use of computational dynamics for simulation,
analysis, design, and model-based control of various robotic systems. Hence, an efficient
1
framework is essential for the dynamic analysis of complex robotic systems. In this
context, recursive dynamics algorithms play an important role. They are attractive due to
simplicity and computational uniformity regardless of ever growing complex robotic
systems. Recursive formulations in robotic applications have significantly helped in
achieving real-time computations and model-based control laws.
In this thesis, an attempt has been made to develop modular framework for kinematic and
dynamic modeling of tree-type robotic systems, and to obtain recursive algorithms for
predicting their dynamic behavior and its control.
1.2 Tree-type Robotic Systems
The concept of robots has been around since medieval times in the form of human-like
toys. Earlier perception of the robots was in the form of machine that performs human-
like work or imitates animals. It wasn’t until 1960’s that the first modern day industrial
robot was built. Since then the field of robotics has grown a lot and many new
applications of robot have come into existence. An industrial robot is like a human arm
and of many applications it finds maximum utility in pick and place operation. It has a
fixed-base wherefrom bodies or links emanate one after another in a serial fashion. The
developments in the field of the industrial robots have encouraged researchers to build
robots which imitate mammals. As a result, many complex robotic systems have
emerged. These robotic systems have multiple chains connected by single as well as
multiple-degrees-of-freedom joints, and, in general, are referred to as tree-type robotic
systems. Figure 1.1 shows several examples of tree-type robotic systems. Figure 1.1(a) is
a multi-fingered gripper. Figure 1.1(b) illustrates an industrial robot with a secondary
manipulator carrying the camera subsystem towards the end-effector, and hence forms a
2
tree
1.1(
Tree
con
type
to h
Mod
exam
the
back
invo
fram
plan
(a) M
e. A quadru
(d), respecti
e-type robo
straint topo
e of the rob
have a fixed
deling and
mple, the le
ground, ho
kward, the l
olved with
mework for
nning, and c
Multi-fingered
gripper
uped legged
ively.
d (b) In
cam
F
otic systems
ology. The b
botic system
d-base wher
control of
egged robot
owever, wh
legs form op
h the tree-
the dynami
control of th
d robot and
s have essen
base of the
m. The robot
eas the syst
such robots
in Fig. 1.1(
hen the rob
pen-chain a
-type robo
ic analyses,
hose system
ndustrial robot
mera subsyste
Fig. 1.1 Exam
3
d a humano
t with (c
em
mples of tree-ty
ntially multi
systems m
tic systems
tems in Fig.
s are difficu
(c) forms a
ot lifts one
architecture
otic system
which can
ms.
oid robot a
iple branche
may be fixed
in Figs 1.1
. 1.1(c) or F
ult due to t
closed-loop
e or two of
with respec
ms necessit
be useful in
c) A legged ro
ype robotic sy
Trunk
are shown i
es, like in a
d or floating
(a) and (b)
Fig. 1.1(d) h
their variabl
p system wh
f its legs to
ct to the trun
tates effici
n simulation
obot (d
ystems
k
Joints
Join
in Figs. 1.1
a tree, with
g depending
may be con
have floatin
le architect
hen it is stan
o move for
nk. The com
ient compu
n, design, tr
d) Humanoid
nts
1(c) and
variable
g on the
nsidered
ng bases.
ture. For
nding on
rward or
mplexity
utational
rajectory
d
Pelvis
1.3 Dynamics
Computer-aided dynamic analysis of robotic systems has been a prime motive of the
engineers since the evolution of high speed facilities using computers. In order to perform
computer-aided analysis, the actual system is represented with its dynamic model, which
has information in terms of link parameters, joint variables and constraints. Dynamic
model of a robotic system is represented by a set of equations governed by physical laws
of motions. For a system with few links, it is easier to obtain explicit expressions for the
equations of motion. However, finding equations of motion is not an easy task for
complex systems with many links. Sometimes even with 4 or 5 links, say, a 4-bar
mechanism, it is difficult to find an explicit expression for the system inertia in terms of
the link length, mass and joint angle. Various techniques are available in the literature for
automatic generation of the equations of motion. Development of the equations of motion
is an essential step for dynamic analysis. Objective of dynamic analysis is mainly two
fold.
1) First, to perform force analysis. This is referred to as inverse dynamics, in which
driving forces of the system are computed for a given set of input joint motions.
Knowledge of the driving forces help not only in control but also in actuator design of the
robot. One may also obtain the reaction forces, which may be used for design of
associated linkages and joints from the strength point of view.
2) Second is motion analysis. This is called forward dynamics, where joint motions are
computed under the application of driving forces. This along with numerical integration
helps in obtaining the configuration or state of the system at any instant of time. In other
word forward problem lets one to simulate the actual working of the system.
4
Whereas inverse dynamics requires only evaluation of algebraic equations, forward
dynamics requires the solution of the equations of motion. So, the forward dynamics
problem may involve solutions of either Ordinary Differential Equations (ODE) or
algebraic and differential equations together, i.e., Differential Algebraic Equations
(DAE). Closed form solutions of ODE or DAE for simple systems may be trivial,
however, for a complex system they are not possible. Most common approach to solve
them is to use numerical techniques. It is worth noting here that no numerical method can
give exact solution and, hence, it is prone to errors, either round-off or truncation or
otherwise. Error propagation affects accuracy of the results leading to even numerical
instability. The round-off error is caused mainly due to limitation of the computing
system, whereas the truncation error depends on the algorithm used. Since the latter error
is reduced with the reduced number of computational steps, so the computational count of
an algorithm should be reduced as much as possible for numerical stability and efficiency.
This reduction will certainly reduce the truncation errors as the computer needs to
evaluate less number of functions. As a result, efficient computational framework to
obtain the solution of the equations of motion for the dynamic analysis of tree-type
robotic system is called for. To achieve efficiency, modular framework for the dynamic
analysis of tree-type robotic systems consisting of multiple-DOF joints is proposed in this
thesis.
1.4 Important Contributions
The important contributions of this thesis are outlined below:
1. The concept of Euler-Angle-Joints (EAJs) for the representation of a spherical
joint and its generalization for 1-, 2-, and 3-degrees-of-freedom joints.
5
2. Generalization of the link-to-link kinematic transformation of velocities, i.e.,
twist-propagation, to module-to-module twist-propagation using the concept of
kinematic modules. As a consequence, definition of the Decoupled Natural
Orthogonal Complement (DeNOC) for a serial chain system is extended to a tree-
type robotic system.
3. Dynamic modeling of a tree-type robotic system using the concept of the module-
DeNOC matrices giving module-level expressions for the vectors and matrices
appearing in the equations of motion.
4. Module-level, analytical block UDUT decomposition of the Generalized Inertia
Matrix (GIM) for the tree-type robotic system using the Block Reverse Gaussian
Elimination (BRGE), where U and D are the block upper triangular and block
diagonal matrices, respectively. Subsequently analytical expressions of the inverse
of the GIM are derived providing deeper insight into the dynamics.
5. Efficient recursive algorithms for the inverse and forward dynamics of the fixed-
and floating-base tree-type robotic systems consisting of multiple-DOF joints
introducing inter- and intra-modular recursions.
6. Dynamic analyses of several tree-type practical robotic systems, namely, (i) a
robotic gripper, (ii) planar and spatial biped, (iii) a quadruped, and (iv) a hexapod,
which would help researcher and practicing engineer to use these results for
design, simulation and control of those robots.
7. Closed-loop control simulation of several robots, mainly, those listed in item 6
above, to study their controlled behaviors.
6
1.5 Thesis Organization
The thesis contains nine chapters which are organized as follows:
1. Introduction
The motivation and scope of the proposed research work are presented in this chapter.
The important contributions and organization of the thesis are highlighted.
2. Background and literature survey
Background and literature in the fields of dynamic modeling, and tree-type robotic
systems have been critically reviewed in this chapter.
3. Euler-Angle-Joints (EAJs)
A spherical joint in robotic literature is typically modeled as three-intersecting revolute
joints. It is shown in this thesis that it is nothing but a variant of well-known Euler angle
representation. Hence, the term Euler-Angle-Joints (EAJs) is introduced. The evolutions
of different EAJs with examples are shown in this chapter.
4. Kinematics of tree-type robotic systems
The concept of kinematic modules for the tree-type systems is introduced in this chapter.
The recursive kinematic relationships in the form of twist-propagations are first obtained
at intra-modular level (inside the module). Using the concept of Euler-Angle-Joints
introduced in Chapter 3, it was possible to generalize 1-, 2-, and 3-degrees-of-freedom
rotary joints, namely, revolute, universal and spherical joint, respectively. Next, inter-
modular (between the module) kinematic constraints, i.e., module-level twist-
propagations, are derived. This allows one to generalize the definition of DeNOC
matrices for a serial system to tree-type system.
7
5. Dynamics of tree-type robotic systems
Dynamic modeling of the tree-type robotic system is presented in this chapter. The
module-level expressions for the matrices and vectors appearing in the equations of
motion are presented. Following the analytical expression of the Generalized Inertia
Matrix (GIM), its module-level decomposition is obtained. The GIM is decomposed in
the form of UDUT using the concept of Block Reverse Gaussian Elimination (BRGE),
where U and D are the block upper triangular and block diagonal matrices. This leads to
many physical interpretations of terms associated with the dynamics. The decomposition
helps in obtaining explicit analytical inversion of the GIM and the recursive forward
dynamics.
6. Recursive dynamics of fixed-base systems
In this chapter, dynamic analyses of fixed-base robotic systems are presented. For this
recursive algorithms for inverse and forward dynamics are obtained. Dynamic analyses of
robotic gripper, spatial biped and hyper-degrees-of-freedom system are presented in this
chapter.
7. Recursive dynamics of floating-base legged robot
Modeling of a robotic system with floating or mobile base is proposed in this chapter.
Recursive algorithms for inverse and forward dynamics of floating-base robotic systems
are derived here. Analyses for biped, quadruped and hexapod robotic systems are
presented.
8
8. Simulation of controlled legged robots
Two model-based control schemes, namely, feedforward and computed-torque control,
have been discussed with the help of proposed dynamic framework. Simulation of biped,
quadruped and hexapod is presented by using them.
9. Conclusions
This chapter gives the summary of the major results obtained in this research work, along
with the conclusions. The scope of future work is also outlined in this chapter.
References
Appendix A: Closed-loop systems
Appendix B: Computational complexity
Appendix C: Trajectory generation of legged robot
Appendix D: Energy balance
Appendix E: Foot-ground interaction
9
10
Chapterr 2
BACKGRROUND AAND LITTERATURE SURRVEY
The
brie
e field of ro
ef overview
botics has g
of the litera
grown a lot
ature survey
t in last 3-4
y conducted
decades. In
d during this
n this chapt
s research is
er, backgro
s presented.
ound and
.
2.1 Roboticc Systemms
A ro
chai
syst
Figs
para
chai
show
chai
base
floa
obotic syste
in or close
tems, e.g., a
s. 2.1(a) an
allel archite
in systems.
wn in Fig. 2
in. A legge
e with inter
ating. Indus
em can be d
ed-chain. R
a PUMA in
nd 2.1(b), r
ecture, e.g.,
Figure 2.1(
2.1(d) have
ed robot ma
rmittent grou
trial robots
divided into
Robots with
ndustrial ro
respectively
Stewart pla
(c) shows a
time varyin
ay also be v
und contact
and parall
o two categ
h serial an
obot and mu
y. The coop
atform and d
a Stewart pl
ng topology
viewed as a
ts. Thus, a r
el robots ar
gories based
nd tree-type
ulti-fingered
perating ind
delta manipu
atform. On
y, i.e., a com
robotic sys
robotic syst
re example
d on their to
e architectu
d robotic g
dustrial rob
ulator, are e
the contrar
mbination o
stem with f
tem has its b
s of fixed-b
opology, i.e
ure are ope
gripper as sh
ot and robo
examples of
ry, legged r
f open- and
floating- or
base either
base system
(a) PPuma industriaal robot
11
(b) Uttah/MIT hand
d
e., open-
en-chain
hown in
ots with
f closed-
robots as
d closed-
mobile-
fixed or
ms while
the space manipulators and legged robots are examples of floating-base systems. This
thesis addresses dynamics of tree-type robotic systems with both fixed-base and floating-
base. The analysis of closed-chain systems can be carried out by cutting appropriate joints
to form a tree-type system, where the opened joints are substituted by constraint forces.
(c) Stewart platform (d) Quadruped legged robot (Raibert, 1986)
Fig. 2.1 Robotic systems
2.1.1 Serial robots
Industrial robot (Fig. 2.1a) is a classical example of a fixed-base serial-chain robotic
system. Industrial robots have the capability to perform manipulation task similar to
human arm. Development of such robots started after World War II. The first industrial
(a) UNIMATE robot (b) Sanford arm
Fig. 2.2 Industrial robots
12
robot, UNIMATE of Fig. 2.2(a), was used in the assembly line in General Motors way
back in 1961. The first electrically powered, computer-controlled robot, Stanford Arm
(Fig. 2.2b), was developed in 1969. Research on industrial robots started in late seventies
and has gone a long way in the areas of kinematics, path planning, dynamics, simulation,
control and design. Denavit and Hartenberg (1955), Hollerbach and Gideon (1983),
Goldenberg et al. (1985), Khatib (1986), Ma and Angeles (1990), Coset at el. (2005) and
others worked on different issues of kinematics and path planning of industrial robots.
The issues of dynamics were addressed by Hollerbach (1980), Luh et al. (1980), Walker
and Orin (1982), Khalil et al. (1986), Angeles et al. (1989) and Balafoutis and Patel
(1991). Simulation aspects were attempted by Featherstone (1987), Bae and Haug (1987),
Rodriguez (1987), Lilly and Orin (1991), McMillan and Orin (1995), and Saha (1997).
Issues on control of industrial robots were investigated in detail by Lewis et al. (2004)
and Kelly et al. (2005), whereas aspects on design was reported by Asada (1984),
Yoshikawa (1985), Kahtib and Burdick (1987), Craig (2006) and Saha et al. (2006). In
this work, serial-chain robotic systems are assumed as a special case of a tree-type robotic
system.
2.1.2 Tree-type robotic hand
Robotic hand, as shown in Fig. 2.1(b), is another important subsystem for a human-hand-
like manipulating system. It has tree-type topology, where a common rigid link, the palm,
and other links emanate from it. The architecture of each finger is the same as that of a
serial robot shown in Fig. 2.1(a). These robotic systems essentially perform the task of
restraining an object and manipulating the same. In the task of restraining, fingers play
the role of keeping the object rigidly attached to the palm. On the other hand,
manipulation involves controlled motion of the grasped object with respect to the palm.
This is also known as dexterous manipulation. Early groundwork on robotic hand was
13
laid do
Jacobse
fingered
Utah/M
develop
2.1(b),
presente
recently
2003; a
2.1.3
Desire
compel
machin
suitable
fixed m
in Fig.
wn by Sal
en et al. (1
d robotic ha
MIT hand (J
ped. The Ut
Fig. 2.3(a)
ed various
y emphasis
and Furukaw
Legged ro
to make de
led the ne
es was view
e stepping m
motion woul
2.1(d), wou
(a) Sta
isbury and
1986) desig
ands such a
Jacobsen et
tah/MIT ha
) and Fig. 2
issues and
has been g
wa, 2006) w
obots
evices that
eed of legg
wed as the
motion. Ho
d not do the
uld need co
anford/JPL han
Craig (19
gned early
as the Stanf
al. 1986),
and, Stanfor
2.3(b), resp
d comprehen
given on ac
with the help
imitate ma
ged robots.
task of de
owever, late
e trick of w
ontrol. The
nd
Fig. 2.
14
82), where
dexterous
ford/JPL ha
the TUM h
rd/JPL hand
pectively. P
nsive revie
chieving dy
p of a roboti
3 Robotic han
ammals and
In early
esigning kin
er, it had be
walking or ru
scientific st
as Mason
systems. A
and (Mason
hand (Pfeiff
d, and TUM
Pons et al.
w of dexte
ynamic re-g
ic hand.
d to explore
twentieth c
nematic link
ecome clea
unning. A w
tudy of legg
(b
nds
and Salisbu
As a result
n and Salisb
fer, 1996) a
M hand are
(1999) and
erous roboti
grasping (H
e the unkno
century, bu
kages that w
ar that a lin
walking mac
ged locomo
b) TUM hand
ury (1985)
t, several m
bury, 1985)
and others w
e shown in
d Bicchi (2
ic hands. M
Hasegawa et
and
multi
, the
were
Fig.
000)
More
t al.,
own terrain
uilding wal
would gene
nkage provi
chine, as sh
otion began
n has
king
erate
ding
hown
n just
over fifty year ago when Muybridge (1957) studied the motion of a horse. The first
machine that balanced actively was based on automatically controlled inverted pendulum.
Miura and Shimoyama (1984) built the first walking machine that balanced actively (Fig.
2.4a). According to Mark Raibert (1986) there are two main purposes for interest in
legged locomotion, namely, 1) its potential for high mobility, and 2) the necessity to
understand the motions of animals and humans. It is obvious that high mobility aspect is
predominant as wheeled locomotion is primarily restricted to level surfaces. Raibert
(1986) showed the advantage of legged robots in comparison to the wheeled systems, by
illustrating that legs use isolated footholds for support, whereas wheels or tracks require a
continuous path of support.
(a) 6)
Biper4 (Miura and Shimoyama, 1984) (b) Monopod (Raibert, 198
(c) Hexapod (Saranli et al., 2001) (d) Biped (Collins and Ruina, 2005)
Fig. 2.4 Legged robots
15
In flight phase, degrees-of-freedom of the legged robot are more than number of
actuators, which makes them under actuated. Moreover, the dynamic model of the legged
robot is highly nonlinear and it is difficult to model interaction of the robot with unknown
environment. This makes control of legged robots difficult. A controller plays major role
in achieving stable periodic motion of the legged robot. The goal of the controller is to
control velocity and posture of the robot while maintaining a cyclic gait. A statically
balanced robot can be controlled in a kinematic way by neglecting the inertial forces. On
the contrary, dynamically balanced robot can only be balanced through its motion, by
taking into account the inertial forces and manipulating them in the right way. As a result,
dynamics plays an important role in control of legged robots. Research in the field of
legged robots has made great stride in the last two decades. Various issues related to
dynamics, trajectory planning and control have been addressed by researchers till date to
obtain walking or running of the legged robots. As a result, various prototypes of the
legged robots have been built. Raibert (1984), Ringrose (1997), Brown and Zeglin (1998),
Ahmadi and Buehler (1999) and Hyon et al. (2003) have contributed in the development
of monopod hopper. Development of bipedal robot and their issues were reported in the
work by Miura and Shimoyama (1984), Vukobratovic et al. (1989), McGeer (1990), Shih
et al. (1991), Hirai et al. (1998), Sakagami et al. (2002), Kuroki et al. (2003), Collins and
Ruina (2005) and Kaneko et al. (2008). Various issues on quadruped robots have been
investigated in the work by Buehler et al. (1998), Fukuoka et al., (2003), Marhefka et al.
(2003) and Kimura et al. (2007), whereas development of hexapod robot was attempted
by Espenschied et al. (1996), Nelson et al (1998), Cham et al (2002), and Saranli et al.
(2004). Some of the legged robots are shown in Fig 2.4.
16
2.2 Representations of Rotations
Rotation representation of a rigid link moving in a 3-dimensional Cartesian space is
important. Selection of appropriate co-ordinates is vital, particularly, with multiple
Degree-of-Freedom (DOF) joints, e.g., universal and spherical joints, connecting two
neighboring links. Many schemes are available to represent a rotation in space as shown
by Nikravesh (1988), Shuster (1993) and Shabana (2001). The representation of the
rotation matrix with the help of nine direction cosines is one such scheme, however, it is
not preferred by many as it uses dependent co-ordinates. Use of Euler angles (Shabana,
2001) is the alternative choice. It has wide acceptability in the field of aerospace, bio-
mechanics, and others due to its independent representation. The use of Euler parameters
(Nikravesh, 1988) is another popular choice, which uses four parameters though DOF for
a rigid body rotation in three dimensional Cartesian space is three. Rodriguez parameters
(Shabana, 2001) consisting of essentially three independent Euler parameters are also
used for rotation representation.
It may be noted that the Euler angles have three independent parameters but suffer from
inherent numerical singularities, which, however, can be overcome by switching from the
one type of Euler angle representation to another (Shuster and Oh, 1981; Singla et al.,
2005). On the other hand, Euler parameters have no singularity but they are not
independent, and may suffer from constraint violations that may in turn lead to numerical
instability. They are also difficult to visualize.
2.2.1 Denavit-Hartenberg parameters
In robotic applications, the links are joined mainly with one degree-of-freedom (DOF)
joints, e.g., revolute and prismatic. Well-known Denavit-Hartenberg (DH) parameters,
(Denavit, and Hartenberg, 1955) are used to define the configuration of a link with
17
respect to its previous one. Many modern robotic systems such as humanoid, legged
robot, robotic hand, etc. contain multiple-DOF joints, say, universal, cylindrical or
spherical joints. Such joints are generally modelled as several intersecting one-DOF
joints, i.e., revolute or prismatic (Duffy, 1978). Such representations suffer from
unnecessary calculations associated with zero lengths and masses of the virtual links that
need to be introduced to define the DH parameter of the system.
2.2.2 Euler-Angle-Joints
As such no formal way of representing the Euler angles rotations using DH parameters is
available in literature, even though there exist interesting correlations. Hence, it is
formally introduced in this work (Shah et al., 2009) and their benefits are explored. The
term Euler-Angle-Joints (EAJs) is coined to represent multi-DOF rotary joints. Moreover,
it is shown that significant simplifications in the algorithms for dynamics can be obtained
by not accounting for the zero lengths and masses of the virtual links. This helped in
obtaining recursive, fully O(n), forward dynamics algorithm (as will be explained in
Section 6.2), which would have not been possible to construct by using original definition
of Euler angles or Euler parameters.
2.3 Dynamic Modeling
Over the last two decades, applications of multibody dynamics have spread over the fields
of robotics, automobile, aerospace, bio-mechanics, molecular modeling and many more.
With continuous development in the field of robotics, and evolution of complex robotic
systems, application of multibody dynamics has still wider scope of research in the field
of robotics. History of dynamics goes back to seventeenth century when Newton in 1686
presented the dynamics of a free particle and later Euler in 1776 introduced the concept of
rigid body. This gave birth to Newton-Euler equations of motion. Lagrange in 1788
18
provided the systematic approach for mathematical formulation of the constrained rigid
body systems. Since then multibody dynamics has grown a lot. Comprehensive
discussion on dynamic formalisms can be found in the seminal text by Roberson and
Schwertassek (1988), Schiehlen (1990), Stejskal and Valasek (1996), and Wittenburg
(2008). Recent trends in dynamic formalisms can also be found in the work by Schiehlen
(1997), Featherstone and Orin (2000) and Eberhard and Schiehlen (2006).
2.3.1 Equations of motion
Derivation of the equations of motion is an important step in order to study the dynamics
of any system. This is also referred to as dynamic modeling. There are several
fundamental methods of formulating equations of motion. For example, Newton-Euler
(NE) formulation, Euler-Lagrange principle, Gibbs-Appel approach, Kane’s method, and
D’Alembert’s principle. All the above mentioned approaches, when applied to robotic
systems, have their own advantages and disadvantages. Newton-Euler (NE) approach is
one of the classical methods for dynamic formulation. This approach is based on the
concept of “free-body.” If it is constrained, associated forces of constraints are included
in the free-body with those, which are externally applied. Mathematically, NE equations
of motion lead to two vector equations, which in scalar form is equivalent to three
translational equations of motion of the Centre-Of-Mass (COM), and three equations
determining the rotational motion of the rigid body. The NE equations are related simply
by the constraint forces and hence for an open-chain system they can easily be solved
recursively. For closed-loop systems, however, some of the NE equations need to be
solved simultaneously in order to obtain constraint and driving forces. Hence, the use of
the NE equations of motion for closed-chain systems is not as efficient as those for serial-
chain systems.
19
Euler-Lagrange (EL) formulation is another classical approach widely used for dynamic
modeling. The EL formulation uses the concept of generalized co-ordinates instead of
Cartesian co-ordinates. It is based on minimization of a functional called “Lagrangian”
which is nothing but the difference between kinetic energy and potential energy of the
system at hand. For open-chain systems, where typically the number of generalized
coordinates equals the degree-of-freedom of system, the constraint forces do not appear in
the equations of motion. For the closed-chain systems, however, forces of constraints
appear as Lagrange’s multipliers. Kane’s formulation, which is same as the Lagrange’s
form of D’Alembert’s principle, has also been used by few researchers for the
development of the equations of motion. It is found to be more beneficial than other
formulations when used for systems with nonholonomic constraints.
2.3.2 Orthogonal complements
It is pointed out here that NE equations of motion are still found popular in the literature
to obtain recursive algorithms. However, it requires solution of the constraint forces and
moments, which does not play any role in the motion of a system. Hence, in motion
studies extra calculations are required. To avoid such extra calculations, there are
formulations proposed in the literature where equations of motion in the EL form, are
obtained from the NE equations. Huston and Passerello (1974) were first to introduce
computer oriented method to reduce the dimension of the unconstrained NE equations by
eliminating the constraint forces. Later, Kim and Vanderploeg (1986) derived the
equations of motion in terms of relative joint coordinates form Cartesian coordinates
through the use of velocity transformation matrix. Velocity transformation matrix relates
linear and angular velocity of links with joint velocities. It is worth noting that the vector
of constraint forces and moments is orthogonal to the columns of velocity transformation
matrix. More precisely, the null space of the transpose of velocity transformation matrix
20
is orthogonal complement of the column space of velocity transformation matrix. Hence,
velocity transformation matrix is also referred to as orthogonal complement matrix. The
words ‘orthogonal complement’ was first coined by Hemami and Weimer (1981) for the
modeling of nonholonomic systems. Orthogonal complement is not unique; in some
approaches it was obtained numerically using singular value decomposition or Eigen
value problem (Wehage and Haug, 1982; Kamman and Huston, 1984, Mani et al., 1985),
which is computationally inefficient.
Alternatively, Angeles and Lee (1988) presented a methodology where they derived an
orthogonal complement naturally from the velocity constraints. Hence, the name Natural
Orthogonal Complement (NOC) matrix is attached to their methodology. The NOC
matrix, when combined with the uncoupled NE equations of motion, leads to the
minimal-order constrained dynamic equations of motion by eliminating the constraint
forces. This facilitates the representation of the equations of motion in Kane’s form that is
suitable for recursive computation in inverse dynamics or in the EL form that is suitable
for forward dynamics and integration. Later, Angeles and Ma (1988), Cyril (1988),
Angeles et al. (1989), and Saha and Angeles (1991) showed the effectiveness of the use
of NOC matrix while applied to systems with holonomic and nonholonomic constraints.
Subsequently, Saha (1997, 1999) presented the decoupled form of the NOC for the serial
chain systems. The two resulting block matrices, namely, an upper block triangular and a
block diagonal matrices, are referred to as the Decoupled NOC (DeNOC) matrices. In
contrast to NOC, the DeNOC matrices allow one to recursively obtain the analytical
expressions of the vectors and matrices appearing in the equations of motion. This in turn
helps to analytically decompose the Generalized Inertia Matrix (GIM) of the system at
hand, allowing one to obtain a recursive algorithm for forward dynamics. The DeNOC
based formulation was later employed for analysis of closed-chain systems (Saha and
21
Schiehlen, 2001; Khan et al, 2005; and Chaudhary and Saha, 2007) and flexible
manipulators (Mohan and Saha, 2007). Blajer et al. (1994) also presented an orthogonal
complement based formulation for constrained multibody systems.
2.3.3 Other formulations
Several other methods of dynamic formulations were also proposed in the literature. For
example, Khatib (1987) presented the operational-space formulation, Park et al. (1995)
presented robot dynamics using a Lie group formulation, while Stokes and Brockett
(1996) derived the equations of the motion of a kinematic chain using concepts associated
with the special Euclidean group. McPhee (1996) showed how to use linear graph theory
in multibody system dynamics. Cameron and Book (1997) described a technique based
on Boltzmann-Hamel equations to derive dynamic equations of motion for serial-chain
systems.
2.3.4 Open vs. closed chains
It is worth noting that the relative joint coordinates are independent in open-chain
systems. As a result, a large number of unconstrained NE equations of motion can easily
be converted into a reduced form of constrained equations using the velocity
transformation matrix. On the other hand, the relative joint coordinates are not
independent in the case of closed-chain system as they have to satisfy the loop closure
constraints. In order to solve such a problem, methodology based on cut-joints can be
used where the closed kinematic loops are opened by cutting at appropriate joints and
incorporating unknown Lagrange multipliers, ’s, at the cut joints as shown by Nikravesh
and Gim (1993). Recently, Chaudhry and Saha (2009) proposed a methodology to obtain
driving and constraint forces in a closed-chain system using a two-level recursion. They
also used cut-joint method but wrote the dynamic equations of motion using the DeNOC
matrices for the system.
22
As forward dynamics and simulation are concerned, one generally uses Differential
Algebraic Equations (DAEs) for the closed-loop system instead of Ordinary Differential
Equations (ODEs) as in the case of an open-chain system. Typically, three different
approaches, namely, direct integration method, the constraint stabilization method
(Baumgarte, 1972; Yu and Chen, 2000), and the generalized coordinate partitioning
method (Wehage and Haug, 1982; Yen and Petzold, 1998), are commonly used for the
solution of the DAEs.
2.3.5 Dynamics of legged robots
In contrast to industrial robots, legged robots are system with time varying topology, as
their feet-contacts vary during the motion cycle. Several methods of dynamic formulation
for different legged robots were proposed by Freeman and Orin (1991), Shih et al. (1993),
Perrin et al. (1997), McMillan and Orin (1998), Ouezdou et al. (1998), Berkemeier
(1998), Hu et al. (2005), Vukobratovic et al. (2007) and others. These methods for
formulating the dynamics of legged robot can be divided into two categories. In the first
category contact is defined using a hard constrained model. Doing so increases the
number of constraint forces in the system. The number is further increased with increase
in the number of feet in a legged robot. This results into variable closed-open type of
system for different combinations of feet-ground interactions. As a result, in this approach
a robot has different sets of equations of motion for different configurations of movement,
e.g., single support phase, double support phase, flight phase, etc. This is referred to as
configuration-dependent approach. In the second approach, a legged robot is modeled as a
floating- or mobile-base tree-type robotic system where foot-ground interactions are
modeled as external forces and moments. This is referred to as the configuration-
independent approach. The latter approach is generally preferred as it allows for a single
set of dynamic equations of motion for the legged robots irrespective of their different
23
configurations. Under this approach, as mentioned earlier, foot-ground interactions are
modeled as contacts, where reactions on feet can be computed by using analytical method
(Baraff, 1994; Stewart and Trinkle, 2000; Lloyd, 2005), impulse based approach (Mirtich
and Canny, 1995), or penalty based method (Gerritsen et al., 1995; Nigg and Herzog,
1999). In penalty based approach the vertical reactions are approximated by using visco-
elastic (spring-damper) model, whereas the horizontal reactions are approximated by
using Coulomb or viscous friction. Variety of walking and running surfaces can be
simulated by varying the parameters of the spring-damper and co-efficient of friction. In
this thesis, configuration independent approach is preferred even though both the
approaches are showed for the legged robots.
2.4 Robot Dynamics Algorithms
As discussed in Section 1.3, analysis of robotic systems involves problems of inverse and
forward dynamics. Inverse dynamics problem attempts to find the joint torques and forces
for given joint motions, which are known for a given set of end-effector motion using
inverse kinematic solution as indicated in Fig. 2.5. Forward dynamics on the other hand
attempts to find the joint motions from the knowledge of the external joint torques and
forces. These joint motions are used to obtain the end-effector configurations using
forward kinematics as shown in Fig. 2.5. Inverse dynamics problem helps in control and
Fig. 2.5 Inverse and forward dynamics
Inverse
kinematics
1
2
Inverse
Dynamics
Forward
Dynamics
pe, Qe
Generalized forces
( 1, 2) End-effector motions
(ae, Qe)
Forward
kinematics
Joint motions
q (q1, q2),
q 1
q 2
,q q
24
design of a robot, while the forward dynamics enables simulation studies to obtain the
configuration of the system at hand, and so helps in evaluation of a new design without
actually building the physical robot.
2.4.1 Model-based control
With the advent of high speed processors, the dynamic model-based feedforward and
computed-torque control schemes have shown better motion control performance of a
robotic system than the conventional PID controller (Lewis et al., 2004; and Kelly et al.,
2005). Figure 2.6 shows the application of inverse and forward dynamics algorithms to
feedforward and computed-torque control schemes. In feedforward control scheme, as
shown in Fig. 2.6(a), the joint torques computed by using the dynamic model of the robot
are fed forward to the controller, while linear servo feedbacks take care of any error in the
(a) Feedforward control
(b) Computed torque control
Fig. 2.6 Model-based control laws
Dynamic
Model
Position gain
q
q
dq
dq
dq ID
Velocity gain
p
v
Inverse dynamics
Actual
motion
Forward dynamics
(Simulation)
Desired
motion
Robotic
Manipulator q
Dynamic
Model
Position gain
qd
qd
qd
Velocity gain
pq
vq
Desired
motion
q
q
Robotic
Manipulator
Inverse dynamics
Actual
motion
Forward dynamics
(Simulation)
q
25
trajectory to be followed. Selection of control gains is not very straightforward in the case
of feedforward control and one may use the design methodology proposed by Kelly et al.
(2005) to find the gains. On the other hand, computed-torque control showed in Fig.
2.6(b) works on the principle of the feedback linearization (Craig, 2006). In this control
scheme, robot dynamic model is used along with linear servo feedback to calculate the
driving torque. As the system reduces to a linear one, controlled with a simple servo law,
setting of control gains is much simpler and independent of the system parameters.
Estimating the correct dynamic model and its real-time computation are the two major
challenges in any model-based control scheme. Even when the dynamic model of the
robot is not very accurate, computed-torque scheme eliminates some of the nonlinearities
due to robot’s inertia, and it is easy to remove the remaining nonlinearity using the
associated PID controller.
It is evident from the above two schemes that inverse dynamics is very essential for
computation of control input. In the absence of real robot, forward dynamics followed by
numerical integration (i.e., simulation) will allow an analyst to study the actual working
of the system. Accordingly, design modification in the robot can be made at design stage
itself. Further, real-time simulation during actual working helps one in taking any
preventive control measures. Hence, real-time computation of the robot’s inverse and
forward dynamics is very important. It is more crucial in the case of legged robot due to
complex nature of dynamics involved and presence of intermittent contact. Therefore
efficient computation of the robot dynamics should be of prime importance.
2.4.2 Recursive algorithms
The formalisms of multibody dynamics, as described by Schiehlen (1990), can be divided
into two, a) symbolical formalism and b) numerical formalism. In symbolical formalism,
the equations of motion are obtained symbolically first, before using them for solving
26
inverse or forward dynamics problems. However, the use of symbolical formalism is
limited to smaller systems. In numerical formalism, the inverse and forward problems are
solved at each time instant numerically. It may be noted that from numerical point of
view recursive formulation is found to be the most efficient. With the advent of digital
computers, various recursive formulations for dynamic analysis of robotic systems have
emerged. Recursive formulations in dynamics are attractive due to simplicity and
computational uniformity. This helps in achieving real-time computations and
consequently helps in model-based control.
2.4.3 Inverse dynamics
Study of dynamics of multibody systems is a classical problem, but it was limited to
analytical results for a system with small number of links until the evolution of high
speed computers. Uicker (1965) and then Kahn and Roth (1971) were first to develop a
method based on the Euler-Lagrange equations to predict dynamic behavior of a system
consisting of rigid bodies. Thereafter, several recursive algorithms for inverse dynamics
were proposed in the literature. Recursive Newton-Euler Algorithm (RNEA) proposed by
Luh et al. (1980) is one of the popular algorithms for inverse dynamics. Several other
algorithms were also proposed by Walker and Orin (1982), Kane and Levision (1983),
Khalil et al. (1986), Featherstone (1987), Cyril (1988), Angles at el. (1989), Balafoutius
and Patel (1991), Li and Sankar (1992), and Saha (1999). These algorithms were based on
different methodologies but their main objective was the efficient recursive
implementation. Typically, the computational complexity of a recursive inverse dynamics
algorithm is of Order (n), where n is the number of joint variables in the system.
Recently, Fang and Pollard (2003) presented an efficient algorithm to obtain partial
derivatives of inverse dynamics problem with respect to design parameters.
27
2.4.4 Forward dynamics
Forward dynamics problem require solution of nonlinear differential equations arising out
of the equations of motion. An important step in forward dynamics is to compute the joint
accelerations, which require inversion of the Generalized Inertia Matrix (GIM), i.e.,
1q I , where q is the vector of joint accelerations, I is the GIM, and is the vector
of generalized forces containing terms due to Coriolis, centrifugal, gravity, and external
forces and moments. Forward dynamics algorithms can be divided into explicit and
implicit inversion of the GIM. In explicit inversion of the GIM, it is inverted numerically
using Gaussian elimination or Cholesky decomposition (Strang, 1998). This method of
inversion commonly leads to O(n3) algorithm. Walker and Orin (1982) proposed one such
algorithm after introducing the concept of composite body. The algorithm is also referred
to as Composite Rigid Body Algorithm (CRBA). Later, improved versions of the said
algorithm were proposed by Featherstone (1987), Balafoutis and Patel (1991), Lilly and
Orin (1991), Lilly (1993), McMillan and Orin (1995) and others. On the contrary, implicit
inversion obtains joint acceleration analytically without actually inverting the GIM.
Implicit inversion is complex but leads to O(n) algorithms. In literature (Featherstone,
2005) these explicit and implicit methods of inversion are also referred to as the “Inertia
Matrix Method” and the “Propagation Method”, respectively.
2.4.4.1 Implicit inversion
Implicit inversion method is further divided into two categories. In the first category (type
I) (Featherstone, 1983; Bae and Haug, 1987), one starts with the calculating unknowns,
i.e., joint acceleration and joint constraint forces, locally at link-level and then transfers
those to adjacent links till a link is obtained where dynamics can be solved locally.
Adjacent links are then solved. In the second category (type-II) (Saha, 1997), the GIM is
factorized and then solved for the joint accelerations using backward and forward
28
substitutions. Both the approaches are analogous. However, the latter starts taking into
account the global picture of the whole system while the former starts locally at the link
level. Several such algorithms were proposed in the literature for serial manipulators.
Vereshchagin (1975) was first to propose a recursive algorithm for forward dynamics.
Later, Armstrong (1979) presented a recursive algorithm for a serial system with 3-
degree-of-freedom spherical joints. Featherstone (1983) introduced recursive algorithm
based on the concept of articulated-body inertia from the NE equations of motion of a
free-body interacting with its neighboring bodies, whereas Bae and Haug (1987) used
variational approach based on the principle of virtual work. In both the approaches,
recursion was obtained from the recursive relationships of velocities and accelerations
between the neighboring bodies. Later, Brandl et al. (1988), and McMillan and Orin
(1995) presented efficient implementation of the Featherstone’s articulated body
algorithm. Rodriguez (1987) presented a complex algorithm based on Kalman filtering
and smoothing theory. Soon after, they (Rodriguez et al., 1991, 1992) introduced the
concept of spatial operator algebra for recursive forward dynamics. Rosenthal (1990) and
Anderson (1991) also presented a recursive formulation based on the use of Kane’s
equations of motion. Saha (1997) proposed recursive formulation for the serial-chain
systems based on linear algebra theories and the DeNOC matrices. Several other
algorithms were also proposed in the literature by Stejskal and Valasek (1996), Ascher et
al. (1997), Anderson and Critchley (2003), Lee and Chirikjian (2005), and Mohan and
Saha (2007).
Stelzle el al. (1996) compared different algorithms and showed that for n>7, an O(n)
forward dynamics algorithm is more efficient than an O(n3) algorithm, with proper
selection of reference point and reference frame. Number of bodies in many robotic
applications such as legged vehicle, humanoid, etc. is much more than seven. Hence, the
29
use of O(n) recursive algorithm is certainly beneficial for large robotic systems.
Moreover, an O(n) algorithm is also reported to be numerically more stable than an O(n3)
due to smooth acceleration plots as shown by Ascher et al.(1997) and Mohan and Saha
(2007). As a result numerical integrations are much faster in O(n) algorithms which were
also reported by Ascher et al. (1997).
2.4.4.2 Other forward dynamics algorithms
Other than explicit and implicit inversion of the GIM in ODE formulation, there is a third
approach shown by Nikravesh (1988), Baraff (1996), Shabana (2001), and others, in
which the equations of motion of individual bodies are clubbed together with kinematic
constraint equations. This leads to the well-known DAE formulation which is more
suitable to closed-chain systems. There are also forward dynamics algorithms that use
parallel computations, e.g., those proposed by Bae et al. (1988), Fijany et al. (1995),
Featherstone (1999), Anderson and Duan (2000), Yamane and Nakamura (2002), and
Critchley and Anderson (2004).
2.5 Concluding Remarks
Rapid development in the field of robotics has given birth to complex robotic systems.
These robotic systems are very sophisticated and require intricate control. Hence, it is
very important to predict their dynamic behavior at design stage itself. This necessitates
efficient computational framework, which can be very useful in design, analysis,
simulation, trajectory planning, and control of robotic systems.
These modern day robotic systems contain multiple-DOF joints such, e.g., a spherical
joint in contrast to only one-DOF joints as in the case of industrial robots. One approach
to model a spherical joint is to represent it by using Euler angles. Modeling of a spherical
joint can also be done by using three intersecting revolute joint axes that can be identified
30
with DH parameters. It was revealed from the literature that so far no formal way of
describing the Euler angles by using intersecting revolute joints, whose axes are identified
with DH parameters, is reported. An attempt is made here to correlate them by
introducing a concept of Euler-Angle-Joints (EAJs). The concept is later adopted for a
unified representation of multiple-DOF joints and to develop efficient recursive
algorithms.
The Newton-Euler (NE) equations of motion are popular for dynamic modeling due their
simplicity, but, they do not give the minimal set as compared to Euler-Lagrange equations
of motion. The velocity transformation matrix is used for systematic reduction of
dimension of the unconstrained NE equations of motion. The DeNOC matrices are one
such decoupled form of the velocity transformation matrix that gives the minimal set of
equations of motion. The DeNOC-based methodology for serial systems showed several
advantages, viz., 1) Analytical expressions for the elements of the vectors and matrices in
the dynamic equations of motion (Saha, 1999a); 2) Analytical decomposition of the GIM
(Saha, 1997); 3) Analytical inversion of the inertia matrix which gives deeper insight into
the associated dynamics (Saha, 1999b); 4) Uniform development of recursive inverse and
forward dynamics algorithms; and 5) Extendibility to closed-chain systems (Saha and
Schiehlen, 2001). Hence, it is used in this research work for the dynamic formulation of
robotic systems including legged robots. In this thesis, the DeNOC based formulation for
serial-chain systems proposed by Saha (1999) is extended to dynamic modeling and
analysis of more complex tree-type robotic systems consisting of multiple-DOF joints
introducing the concept of kinematic modules. Each kinematic module consists of serially
connected rigid links. In comparison with the work by Saha (1999), where link-to-link
velocity transformation was used to derive the DeNOC matrices, in this work, general
module-to-module velocity transformation is obtained, instead, for the derivation of the
31
DeNOC matrices of a tree-type system. This approach generalizes the concept of link-to-
link transformation, and the work done by Saha (1999) turns out to be a special case of
the proposed methodology.
2.6 Research Objectives
Based on the literature survey, the objectives of the present research are listed below:
Development of Euler-Angle-Joints (EAJs) to represent the kinematic behavior of
a spherical joint and unification with other multiple-DOF joints.
Kinematic and dynamic modeling of a tree-type robotic system using the concept
of kinematic modules and derivation of the generic form of the Decoupled Natural
Orthogonal Complement (DeNOC) matrices.
Development of recursive algorithms for analyses of fixed-base and floating-base
robotic systems.
To investigate model-based control of the robotic systems using the proposed
recursive algorithms
2.7 Summary
Development in the field of robotic systems has been surveyed in Section 2.1. Many
complex robotic systems have evolved and their control is difficult due to variable
topology, high joint accelerations and dynamic instability. Consequently, the dynamics
plays a vital role in their simulation, control and design. Different rotation representations
have been surveyed in Section 2.2. It is found that there exist no correlation between DH
parameters and Euler angles in the literature. Considering a robot as a multibody system,
consisting of a set of rigidly connected links connected by multiple-DOF joints, literature
on formalism of dynamic modelling and recursive dynamics have been investigated. The
32
Decoupled Natural Orthogonal Complement (DeNOC) matrices based methodology has
emerged as a unified tool for recursive inverse and forward dynamics. The use of DeNOC
based methodology is not much explored for modelling and analysis of the tree-type
robotic system consisting of multiple-DOF joints.
33
34
Chapter 3
EULER-ANGLE-JOINTS (EAJs)
As frequently noted in literature on robotics (Sugihara et al., 2002; Kurazume et al., 2003;
Vukobratovic et al., 2007; and Kwon and Park, 2009) and mechanism (Duffy, 1978; and
Chaudhary and Saha, 2007) a higher Degrees-of-Freedom (DOF) joint, say, a universal, a
cylindrical or a spherical joint, can be represented using a combination of several
coincident 1-DOF joints. For example, a universal joint also known as Hooke’s joint is a
combination of two revolute joints, the axes of which intersect at a point, whereas a
cylindrical joint is a combination of a revolute joint and a prismatic joint. Similarly, the
kinematic behavior of a spherical joint may be simulated by the combination of three
revolute joints whose axes intersect at a point. The joint axes can be represented using the
popular Denavit and Hartenberg (DH) parameters (Denavit and Hartenberg, 1955). For
the spherical joints, an alternative approach using the Euler angles can be adopted, as
there are three variables. For spatial rotations one may also use other minimal set
representations like Bryant (or Cardan) angles, Rodriguez parameters, etc. or non-
minimal set representation like Euler parameters, quaternion, etc. The non minimal sets
are not considered here due the fact that the dynamic models obtained in this thesis are
desired in minimal sets, the minimal sets, other than Euler/Bryant angles, are discarded as
they do not have direct correlation with the axis-wise rotations. It is worth mentioning
that the fundamental difference between the Euler and Bryant angles lies in a fact that the
former represents a sequence of rotations about the same axis separated with a rotation
about a different axis, denoted as – – , whereas the latter represents the sequence of
35
rotations about three different axes, denoted as – – . They are also commonly referred
to as symmetric and asymmetric sets of Euler angles in the literature. For convenience,
the name Euler angles in this thesis generally refers to both Euler and Bryant angles,
hereafter.
Euler Angles are defined as rotations about three orthogonal axes, which may be
identified using DH parameters, however, the only difficulty is that, under the DH
parameter scheme the variable rotations always occur about Z axis, whereas the Euler
Angles are defined by rotation about all three axes, i.e., X, Y and Z. In this chapter, a
method has been found out to correlate these rotations so that one can take the advantage
of DH notations in defining the Euler angles to simulate the kinematic behavior of
spherical joints. Such correlations are termed as Euler angle joints (EAJs). The EAJs have
the specific advantage, that they make a unified representation of multiple-DOF joints
possible and thus provide computational efficiency in formulating dynamics algorithms as
highlighted in Sections 4.2.1 and 6.3, respectively. Such advantage is not available by
following the Euler Angle representation.
3.1 Euler Angles
The definition of Euler angles is first revisited in this chapter before the Euler-Angle-
Joints are introduced. According to Euler's rotation theorem (Shabana, 2001), any three-
dimensional spatial rotation can be described using three sequential angles of rotations
about three independent axes. These angles of rotation are called Euler angles. Figure
3.1(a-c) shows the sequence of rotation, a) by an angle 1 about ZM axis, b) by an angle 2
about rotated YM axis, and c) by an angle 3 about current ZM axis. The OR-XRYRZR and
OM-XMYMZM denote the reference frame and moving frame, respectively. The three
angles 1, 2, and 3 are called the ZYZ Euler angles. In a similar way, one can define
36
twelve such sets of Euler/Bryant angles depending on the sequence of axes about which
the rotations are carried out. They are ZYZ, ZXZ, ZXY, ZYX, YXY, YZY, YXZ, YZX,
XYX, XZX, XZY, and XYZ. Out of these twelve Euler angle sets, the ZYZ scheme is
widely used in the rotation representation of a robotic system, whereas the ZXZ scheme is
more popular in formulating problem in multibody dynamics.
(a) (b) (c)
Fig. 3.1 ZYZ Euler angles
ZM, ZR
XR
YR
XM
YM
ZR
YR
ZM
YM
XM
ZR
YR
XR
ZM
YM
XM
1 1
2 2
1 3
XROROM
If ZYZ scheme of Euler angles is used, then, the elementary rotation matrices Q1, Q2, and
Q3 are given by
1 1 2 2 3 3
1 1 1 2 3 3 3
2 2
0 0
0 , 0 1 0 , and
0 0 1 0 0 0
C S C S C S
S C S C
S C
Q Q Q
0
0
1
1 2
1 2
2
S
S
C
(3.1)
The overall rotation matrix between the frames OR-XRYRZR and OM-XMYMZM can then
be obtained by multiplying the elementary rotation matrices, i.e., Q Q1 Q2 Q3. The
result is as follows:
1 2 3 1 3 1 2 3 1 3
1 2 3 1 3 1 2 3 1 3
2 3 2 3
( )ZYZ
C C C S S C C S S C C
S C C C S S C S C C S
S C S S
Q Q (3.2)
In a similar fashion, overall rotation matrices for all other Euler angle sets may be
obtained as shown in Table 3.1.
37
Table 3.1 Rotation matrices using Euler Angles
Euler
Angle
Scheme
Rotation matrix Euler
Angle
Scheme
Rotation matrix
ZYZ 1 2 3 1 3 1 2 3 1 3
1 2 3 1 3 1 2 3 1 3
2 3 2 3
QZYZ
C C C S S C C S S C
S C C C S S C S C C
S C S S
1
1
C S
S S
C
2
2
2
1 2 3 1 3 1 2 3 1 3 1 2
1 2 3 1 3 1 2 3 1 3 1 2
2 3 2 3 2
QZXZ
S C S C C S C C C S S S
C C S S C C C C S S C S
S S S C C
ZXZ
ZYX 1 2 1 2 3 1 3 1 2 3
1 2 1 2 3 1 3 1 2 3
2 2 3
ZYX
C C C S S S C C S C
S C S S S C C S S C
S C S C
1
1
2
S
C
C
3
3
3
S
S
1 2 3 1 3 1 2 1 2 3 1 3
1 2 3 1 3 1 2 1 2 3 1 3
2 3 2 2 3
QZXY
S S S C C S C S S C C S
C S S S C C C C S C S S
C S S C C
Q
ZXY
XYX 2 2 3 2
1 2 1 2 3 1 3 1 2 3
1 2 1 2 3 1 3 1 2 3 1
XYX
C S S S
S S S C S C C S C C C
C S C C S S C C C C S
3
1 3
3
C
S
S
2 2 3 2 3
1 2 1 2 3 1 3 1 2 3 1 3
1 2 1 2 3 1 3 1 2 3 1 3
XZX
C S C S S
C S C C C S S C C S S C
S S S C C C S S C S C C
Q
XZX
Q
XYZ 2 3 2 3
1 2 3 1 3 1 2 3 1 3
1 2 3 1 3 1 2 3 1 3
XYZ
C C C S S
S S C C S S S S C C S
C S C S S C S S S C C
2
1 2
1 2
C
C
2 3 2 2 3
1 2 3 1 3 1 2 1 2 3 1 3
1 2 3 1 3 1 2 1 2 3 1 3
XZY
C C S C S
C S C S S C C C S S S C
S S C C S S C S S S C C
Q
XZY
Q
YXY 1 2 3 1 3 1 2 1 2 3
2 3 2 2
1 2 3 1 3 1 2 1 2 3
YXY
S C S C C S S S C C
S S C S C
C C S S C C S C C C
1 3
3
1 2 3 1 3 1 2 1 2 3 1 3
2 3 2 2 3
1 2 3 1 3 1 2 1 2 3 1 3
YZY
C C C S S C S C C S S C
S C C S S
S C C C S S S S C S C C
3
1
C S
S S
Q
YZY
Q
YXZ 1 2 3 1 3 1 2 3 1 3
2 3 2 3
1 2 3 1 3 1 2 3 1 3
YXZ
S S S C C S S C C S
C S C C
C S S S C C S C S S
1
1
S C
S
C C
2
2
2
1 2 1 2 3 1 3 1 2 3 1 3
2 2 3 2 3
1 2 1 2 3 1 3 1 2 3 1 3
YZX
C C C S C S S C S S S C
S C C C S
S C S S C C S S S S C C
Q
YZX
Q
3.2 Denavit-Hartenberg (DH) Parameters
The DH parameters were originally proposed by Denavit and Hartenberg in 1955, and
widely used in robotics for the representation of the configuration of a link with respect to
its previous one connected by a one degree-of-freedom (DOF) revolute or prismatic joint.
Later, Khalil and Kleinfinger (1986) showed that the DH parameters form a powerful tool
for serial robots but lead to ambiguity in the case of closed-loop and tree-type systems. In
order to do away with the ambiguity they presented a scheme called Modified DH (MDH)
parameters by retaining all the benefits of the original definition. The use of MDH
parameters can be found in the work of Craig (2006).
38
In this section, the MDH notation, as proposed by Khalil and Kleinfinger (1986) is
presented, and will be used throughout this thesis. For that, a co-ordinate frame is
attached to each link. The frame Ok-XkYkZk, denoted by Fk, is rigidly attached to the kth
link, as shown in Fig. 3.2. The joint k couples link (k-1) and k. The axis Zk represents the
kth
joint axis. Moreover, the origin of Fk, namely, Ok is located at a point where the
common normal to Zk and Zk+1 intersects Zk, whereas the common normal defines the axis
Xk. Furthermore, the axis Yk is such that axes Xk, Yk, and Zk form a right-handed triad,
i.e., the unit vectors parallel to the axes Xk, Yk, and Zk denoted as ik, jk, and kk, satisfy
ik×jk = kk. The co-ordinate frame is referred to as MDH frame or simply DH frame. Note
that the frame attached to the fixed link, i.e., O0-X0Y0Z0, can be chosen arbitrarily and
hence one can choose Z0 coincident with Z1. Once the link frames are established, using
the above scheme, the position and the orientation between any two frames, say, Fk-1 and
Fk, can be specified using four parameters known as MDH or DH parameters. As system
consists of 1-DOF joints only, out of the four DH parameters one varies whereas the other
three are constant. These parameters are now defined as follows:
Fig. 3.2 Frame convention for modified Denavit and Hartenberg (DH) parameters
Ok
Xk
Link k
Joint k+1
Zk-1
kO
bk
ak
k
ak-1,k
Frame, Fk
Zk+1
Zk
Link k-1
Joint k-1
Ok-1
Xk-1
Joint k
k
39
Referring to Fig. 3.2,
Twist angle ( k) is the angle between Zk-1 and Zk about Xk-1
Link length (ak) is the distance from Zk-1 to Zk along Xk-1
Joint offset (bk) is the distance from Xk-1 to Xk along Zk
Joint angle ( k) is the angle between Xk-1 and Xk about Zk
Depending on the type of joints, i.e., revolute or prismatic, k or bk is a variable quantity.
Based on the definition of the above DH parameters, the homogeneous transformation
matrix (Tk) defining the orientation and position of the frame Fk with respect to frame Fk-1
can be obtained as
1, 1
1
k k k kk
T
Q aT
0
0
0 0
0 1
k k
k
S
1, 1
k
k k k kk
k k
a
b S
b C
(3.3)
where the 3×3 orientation matrix Qk is defined as
( ) ( )
1 0 0
0 0
0
k kk X Z k k k
k k
k k
k k k k k
k k k k k
C
C S S C
S C
C S
S C C C S
S S C S C
Q Q Q
(3.4)
In Eq. (3.3), the position vector , measured from the origin Ok-1 of the frame Fk-1 to
the origin Ok of fame Fk (Fig. 3.2), in the frame Fk-1 is given by
1,ak k
(3.5) a
Note that, in Eqs. (3.4) and (3.5), C(•) Cos(•) and S(•) Sin(•).
40
3.3 Euler-Angle-Joints (EAJs)
As discussed in Section 3.2, DH parameters are widely used for representation of links
connected by 1-DOF joints. Many modern day robotic systems, however, consist of
multiple-DOF joints, e.g., universal and spherical. One approach to model such multiple-
DOF joints is to represent them using intersecting 1-DOF revolute joints. Similarly, a
spherical joint can be modeled using three intersecting 1-DOF revolute joints axes of
which are identified with DH parameters. On the contrary, the Euler angles that are
popular in representing any 3-dimensional spatial rotation can be employed to model a
spherical joint as well.
Since the modeling of a spherical joint can be done using either Euler angles or three
intersecting revolute joint defined with DH parameters, an attempt is made here to
correlate them by introducing a concept of Euler-Angle-Joints (EAJs). EAJs are three
intersecting revolute joints but their axes are defined using DH parameters such that they
provide a rotation equivalent to the one described by a particular set of Euler angles. Such
correlation has never been attempted earlier, at least not found in the existing literature.
Hence, this forms one of the important contributions of this thesis. The concept is later
adopted for a unified representation of revolute joint based rotations i.e., revolute,
universal and spherical, and used to develop an efficient fully O(n) recursive algorithm. A
fully recursive algorithm is not possible if the representation of a spherical joint is done
using the definition of Euler angles. This is highlighted in Subsection 6.1.2.
3.3.1 DH parameterization of Euler angles
As mentioned earlier, the EAJs are intersecting revolute joints that give Euler angle
rotations. Architecture of an EAJ is shown in Fig. 3.3, where a spherical joint that
connects a moving link #M to a reference link #R. The spherical joint is described by
41
using three intersecting revolute joints, where joint 1 connects real link #R to an
imaginary link #1, whereas joint 2 connects two imaginary links #1 and #2, and joint 3
connects imaginary link #2 with a real link #M. Two coordinate frames OM-XMYMZM and
OR-XRYRZR are rigidly attached to links #M and #R, respectively. If these frames are
denoted as FM and FR, the rotation matrix between these frames can be obtained by using
any of the Euler angle sets defined in Section 3.1. If the ZYZ Euler angle set is used, one
obtains the orientation matrix Q given in Eq. (3.2). Interestingly, the same rotation matrix
is obtained by treating the spherical joint as a combination of three coincident revolute
pairs and by defining their axes using the DH parameters.
Fig. 3.3 A spherical represented by three intersecting revolute joints
ZM
1
2
#1
#2YM
XM
#M #R
3
OM
YR
XR
ZR
OR
However, it is worth reminding that the definitions of DH parameters include 1) constant
rotation about X axis representing twist angle , and 2) variable rotation about Z axis
representing joint angle . As a result, first step towards the development of EAJs, i.e., to
correlate DH parameters with axes of Euler angle rotations, is to represent any Euler
angle rotation with respect to Z or X axis only. Since the variable joint rotation in the DH
parameter definitions is with respect to Z axis only, an Euler angle rotation about X or Y
axis has to be expressed as a rotation about Z axis. This can be done by first orienting Z
axis parallel to X or Y axis through a fixed set of rotations, typically, by 90os, followed by
the actual or variable rotation about the Z axis. The fixed rotations are then reversed.
These will be clear from the following subsection where each elementary rotation about
X, Y and Z axes is expressed as a rotation about Z axis only.
42
3.3.2 Elementary rotations
In order to obtain Euler-Angle-Joints (EAJs) corresponding to a particular Euler Angle
set, it is necessary that every elementary rotation, say, about X and Y axes, is finally be
considered as rotation about Z axis only. The concept is illustrated below:
1) Rotation about Z axis
Figure 3.4 shows the elementary rotation about Z axis. In DH parameter definition, a
rotation is defined about an axis that is identified as Z axis. The rotation matrix defining
the rotation of frame O -X Y Z with respect to frame O-XYZ is denoted as QZ( ) or Q for
brevity.
Fig. 3.4 Rotation about Z axis denoted as QZ( )
X
Y
Z, Z
Y
X
O
2) Rotation about Y axis
An elementary rotation about Y axis is shown in Fig. 3.5(a). As per the DH nomenclature,
a variable rotation has to be about Z axis only. Hence, Z axis of Fig. 3.5(a) has to be first
brought parallel to Y axis before the desired rotation is applied. This can be done by
rotation of the frame O-XYZ about X axis by -90o (clockwise rotation is negative), as
shown in Fig. 3.5(b). The new frame is indicated with O-X1Y1Z1. The rotation is
indicated with QX(-90). The desired rotation by an angle is now given about Z1 axis as
shown in Fig. 3.5(c), where the corresponding rotation is indicated by QZ( ). The new
frame is O-X2Y2Z2. Finally, to take care of the initial rotation about X axis by -90o, an
opposite rotation about X2 axis is applied, which is indicated by QX(90), as shown in Fig.
43
3.5(d). The final frame is O -X Y Z . The resultant of three elementary rotations is the
desired rotation about Y axis, which is given by
(a) (b) QX(-90) (c) QZ( ) (d) QX(90)
Fig. 3.5 Rotation about Y axis
Y X XQ Q Q Q (3.6)
where for brevity, ( ) ( 90) (90), ,Z X X X X Q Q Q QQ Q are used.
3) Rotation about X axis
Similar to the rotation about Y axis, rotation about X axis is equivalent to five elementary
rotations shown in Fig. 3.6. They are
i. Rotation about Z axis by 90o
to reach O-X1Y1Z1 (Fig. 3.6(b)).
ii. Rotation about X1 axis by 90o to reach O-X2Y2Z2 (Fig. 3.6(c)).
iii. Rotation about Z2 axis by to reach O-X3Y3Z3 (Fig. 3.6(d)).
iv. Rotation about X3 axis by -90o
to reach O-X4Y4Z4 (Fig. 3.6(e)).
v. Rotation about Z4 axis by -90o
to reach the final orientation, O-X Y Z (Fig. 3.6(f)).
The above five rotations can be represented as
(a) (b) QZ(90) (c) QX(90) (d) QZ( ) (e) QX(-90) (f) QZ(-90)
Fig. 3.6 Rotation about X axis
X
Y, X1
Z,Z1
Y1
X,Z2
Z,Z1,Y2
Y,X1,X2Y,X1,X2
Z,Z1,Y2Y3,Z4
Y4 X3,X4
X,Z2,Z3,X
Y,X1,X2
Z,Z1,Y2 Y3,Z4Z
X3,X4Y
X,Z2,Z3X,Z2,Z3
Z,Z1,Y2
Y,X1,X2
X3
Y3
X, X
Y
Z Z
Y
O O O O O O
Y1
X, X1
Y, Z1
Z
Y1 X, X1
Y, Z1, Z2
Z
Y2X2
X, X1
Y, Z1,Z2 ,Y
Z
Z
X2,X
X
Y, Y1
Z
Z
X1
Y1
O O O O
44
X Z X X ZQ Q Q Q Q Q (3.7)
(90) (90) ( ) ( 90) ( 90)where , , , , and .Z Z X X Z X X Z ZQ Q Q Q Q Q Q Q Q Q
3.3.3 Composite rotations
Resultant of two elementary rotations, say, first about X and followed by the next about
Y, denoted as a composite rotation XY, can be obtained by using the elementary rotation
representations derived in Subsection 3.3.2. They are shown below:
1) Rotation about X and Y axes
Rotation matrix QXY due to a rotation about X axis followed by a rotation about Y axis
can be shown to be a combination of rotation matrices QX and QY representing the
elementary rotation about X and Y axes, obtained in Eqs. (3.7) and (3.6), respectively,
i.e.,
1 2Q Q Q Q
X Y
Z X XQ Q Q Q Q Q QXY X Y Z X X (3.8)
where 1
Q and 2
Q represent rotation matrices due to the rotations about X and Y axes by
the angles 1 and 2, respectively. Note that in Eq. (3.8), Q Z represents the rotation
matrix due to rotation about the Z axis by -90o. Since DH nomenclature requires all
rotations about Z axis as a variable angle, such a term in the middle will not allow one to
express the axes of rotations for the Euler angles using the DH parameters. A close look
into the underlined terms of Eq. (3.8), i.e., X Z XQQ Q , however reveals that it is equal
(a) QX(-90) (b) QZ(-90) (c) QX(-90) (d) QZ(-90) (e) QX(-90) (f) QZ(-90)
Fig. 3.7 Equivalent transformation
X, Y1
Y
Z, Z1
X1
X,Y1,Z2
Y
Z, Z1
Y2
X1,X2
X,Y1,Z2,Z
Y
Z, Z1,X
X1,X2,Y O OO
Y2
X, X1
Y, Z1
Z
Y1 X, X1,Y2
Y, Z1,Z2
Z, X2
X, X1,Y2, Z
Y, Z1,Z2
Z, X2,X
Y
Y1
O OO
45
to Z XQ Q Q
( 90) ( 90)Q Q Q
Z , as evident from Fig. 3.7. The same can be proven using matrix
representation as well.
Note that for any three sequential rotations of 900 represented by the rotation matrix
, the property ( 90) ( 90) ( 90) ( 90) ( 90) ( 90) ( 90)Q Q Q Q Q Q is valid for
and being rotation about X, Y or Z axes.
Hence, replacing Q Q QX Z X in Eq. (3.8) by Z X ZQ Q Q , one obtains the following:
1 2Q Q Q Q QZ X Z XQ Q Q QXY Z X (3.9)
In Eq. (3.9), even if Q Z appears in the middle, but it is next to 1
Q which represents a
variable rotation about Z axis. Hence, the two consecutive rotations about Z axis is
equivalent to one rotation by ( 1-90)o. As a result, no difficulty is faced in defining the
DH parameters.
It is worth mentioning here that the rotation matrix due to sequence of first rotation
about Y axis and then about X axis can be obtained by using the transpose rule of matrix
multiplication, i.e.,
YXQ
1 2Q Q Q QZ X ZQ Q Q Q Q Q
T
YX XY X Z X (3.10)
represents actually 2
Q QT
1Qwhere
2 because the first joint rotation in composite
rotation is denoted with 1. Moreover, since the new variable 1 is introduced it can also
represent 2 without affecting the composite rotation representation. The same, i.e.,
, can also be verified independently using the expressions given in Eqs. (3.6) and
(3.7), as done for Q in Eq. (3.8).
QYX
XY
46
2) Rotations about Y and Z axes
Rotation about Y axis followed by a rotation about Z axis can be shown to be a
combination of rotations about Y and Z axes obtained in the Subsection 3.3.2. This is
given by
1 2Q Q Q Q Q
Y
Q Q
Z
YZ Y Z X X (3.11)
Similar to in Eq. (3.10), YXQ ZYQ , can be shown to be equal to
1 2Q Q Q Q Q Q
T
ZY YZ X X (3.12)
3) Rotations about Z and X axes
As shown above for XY rotations, XZQ can be obtained as
1 2Q Q Q Q Q
X
Q Q Q Q
Z
XZ X Z Z X X Z
1 2Q Q Q Q Q
(3.13)
Again using the transpose rule, one can show
Q Q QT
ZX XZ Z X X Z (3.14)
3.4 Euler Angles Using Euler-Angle-Joints (EAJs)
In this section, it will be shown how the Euler angle sets can be obtained by using the
concept of Euler-Angle-Joints (EAJs) and the elementary rotations explained in
Subsections 3.3.2 and 3.3.3.
3.4.1 ZYZ-EAJs
The rotation matrix for the ZYZ Euler angles set can be obtained as the combinations of
the rotation representations about Z and the composite rotation about YZ by using the
rotation matrix 1
Q and Eq. (3.11), i.e.,
47
1 2 3Q Q Q Q Q
YZ
X XQ Q Q
Z
ZYZ Z YZ
(3.15)
In Eq. (3.15), Qk for k=1, 2, 3, represents the rotation matrix corresponding to the angles
1 , 2 , and 3 about Z, Y and Z axes, respectively. However, the rotation is always
performed abut Z axis. Hence, k , for k=1, 2, 3, can be interpreted as the variable DH
parameter or the joint angle. Moreover, the rotation about X axis, i.e., Q X , may be
interpreted as the rotations due to the twist angles ’s. Note that, according to the
definition of the DH parameters obtained in Section 3.2, the transformation due to the
twist angle precedes the one due to the joint angle. This is evident from Eq. (3.4).
Therefore, the DH parameters for the ZYZ Euler angles can be extracted from Eq. (3.15)
as
First rotation matrix 1(Q 1Q
1, 1 being an identity matrix) corresponds to the
rotation 1=0 about X axis, followed by a rotation of 1 about Z axis.
The next rotation matrices 2
and Q QX correspond to the rotation of 2=-90o about X
axis, followed by a rotation of 2 about Z axis.
Finally, the rotation matrices 3
andQ QX correspond to a rotation of 3=90o about
X axis followed by a rotation of 3 about Z axis.
The DH parameters thus obtained for the ZYZ Euler-Angle-Joints (EAJs) are shown in
Table 3.2.
Table 3.2 DH parameters for ZYZ EAJs
k ak bk k (JV)
1 0 a1 0 1
2 -90 0 0 2
3 90 0 0 3
JV: Joint variable
48
Now, a spherical joint connecting the moving link #M with the reference link #R can be
represented using the ZYZ EAJs as indicated in Fig. 3.8. Frames FM, i.e., OM-XMYMZM,
and FR, i.e., OR-XRYRZR, are rigidly attached to the links #M and #R, respectively. The
other frames are assigned in such a manner that they satisfy the DH parameters specified
in Table 3.2. These are explained below:
Fig. 3.8 Representation of DH frames for ZYZ EAJs
Z1, ZM
1
2
#1
#2
ZYZ EAJs
Z2, YM
X1, X2, XM
#M #R
3
OM
YR
XR
ZR
OR
For 1=0o, axis Z1 is parallel to ZR and it represents the joint axis of revolute joint 1
connecting the imaginary link #1 to the reference link #R.
For 2=-90o, axis Z2 is orthogonal to Z1 and it represents the joint axis of the revolute
joint 2 connecting the imaginary link #2 to the imaginary link #1. It is worth noting
that the axis Z2 is initially parallel to YR, as the second Euler angle rotation is about Y
axis.
For 3=90o, the third joint axis is orthogonal to Z2 and parallel to ZM. It connects the
link #M to the imaginary link #2. The axis ZM is initially parallel to the axis ZR as
final Euler angle rotation is about Z axis.
The resulting DH frames are shown in Fig. 3.8. With the simultaneous movement of the
three revolute joints, the frame FM attached to #M will then change its orientation with
respect to the frame FR attached to #R. Using the DH parameters in Table 3.2, the rotation
matrices Qk of Eq. (3.4), for k= 1, 2, 3, are obtained as
49
1 1 2 2 3 3
1 1 1 2 3
2 2 3 3
0 0
0 , 0 0 1 , and 0 0 1
0 0 1 0 0
Q Q Q
C S C S C S
S C
S C S C
0
1 2
1 2
2
S
S
(3.16)
where Q1 represents the orientation of Frame F1 with respect to (w.r.t.) FR. Similarly, Q2
and Q3 represent the orientations of F2 w.r.t. F1 and FM w.r.t. F2, respectively. Successive
multiplications of Q1, Q2 and Q3, i.e., QZYZ Q1 Q2 Q3, will then provide the overall
orientation of #M w.r.t. #R. Matrix QZYZ is given by
1 2 3 1 3 1 2 3 1 3
1 2 3 1 3 1 2 3 1 3
2 3 2 3
Q ZYZ
C C C S S C C S S C C
S C C C S S C S C C S
S C S S C
(3.17)
The matrix elements of Q given in Eq. (3.17) are nothing but those appearing in Eq. (3.2)
that was obtained using the ZYZ Euler angle set. This proves that the three intersecting
revolute joints shown in Fig. 3.8 are equivalent to the spherical joint whose rotations are
denoted with ZYZ Euler angles. Hence, the revolute joints in Fig. 3.8 are termed as ZYZ
Euler-Angle-Joints (EAJs). Note that the above derivations could also be done by
combining ZY rotations given by Eq. (3.12), followed by the rotation about Z axis to be
denoted as 3
Q , i.e.,
1 2 3Q Q Q Q Q
ZY
Q Q Q
Z
ZYZ ZY Z X X
(3.18)
where QZYZ in Eq. (3.18) is nothing but the one obtained in Eq. (3.15) or Eq. (3.17). It
may also be proved that is associative in nature provided the sequence of rotations is
maintained. So
Q
Q Q Q Q Q (3.19)
50
3.4.2 ZXZ-EAJs
The rotation matrix for the symmetric ZXZ Euler angles can be obtained as the
combination of rotation about Z and a composite rotation XZ by using the rotation matrix
1Q and Eq. (3.13) as
1 2 3Q Q Q Q Q
XZ
X X ZQ Q Q Q Q
Z
ZXZ Z XZ Z
(3.20)
Once again, in Eq. (3.20), Q X is the rotation matrix corresponding to the twist angle,
and Qk and Q Z correspond to the joint angles. Based on Eq. (3.20), the DH parameters
are shown in Table 3.3.
Like the previous section, one can relate the rotation matrix by using ZXZ Euler angles as
a combination of three intersecting revolute joints. The representations of DH frames,
however, differ from what has been done for ZYZ EAJs. Assignment of the DH frames
for the three intersecting revolute joints representing ZXZ EAJs is shown in Fig. 3.9.
Table 3.3 DH parameter for ZXZ EAJs
k ak bk k (JV)
1 0 a1 0 1 +90
2 90 0 0 2
3 -90 0 0 3-90
JV: Joint variable
The corresponding rotation matrices between F1 and FR, F2 and F1, and FM and F2 are
given below:
Fig. 3.9 Representation of DH frames for ZXZ EAJs
Z1, ZM
X1, X2, YM
1
3
#1
#2
ZXZ EAJs
#M #R
OM2Z2, XM
YR
XR
ZR
OR
51
1 1 2 2 3 3
1 1 1 2 3
2 2 3 3
0 0
0 , 0 0 1 , and 0 0 1
0 0 1 0 0
S C C S S C
C S
S C C S
Q Q Q
0
2
2
2
(3.21)
The overall rotation matrix, QZXZ, between the frames FM and FR is then given by
1 2 3 1 3 1 2 3 1 3 1
1 2 3 1 3 1 2 3 1 3 1
2 3 2 3
Q ZXZ
S C S C C S C C C S S S
C C S S C C C C S S C S
S S S C C
(3.22)
Here too, it can be seen that the orientation matrix QZXZ of Eq. (3.22) is same as that of
the ZXZ Euler angles set given in Table 3.1.
3.4.3 ZXY-EAJs
In the previous subsections, ZYZ and ZXZ are referred to as symmetric Euler angle sets.
In order to show how EAJs evolve for asymmetric Euler angle set, where the third
rotation is not about Z, the ZXY set is considered next. Similar to the previous
subsections rotation matrix for the ZXY Euler angles can be obtain as a combination of
the rotation matrix QZ and a composite rotation matrix QXY as in Eq. (3.9). Hence
1 2Q Q Q Q Q Q Q Q Q
XYZ
3Q Q Q
ZXY Z XY Z X Z X Z X (3.23)
The above equation forms the basis for the definition of the DH parameters for ZXY
EAJs, which are evolved from Eq. (3.23) as follows:
The first two terms 1 1( ) and ZQ 1Q Q correspond to the twist angle 1= 0
o and net
joint angle of ( 1+90o).
Next, three terms 2
, and Q Q QX Z correspond to the twist angle 2= 90o, and the
net joint angle of ( 2-90o), respectively.
52
The terms 3
, and Q Q QX Z correspond to twist angle 3= -90o and the net joint
angle of ( 3-90o), respectively.
Finally, an additional constant rotation matrix Q X remains. This necessitates an
additional set of DH parameters. It is worth mentioning that the system under study
has three joints and 3-DOF. As a result, three sets of DH parameters should be
sufficient for defining its configuration. However while obtaining the DH parameters
for ZXY Euler angle the term Q X is inevitable. It corresponds to a fourth set of DH
parameters, namely, 4=90o, 4=0
o. Presence of a constant rotation matrix Q X is the
result of the final rotation of the Euler angles about Y axis. This is an important
observation.
The DH parameters for ZXY Euler angles are shown in Table 3.4. Based on the DH
parameters obtained in Table 3.4, the ZXY EAJs is represented in Fig. 3.10. The DH
frames for the ZXY EAJs using the DH parameters in Table 3.4 are assigned as follows:
Table 3.4 DH parameters for ZXY EAJs
k ak bk k (JV)
1 0 a1 0 1+90
2 90 0 0 2-90
3 -90 0 0 3-90
4 90 0 0 0 (Constant)
JV: Joint variable
Fig. 3.10 Representation of DH frames for ZXY EAJs
YR
XR
ZR
OR Z2, MX , XM
1
2
3
#1
X1, MZ , YM
Z1, ZMZXY EAJs
#M #R
#2
OM
X2
53
For 1=0o, axis Z1 is parallel to ZR and it represents the joint axis of revolute joint 1
connecting the imaginary link #1 to the reference link #R. Moreover, for the joint
angle ( 1+90o), X1 is perpendicular to XR initially.
For 2=90o, axis Z2 is perpendicular to Z1 and it represents the joint axis of revolute
joint 2 connecting the imaginary link #2 to the imaginary link #1. Once again, X2 is
perpendicular to X1 for initial joint angle of ( 2-90o). It is worth noting that axis Z2 in
initial configuration is parallel to XR as the second Euler angle rotation is about X
axis.
For 3=-90o, the third joint axis is perpendicular to Z2. It is important to note that the
third frame is attached to the moving link #M, however ZM cannot be chosen as the
third joint axis, as X2||ZM, which violates the definition of DH parameters. As a result,
an intermediate frame OM -X MY MZ M was assigned whose Z M axis is perpendicular
to Z2 and X2 both. Axis Z M is parallel to YR in the initial configuration. Both the
frames and FM are attached to the moving link #M and have constant rotation
between them.
MF
Finally, for 4=90o, i.e., corresponding to Q X , the location of frame OM -XMYMZM is
obtained by 90o rotation of the frame OM -X MY MZ M about X M.
Additional constant rotation matrix at the end, i.e., Q X , may be interpreted as the
rotation required to make the DH frame OM -X MY MZ M parallel to the moving frame OM
-XMYMZM in order to obtain the rotation matrix same as ZXY Euler angles. The above
DH parameters are then used to obtain rotation matrices Q1, Q2, Q3 and Q X representing
the rotations between the frames FR and F1, F1 and F2, and F2 and MF , and and FM
respectively, as
MF
54
1 1 2 2 3 3
1 1 1 2 3
2 2 3 3
0 0
0 , 0 0 1 , 0 0 1
0 0 1 0
1 0 0
and 0 0 1
0 1 0
X
S C S C S C
C S
C S C S
Q Q Q
Q
0
,
0 (3.24)
The overall rotation matrix between FR and FM is obtained from the above successive
frame rotations as
1 2 3 1 3 1 2 1 2 3 1 3
1 2 3 1 2 3 1 3 1 2 1 2 3 1 3
2 3 2 2 3
Q Q Q Q QZXY X
S S S C C S C S S C C S
C S S S C C C C S C S S
C S S C C
(3.25)
The matrix expression of QZXY in Eq. (3.25) is same as the one corresponding to ZXY
Euler angles as shown in Table 3.1. Interestingly, it may be concluded that one always
encounters an additional constant rotation matrix Q+X when DH parameterization of the
Euler Angles set with final rotation about Y, e.g., XZY, YXY, etc., is attempted.
3.4.4 XYX-EAJs
The existence of constant rotation matrix, as shown in Eq. (3.25), necessitates the fourth
set of DH parameters while developing the ZXY EAJs, leads to the exploration of how
the EAJs evolve when initial and/or final rotation is given about the X axis. Hence, the
XYX Euler angles are considered next. Rotation matrix for XYX Euler angles is written
as a combination of rotation matrix QX and a composite rotation matrix Q as obtained
in Eqs. (3.7) and (3.10), respectively, i.e.,
YX
1 2
X Y
3
X
XYX X YX Z X X Z X Z X Z XQ Q Q Q Q Q Q Q Q Q Q Q Q Q Q ZQ (3.26)
where the underlined terms X Z XQ Q Q can be replaced by Z X ZQ Q Q , using the
property shown in Fig. 3.7. As a result, Eq. (3.26) is rewritten as
55
1 2XYX Z X Z X Z Z X ZQ Q Q Q Q Q Q Q Q Q Q Q Q3 X ZQ
(3.27)
Simplifying further, the terms 2
Q Q QZ Z may be clubbed to result in the rotation
matrix as 2
Q for a net rotation of 2 about Z axis. Thus is given by QXYX
1 2Q Q Q Q Q Q Q Q QXYX Z X Z X X Z 3
Q Q QX Z
, 1
(3.28)
The DH parameters for the XYX EAJs are then obtained with the help of Eq. (3.28) as
given below:
The first term being an identity matrix) corresponds to the twist angle
0=0o and the joint angle 0=90
o.
(Q 1Q Z Z
The terms 1
, , and X ZQ Q Q are corresponding to twist angle 1= 90o and net joint
angle of ( 1-90o), respectively.
Next, the terms 2
andXQ Q correspond to twist angle 2= -90o and joint angle of 2.
Subsequently, the terms 3
, and X ZQ Q Q correspond to twist angle 3= 90
o and net
joint angle of ( 3+90), respectively.
Finally, the constant terms and X ZQ Q correspond to twist angle 4= -90o and joint
angle of 4=-90o.
It is worth noting here that while constructing XYX EAJs, the constant orientation term
ZQ in the beginning, and X ZQ Q at the end are inevitable. The resulting DH
parameters for the XYX EAJs are given in Table 3.5. This results into two additional
constant set of DH parameters in the beginning and at the end as may be seen in Table
3.5.
56
Like any other Euler angle sets, shown earlier, QXYX can also be obtained by XY and X
rotations, respectively. The resulting XYX EAJs are shown in Fig. 3.11, where the DH
frames assigned are as follows:
Table 3.5 DH parameters for XYX EAJs
k ak bk k (JV)
0 0 0 0 90 (Constant)
1 90 0 b1 1-90
2 -90 0 0 2
3 90 0 0 3+90
4 -90 0 0 -90 (Constant)
JV: Joint variable
Fig. 3.11 Representation of DH frames for XYX EAJs
Z1, MZ , XM
Z2, MX , YM
ZM
3 1
2#2 #1
XYX EAJs
#M #R
OM
X1, X2 RX , YR
R ,Z ZR
OR XR
For the constant terms 0=0o and 0=90
o, i.e., Z1Q , the DH frame O R-X RY RZ R is
obtained from frame OR-XRYRZR by rotating OR-XRYRZR by 90o about ZR. Both the
frames are rigidly attached to the reference link #R.
For 1=90o, axis Z1 is perpendicular to Z R and it represents the joint axis of revolute
joint 1 connecting the imaginary link #1 to the reference link #R. Moreover, for the
joint angle ( 1-90o), X1 is perpendicular to X R initially.
For 2=-90o, axis Z2 is perpendicular to Z1 and it represents the joint axis of revolute
joint 2 connecting the imaginary link #2 to the imaginary link #1. It is worth noting
that axis Z2 in initial configuration is parallel to YR as second Euler angle rotation is
about Y axis.
For 3=90o and the net joint angle of ( 3+90
o), the third joint axis is perpendicular to
Z2. Third frame is attached to the moving link #M, however, ZM is not the obvious
57
choice for the third joint axis as X2||ZM, which violates the definition of the DH
notations. Hence, frame OM -X MY MZ M is assigned such that Z M (Z2 and X2) and
obviously axis Z M is parallel to XR in the initial configuration.
Finally, 4=-90o and 4=-90
o, i.e., the result of constant rotation matrix X ZQ Q , give
constant orientation of frame OM -XMYMZM, with respect to OM -X MY MZ M. Both the
frames are attached to the moving link #M.
Using the DH parameters in Table 3.5, the rotation matrices ZQ , Q1, Q2, Q3, and XZQ
representing rotations between frames FR and RF , RF and F1, F1 and F2, F2 and , and
and FM, respectively, are obtained by using Eq. (3.4) as
MF
F
,
3
3
3
M
1 1 2 2
1 2
1 1 2 2
3 3
3
3 3
0 1 0 0 0
1 0 0 , 0 0 1 , 0 0 1
0 0 1 0 0
0 0 1 0
0 0 1 , 0 0 1
0 1 0 0
Q Q Q
Q Q Q Q
Z
XZ X Z
S C C S
C S S C
S C
C S
(3.29)
The overall rotation matrix between the frames FR and FM is obtained as
1 2 3
2 2 3 2
1 2 1 2 3 1 3 1 2 3 1
1 2 1 2 3 1 3 1 2 3 1
Q Q Q Q Q QXYX Z XZ
C S S S C
S S S C S C C S C C C S
C S C C S S C C C C S S
(3.30)
where QXYX represents the XYX Euler angles. Interestingly enough, EAJs for the Euler
angle sets with first rotation about X, e.g., XYX, XYZ, XZY, require constant orientation
of Q+Z in the beginning, whereas the one with third rotation about X, e.g., XYX, ZYX,
YZX, require constant orientation of Q-XZ at the end.
58
3.4.5 Other-EAJs
Similarly, Euler-Angle-Joints (EAJs) for all twelve Euler angle sets were obtained. Table
3.6 shows the EAJs and their overall rotation matrices Q , for , , = X, Y, Z,
corresponding to all the twelve Euler angles sets. The proposed concept not only
establishes correlation between the DH parameters and Euler angles but also facilitates
the systematic use of the intersecting revolute joints to describe the Euler Angle rotations
even though the configurations of the links are defined using the DH parameters. Such
correlations were never reported in the literature and thus form one of the important
contributions of this thesis.
While developing EAJs from Euler angles it was found that the definition of some of the
EAJs require additional constant set of DH parameters other than the three regular sets
corresponding to three physical revolute joints. As a result, a constant rotation matrix is
required either in the beginning or at the end. Interestingly, the existence of constant
rotation matrix depends on the axis about which the Euler angle is defined. This is
summarized below:
1. EAJs having first rotation about Z or Y axis do not require any fixed rotation
matrix in the beginning.
2. If the first rotation is about X axis, a fixed rotation matrix of Q Z in the
beginning is required to achieve EAJs.
3. The EAJs having third rotation about Z axis do not require any fixed rotation at
the end.
4. If the third rotation is about Y or X axis, it requires a fixed rotation matrix of Q X
or XZQ at the end.
59
Tab
le 3
.6 E
ule
r-A
ng
le-J
oin
ts
E
ule
r
Ang
le
Eu
ler
ang
le r
ota
tio
ns
usi
ng
equ
ival
ent
rota
tio
ns
w.r
.t. Z
an
d X
on
ly
DH
par
amet
ers
Equ
ival
ent
EA
Js
Ro
tati
on
mat
rix
usi
ng
th
e D
H p
aram
eter
s o
f th
e E
AJs
k
k
1
ZY
Z
12
ZYZ
X
11
23
12
31
31
23
13
12
12
31
31
23
13
12
23
23
2
ZY
Z
CC
CS
SC
CS
SC
CS
SC
CC
SS
CS
CC
SS
SC
SS
C
0
1
3Q
QX
2-9
02
39
0
3
2
ZX
Z
12
QZX
ZZ
X
Z
1,
ZM
1
2
#1 #
2
3Z
XQ
11
23
12
31
31
23
13
12
12
31
31
23
13
12
23
23
2
ZX
Z SC
SC
CS
CC
CS
SS
CC
SS
CC
CC
SS
CS
SS
SC
C
0
1+
90
2
90
2
3-9
03-9
0
3
ZX
Y
12
3Q
QZ
XY
ZX
ZX
ZX
1
12
3
12
31
31
21
23
13
12
31
31
21
23
13
23
22
3
QZ
XY
X
SS
SC
CS
CS
SC
CS
CS
SS
CC
CC
SC
SS
CS
SC
C
0
1+
90
29
0
2-9
0
3-9
03-9
0
49
0
0
4
ZY
X
12
Q3
QZ
YX
XZ
XZ
XZ
1
12
3
12
12
31
31
23
13
12
12
31
31
23
13
22
32
3
QZ
YX
XZ
CC
CS
SS
CC
SC
SS
SC
SS
SC
CS
SC
CS
SC
SC
C
0
1
2
-90
2+
90
39
0
3+
90
4-9
0-9
0
ZY
Z E
AJs
Z2,
YM
X1,
X2,
XM
#M
#R
3
OM
YR
XR
ZR O
R
Z
1,
ZM
X1,
X2, Y
M
1 3
#1
#2
ZX
Z E
AJs
#M
#R
OM
YR
XR
ZR O
R
2Z
2,
XM
YR
XR
ZR O
R
Z2,
MX
,X
M
1
2
3
#1
X1,
MZ
,Y
M
Z1,
ZM
Z
XY
EA
Js
#M
#R
#2
OM X
2
X1,
MZ
,X
M
1
3
2
#1
#2
ZY
X E
AJs
Z2,
MX
,Y
M
#R
#M
OM
YR
XR
ZR O
R
Z1,
ZM
X2
60
5
XY
X
12
Q QQ
Q
XY
X
3Q
QZ
XZ
XX
ZX
Z
0
12
3
22
32
3
12
12
31
31
23
13
12
12
31
31
23
13
XY
XZ
XZ
CS
SS
C
SS
SC
SC
CS
CC
CS
CS
CC
SS
CC
CC
SS
0
90
19
0
1-9
0
2-9
02
39
0
3+
90
4-9
0-9
0
6
XZ
X
12
XZ
XZ
XX
3X
ZX
0
12
3
22
32
3
12
12
31
31
23
13
12
12
31
31
23
13
XZ
XZ
XZ
CS
CS
S
CS
CC
CS
SC
CS
SC
SS
SC
CC
SS
CS
CC
0
90
19
0
1
2-9
02
39
0
3
4-9
0-9
0
7
XY
Z
1Q
QX
YZ
ZX
Z2Q
QX
3Q
QX
Z
0
12
3
23
23
2
12
31
31
23
13
12
12
31
31
23
13
12
QX
YZ
Z
CC
CS
S
SS
CC
SS
SS
CC
SC
CS
CS
SC
SS
SC
CC
0
90
19
0
1-9
0
2-9
02-9
0
39
0
3
8
XZ
Y
12
XZ
YZ
XX
Z3
QX
XQ
0
12
3
23
22
3
12
31
31
21
23
13
12
31
31
21
23
13
XZ
YZ
X
CC
SC
S
CS
CS
SC
CC
SS
SC
SS
CC
SS
CS
SS
CC
0
90
19
0
1
2-9
02-9
0
3-9
03
49
0
0
Z1,
MZ
,X
M
Z2,
MX
,Y
M
ZM
XY
X E
AJs
#M
#R
31
2#
2#
1
OM X1,
X2
RX
,Y
R
R,
ZZ
R
OR
XR
X
ZX
EA
Js
X1,
X2,
MX
,Y
M
Z2,
ZM
2
1
3
#2
#1
#M
#R
OM
Z1,
MZ
,X
M
RX
,Y
R
R,
ZZ
R
OR
XR
Z1,
X2,
XM
ZM 3
2
1
#2
#1
XY
Z E
AJs
Z2,
YM
#M
#R
OM
X1
RX
,Y
R
R,
ZZ
R
OR
XR
X1,
MZ
,Y
M
Z2,
ZM
2
3
1 #
1
#2
Z1,
X2,
MX
,X
M
XZ
Y E
AJs
#M
#R
OM
RX
,Y
R
R,
ZZ
R
OR
XR
61
62
QX
9
YX
Y
12
3Q
YX
YX
ZX
XZ
1-9
01+
90
12
3
12
31
31
21
23
1
23
22
3
12
31
31
21
23
13
QY
XY
X
SC
SC
CS
SS
CC
CS
SS
CS
C
CC
SS
CC
SC
CC
SS
3
29
0
2
3-9
03-9
0
49
0
0
10
YZ
Y
12
QYZY
XX
3Q
XQ
QX
1-9
01
12
3
12
31
31
21
23
13
23
22
3
12
31
31
21
23
13
QY
ZY
X
CC
CS
SC
SC
CS
SC
SC
CS
S
SC
CC
SS
SS
CS
CC
2
90
2
3-9
03
49
0
0
11
YX
Z
1Q
YX
ZX
ZX
2Q
XZ
3Q
QZ
12
3
12
31
31
23
13
12
23
23
2
12
31
31
23
13
12
YX
Z
SS
SC
CS
SC
CS
SC
CS
CC
S
CS
SS
CC
SC
SS
CC
1-9
01+
90
2
90
2+
90
3-9
03-9
0
12
YZ
X
12
YZ
XX
XZ
3Q
XX
12
3
12
12
31
31
23
13
22
32
3
12
12
31
31
23
13
QY
ZX
XZ
CC
CS
CS
SC
SS
SC
SC
CC
S
SC
SS
CC
SS
SS
CC
QZ
1-9
01
2
90
2+
90
39
0
3
4-9
0-9
0
YR
XR
ZR O
R
YR
XR
ZR O
R
3
2
1#
1
#2
Z1,
MZ
,Y
M
YX
Y E
AJs
Z2,
MX
,X
M
ZM
#M
#R
OM X
1,
X2
X1,
X2,
MX
,X
M
3
2
1
#1
#2
Z1,
MZ
,Y
M
YZ
Y E
AJs
Z2,
ZM
#M
#R
OM
X1
Z2,
XM
ZM 3
2
1
#2
#1
YX
Z E
AJs
#M
#R
OM
YR
XR
ZR O
R
Z1,
X2,
YM
X1,
MZ
,X
M
Z2,
ZM
2
1
3
#2
#1
YZ
X E
AJs
#M
#R
OM
YR
XR
ZR O
R
Z1,
X2,
MX
,Y
M
Table 3.7 shows the summary of the requirement of constant matrix multiplication in the
beginning or at the end or the both.
Table 3.7 Required constant matrix multiplication/Additional set of DH parameter for the EAJs
(See last column of Table 3.6)
Constant matrix multiplication/Additional set of DH parameter
Not required Required at
the beginning
Required at
the end
Required at both
the ends
EAJs with three
rotations (Euler
angles)
ZYZ
ZXZ
YXZ
XYZ
ZYX
YZX
ZXY
YXY
YZY
XYX
XZX
XZY
Table 3.7 provides an interesting conclusion. The symmetric EAJs ZYZ and ZXZ, and
asymmetric EAJs YXZ are free from the requirement of multiplication of any constant
rotation matrix. More specifically, only three sets of DH parameters are required to define
these EAJs. Hence, one should use ZYZ and ZXZ EAJs if symmetric set is chosen for
representing a three-dimensional rotation. On the other hand, YXZ EAJs is preferred if
asymmetric set is chosen for the rotation representation of a 3-DOF joints.
3.5 Representation of a Spherical Joint in a Robotic System Using EAJs
The spherical joint shown in Fig 3.3 connects the reference link #R with the moving link #M.
In practice, a robotic system may have serial- or tree-type architecture with several multiple-
DOF joints. This calls for a systematic numbering scheme for intersecting revolute joints and
the associated imaginary or physical links. So, the use of Euler-Angle-Joints (EAJs) and the
associated numbering scheme are presented here for the systematic representation of a
spherical joint. For example, Fig. 3.12 shows a link, #(k-1), coupled to its neighboring link,
#k, by a spherical joint, k, which has three rotational DOF. In order to represent the spherical
joint using YXZ EAJs, links #(k-1) and #k are considered to be connected by three
63
orthogonally placed revolute joints, denoted as k1, k2, and k3, connecting two virtual links (#k1
and #k2), each of zero length and mass. The link #k3 is the actual physical link #k, which is
attached to the third revolute joint, i.e., k3. The corresponding frame assignment using the DH
notation is shown in Fig. 3.12.
The YXZ scheme of EAJs is chosen and will be used throughout this thesis because 1) it does
not require any fixed rotation at the beginning or at the end, and 2) unlike ZYZ scheme of
EAJs, it does not lead to a singularity in zero-configuration. Zero-configuration is defined
here as the one where all the joint angles are set to zeros.
Fig. 3.12 Representation of a spherical joint by using YXZ EAJs
2Z ,k Xk
1X ,k Zk
Ok
1Z ,k 2
X ,k Yk
#k (or #k3) #(k-1)
k1
k2
#k1
#k2
k3
Yk-1
Xk-1
Zk-1
Ok-1
3.6 Singularity in EAJs
Any three-parameter description of rotations including the Euler angles suffers from
singularity. Singularity is encountered in EAJs when two joint axes become parallel. This
phenomenon is also known as gimbal lock (Wittenburg, 2008). All symmetric EAJs have
zero-configurations as singular whereas all asymmetric EAJs are singular for 2=90.
Discussion on the singularity of EAJs is beyond of the scope of this thesis, hence, no further
discussion on how to avoid them is provided in this thesis. One may, however, be referred to
Shuster and Oh (1981) and Singla et al. (2004) for the singularity avoidance algorithm. In
reality, most of the physical joints have restricted motion, and hence, areas of gimbal lock
stay outside the domain of the movement of joints. Typically, a spherical joint used in
practice is constrained to move as shown in Fig. 3.13 (a). In such a situation, wise selection
64
of EAJs helps in avoiding the singular configuration. For example, if one uses ZYZ EAJs as
shown in Fig. 3.13(b), singularity is encountered in the zero-configuration. This happens
when axis of joint 1 coincides with that of joint 3. On the contrary, use of YXZ EAJs, as
shown in Fig. 3.13(c), has no singularity corresponding to the zero-configuration. Singularity
occurs when joint 2 is rotated by 90o
about X axis. However, such a configuration is never
encountered due to the constrained movement of the spherical joint and hence singularity is
avoided.
(a) A constrained spherical joint (b) Use of ZYZ EAJs (c) Use of YXZ EAJs
(Singular zero configuration) (Nonsingular zero configuration)
Fig. 3.13 EAJs and singularity
1
Z
X Y2
3
32
Z
X
Y 1
3.7 Multiple-DOF Joints
The concept of EAJs can conveniently be used for the representation of a universal joint by
using the composite rotations as discussed in Subsection 3.3.3. Such EAJs representation will
allow one to treat the velocity transformation relation in a similar way to that of a revolute
joint as given by Eq. (4.11). Thus, the concept of EAJs allows one to treat any rotational
joint, be it 1-, 2- or 3-DOF, in a unified manner. This will be more evident in Chapter 4,
where the kinematics is presented for a system with multiple-DOF joints. Besides, such
relations lead to fully recursive O(n) dynamics algorithms, as highlighted in Section 6.1, and
is not possible with the original definition of the Euler angles. Moreover, it is also shown in
Chapter 6 that by careful treatment of zero lengths and masses, the most efficient algorithms
can be obtained for a tree-type system consisting of multiple-DOF joints.
65
66
3.8 Summary
In this chapter, Euler angles and modified DH parameters are first revisited. The concept of
the Euler-Angle-Joints (EAJs) is then introduced. Euler-angle-joints (EAJs) are essentially
orthogonally intersecting revolute joints so connected by imaginary links with zero lengths
and masses that they represent a particular set of Euler angles. These EAJs are represented
using the well-known DH parameters. Different evolutions of EAJs corresponding to
different rotation sequences are also reported. The proposed EAJs are used in representing
multiple-DOF joints in the robotic systems studied in this thesis.
Chapter 4
KINEMATICS OF TREE-TYPE ROBOTIC SYSTEMS
Kinematic modeling of a tree-type robotic system is presented in this chapter. In order to
obtain kinematic constraints, a tree-type topology is first divided into a set of modules.
The kinematic constraints are then obtained between these modules by introducing the
concepts of module-twist, module-joint-rate, etc. This helps in obtaining the generic form
of the Decoupled Natural Orthogonal Complement (DeNOC) matrices for a tree-type
system with the help of module-to-module velocity transformations. In the present
derivation, link-to-link velocity transformation as presented by Saha (1999) turns out to
be a special case of the module-to-module velocity transformation proposed in this thesis.
4.1 Kinematic Modules
Conventionally a tree-type system is considered to have a set of links or bodies connected
by kinematic pairs as shown in Fig. 4.1(a). However, in this work a more generic
approach is introduced, where the tree-type architecture is considered to have a set of
kinematic modules, which are defined as a set of serially connected links. This is shown
in Fig. 4.1(b), where the kinematic modules are depicted by dotted boundaries. The tree-
type system is first kinematically modularized before its kinematic constraints are
obtained. In order to modularize a tree-type system, a link in a tree-type system is first
identified as its base, for example, link #0 in Fig. 4.1(b), which may be fixed or floating.
This is referred to as module M0. Once the base module is established, the system is then
modularized outward such that each module
67
1. contains serially connected links only;
2. emerges from the last link of its parent module.
The first condition defines a module while the second one defines its connectivity with
the adjoining modules. The resulting modules are indicated with M1, M2, etc. It is worth
noting that any tree-type system can be modularized such that it follows the above two
conditions. For a given tree-type system, however, there may be several module
architectures which obey the above conditions. This is evident from Figs. 4.2(a) and (b)
which represent the two different module architectures of the tree-type system shown in
(a) Conventional (b) Multi-modular
Fig. 4.1 Tree-type architectures
(a) (b) (c)
Fig. 4.2 Different module architectures for the tree-type system in Fig 4.1(a)
Base
A link or
body
0
0
M1
Ms
Base
Mi
M
A kinematic
module
M0
0
#13
#12
#23
#5
#2#1
5
#11
#1
#4
M1
M3
M2
M5
M4 #
3
Base
M4
M1
M3
M5
M2
M0
M0
0
#12
#5
# 2#11
#11
#1
#4
M1
M2
M5
M4
Base
#13
#23 M3
#6 M6
M4
M1
M3
M5
M2
M0
M6
M0
0
#3
#k1 #13
#11
#l1
#1
M1
M3
Base
M1
M2 M3
#12
#22
M2
#2
M0
M0
68
Fig. 4.1(a). Moreover, if we consider each link in the tree-type system as a module then
the resultant module architecture also follows the above two modularization conditions.
As a result, Fig. 4.1(a) turns out to be a special case of the proposed architecture shown in
Fig. 4.1 (b). Figure 4.2(c) shows an arbitrary way of modularization that satisfies only the
first modularization condition, i.e., each module is a serial-chain, but does not satisfy the
second one as modules M2 and M3 do not emanate from the last link of their parent
module M1. Such modularization is not advisable as one has to keep track of the links
wherefrom the modules M2 and M3 emanate, for computing the velocities and
accelerations of links of these modules. The tracking index of parent bodies will cause
additional burden on the computational resources, thereby, slowing down the analysis or
simulation speed.
Referring to Fig. 4.1(b), it is assumed that each module, other than the base, is a child
module (Mi) that emerges from its parent module (M ). Obviously the child module bears
a higher module number than its parent, i.e., i > . The links inside the ith
module Mi are
denoted as #1i, …, #k
i, …, #
i, where the superscript i signifies the module number and
represents the total number of links in the ith
module. Moreover, the joints are denoted as
1i, …, k
i, …,
i, whereas the joint variables associated with joint k
i is denoted as k. As a
result, total number of joint variables in the ith
module, denoted as ni, is given by
1
i
i
k
k
n (4.1)
Total number of modules excluding M0 is denoted as s, whereas total number of links in
the s modules is denoted as . Also, the total number of joint variables in s modules is n.
Next, the kinematic constraints at the velocity level are derived amongst the links of a
module.
69
4.2 Intra-Modular Velocity Constraints
As mentioned in the previous section, module i, for i = 1, …, s, in a tree-type system
contains only serially connected links. Let us consider two serially connected links in the
ith
module, as shown in Fig. 4.3. The kth
link, denoted as #k (or #ki), is connected to the
#(k-1)th
link, i.e., #(k-1)i, by a 1-DOF revolute or prismatic joint k. The velocity
constraints are then written in terms of the twist of these links. The 6-dimensional vector
of twist associated with the angular velocity, k
d linear velocity of the origin of link,
ok, of #k, is defined as
kt he origin of the kth
link is defined using the
Denavit-Hartenberg (DH) parameters described in Section 3.2, and shown in Fig. 4.3 by
point Ok. This is chosen to simplify some of the calculations during dynamic analyses.
Next, the twist of #k, can be written in terms of the twist of #(k-1), as
, an
]T T
, 1 1t A t pk k k k k k
[ T T
k ko .
,t k 1,tk
Fig. 4.3 The kth and (k-1)th links coupled by joint k
(4.2)
In Eq. (4.2), k
1
is the time rate of change of angular or translational displacement of the
kth
joint depending on the type of joint, i.e., revolute or prismatic, respectively. The
matrix
is the 6×6 twist-propagation matrix, and p is the 6-dimensional motion-
propagation vector. They are given by
,A k k k
Ok
ak,k+1
-1)
k
ek
#k
ak-1
#(k
k
link Ok+1
Ok : Origin of the kth
ak-1,k
Ok-1
70
, 1
, 1
, and (
(for
k
k k k
k k
k
1 eA
a 1 1 0
0
e
for revolute)
prismatic)
p
1
] )
(4.3)
where is the 3×3 cross-product tensor associated with vector
, and when operates on any 3-dimensional
Cartesian vector, x, results in a cross-product vector, i.e., , 1k k
, 1k ka
1,( [k ka a, 1
T
k k k k k k ka b S b C
a x nsor , 1k k
. The te a 1
wing representation: has follo
0
0
k k k k
k k
k k k
b C b S
a
a
, 1
0
k k kb C
b S
a 1
(4.4)
In Eq. (4.3), ek is the unit vector along the axis of rotation or translation of the kth
joint.
The notations ‘O’, ‘1’ and ‘0’ in Eq. (4.3) represent null matrix, identity matrix and null
vector of compatible dimensions, respectively. The matrix , 1A k k
and vector , in Eq.
(4.3), have the following physical interpretations:
kp
Matrix transforms the twist or velocities of the #(k-1) to the twist of #k as if
they are rigidly attached and therefore referred to as “twist propagation matrix”,
which has following properties
, 1A k k
1
, 1 1,nd k k k k A A, 1 1, 2 , 2 ,; ; ak k k k k k k kA A A A 1 (4.5)
Vector contributes to the additional motion due to joint k. Hence, it is named as
“joint-motion propagation vector.”
kp
Next, the vectors of generalized twist and the generalized independent joint-rates for the
-coupled links of a serial module are defined as
71
1 1, andt t t t q T
T T T
k
T
k
, where l dt Nq N N N
pk
(4.6)
where are the 6 - and -dimensional vectors, respectively. Substituting Eq. (4.2)
into Eq. (4.6), for k=1, …, , the expression for the generalized twist of a serial module, t,
is obtained as
andt q
(4.7)
In Eq. (4.7), 6 ×6 matrix Nl and 6 × matrix Nd are given by
1
2,1
, 1
,1 , -1
's
, and
's
1 O Op 0
A 1N N
A O0 p
A A 1
l d
k k
the base is floating
the base is fixed
0
0 0
0
, and
(4.8)
The matrices Nl and Nd are referred here as the Decoupled Natural Orthogonal
Complement (DeNOC) matrices of the serial-module of a tree-type system, which are
nothing but those reported by Saha (1997) for a serial robot. Now, the velocity constraints
for the module M0, consisting of the fixed or floating-base #0 only, are derived. The twist
of #0 can be expressed as
0 0 0 if
if
t P q
0 (4.9)
where the 6×6 matrix P0 and the 6-dimensional vector have the following
representations:
0q
0P q
1 o
L (4.10)
72
In Eq. (4.10), , L0 and are the rates of the independent rotation co-ordinates, the
corresponding transformation matrix, and the linear velocity vector, respectively. Vector
contains the time-rates of Euler angles if the Euler angles are used to define the
rotation of the floating-base in the three-dimensional Cartesian space. The dimensions of
L0, and change if the rotation is represented, say, by using Euler parameters. For
planar rotations, the expression greatly simplifies, i.e., L0 and both become scalar
quantities. More specifically, L0 is a scalar one, i.e., 1, whereas scalar is the rotation
about the axis perpendicular to the plane of rotation.
0 0o
0
0
0
0
4.2.1 Presence of multiple-DOF joints
The DeNOC matrices for a serial module obtained in Eq. (4.8) pertain to a system with 1-
DOF joints only. However, a robotic system, e.g., a humanoid or quadruped, may contain
multiple-Degrees-of-Freedom (multiple-DOF) joints, say a universal or a spherical one.
One way of treating multiple-DOF joints is to treat them as a combination of several one-
DOF joints connected by links of zero length and mass as shown by Duffy (1978), and
Chaudhary and Saha (2007). Such consideration, however, increases unnecessary
computations in the kinematic and dynamic algorithms, as zero link lengths and masses
will not yield any non-zero results when operated on the other variable. Therefore
alternatively, Euler angles or Euler parameters are commonly used to represent the three
dimensional rotations due to the presence of, say, a spherical joint. Such representation,
however, do not lead to unified representation of multiple-DOF joints. Moreover, one
cannot avoid the inversion of 3×3 matrices in the recursive forward dynamics algorithm
as pointed in Subsection 6.1.2. On the contrary, Euler-Angle-Joints (EAJs) proposed in
Chapter 3 can be used, as this will avoid the above drawbacks present in the Euler angle
representation. The proposed EAJs can be used for unified representation of a generic
73
multiple-DOF joint with the significant simplification in dynamics algorithms (Shah et
al., 2009). The general expressions of the velocity constraints associated with the links
connected by a multiple-DOF joint, Fig. 4.4, can then be given by
(a) A revolute joint ( k=1) (b) A universal joint ( k=2) (c) A spherical joint ( k=3)
Fig. 4.4 Representation of multiple-DOF joints
#k #(k-1)
k
#k (or #k2 )
k1 k2
#(k-1)
#k1
#k (or #k3 )
k1
k2 k3
#(k-1)
#k1
#k2
1
, -1 ( 1)for 1: t A t p
t t p
j jk
j j j j
k k k k k
k k k k
if 1
if 1
jk kj j
j
1 ( )k
T T
k
(4.11)
where k corresponds to the joint variable associated with the kth
joint, e.g., k=1 for 1-
DOF joint, k=2 for 2-DOF and k=3 for 3-DOF joints. Next, the twists of associated links
and corresponding joint rates are written as
1 ( ), and
k
T T
k k k k kt t t (4.12)
Using Eqs. (4.11) and (4.12), can be written in terms of tk 1tk as
, -1 1t t P k k k k k k
'
kk
s
(4.13)
where the 6 k×6 k-1 matrix and 6 k× k matrix P are represented as , 1k k k
1
1
, 1
, 1
, 1
, and
kk k
k k k
k k k
p 0
p
O O A
P
O O A p
(4.14)
where ‘O’ and ‘0’ stand for the 6×6 null matrix and 6-dimensional null vector,
respectively. Furthermore, A is the 6×6 twist-propagation matrix, and p is the 6-, 1k k jk
74
dimensional motion-propagation vector, as obtained in Eq. (4.3). It is worth mentioning
that the unique form of and can only be attained if the origin is selected as the
reference point. It is evident from Eq. (4.14) that the sizes of block matrices
, 1k k k
, 1k k and
change depending on the number of joint variables k and k-1 associated with kth
and
(k-1)th
joints, respectively. For example, if kth
joint is universal, i.e., k=2, and (k-1)th
joint
is spherical, i.e., k-1=3, then the sizes of matrices
k
, 1k k and are 12×18 and 12×2,
respectively. They are expressed as follows:
k
1
p p
k
1 2
dp 0
Pk
k k
, 1
, 1
anO O
O Ok k, 1
A
A
k k
k k
1, 1 andk k p
(4.15)
Similarly if the kth
joint is revolute, i.e., k=1, and (k-1)th
joint is spherical, i.e., k-1=3, then
the sizes of matrices and re 6×18 and 6×1, respectively. The matrices are
given by
, 1k k
, 1k k
ka
O O kA k P
, 1k k
(4.16)
In case a serial system has only 1-DOF joints then, , 1k k and k k P p
1
2
P
O
1 O
A
O
. As a
result Eq. (4.13) simplifies to Eq. (4.2). This shows that Eq. (4.2) is the special case of
Eq. (4.13). Next, the general expression of the DeNOC matrices for a serial-chain system
with multiple-DOF joints can be obtain, similar to Eq. (4.8), as
2,1
,1 , -1
, andl d
1 O
N
O
1 O
O O
P ON
P
(4.17)
75
where Nl and Nd are the 6n×6n and 6n×n matrices. In contrast to Saha (1997), here a
general form of the DeNOC matrices is proposed for representing a serial-chain system
with multiple-DOF joints.
4.2.2 An illustration: A spatial double pendulum
The concept of DeNOC matrices for a serial-chain system with multiple-DOF joints is
illustrated next using a spatial double pendulum with a spherical and revolute joint,
located at 1 and 2, as shown in Fig. 4.5. The DeNOC matrices for this system can be
obtained using Eq. (4.17) as
1
2
ndP O
NO P
l l
2,1
, a1 O
N 1
2 2nd P p
(4.18)
where the 6×18 matrix , the 18×3 matrix P1, and the 6×1 vector P2 are obtained using
Eq. (4.14) as
2,1
1
1 2
1 2 3
1
2,1 2,1 1 1 1
1 1 1
, a
p 0 0
O O A P p p 0
p p p
(4.19)
in which the 6×6 matrix and the 6-dimensioinal vector are defined in Eq. (4.3). 2,1A
jkp
Fig. 4.5 A spatial double pendulum
# 1
# 2
1
2
76
4.3 Inter-Modular Velocity Constraints
Tree-type robotic systems have more than one kinematic module. Hence, the velocity
constraints between the modules, i.e., at inter-modular level, will be derived in this
section. For this, recursive relationships between any two adjoining modules are
established first. Figure 4.6 shows module Mi and its parent module M (‘ ’ signifies a
parent). For the module Mi, the 6ni-dimensional vector of module-twist, t
i, that has n
i link
twists, and the ni-dimensional vector of module-joint-rate, qi
, having ni joint rates are
defined as
Fig. 4.6 Module Mi and its parent M
i
1
1i
Mi
iM
ki
, ika
1
ki
i
1i
11
and i k i k
iit
t t q
t
(4.20)
A bar (‘ ’) over an entity, in Eq. (4.20), signifies that the quantity is related to a module
and the superscript, i, outside the bracket identifies the module. As a consequence, the
generic notation t (or t ) in Eq. (4.20) is the 6-dimensional twist vector for the kth
link
in the ith
module. Next, it is shown that the module-twist
k ik
ti, for Mi, can be written in terms
of the module-twist (or )t ti
of its parent M as
77
, ii i i it A t N q (4.21)
where ,Ai , and N are the 6ni×6n module-twist propagation and 6n
i×n
i module-joint-
motion propagation matrices, respectively, which are given by
i
11 ,
2,1 1 1
,
, 1 1
,1 1 , -1 1,
, and
i
i
i
k
i ik
k k k
i
,
p 0 0O O A
A p pA O O A N
A p 0
O O A A p A p p
(4.22)
In Eq. (4.22), ,Ai propagates the twist of the parent module (th
) to the child module (ith
);
the last column contains the twist propagation matrix from the th
link of the th
module
wherefrom the ith
module emanates, to the different links of the ith
module. Matrix ,ik
A
in the expression of ,Ai denotes the 6×6 twist-propagation matrix from the twist of link
# in M to the twist of link #ki in Mi. Its expression is obtained similar to of Eq.
(4.3) and is associated with the vector
,k kA 1
,a ik
, as indicated in Fig. 4.6. Moreover for any
three adjoining modules i, h and j, module-twist propagation matrix satisfies the
following property
, , ,j h h i j iA A A (4.23)
Equation (4.23) is, however, not true for non adjoining module. For example, referring to
Fig. 4.2 (a), 3,1 1,0 3,0A A A but 3,2 2,1 3,1A A A as modules M2 and M3 form different
branches. It is worth noting that in Eq. (4.22), matrix and vector ,k lA kp are
corresponding to the system with only 1-DOF joints. If higher-DOF joints are present
then and ,k lA kp are to be replaced with and P of Eq. (4.17). Moreover, for a
,l k k
78
single-chain fixed-base serial system with only 1-DOF joints, the expression in Eq. (4.21)
is effectively the one given by Eq. (4.7), as the parent module is the fixed-base and
t 0 . As a result, the module-joint-rate propagation matrix N iof Eq. (4.22) is the same
as the NOC of a serial-chain system. Now, the module twist for module M0 is expressed
using Eq. (4.21) as
0 0t N
0
0 , if the base is floating
, if the base is fixed
q
(4.24)
0 0 0 0where and .N P q q Considering all the links and joints, the generalized twist
vector, t, consisting of all module-twists, and the generalized joint-rate vector, q ,
consisting of all module-joint-rates are defined next as:
0 0
1 1
and i i
s s
t q
t q
t qt q
t q
(4.25)
In Eq. (4.25), the vector of module-twists ti and module-joint-rates qi
contain link twists
and joint rates, respectively, as defined in Eq. (4.20). Hence, Eq. (4.25) treats modules of
a tree-type system similar to the links in a serial system. This analogy helps one to
extrapolate many concepts of the serial-chain systems directly to the tree-type systems.
One such example is formulation of Eq. (4.21) as an extrapolation of Eq. (4.2).
Substituting Eq. (4.21) into Eq. (4.25), the generalized twist t is expressed as
dt At N q (4.26)
79
where A and N d are the 6(n+ 0)×6(n+ 0) and 6n×(n+n0) matrices, where n0= 0=0 for a
fixed-base, and 0=1 and n0=6 for a floating-base. Matrices A and N dare given as
0
1,
,
,
''s
, and
's'
d i
i
s
s
s
s
N
O ON O
A O A N
AO N
O A O
(4.27)
In Eq. (4.27), in ,Ai corresponds to the parent of i, for i=1, …, s. Moreover, O’s are
null matrices of compatible dimensions. Rearranging Eq. (4.26), the 6(n+ 0)-dimensional
generalized twist is given by
1here ( )d l, wl d N 1 At N N q (4.28)
The 6(n+ 0)×6(n+ 0) matrix N l is as follows:
0
1,0 1
,2,0 2,1 2
,0 ,1 , 1
's
( ,
1
A 1 O
N A if )O A A 1
A A A 1
l
s s s s s
j i j iM (4.29)
where 1i is the 6ni×6n
i identity matrix and i stands for array of all the modules
upstream from as well as including the module Mi,
as shown within the dashed boundary of Fig. 4.7.
Hence, if module Mj does not belong to i then
,A j i vanishes. This means that the twist of any link
belonging to module Mj does not depend on any
link of any module originating from Mi. This
essentially takes care of branch-induced sparsity.
Fig. 4.7 Definition of i
i i
Modules
Detail inside
the module
80
The matrices N l and N d of Eq. (4.28) are nothing but the DeNOC matrices for the tree-
type system under study, written in terms of the module information rather than in terms
of the link information. Hence, Eqs. (4.27) and (4.29) are the generic versions of Eq.
(4.8). Under the special case, when the base is fixed all the terms containing subscript ‘0’,
i.e., ,0 0 0, , andA 1 Ni (the elements in the 1st row and column), vanish. Moreover, if each
module consists of one link with no branching, and is connected by 1-DOF joint only,
then N pi i, ,A Ai j i j, and , , ,i j j k i kA A A As a result, the expressions of N l and N d
degenerate to Eq. (4.8), which shows that the work by Saha (1999) is a special case of
what is proposed here. This brings up an important fact that, for different module
architecture, the NOC decouples into different module-DeNOC matrices lN and dN .
Generalization of the DeNOC concept from a serial system of Saha (1997) to a tree-type
system with general module architecture and multiple-DOF joints is one of the important
contributions of this thesis.
4.4 Examples
In order to illustrate the concept of the module-DeNOC matrices, and branch induced
sparsity, several planar and spatial examples are given next.
4.4.1 A robotic gripper
Figure 4.8 shows a 4-link tree-type robotic gripper. The gripper is divided into four
modules, as indicated in Fig. 4.8, using the scheme presented in Section 4.1. They are M0,
M1, M2, and M3, where M0 is the fixed-base. The expression for the DeNOC matrices N l
and N d are then obtained by using Eqs. (4.27) and (4.29) as
81
Fig. 4.8 A robotic gripper and its modularization
M2
M1M3 M3
M2
M1
#22 #12
#11
#13
#0 (M0)
M0
Module architecture
1 1
2,1 2
3,1 3
's
, andl d 2
3
's
's
N O
N
O N
1 O
N A 1 N
A O 1
(4.30)
where N l and N are the 24×24 and 24×4 matrices, respectively. It is worth noting that
since M0 is fixed, the elements with subscripts ‘0’, i.e.,
d
1,0 2,0 3,0 0 0, , , , andA A A 1 N , in
the expression of N l and N vanish. It may also be noted that in Eq. (4.30) d 3,2A O .
This is due to the branch-induced sparsity as module M3 does not belong to the modules
originating from the module M2, i.e., 3 2M . Moreover,
1, 1 21 , and
31 are the 6×6,
12×12 and 6×6, identity matrices, respectively. The block elements 2,1 , A 3,1A , 1N ,
2N ,
and 3N are obtained using Eq. (4.22) as
2 1
3 1 1
2 1
11 1
21 31 1 2 31 1 121 1 22 1
2
, , , , andA p 0
A A A N p N A A p p
31 N p
(4.31)
where matrix ,ik
A , as already explained under Eq. (4.22), denotes the 6×6 twist-
propagation matrix from the twist of link # in M to the twist of link #ki in Mi. In Eq.
(4.31), 2,1A , 3,1 aA nd 2N a the 12×6, 6×6 and 12×2 matrices, respectively, and re
1N and
82
3N are the 6-dimensional vectors. It is pointed out here that the size of block elements in
N l and N d
pends the number of links and joint variables present in the modules.
For example,
de on
2,1A corresponds to the module-twist propagation from module M1 with one
link to module M2 with two links. Hence, its size is 12×6. Next, matrix 2N correspon
to the module-joint-motion propagation for module M2 containing two joint variables.
Hence, its size is 12×2.
ds
4.4.2 A planar biped
The concept of the DeNOC matrices is illustrated next for a 7-link floating-base biped.
Torso of the biped is assumed to be the floating-base, M0, and two legs form modules M1
and M2 as shown in Fig. 4.9. The DeNOC matrices are then obtained using Eqs. (4.27)
and (4.29) as
Fig. 4.9 A planar biped and its modularization
M1
Trunk
M1 M2
M0
M2
Module architecture
#11
#0 (M0)
#12
#22#2
1
#32#3
1
0 0
1,0 1
2,0 2
, and
'
1 O
N A 1 N
A O 1 O
l d
s
1
2
' 'N O
N
N
s s
(4.32)
83
where N l and N d are 42×42 and 42×12 matrices. Moreover, 01 , 11 , and 21 are the 6×6,
18×18 and 18×18 identity matrices, respectively. The block elements 1,0A , 2,0A , 1N ,
2 ,N and 0N are obtained by using Eqs. (4.22) and (4.24) as
1,0 1
,0 2,0 2,1 1 2
3,0 3,1 1 3,2 2 3
0 0
,
and
i i
i i
A p O
A A N A p p O
A A p A p
N P
for 1,2i
O
p (4.33)
where superscript i outside of the brackets indicates the module. Moreover, matrices 1,0A ,
2,0A , 1N , 2N and 0N are of sizes 18×6, 18×6, 18×3, 18×3, and 6×6, respectively.
4.4.3 A spatial biped
In order to study the application of the proposed concept for a spatial system with
multiple-DOF joints, a 7-link spatial biped, as shown in Fig. 4.10, is considered. It has
spherical joints at the hips, universal joints at the ankles and revolute joints at the knees.
Fig. 4.10 A spatial biped and its modularization
#32
Spherical joints at hips
Revote joints at knees
Universal joints at ankles
#11
#21
#31
M1
#0 (M0)
M2
#22
#12
M1 M2
M0
Module architecture
84
Again torso of the biped is assumed to be the floating-base, M0, and legs form modules
M1 and M2. The DeNOC matrices are then obtained using Eqs. (4.27) and (4.29) as
0 0
1,0 1
2,0 2
, and
'
1 O
N A 1 N
A O 1 O
l d
s
1
2
' 'N O
N
N
s s
(4.34)
where N l and N are 78×78 and 78×18 matrices. It is worth noting that the module-
level expressions in Eq. (4.34) are exactly the same as Eq. (4.32) as they possess same
number of modules and similar module architecture, however the size of their block
elements will differ. For example,
d
01 , 11 , and 21 are the 6×6, 36×36 and 36×36 identity
matrices. The block elements 1,0A , 2,0A , 1N ,
2N , and0N are obtained by using Eqs.
(4.22) and (4.24) as
1,0 1
,0 2,0 2,1 1 2
3,0 3,1 1 3,2 2 3
; ; fo
i i
i i i
P O O
A N P P O
P P P
0 0r 1,2 and N P
(4.35)
In contrast to the example of the planar biped in Subsection 4.4.2, l and in the
expression of
,kA kp
,0iA and iN are replaced by and P due to the presence of multiple-
DOF joints. The expressions of matrices and P in Eq. (4.35) depend on the number
of joint variables associated with the joints, and are obtained by using Eq. (4.14). For
example, the element in the expression of
,l k
,l k
k
k
1,0
i
,0iA , and the elements i
and 2,1
1
iP in the expression of
iN are obtained by using Eq. (4.14) as
85
86
r 1,2;
1
1 2
1 2 3
11,0
1,0 1,0 2,1 2,1 1 1 1
1,0 1 1 1
, , ; fo
ii
i i i ii
p O OA
A O O A P p p O
A p p p
(4.36)
Other elements of ,0Ai and iN can similarly be obtained. Moreover, and in Eq.
(4.36) can be obtained by using Eq. (4.3).
,l kAjkp
4.5 Summary
In this chapter, kinematics of a tree-type robotic system is presented with the help of the
concept of kinematic modules. The kinematic constraints are obtained first at intra-
modular level after introducing the efficient generic representation of multiple-DOF
joints. Kinematic constraints are then obtained at inter-modular level. The modular
representation enables one to extrapolate the concept of link-to-link velocity
transformation to module-to-module velocity transformation. The modular approach
lends its utility in writing module-level DeNOC matrices, which is a generic form of the
DeNOC matrices developed for serial chain robotic system. In this way, several module-
level concepts like module-twist propagation, module joint-motion propagation, etc.
evolved and these concepts are found very useful in treating large tree-type robotic
system with multiple-degrees-of-freedom joints.
Chapter 5
DYNAMICS OF TREE-TYPE ROBOTIC SYSTEMS
As reviewed in the literature, Newton-Euler (NE) equations of motion are found to be
popular in dynamic formulations. Several methods were also proposed by various
researchers to obtain the Euler-Langrage’s form of NE equations of motion. One of these
methods is based on velocity transformation of the kinematic constraints, e.g., the Natural
Orthogonal Complement (NOC) or the Decoupled NOC (DeNOC), as obtained in
Chapter 4. The DeNOC matrices of Eq. (4.28) are used in this chapter to obtain the
minimal order dynamic equations of motion that have several benefits.
5.1 Dynamic Formulation Using the DeNOC Matrices
The DeNOC-based methodology for dynamic modeling of a general multibody system,
be it serial, tree-type or closed-loop, begins with the uncoupled Newton-Euler (NE)
equations of motion of all the links constituting the system. The NE equations of motion
are first formulated in a matrix-vector form for a serial kinematic module followed by a
tree-type system consisting of several kinematic modules.
5.1.1 NE equations of motion for a module
Let us consider the ith
module of Fig. 4.6. The ith
module contains i serially connected
links. The NE equations of motion for the kth
link of the ith
module can be written as
(Greenwood, 1988)
c c
k k k k k k
c
k kk km
cI I n
c f (5.1)
87
Fig. 5.1 Motion of the link ki of module Mi
fk
kOk
Ck
akdk
rk
nk
#kk
ko
Ok : Origin of the kth link
Ck : Center of mass of the kth link
where and are the resultant moment about and force applied at the Centre-of-Mass
(COM), Ck, whereas, is the inertia tensor about Ck, and mk is the mass of kth
link.
Moreover, is the linear acceleration of Ck and is the angular velocity of the link. It
is worth mentioning that the main objective of dynamic analysis is to calculate joint
torques or joint motions. Hence, if the origin of a link, which lies on the joint axis, is
selected as a reference point, instead of COM, efficient recursive inverse and forward
dynamics algorithms can be obtained. This was also shown by Stelzle et al. (1997). In
order to represent Eq. (5.1) with respect to the origin, Ok, of the kth
link, Fig. 5.1, the
entities , , and are represented in terms of the linear acceleration of origin Ok,
i.e., , the inertia tensor about Ok, namely, , the resultant force applied at Ok , , and
the resultant moment about Ok, n , as
C
kn
kc
k
C
kf
C
kf
C
kI
C
kn
kc
C
kI
k
o kI kf
k
)
) )
k k k k
i k k
k k
(d
(d 1 (d 1
f
k k k
C
k k
c
k k
c
k k
m
c o d
I I
f f
n n d
(5.2)
where dk is the 3-dimensonal vector from the origin of kth
link to its COM as shown in
Fig. 5.1, whereas is the 3×3 cross-product tensor associated with dk [d1 d2 d3]T. kd 1
88
The product of kd 1with vector x gives cross-product vector, i.e., . Tensor kd x kd 1
is defined as
3 2
3 1
2 1
0
0
0
k
d d
d d
d d
d 1
( )
d o I n
d f
k k k k k
k k k k km
(5.3)
Substituting Eq. (5.2) into Eq. (5.1), the NE equations of motion for the kth
link can be
represented with respect to the origin Ok as
I
o d
k k k k
k k k k k
m
m m (5.4)
The above equations of motion are then written in terms of the 6-dimensioinal twist tk,
twist-rate and wrench wk (Saha and Schiehlen, 2001) as kt
k kM tD C F
k k kw w w, wherek k k k k kM E t w w (5.5)
where Mk, k and Ek are 6×6 mass, angular velocity and coupling matrices, respectively,
and wk is the 6-dimnesional vector of wrench for the kth
link. The wrench vector wk is
composed of D
k
I d
d 1
k km
m m
w , the wrench due to driving moments and forces, , the wrench due to
constrained moments and forces, and , the wrench due to external moments and
forces other than driving. The matrices Mk, k and Ek and the vector wk are obtained by
comparing the Eqs. (5.4) and (5.5). They are given by
C
kw
k
F
kw
, , , and1 1 n1
M E w1 1 f
k k
k k
k k k k k
k
k (5.6)
89
In Eq. (5.6), is the 3×3 cross-product tensor associated with vector . For the ith
module, say Mi, comprising of i serially connected links the NE equations of motion, Eq.
(5.5), can be combined in a compact form as
k 1 k
M t M E t wi i i i i i i (5.7)
where the matrices iM , i , and iE , are of sizes 6ni×6n
i each instead of 6×6 for a link in
Eq. (5.6). Moreover, iw is the 6ni -dimensional vector of module-wrench associated with
the module Mi. Matrices iM , i , iE , and vector iw are defined as
1
1
1
diag ,
diag [
diag ,
i k
i k
i k
M M
E E E
] ,
i
i
i
M M
E
1
and
i
i k
w
w w
w
(5.8)
Equation (5.7) represents the NE equations of motion for the ith
module.
5.1.2 NE equations of motion for a tree-type system
The uncoupled NE equations of motion developed in Eq. (5.7) for a module are put
together for (s+ 0) modules as
D, where C Fw w wMt MEt w w (5.9)
In Eq. (5.9), M, , and E are the 6(n+ 0) ×6(n+ 0) generalized matrices of mass,
angular velocity, and coupling, respectively, and w is the 6(n+ 0)-dimensional
generalized vector of wrenches. They are defined as
0 0
0 0
diag , diag [
diag , and
i s i
TT T
i s i
M M M M
E E E E w w w w
],s
T
s
(5.10)
where matrices iM , i , iE , and vector iw are defined in Eq. (5.8).
90
5.1.3 Minimal-order equations of motion
Power by constraint wrenches is equal to zero (Angeles and Ma, 1988). As a result, the
vector of constraint forces and moments is orthogonal to the columns of the velocity
transformation matrix, i.e., the NOC or the resulting DeNOC matrices of Eq. (4.28), and
one may show that the pre-multiplication of Eq. (5.9) by N NT T
d l yields the minimal set of
equations of motion eliminating the constraint wrenches. More specifically, T T C
d lN N w 0 .
Thus Eq. (5.9) leads to
T T
d lN N Mt MEtT T D F
d lN N (w w ) (5.11)
Now, substitution of l ddt N N q , from Eq. (4.28), and its time derivative into Eq. (5.11)
yields the following equations of motion:
+ = + FIq Cq
and F T FN w
(5.12)
where the expressions of the (n+n0)×(n+n0) generalized inertia matrix (GIM) I,
(n+n0)×(n+n0) matrix of convective inertia (MCI) terms C, and the (n+n0)-dimensional
vectors of the generalized driving forces and the external forces F are given as
, ( ), ,T T T DI N MN C N MN MEN N w (5.13)
where l dN N N . Equation (5.13) represents the constrained dynamic equations of
motion for a tree-type robotic system with general kinematic module architecture. Note
that the formulation can also suitably be used to analyze a closed-loop system. For that
appropriate joints must be cut to form several open-loop serial or tree-type sub-systems.
The cut joints are to be substituted by the constraint forces known as Lagrange multipliers.
These constraint forces can then be treated as external forces to the resulting open-loop
sub-systems, serial- or tree-type. Appendix A illustrates the dynamic analysis of a closed-
91
loop system using the proposed methodology. However, the detailed description on the
dynamic modeling of closed-loop systems is beyond the scope of this thesis.
Finally, it is to be noted that Eq. (5.12) has similar representation as that of a single-chain
5.1.4 Wrench due to external force, Fw
al acceleration or link-ground interactions are
nw
f
F
F k
k F
k
serial system (Saha, 1999), however, the elements of the matrices and vectors differ, and
this will be evident in Section 5.2.
The forces and moments due to gravitation
two typical examples of external forces that one needs to take care of, particularly, for the
robotic systems studied in this thesis. Figure 5.2 shows the kth
link subjected to external
forces and moments at the points 1, 2 and 3. The vectors connecting the origin of the link
Ok to the points of application of these forces and moments are represented by ,1ks , ,2ks ,
and ,3ks , respectively. Resultant wrench acting at the origin of the link k is then defined as
(5.14)
where F
kn and F
kf
e n
are the resultant moment about and the resultant force at Ok for the kth
link. If ere ar f points of application of the external forces and moments, then wrench
F
kw is given by
th
Ok
sk,3
Fig. 5.2 External forces and moments on link #k
F
kn
#kk
F
kf
,3
F
kf
,2
F
kf,1
F
kf
sk,2
sk,1
1 2
3
,1
F
kn ,2
F
kn
,3
F
kn
92
, ,
F F
k j k jw ,
,
k j
k j
1
fn
k
j
w = S , where 1 s 1
1
,
,
,
F
k jF
k j F
k j
S and n
wf
(5.15)
In Eq. (5.15), is the 6×6 matrix, and ,k jS,k js 1 is the cross-product tensor associated
with vector s , for j = 1, 2, 3, as shown in Fig. 5.2. ,k j
5.2 Generalized Inertia Matrix (GIM)
The elements of the GIM, I, obtained in Eq. (5.13) will be derived in this section. These
not only enable the factorization of the GIM but are also required for formulating the
inverse dynamics algorithm reported in Chapter 7. For that, the GIM is written as
, whereT T
d d l l M N MNI N MN
(5.16)
In Eq. (5.16), the matrix M is referred to as the generalized mass matrix of composite
modules, and the matrices Nl and N d are the module-DeNOC matrices. Substituting the
expressions for Nl and the mass matrix M from Eqs. (4.29) and (5.10), respectively, into
Eq. (5.16), the symmetric matrix M is obtained as
0
1 1,0 1
,2 2,0 2 2,1 2
,0 ,1 , 1
( , if
M
M A M
M M )A O M A M A M
M A M A M A M
j j i j
s s s s s s s s
sym
M i (5.17)
where ,i jA is the 6ni×6n
j module-twist-propagation matrix defined similar to ,iA in Eq.
(4.22). Once again i in Eq. (5.17) stands for array of all the modules originating from
the module Mi including Mi, and , , when M A O j j i j iM . It is worth noting that in Eq.
93
(5.17), the 6ni×6n
i matrix
iM represents the mass and inertia properties of the system
comprising of rigidly connected links of modules which are upstream from the ith
module
as depicted in Fig. 5.3 inside the dotted boundary ( i ). Matrix iM is referred to as the
mass matrix of composite-module. It is obtained as
Fig. 5.3 The ith composite module
i
Composite
module i Modules
Detail inside
the module
i (1)i i (2)
, ,M M A M Ai
T
i i j i j i
j
j (5.18)
In Eq. (5.18), iM is expressed in terms of the module mass matrix jM of all the modules
upstream from module Mi, i.e., jM for all ij . Instead, iM may be expressed in terms
of the already computed mass matrices of the composite-modules that are immediate
children ( i) of the ith
module as shown in Fig. 5.3. If these composite modules are
denoted by jM , then for all ij
, ,M M A M Ai
T
i i j i j i
j
j (5.19)
where i denotes the array of children of module Mi. If a module has no child, say, i = {},
it is referred to as the leaf or the terminal module. For the terminal modules, the mass
matrix of composite-module is simply equal to module mass matrix, i.e., i iM M .
94
Here the concept of composite-module is introduced, and this is the generalization over
the similar concept of composite-body used by Featherstone (1983), Rodriguez et al.
(1991) and Saha (1999). It may be shown that the mass matrix of composite-body is a
special case of Eq. (5.19), where each module has only one link, i.e., i=1, for i=1, …, s.
Finally, using the expression in Eq. (5.16), i.e., T
d dMNI N , the block elements of the
GIM are given by
0,0
1,0
2,0
,0
I
I
1,1
2,1 2,2
,1 , 1 ,
I I
I I I
I I I Is s s s s s
sym
(5.20)
where the ni× n
j block element ,Ii j is given, for i=1, …, s and j=1, …, i as
, , , , if (For
, otherwise
I I N M A N
O
T
i j j i i i i j j i jM i ,, ) A = 1i jj (5.21)
The analytical expression derived in Eq. (5.21) is the foundation for obtaining the
analytical decomposition of the GIM, and thus Eq. (5.21) enables one to find analytical
module-level inverse of the GIM and the recursive forward dynamics algorithm.
5.3 Module-level Decomposition of the GIM
Saha (1997) showed the UDUT decomposition of the generalized inertia matrix for a
single-chain serial system. More recently, Featherstone (2005) proposed a similar LTDL
factorization, where LT
U, for branched kinematic tree. However, the approach followed
by the Featherstone was numerical in contrast to the analytical approach taken by Saha. In
both the approaches the decomposition was carried out at the link-level. As compared to
link-level approaches of Saha (1997) and Featherstone (2005), module-level
95
decomposition in the form of TUDU is presented in this thesis for a tree-type system with
general kinematic module architecture. This provides suitable recursive module-level
expressions to obtain the implicit inverse of the GIM resulting in a recursive forward
dynamics algorithm. The proposed TUDU decomposition is based on the Block Reverse
Gaussian Elimination (BRGE) of the GIM that generalizes the concept of the Reverse
Gaussian Elimination (RGE) of GIM arrived from the link-level velocity transformation
matrix, namely, the DeNOC matrices of a serial system proposed by Saha (1997).
Gaussian Elimination (GE), as commonly used in linear algebra (Stewart, 1973), begins
the annihilation of the first column of a matrix, whereas in Reverse Gaussian Elimination
annihilation starts form the last column of the matrix. Hence the adjective ‘Reverse’ is
added. It actually helps in obtaining various element of the decomposed matrix by
establishing recursive relationships from the terminal link or module to the zeroth link or
module, a process otherwise not possible with the conventional GE. The RGE or BRGE
also preserves the sparsity pattern of the elements of the GIM into its factor U . It is worth
noting that BRGE is performed on the block elements of the GIM, which are square
matrices of variable sizes based on the module architectures.
The BRGE of the GIM given by Eq. (5.20) starts with the annihilation of the sth
block
column and proceeds to the 1st block column by using elementary Block Upper
Triangular Matrices (EBUTM), i.e.,
1ere B B B Bi s, whBI L (5.22)
where the (n+n0)×(n+n0) B and L are the block upper and lower triangular matrices. In
Eq. (5.22) the (n+n0)×(n+n0) EBUTM Bi is obtained as
96
B 1 U VT
i i i (5.23)
In Eq. (5.23), the (n+n0)×ni matrices iU and Vi have the following representation
0, 1,
T T
i i i iU U U OT
O and V O O 1 OT
i i (5.24)
where ,U j i and 1 are the nj×n
i and n
i×n
i matrices, respectively, and O is the null matrix
of compatible dimension. Using Eqs. (5.23) and (5.24), the structure of
i
Bi is obtained as
0 0,
1 1,
'
1 O U O
1 U O
1 O
O 1
i
i i i
i
B i
ss
(5.25)
The GIM after following the BRGE may be represented as
1 1 1 1 1
1B B B Bs i, where I B L (5.26)
In the above, matrix 1
Bi is the inverse of EBUTM. The EBUTM possesses the following
interesting property:
1 1( )B 1 U V 1 U VT T
i i i i i (5.27)
Now, the expression for the multiplication of the two neighboring EBUTM can be
calculated as
1 1B B
=1
i i 1 1 1
1 1
( )( )1 U V 1 U V
U V U V
T T
i i i i
T T
i i i i
(5.28)
Similarly the product 1 1
1B B Bs i
1is obtained as
97
1
1 1...B 1 U V U VT T
s s (5.29)
Using Eqs. (5.24) and (5.29), the inverse of the EBUTM 1B , denoted by U , is
represented as
0 0,1
11
'
1 U
1U B i
s
0, 0,
1, 1,
,
U U
U U
1 U
O 1
i s
i i i s
i i s
s
(5.30)
The (n+n0)×(n+n0) matrix U in Eq. (5.30) is a upper block triangular matrix. Now, the
GIM of Eq. (5.26) may also be expressed as I UL . Since, I is a symmetric positive
definite matrix, the lower block triangular matrix L can be written as
TL DU (5.31)
As a result the GIM is decomposed as
(5.32)TI UDU
where the expression for the block upper triangular matrix U is obtained in (5.30) and the
block diagonal matrix D has following representation:
0
1
ˆ '
ˆ
ˆ' s
s
s
I O
I
O I
D (5.33)
where the ni×n
i matrix Ii
is essentially the block pivot of the BRGE. It is worth noting
that the elements of the matrices U and D resulting from the UDUT decomposition of the
98
GIM f a ser system (Saha, 1997) are scalars, whereas the elements of the matrices o ial U
and D, i.e., ,Ui j and Ii, in Eqs. (5.30) and (5.33), respectively, are matrices. They are
given by
, , ,
, otherwise
ˆˆ
U N A
O
I N
T T
i j i j i j i
T
i i i
if j
(5.34)
In Eq. (5.34), the 6ni×n
i matrices and
ˆi are given by
i
1ˆ ˆˆ ˆ and I M N i i ii i i i (5.35)
The 6ni×6n
i matrix M i in Eq. (5.35) contains the mass and inertia properties of the
articulated-module i, which is obtained as
, ,
ˆ ˆM M A M AT
i i j i j j j i (5.36) ij
where if i = {}, then M Mi i. The articulated-module corresponding to ˆ
iM is nothing
but the composite module of Fig. 5.3 in which fixed joints are replaced with actual joints.
The ni×n
i matrix
-
Ii in Eq. (5.34), on the other hand, may be interpreted as the generalized
inertia matrix of articulated-module. T e relationship between the matrices h ˆiM and Ii
can
be viewed same as that between M and I of Eqs. (5.9) and (5.13), respectively.
Moreover, the 6ni×6n
i matrix j in Eq. (5.36) is obtained as
1 NT
j j j (5.37)
99
Matrix j is referred to as the matrix of articulated-module transformation. Similar
matrix, however at link-level was also derived by Lilly and Orin (1991) and Saha (1997).
The one proposed here is more generic as it is applicable to any general tree-type sys
in contrast to only a single-chain serial system. Co aring Eqs. (5.19) and (5.36) it may
be seen that it is
tem
mp
j , which distinguishes mass matrix of the composite-module, M i,
from the mass matrix of the articulated module, M i. Again the concept of articulated-
body inertia (Featherstone, 1983; Rodriguez et al., 1991; and Saha, 1997) is generalized
to tree-type system consisting of several kinematic modules. If each module of a tree-type
he matrix of the articulated-module degenerates to the
The
system has only one link, t
articulated-body inertia.
5.4 Inverse of the GIM
UDUT decomposition of the GIM presented in the previous section facilita
analytical inversion of GIM expressed in the form of Eq. (5.20). The inverse is given by
tes the
1 1 1T I (5.38)
In Eq. (5.38)
U D U
, 1D is the block diagonal matrix, and, 1
U B is block upper triangular
matrix. From Eq. (5.22), 1U or B is given by
1
1 ... ...U B B B B i s (5.39)
Using the definition of the EBUTM, the multiplication of the two neighboring EBUTM is
obtained as
1 1 1
1,
( )( )
(
1 U V 1 U V
=1 U V U V U V U V
=1 V
i i i i i
T T T T
i i i
(5.40) 1 1 1 1
1 1 1(
B B
U V U U U
T T
i
i i i i i i i i
T T
i i i i
100
1, 1( )U V UT
i i i i is the last nonzero block element of Ui where as btained in Eq.
The product of EBUTM, i.e.,
o (5.24).
1
1 ... ...U B B B i s , is then calculated as
1
1 1
ˆ ˆ... ...U B B B 1 U V Ui s 1
ˆV U V
T T T
i i s s (5.41)
Ui , for i=1,…, s, is given by where
1 1, 1 1, 1 1 ,
ˆ ˆ . ˆ ˆ( .. ); and ifU U U U U U U =U U =O i i i i i i j i ji (5.42)
Based on Eq. (5.41) the (n+n0)×(n+n0) block upper-triangular and diagonal matrices 1U
and 1D have the following forms
1
00 0,1 1,
111 1andU D 1
1,
1
ˆˆ ˆ '
ˆ,
ˆ
ˆ' '
I O1 U U
1 I
U
O 1 O I
s
s s
s s
s
s s
(5.43)
where the block elements 1
,
ˆ ˆandU Ii j i are obtained as
, ,
1
ˆˆ , if
ˆ ( )
U N A
I N
T T
i j i j i j ij
1
, otherwise
ˆ
O
T
i i i
(5.44)
In Eq. (5.44), ,
ˆA j i
may be interpreted as the articulated module-twist propagation matrix.
and has following representation:
, , ,
ˆ ˆ ˆj i j h h h i
5.4
where h is any intermediate serially connected module between modules j and i.
A A A ( 5)
Interestingly, it is shown in Eq. (4.23) that, the module-twist propagation matrix ,j iA is
101
represented as , ,j h h iA A . Hence, once again it is the matrix of articulated module
transformation, h , t separates matrix tha ,
ˆj iA form matrix ,j iA . Moreover for any two
adjoining modules, i.e., module j and its parent j the articulated module-twist
propagation matrix ,
ˆjA is simply equal to module-twist propagation matrix, i.e.,
, , ˆ
j jA A (5.46)
5.5 Examples
of the proposed odule-level expression of
5.5.1 A robotic gripper
The GIM of the tree-type robotic gripper with four modules, as shown in Fig. 4.7, is
obtained by using Eqs. (5.20) and (5.21) as
For the clearer understanding concepts, the m
the GIM, its decomposition, and the inverse are shown for a robotic gripper and a biped.
1 1 1
3 3 3,1 1 3 3 3N M A N O N M N
T T
T T
where I is the 4×4 matr
2 2 2,1 1 2 2 2
N M N
I N M A N N M N
T sym
(5.47)
ix. In Eq. (5.47), the block elements ,andi jN A i are obtained in
Eq. (4.22). Moreover, the mass matrix of composite-module M i, for i=3, 2, 1, is ob
by using Eq. (5.19) as
tained
3 3 2 2 1 1 ,1 ,1
3,2
, , T
j j j
j
M M M M M M A M A (5.48)
102
Following the block reverse Gaussian elimination, the GIM of Eq. (5.47) is decomposed
as TI UDU and D , where the expressions of the elements of matrices U are obtained
using Eq. (5.34) as
1 11 1 2,1 2 1 3,1 3
2
ˆ'
'
N O1 N A N A
O 1
TT T T T s
s
2 2
33 3
ˆ, and
ˆ'
U 1 O D N
O N
T
Ts
(5.49)
where U and ˆi
and D are the 4×4 matrices. The block elements i , for i=1, 2, 3, can
be obtained using Eq. (5.35) as
1ˆ ˆˆ ˆ for = 1, 2,3 and where M N I Ii i i i i ii iiˆˆ
NT
i i (5.50)
In Eq. (5.50), the mass matrix of articulated-module ˆiM , for i=3, 2, 1, is then evaluated
, using Eq. (5.36), i.e.
3 3 2 2 1 1 ,1
T
,1
3,2
ˆ ˆ ˆ ˆ, , j j j j
j
M M M M M M A M A (5.51)
The 6ni×6n
i matrix j in Eq. (5.51) is obt ed belo using Eq. (5.37): ain w
, for 2,31 N T
j j j j (5.52)
The inverse of the decomposed GIM, i.e., and 1D
1U are obtained next from Eqs.
and (5.44) as
(5.43)
1
1 11 1 2,1 2 1 3,1 3
1 1
2 2 2
13
3 3
ˆˆ ˆ '
ˆ, and
ˆ' '
(N ) O1 N A N A
U 1 O D (N )
O 1 O ( )
TT T T T
T
T
s
s s
1
N
(5.53)
103
where 2,1
ˆ TA and 3,1
ˆ TA are available from Eq. (5.45), namely,
2,1 2,1 3,1 3,1
ˆ ˆ, and A A A A (5.54)
In Eq. (5.54), module M1 is the parent of modules M2 and M3. Hence, the expressions for
2,1 3,1and A A are simplify their corresponding module twist-propagation matrices, i.e., ˆ ˆ
2,1A and 3,1A , respectively.
5.5.2 A biped
The gripper mechanism presented in the previous subsection has its base fixed. In this
subsection, the proposed concept is illustrated for a floating-base biped as shown
4.8. The GIM of the biped with three modules is obtained using Eqs. (5.20) and (5.21) as
in Fig.
0 0 0
1 1 1,0 0 1 1 1
N M N
I N M A N N M N
T
T T
sym
2 2 2,0 0 2 2 2N M A N O N M NT T
(5.55)
where I is the 12×12 matrix. After decomposition of the GIM in Eq. (5.55) the 12×12
matrices U and D are obtained by using Eq. (5.34) as
0 00 0 1,0 1 0 2,0 2
1 1
22 2
1
ˆ, and
ˆ' '
1 N A N A
1 O D N
O 1 O N
T
Ts s
ˆ'N O
U
TT T T T s
(5.56)
In Eq. (5.56), the block elements i and ˆi, for i=0, 1, and 2, are obtained by using Eq.
(5.35) as
1ˆ ˆˆ ˆ for = 0,1, 2 and where M N I Ii i i i i ii iiˆˆ
NT
i i (5.57)
104
ˆiMThe mass matrix of articulated-module , for i=2, 1, 0, is then evaluated by usi
(5.36), i.e.,
ng Eq.
2 2 1 1 0 0
2,1
ˆ ˆ ˆ, , ,0 ,0
ˆT
j j j jA M A (5.58)
The 6ni×6n
i matrix
j
M M M M M M
j in Eq. (5.58) is obtained below using Eq. (5.37):
, for 1,21 N T
j j j j (5.59)
Accordingly, the inverses of the matrices and D U are obtained by using Eqs. (5.43) and
(5.44) as
1
0 00 0 1,0 1 0 2,0 2
1 1 1
1 1 1
1
, and
ˆ
U 1 O D (N ) T
T2
2 2
ˆˆ ˆ '
ˆ
' '
(N ) O1 N A N A
O 1 O (N )
TT T T T s
s s
where
(5.60)
1U and 1
D each is 12×12 block upper triangular and diagonal m
Moreover,
atrices.
2,1
ˆ TA and 3,1
ˆ TA are available from Eq. (5.45), namely,
1,0 1,0 2,0 2,0, and A A A A (5.61) ˆ ˆ
5.6 Advantages of Modular Framework
Generalization of the body-to-body velocity transformation relationships to
module-to-module velocity transformation relationships where the former is a
special case of the latter.
The concept of kinematic modules consisting of serially connected links in tree-type
systems brings several advantages. They are:
105
Compact representation of the system’s kinematic and dynamic models.
Provision of module-level analytical expressions for the matrices and vectors
appearing in the equations of the motion. It is worth noting that the module-level
position of
erties like
rithms with inter- and
module to another module if the
ule at a time.
llel-recursive dynamics algorithms can be obtained, where for a given
module architecture, modules are solved parallelly whereas the links inside
modules are solved recursively.
C mat
expressions of the vectors and matrices appearing in the equations of motion
facilitate the physical interpretation of many associated terms, decom
the GIM, and analytical inversion of the GIM.
Facility of macroscopic purview of several kinematic and dynamic prop
matrix of articulated-module, articulated-module transformation, etc.
Uniform development of inverse and forward dynamics algo
intra-modular recursions, which will be presented in next two chapters.
Ease of adopting already developed serial-chain algorithms (Saha, 1997, 1999) for
each individual serial module of a tree-type system at hand.
Possibility of repeating the computations of a
tree-type system has same number of links in each module.
Ease of investigating any inconsistency in the results of a tree-type system by
examining the results of one mod
Hybrid para
5.7 Summary
In this chapter, dynamic modeling of a tree-type robotic system is proposed based on
kinematic modularization obtained in Chapter 4. The dynamic equations of motion are
obtained using the concept of module-DeNO rices. The module-level expressions
are obtained for the Generalized Inertia Matrix (GIM) which helped in introducing the
concept of mass matrix of composite-module. The analytical expression of the GIM is
106
then utilized to decompose it in the form of UDUT . The Decomposition enables one to
obtain many physical dynamic properties and analytical inversion of the GIM. The results
f the analytical inversion will be used in Chapters 6 and 7 to obtain recursive forward
dynamics algorithms for several fixed- and floating-base robotic systems with tree
ture and multiple-DOF joints.
o
struc
107
108
Chapter 6
RECURSIVE DYNAMICS FOR FIXED-BASE
ROBOTIC SYSTEMS
In this chapter, dynamic analyses of fixed-base tree-type robotic systems are presented
using the dynamic modeling proposed in Chapter 5. For this, recursive inverse and
forward dynamics algorithms are developed. The algorithms take care of the multiple-
DOF joints in an efficient manner, as explained in Subsection 4.2.1; in contrast to treating
them as a combination of several 1-DOF joints by taking into account the total number of
links equal to number of 1-DOF joints or joint variables. In the presence of many
multiple-DOF joints in a robotic system the latter approach is relatively inefficient due to
the burden of unnecessary computations with zeros. The improvement in the
computational efficiency in the presence of multiple-DOF joints and the generalization of
multiple-DOF joints as Euler-Angle-Joints (EAJs) are addressed in this thesis for the first
time. They are important contributions of this thesis. Dynamic analyses, namely, the
inverse and forward dynamics, of a robotic gripper, a biped, and a hyper-DOF system are
performed in this chapter.
6.1 Recursive Dynamics
As reviewed in the literature, recursive algorithms are popular due to their efficiency,
computational uniformity, and numerical stability. These essentially help in real-time
computations, realistic visualization and model-based control of a robotic system.
Recursive inverse dynamics helps in force analysis and control, the recursive forward
dynamics enables one to perform motion analysis. It is worth noting that the recursive
109
algorithms available in the literature, e.g., Featherstone (1987) and Rodriguez (1992),
exploit only body-level recursions; however, in this work the recursion is obtained first
amongst the kinematically serial modules followed by the body level recursions inside a
module. In fact the latter approach encapsulates the former. As result, the problem is
solved in a much elegant manner where a tree-type system has several modules, which in
turn have several bodies or links in them. Hence, inter-modular recursion with intra-
modular recursion inside each module is a logical consequence of the system architecture.
All of the above steps are achieved by defining suitable module-level Decoupled Natural
Orthogonal Complement (DeNOC) matrices for a tree type system.
6.1.1 Inverse dynamics
The problem of inverse dynamics attempts to find the joint torques and forces for a given
set of joint motions of a robot under study. It is formulated with the help of Eq. (5.11) as
* *w Mt MEt, where N N w
T T
d l (6.1)
where represents inertia wrench and is the vector of joint torques and forces to be
applied at the joint actuators to achieve the given motions. The dimension of is ‘n’, that
is equal to the joint variables of the robot at hand. The matrices
*w
l and N
dN are the
module-DeNOC matrices, derived in Eq. (4.28), whereas , , and E are defined in
Subsection 5.1.2. Equation (6.1) can then be evaluated recursively in two steps, similar to
the one for a serial system (Saha, 1999), however, at the module level.
M
Step 1. Forward recursion: Computation of *, and t t w
In this step, generalized twist ( ), generalized twist-rate ( ), and inertia wrench ( ) are
obtained recursively in two levels, namely, the inter- and intra-modular levels, using the
t t*
w
110
information of the parent module in the inter-modular level and the parent body at intra-
modular level. They are shown below:
A. Inter-modular computations: For i = 1,…, s
,
*
i i
i i
i i
t A
t A
w =M
, ,
i
i i
i i
i i i i i
i i i i i
t N q
t +A t +N q N q
t M E t
(6.2)
where *
iw represents inertia wrench of the ith
module, i.e., the value of the left-hand side
of the NE equations given by Eq. (5.7). Moreover, ,iA and iN are module-twist
propagation and module-joint-motion propagation matrices obtained in Eq. (4.22),
whereas , , andi iM Ei
, 1j jk k
are defined in Eq. (5.8). The above steps actually require
computations in the intra-modular level, which are shown next.
B. Intra-modular computations: For k = 1i,…,
i
( )
( ) ( )
,
, ,
For 1:
, 1
, 1
,
j k j jj
j j
j k k j j jj j
j j j j j
k
k k k k
k k
k k k k k k
k k k k k
j
j
j
j
j
p p
1
t A t p
p
t A t A t
p p
* 0,
,
j
j j j j j j
k k
k k k k k k k
j
j
w
M t M E t
(6.3)
where ,kA and are defined in Eq. (4.3), whereas are obtained in
Eq. (5.6). Moreover, k (k-1) for k > 1 and
jkp , , and j jk kM E
jk
k is the DOF of the kth
joint. Hence, if the
kth
link is connected to its parent link by a higher-DOF joint k, i.e., , then there are 1k
111
1k virtual links which have no dimensions and masses. As a result, many
computations associated with these links are carefully avoided as evident from Eq. (6.3).
Step 2. Backward recursion: Computation of
In this step, joint torques and forces are obtained by using Eqs. (6.1) as
*, where N w w N wT T
d l (6.4)
NT
lAs is a block upper-triangular matrix, w is obtained using backward substitutions,
while the solution for is straightforward as NT
d is a block diagonal matrix. Hence,
having the results of w in the forward recursion in step 1 above, this step computes the
joint torques/forces using another set of inter- and intra-modular level computations that
start from last module or last body, respectively. They are shown below.
*
A. Inter-modular computations: For i = s, …, 1
*
,w w A w
N w
i
T
i i j i j
j
T
i i i
(6.5)
where *
iw wi
, ,
, ,
T i
l k
T i
k
j k
j k
if i={}, and the intra-modular computations required to complete the
above calculation are shown below:
B. Intra-modular computations: For k = i, …,1
)
1
1
*
,
*
1, ( 1)
For 1
,
j j
k j
j
j
j j j
k
k k l k
l
k k k k
k k
T
k k k
j
j
w w A w
w A w
w
p w
(6.6)
112
where if *
w wj jk k )jk
={}. Once again, similar to Eq. (6.3), many computations in Eq.
(6.6) associated with the links of multiple-DOF joints that do not have any length and
mass are not carried out, thus, reducing the overall computational complexity. It may be
noted that the computer implantation of the above steps requires assignment of an integer
index for each of the link in a tree-type system. This is obtained as follows:
For example, an integer index for the link of the ith
module is ik
1
1
ih
h
k (6.7)
where h represents total number of links in h
th module. Accordingly, the computer
implementation of the proposed inverse dynamics algorithm is given in Table 6.1. The
computational complexities of the different steps in Table 6.1 are provided in Appendix
B. Resulting computational complexity of the proposed inverse dynamics algorithm is
Table 6.1 Recursive O(n) inverse dynamics algorithm for fixed-base robotic systems
Step 1 (Forward Recursion): j *, , andj jt t w Step 2 (Backward Recursion): j
,
, ,
0
For 1: (Inter modular)
For 1: (Intra modular)
1 (Joint level)
1
if ( 0)
j
j j
i
j
j k j j
j k k
j j j j j
j
i s
k n
r
j j
-
-
t A t p
t A t A t
p p
else
end
j j j
j j j j j j
j
t p
t p p
w 0
1
1
*
*
For 2 :
1
end
k
j j j j
j j j j j j j
j
k k j j k k j
j k
r
j j
t t p
t t p p
w 0
w M t M E t
w w
end
end
For :1 (Inter modular)
For :1 (Intra modular)
For : 2 (Joint level)
1
end
1 (Joint level)
-
-
p w
w w
j
i
k
T
j j j
j
j DOF
i s
k n
r
j j
r
,
if ( 0 )
end
1
end
end
p w
w w A w
j j
T
j j j
j
T
k j
j j
Note: The 6–dimensional vector [0T gT]T , where ‘g’ is the 3-dimensional vector due to gravitational acceleration,
is added to the links emanating from the base to take into account the effect of gravity to other links of the modules.
113
obtained as 21 2 3 1 2 33
(94 58 46 81)M (82 48 36 75)An n n n n n , where M and A stand for
Multiplications/Divisions and Additions/Subtractions, respectively. Moreover, n1, n2, and
n3 represent the total number of joint variables associated with 1-DOF, 2-DOF and 3-DOF
joints, respectively. Hence, total number of joint variables n is nothing but n1+n2+n3. The
comparison of the computational complexity with those available in the literature is
shown in Section 6.3.
6.1.2 Forward dynamics
Forward dynamics problem attempts to find the joint motions from the knowledge of the
external joint torques and forces. This enables simulation studies, which provide
configuration of the system at hand. Unlike the recursive inverse dynamics algorithm
presented above, a recursive forward dynamics algorithm is rather complex. Inverse
dynamics calculations require only matrix-vector operations which comprise of algebraic
multiplication and addition. In the case of forward dynamics, one needs to solve for the
joint accelerations from a set of equations of motion, Eq. (5.12). A straight forward
solution based on established Gaussian Elimination or Cholesky decomposition
techniques (Strang, 1998) require order (n3) calculations. So for large n, typically n > 7
(Stelzle et al., 1997), computations increase so drastically that the overall computational
efficiency is largely sacrificed. Moreover, such algorithms are known to have problems
with numerical stability (Ascher and Pai, 1997; and Mohan and Saha, 2007). Hence,
recursive order (n) forward dynamics algorithms are preferred. One such algorithm is
presented here for the tree-type systems consisting of several kinematic modules and
multiple-DOF joints. It is done by analytically decomposing the GIM, resulting out of the
constrained equations of motion of a system, as derived in Section 5.3. The decomposed
GIM allows one to calculate the joint accelerations recursively, as highlighted below:
114
Based on the T
UDU decomposition of the GIM, obtained in Eq. (5.32), the
constrained equations of motion, Eq. (5.12), are rewritten as follows
, whereUDU q T F and h h Cq
F (6.8)
where matrices U and D are obtained in Eqs. (5.30-34). Moreover, vector h is obtained
recursively using any recursive inverse dynamics algorithm (Walker and Orin, 1982), say,
the one presented in Subsection 6.1.1, where q 0 in step 1.
The joint accelerations are then solved using three sets of linear algebraic equations,
namely
ˆ ˆ, where
ˆ) , where
)
T
T
T
U DU q
D U q
U q =
i)
ii
iii
(6.9)
Using Eq. (6.9), the recursive algorithm, comprising of backward and forward recursion,
for a general tree-type system can be given next.
Step 1. Backward recursion: Computation of ˆ and
As U is a block upper-triangular matrix, ˆ is obtained using backward substitutions,
while the solution for is straightforward as D is a block diagonal matrix. The vectors
ˆ and are obtained using the inter- and intra-modular level computation given below:
A. Inter-modular computations: For i = s, …, 1
,re, ,
ˆ
A
i
T T
i j i j
j
j j j j
1
ˆi) , whe
and
ˆ ˆii)
N
I
i i i i
i i i
(6.10)
115
where i and i are the 6ni-dimensional vectors, and i 0 , if i={}. Moreover ˆ
iI and
i are obtained in Eqs. (5.34-35). Intra-modular level computations needed to complete
the above steps are shown below:
B. Intra-modular computations: For k = i ,…, 1
)
1
,
1, ( 1)
For 1
ˆi) , where , ,
, ,
p A
A
j j j j j
k j
k
T T
k k k k k l k l k
l
k k k k
j
j k
j k
i
T i
1,
ˆ and
ˆ ˆii)
j
j j j
k k
l l l l
k k k
j
m
(6.11)
where and are the 6-dimensional vectors. It is worth noting that if the original
definition of the Euler angles (Shabana, 2001) is used to define the motion of the 3-DOF
spherical joint instead of EAJs as introduced in Chapter 3, pk, of Eq. (4.3) would have the
size of 6×3 instead of 6×1 for EAJs. Hence,
k k
ˆˆj j j
T
k k km p M pjk of Eq. (6.11), which is found
to be a scalar quantity by using EAJs, would have been a 3×3 matrix if Euler Angles are
used. As a result, it would require some extra computations to invert the 3×3 matrix in the
range of O(33), which is certainly disadvantageous computationally.
Step 2. Forward recursion: Computation of from Tq U q
As UT
is block lower triangular matrix, the joint accelerations ( q ) are solved next by
using forward substitutions. These also require inter- and intra-modular level
computations that are given below:
A. Inter-modular computations: For i = 1,…, s
, ,A
N q
i
i i i i
i i, where
and
q
T
i i i i
(6.12)
116
where i and i are the 6ni-dimensional vectors, and i 0 , if i
th module emanates from
the module M0. Intra-modular level computations required for the above step are given
next.
B. Intra-modular computations: For k = 1,…, i
( )
( ) ( )
, 1
, 1
k j
k j
j
j1
( )
,
For 1:
, where
and
A
p
j j j j j
j
k kj j
k
T
k k k k k k
k
j
( )k j
+
(6.13)
In Eq. (6.13), and are the 6-dimensional vectors and k =(k-1) for k >1. Similar to
the inverse dynamics, in forward dynamics also several computations associated with
dimension and mass-less virtual links in the multiple-DOF joints are not carried out. This
was possible due to the introduction of the concept of Euler-Angle-Joints (EAJs) in
Chapter 3. It may be noted that derivation of the intra-modular steps from the inter-
modular steps are not straightforward as in the case of inverse dynamics. Here, one
essentially requires the analytical decomposition of the matrix
k k
T
i i iU D U ˆiI obtained in Eq.
(5.34). Next, iq of Eq. (6.12) in terms of the block expressions i , i and i , are written
to find k of Eq. (6.13), for k=1, …, i. The actual computer implementation of the
proposed forward dynamics algorithm is shown in Table 6.2. Proposed forward dynamics
algorithm has computational complexity of 1 2 3(135 99 87 116)Mn n n
21 2 3n
3123)An n utational counts (131 various steps in Table 6.2
are provided in Appendix B, whereas the comparison of forward dynamics algorithm with
those available in the literature is given in Section 6.3.
92 79 . The comp for
117
Table 6.2 Recursive O(n) forward dynamics algorithm for fixed-base robotic systems
Initialization Step 1: ˆ and
6.2 Applications
In this section, the developed recursive algorithms are applied to analyze several robotic
systems and to present the efficiency of the algorithms. Numerical results are obtained
using the Recursive Dynamics Simulator (ReDySim), a MATLAB-based software,
developed during this research work. ReDySim is based on the recursive algorithms given
in Tables 6.1 and 6.2.
6.2.1 Robotic gripper
A robotic gripper, as shown in Fig. 6.1, can hold objects to be manipulated by a robotic
manipulator. It has four kinematic modules, namely, M0, M1, M2, and M3. Module M0 is
j j j
Step 2:
0
For 1:
(Inter modular)
For 1:
(Intra modular)
For 1:
(Joint level)
1
ˆ
end
ˆ
end
end
i
k
j
j
j
j k
j
i s
k n
r
j j
-
-
M O
0
0
M M
1 ,
1
For :1 (Inter modular)
For :1 (Intra modular)
For : 2 (Joint level)
call function_1
call function_2
ˆ ˆ
1
i
k
j j j
j j
j DOF
i s
k n
r
j j
-
-
M M
, , ,
,
end
1
call function_1
if ( 0 )
call function_2
ˆ ˆ ˆ
end
1
end
end
j j
j j
j
T
k j j k
T
k j
r
j j
M M A M A
A
,
ˆˆ
ˆˆ
ˆ ˆ/
ˆ
ˆ ˆ
ˆ ˆ ˆ
ˆ
j j j
T
j j j
j j j
T
j j j j
j j j
T
j j j j j
j j j j
m
m
m
function_1
M p
p
p
function_2
M M
,
0
For 1: (Inter modular)
For 1: (Intra modular)
1 (Joint level)
1
if ( 0 )
call function_3
else
j
i
j
j k
j
i s
k n
r
j j
-
-
A
1
end
For 2 :
1
call function_3
end
end
+
j j
j j j
k
j j
T
j j j j
j j j j
r
j j
p
function_3
p
118
the fixed-base, whereas module M1 has one link, module M2 has two links, and module M3
has one link. The expressions of the DeNOC matrices, the GIM, and its factors U and D ,
were already obtained as given in Eqs. (4.30), (5.47) and (5.49), respectively. Next, the
steps of inverse and forward dynamics algorithms, given in Subsections 6.1.1 and 6.1.2,
are shown in Tables 6.3 and 6.4, respectively.
Table 6.3 Steps of inverse dynamics for robotic gripper
Step 1. Forward recursion [Based on Eqs. (6.2) and (6.3)]
Module Mi Inter-modular Link ki Intra-modular
i=1 1 1 1t N q ; 1 1 1 1 1t N q N q
*
1 1w M
1 1 1
1 1 1 1 1t M E t
k=11 1 1 1
t p ;
1 1 1 1 1 11 1 1 1 1 1t p p
1 1 1 1 1 1
*
1 1 1 1 1 1w M t M E t 11
i =2 2 2,1 1 2 2t A t N q
2 2,1 1 2,1 1 2 2 2 2t A t +A t +N q N q
*
2 2 2 2 2 2w M t M E t2
21
k=12 2 2 1 1 21 1 ,1 1 1
t A t p ;
2 2 1 1 2 1 1 2 2 2 21 1 ,1 1 1 ,1 1 1 1 1 1 12t A t A t p p
21
2 2 2 2 2 2
*
1 1 1 1 1 1w M t M E t
k=22 2 2 2 2 22 2 ,1 1 2 22
t A t p ;
2 2 2 2 2 2 2 2 2 2 22 2 ,1 1 2 ,1 1 2 2 2 2 22t A t A t p p
222 2 2 2 2 2
*
2 2 2 2 2 2w M t M E t
i=3 3 3,1 1 3 3t A t N q
3 3t A ,1 1 3,1 1 3 3 3 3t +A t +N q N q
*
3 3 3 3 3 3 3w M t M E t
k=13 3 3 1 1 3 31 1 ,1 1 1 1
t A t p
3 3 1 1 3 1 1 3 3 3 3 31 1 ,1 1 1 ,1 1 1 1 1 1 1
t A t A t p p
3 3 3 3 3 3 3
*
1 1 1 1 1 1 1w M t M E t
Fig. 6.1 A robotic gripper and it modularization
M2
M1M3 M3
M2
M1
#22
#12
#11
#13
#0 (M0)
M0
Module architecture
119
Step 2. Backward re rsion [Based on Eqs. (6.5) an . )] cu d (6 6
i=3 *
3 3w w ; 3 3 3 N wT
31
k=13 3 3
*
1 1w w ; 3 31 1
p wT
i=2 *
2 2w w ; 2 2N wT
2 22
k=22 2 2
*
2 2w w ; 2 22 2
p wT
k=12 2 2 2 2
*
1 1 2 ,1w w A w
T;22
2 21 1p w
T 21
i=1 *w w A w A w
T T; 1 1 2,1 2 3,1 3
*TN w k=11
1 1 1 111 1 11 1 2 1 2 3 1
*
1 1 1 ,1 1 1 ,1w w A w A w
T T;3 1 1p w
T
Note that, in step 1 of Table 6.3, i.e., for k=1 , the 6–dimensional vector [0 g ] ,
where ‘g’ is e 3-dimensional vector due to gravitational acceleration, is added to the
acceleration 1
1 T T T
th
1t odule M1, to take into account the effect of gravity to
other links of the modules.
T r
ward Re tation of
of the first link of m
able 6.4 Steps of forward dynamics for robotic grippe
Step 1. Back cursion: Compu ˆ and [Based on Eq .11)] s. (6.10) and (6
Module M Inter-modular i Intra-m ular i Link k od
i=3 3 3ˆ ;
1
3 3
ˆ ˆ3I 3 31 1
ˆk=13 ; 3 3 31
ˆ1 1
ˆ m
i=2 2 2ˆ ;
1
2 2
ˆ ˆ2I
2 22 2ˆ
k=22 ; 2 22 2 22mˆ
k=12 22;
22
2 2 2 21 1 1 1ˆ p
T ; 2 2 21 2 ,1
TA
2 22 2ˆ
2 21 1 1ˆ m2
i=1 1 1 1 1ˆ N
T ; 1 2,1 2 3,1 3
T TA A ;
2 2 2 ; ˆ3 3
ˆ3
1
1 1 1
ˆ ˆI
k=11 3 ;
1 1 1 11 1 1 1ˆ p
TA; 1 2 1 2 3 1
1 1 ,1 1 1 ,1 1
T TA
2 2 21 1 1ˆ
21; 3 31 1
ˆ31
1 1 11 1 1ˆ m
Step 2. Forward recursion: Computation of q d on Eqs. (6.12) and (6.13)] [Base
i=1 1 1q k=11 1 11 1
i=2 2 2 2 2qT
; 2 2,1 1A ;
1 1N q 1
11k=12 2 2 21 1 1
T;21
2 2 11 1 ,1
1 1A ; 1 1 11
p
k=22 212 2 2 22 2 2 2
T; 22 2 22 ,1
A ;
21 2 2 21 1 1
p +
3 3 31 1 1
T; 31
3 3 11 1 ,1 11A ; 1 11 1i=3 3 3 3 3q
T; 3 3,1 1A ;
1 1 1N q
k=13 11p
Numerical results for inverse dynamics, i.e., to find the joint torques for a given set of
input motions, are obtained using the inverse dynamics module of ReDySim based on
recursive algorithm in Table 6.1, the steps of which for this example are given in Table
120
6.3. The motion for each joint for this purpose was computed for the time function of the
trajectory given below:
( ) (0)( ) (0)t t
2sin
2
T Tt
T T (6.14)
where (0) and ( )T denote the initial and final joint angles, respectively, as given in
Table 6.5. The joint trajectory in Eq. (6.14) is so chosen that the initial and final joint
rates and accelerations for all the joints are zeros. These ensure smooth motion of the
joints. The length and mass of the links were taken as 1 = 0.1m, 2 = = = 0.05m,
= 0.4 Kg, and = m = m = 0.2 Kg. The joint torques for the robotic gripper are
then plotted in Fig. 6.2.
1l
1l 22
l 31l
11m 21
m 22 31
In order to validate the results a CAD model of the gripper mechanism was developed in
ADAMS (2004) software and used for the computation of the joint torques. The results
are also shown in Fig. 6.2, which shows close match between the values obtained using
the proposed inverse dynamics algorithm. Hence, the numerical results are validated. As
far as the computational complexity is concerned, ReDySim took only 0.025 sec on Intel
[email protected] computing system. The ADMAS software, however, took 1.95 sec,
which is longer and is expected as it is general purpose software whose efficiency cannot
really be compared with the customized program like ReDySim proposed in this thesis.
The comparison of the efficiency with other existing algorithms is provided later in
Section 6.3.
Table 6.5 Joint motions for robotic gripper
Joints 11 12 22 13
(0) 0 0 0 90o
(T) 60o 80o 80o 120o
121
For simulation studies of the robotic gripper, forward dynamics module of the ReDySim
based on recursive algorithm in Table 6.2 is used. Numerical results for the acceleration
were obtained for the free-fall of the gripper, i.e., it was left to move under gravity
without any external torques applied at the joints. The accelerations were then
numerically integrated twice using the Ordinary Differential Equation (ODE) solver
‘ode45’ (default in ReDySim) of MATLAB. The ‘ode45’ solver is based on the explicit
Runge-Kutta formula shown by Dormand and Prince (1980). The initial joint angles and
rates are taken as 11= -60
o, 12
= 22 = 31
=0, and 11 = 21
= 22= 31
= 0, respectively.
Figure 6.3 shows a comparison of the simulated joint angles with the same obtained in
ADAMS (by using RKF45 solver) over the time duration of 1 second with a step size of
0.001 sec. The ReDySim took 0.29 sec in contrast to 39 sec required by ADAMS. In
order to show the convergence of the results, a variation of the joint angle 11simulated
using the proposed algorithm and that of using the ADAMS software are plotted in Fig.
6.4. The resulting plot is a 45o line, and thus shows a close match between the results.
(a) Torques at joints 11 (b) Torques at joints 12
(c) Torques at joints 22 (d) Torques at joints 13
Fig. 6.2 Joint torques for robotic gripper
Simulated ADAMS
0 0.5 10
0.5
1
time(s)
11 (
Nm
)
0 0.5 1-0.5
0
0.5
time(s)
12 (
Nm
)
0 0.5 1-0.1
0
0.1
time(s)
22 (
Nm
)
0 0.5 1-0.05
0
0.05
time(s)
13 (
Nm
)
122
6.2.2 A biped
In order to study the effectiveness of the proposed algorithms for tree-type systems
consisting of multiple-DOF joints, a spatial biped, as shown in Fig. 6.5(a), is considered
next. It has spherical joints at the hips, revolute joints at the knees, and universal joints at
Fig. 6.4 Convergence of joint angle 11
-130 -120 -110 -100 -90 -80 -70 -60 -50
-130
-120
-110
-100
-90
-80
-70
-60
-50
Simulated
AD
AM
S
A 45o l ine 1
1 (deg)
(a) Joint 11 (b) Joint 22
(c) Joints 12 (d) Joint 13
Fig. 6.3 Simulated joint angles for robotic gripper
Simulated ADAMS
0 0.2 0.4 0.6 0.8 1-120
-100
-80
-60
time(s)
11 (
de
g)
0 0.2 0.4 0.6 0.8 1-20
0
20
12 (
de
g)
time(s)
0 0.2 0.4 0.6 0.8 1-20
0
20
time(s)
22 (
de
g)
0 0.2 0.4 0.6 0.8 1-50
0
50
time(s)
13 (
de
g)
123
the ankles. Biped motion was analyzed for a single support phase where one of the feet
(the supporting foot during walking) is assumed to have no relative motion with respect to
the ground. This is indicated in the figure with hatched lines. Hence, the biped dynamics
can be solved as an open tree-type system like those reported in (Shih et al., 1993).
However, the following aspects distinguish the proposed modeling and simulation of the
biped under study that form new contribution of this thesis:
(a) (b)
Fig. 6.5 A 7-link biped and its module architecture
Spherical joints
at hips
Revote joints
at knees
Universal joints
at ankles
0
#11
#2
31
11
21
#31
M1 #1
2
#22
#32
12
22
32
M2
M0
Y (Sidewise)
Z (Vertical)
X (Forward)
1. Treatment of multiple-DOF joints using the concept of Euler-Angle-Joints (EAJs) as
proposed in Chapter 3.
2. Clever avoidance of the unnecessary operations with zeros associated with the
dimensions and the masses of the intermediate links, as pointed out in Section 6.1.
3. The use of modularization of the biped. The biped is divided into three modules, M0,
M1 and M2, as shown in Fig. 6.5(b). Such modularization helps one to treat module M1
and M2 in a similar manner as each module consists of three links, one spherical joint,
one revolute joint, and one universal joint. Hence computationally one can use the
same instructions. This result into a more elegant approach.
124
The model parameters for the biped are given in Table 6.6. In order to perform dynamic
analysis, the desired trajectories of the swing foot and the Center-of-Mass (COM) of the
trunk are synthesized first. The trunk’s COM trajectories are designed based on the
Inverted Pendulum Model (Kajita and Tani, 1991; and Park and Kim, 1998), which
assumes that the mass of the biped is concentrated at the trunk, the feet remain horizontal
throughout the robot’s motion and trunk moves horizontally with constant height from the
ground. The swing foot trajectory is defined as cosine function. The trajectories of the
trunk’ COM and swing foot are functions of cycle time (T), co-ordinates of COM x0(0),
y0(0) and z0(0) at T=0, stride length (ls,) and maximum foot height (hf), as derived in
Appendix C. For the spatial biped under study, T, x0(0), y0(0), z0(0), ls, and hf are assumed
to be 0.5 sec, -0.15 m, 0.08 m, 0.92 m, 0.3 m and 0.1 m, respectively. The resulting
trajectories of the COM of the trunk and the ankle of the swing foot are shown in Fig. 6.6.
Table 6.6 Model parameters for the biped
Link Length (m) Mass (Kg)
11,32 0.5 1
11, 22 0.6 1
12, 22 0.15 0.2
31 0.1×0.1(width) 5
(a) Trunk COM
(b) Ankle of the swing foot
Fig. 6.6 Designed trajectories of the trunk COM and ankle of the spatial biped
0 0.5-0.2
0
0.2
x0
time (sec)
0 0.50
0.01
0.02
y0
time (sec)
0 0.5-1
0
1
2
z0
time (sec)
0 0.5-0.5
0
0.5
xa
time (sec)
0 0.5-0.06
-0.04
-0.02
0
ya
time (sec)
0 0.5-0.1
0
0.1
za
time (sec)
125
Based on the motion of the trunk and ankles, the desired joint level trajectories, i.e.,
were
calculated using the inverse kinematics relationships, which are also provided in
Appendix C. The joint trajectories thus obtained are shown in Fig. 6.7.
1 1 1 1 11 2 1 2 3
1 1 11 1 3 3 31 2 3[ ] , , [
T T] , 2 2 2 2 21 2 3 1 2
2 2 21 1 1 3 31 2 3[ ] , , and [
T T] ,
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
Fig. 6.7 Joint trajectories of the spatial biped obtained from trunk and ankle trajectories by using inverse
kinematics relationships
0 0.5-40
-30
-20
-10
1,1
1 (
de
gre
e)
time (sec)
0 0.50
0.5
1
1,2
1 (
de
gre
e)
time (sec)
0 0.542
44
46
48
21 (
de
gre
e)
time (sec)
0 0.5-40
-30
-20
-10
time (sec)
3,1
1 (
de
gre
e)
0 0.5-91
-90.5
-90
3,2
1 (
de
gre
e)
time (sec)
0 0.5179
180
181
time (sec)
3,3
1 (
de
gre
e)
0 0.5-1
0
1
1,1
2 (
de
gre
e)
time (sec)
0 0.5-90
-89.5
-89
-88.5
time (sec)
1,2
2 (
de
gre
e)
0 0.5-40
-30
-20
-10
1,3
2 (
de
gre
e)
time (sec)
0 0.540
50
60
70
22 (
de
gre
e)
time (sec)
0 0.5-1.5
-1
-0.5
0
3,1
2 (
de
gre
e)
time (sec)
0 0.5-40
-30
-20
-10
3,2
2 (
de
gre
e)
time (sec)
Next, the inverse dynamics module of ReDySim was used to perform the force analyses
of the biped. The detailed steps (like the robotic gripper of Subsection 6.3.1, as given in
Table 6.3) are avoided for brevity. Figure 6.8 shows the joint torques for a single support
126
phase of a biped. It is worth noting that a complete walking sequence of a biped consists
of single support phase as well as a momentary double support phase for changing legs
forming a closed-loop system. The changeover of the legs demands the changing the
equations of motion. Though the double support phase may be analyzed by following the
approach given in Appendix A, yet, the same is not an efficient one. More elegant way of
analysis is reported in Chapter 7.
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
Fig. 6.8 Torque requirement at joints of the biped
0 0.5
-10
0
10
time(s)
1 1,1
(N
m)
0 0.54
6
8
10
time(s)
1 1,2
(N
m)
0 0.5-20
-10
0
time(s)
1 2 (
Nm
)
0 0.5-5
0
5
10
15
time(s)
1 3,1
(N
m)
0 0.5-4
-2
0
2
4
6
time(s)
1 3,2
(Nm
)0 0.5
-1
0
1
2
time(s)
1 3,3
(Nm
)0 0.5
-0.5
0
0.5
1
1.5
time(s)
2 1,1
(N
m)
0 0.5-6
-4
-2
0
2
4
time(s)
2 1,2
(N
m)
0 0.5-20
-10
0
10
time(s)
2 1,3
(Nm
)
0 0.5-10
-5
0
5
time(s)
2 2 (
Nm
)
0 0.5
0
2
4
time(s)
2 2,1
(Nm
)
0 0.5-2
0
2
4
6
time(s)
2 2,2
(N
m)
127
Forced simulation is performed next, where the motion of biped is studied under the
application of joint torques calculated above in Fig. 6.8. The joint motions were
calculated using the forward dynamics module of ReDySim. The plots for the simulated
joint angles are shown in Fig. 6.9 along with the desired one. It can be seen that the
simulated joint angles match with the desired joint angles up to 0.1 seconds, i.e., until 0.1
second movement of the biped. After this, system behaves unexpectedly as evident from
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
Fig. 6.9 Simulated joint angles for the biped
Simulated Desired
0 0.5-50
0
50
1,1
1 (
de
gre
e)
time (sec)
0 0.50
5
10
1,2
1 (
de
gre
e)
time (sec)
0 0.5-100
-50
0
50
21 (
de
gre
e)
time (sec)
0 0.5-500
0
500
time (sec)
1,1
2 (
de
gre
e)
0 0.5-150
-100
-50
0
1,2
2 (
de
gre
e)
time (sec)
0 0.5100
200
300
400
time (sec)
1,3
2 (
de
gre
e)
0 0.5-100
0
100
200
1,1
2 (
de
gre
e)
time (sec)
0 0.5-150
-100
-50
0
time (sec)
1,2
2 (
de
gre
e)
0 0.5-200
0
200
400
1,3
2 (
de
gre
e)
time (sec)
0 0.540
60
80
22 (
de
gre
e)
time (sec)
0 0.5-10
0
10
20
3,1
2 (
de
gre
e)
time (sec)
0 0.5-40
-30
-20
-10
3,2
2 (
de
gre
e)
time (sec)
128
the divergent plots of the simulated angles in Fig. 6.9. The deviation in the simulated
angles is mainly attributed to what is known as zero eigen-value effect (Saha and
Schiehlen, 2001). The real system may also not behave as expected due to disturbances
caused by unmodeled parameters like friction, backlash, etc. and non-exact geometrical
and inertia parameters. Hence, a control scheme must be considered, as this forms a part
and parcel of achieving proper walking. The application of control scheme will be
explained in Chapter 8.
The computational complexity of the biped using the proposed algorithms with those in
the literature is provided later in Section 6.3. In order to validate the simulation results the
law of energy conservation was used (as shown in Appendix D) where the total energy of
the biped while walking remains constant. The energy plots for the biped are shown in
Fig. 6.10, where the total energy remains constant throughout the simulation period with
maximum error in total energy of the order 10-3
. This validates the simulation results.
Fig. 6.10 Energy balance for the biped
(Maximum error in total energy =0.0058)
Total Potential Actuator Kinetic
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
50
55
60
65
70
time (s)
En
erg
y (
J)
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5
-50
0
50
100
time (s)
En
erg
y (
J)
129
6.2.3 Hyper-DOF systems
A system consisting of large number of Degrees-of-Freedom (DOF) is considered in this
thesis as a hyper-DOF system, as shown in Fig. 6.11. A long chain, flexible rope or hose,
fly line, cable, etc. are examples of hyper-DOF systems, which may move in serpentine
fashion. The concept of multibody systems may be extended to model dynamics of such
systems, which may be conceptualized as a combination of numerous bodies connected
by kinematic pairs to emulate a shape as shown in Fig. 6.11. Gatti and Perkins (2002),
Wong and Yasu (2006), and Fritzkowski and Kaminski (2008, 2010) attempted to study
the dynamics of such hyper-DOF systems. Variety of hyper-DOF systems can then be
modeled by appropriate combination of linear and torsional spring-dampers at the joints
as shown by Fritzkowski and Kaminski (2010). In a typical analysis (Fritzkowski and
Kaminski, 2008), the DOF was taken as 70 for one meter length of a rope. As indicated in
Subsection 6.1.2, if the DOF is greater than seven, i.e., n>7, the recursive algorithms
(Stelzle et al., 1997) perform much better than any conventional O(n3) algorithms, e.g.,
Fig. 6.11 A hyper-DOF multibody system
0
Ms
M1
Base
Mi Torsion
spring
Detail of the
module Mi
130
Walker and Orin (1982), Ma and Angeles (1988) and others. This aspect is investigated in
this section by applying the recursive forward dynamics algorithm of Table 6.2 with the
help of ReDySim. The dynamics of a hyper-DOF system is studied by taking a chain of
2.5 m length, constituted by 200 cylindrical elements of length 12.5 mm, 10mm diameter,
and mass one gram each. Each such link is connected to its adjoining link by a universal
joint and a torsional spring of stiffness 0.01 N-m/rad. As a result the system has 400
DOF. The simulation of motion of such a rope under free-fall is performed for 2 seconds.
Configurations of the rope are shown in Fig. 6.12 at different instant of time. The energy
plots to validate the correctness of the results appear Fig. 6.13. The CPU time in a
E8400@ 3GHz computing system was recorded to be one minute, in comparison with
estimated 1.32 minutes1 while working with Featherstone’s (1983) algorithm on the same
(a) t= 0 s (b) t= 0.25 s (c) t= 0.50 s
(d) t= 0.75 s (e) t= 1 s (f) t= 1.25 s
(g) t= 1.50 s (h) t= 1.75 s (i) t= 2 s
Fig. 6.12 Simulation of 2.5m chain with 400 DOF (2 Sec)
1 Estimated based on the equal number of steps as the ReDySim took for integration.
-2 -1 0 1 2
1
0
-1
-2
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
-2 -1 0 1 2
-2
-1
0
1
x (m)
y (
m)
131
computing system. The reduction in time is a direct result of the recursive algorithm
formulated. The time saving increases as the complexity of the systems increases.
Fig. 6.13 Energy balance for the long chain
Total Visco-Elastic Potential Kinetic
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
-0.01
0
0.01
0.02
0.03
time (s)
En
erg
y (
J)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
-4
-2
0
2
4
time (s)
En
erg
y (
J)
6.3 Computational Complexity
The computational complexities for the different steps in Tables 6.1 and 6.2 are provided
in Appendix B. The resulting computational complexities of the proposed recursive
inverse and forward dynamics algorithms calculated in terms of arithmetic operations,
namely, Multiplications/Divisions (M) and Additions/Subtractions (A) are compared
Table 6.7 Computational complexity of the recursive O(n) inverse dynamics algorithm for fixed-base systems
Algorithms Computational complexity Gripper
n1=4,n2=0,n3=0
n = 4
Biped
n1=2,n2=4,n3=6
n = 12
Hyper-DOF
n1=0,n2=200,n3=0
n =200
Proposed 1 2 3
21 2 33
(94n +58n +46n -81)M
(82n +48n +36 n -75)A
295M253A 615M497A 11519M9525A
Balafoutis et al.
( 1991)
(93n-69)M(81n-65)A 303M259A 1047M907A 18531M16135A
Angeles (1989) (105n-109)M(90n-105)A 311M255A 1151M957A 20891M17895A
Saha (1999) (120n-44)M(97n-55)A 436M333A 1396M1109A 23956M19345A
Featherstone
(1987)
(130n-68)M(101n-56)A 452M348A 1492M1156A 25932M20144A
Note: 1) M: Multiplications/Divisions, A: Addition/Subtraction; 2) n = n1+n2+n3.
132
in Tables 6.7 and 6.8, respectively. It is interesting to note that the complexities are
proportional to n1, n2, and n3, the total numbers of joint variables associated with 1-DOF,
2-DOF, and 3-DOF joints, respectively. Hence, the total number of joint variables, n, in a
system under study is nothing but n1+n2+n3. It is pointed out here that the computational
complexities of the algorithms reported in literature depend on total number of joint
variables n, irrespective of the type of joints present in the system. Hence, number of
links to be treated in the algorithm is equal to number of joint variables, whereas in the
proposed algorithm it is equal to number of joints. As a result, proposed algorithms
perform much faster when a system has multiple-DOF joints. This is evident from the
Figs. 6.14 and 6.15. Figure 6.14 shows comparisons of computational complexities for
the inverse dynamics algorithms, when system consist of 1-DOF (Fig. 6.14a), 2-DOF (Fig.
6.14b), 3-DOF (Fig. 6.14c) and equal numbers of 1- 2- and 3-DOF joints (Fig. 6.14d). It
may be seen that the proposed inverse dynamics algorithm performs as fast as the fastest
algorithm available in the literature when the system consists of only 1-DOF joints, as
shown in Fig. 6.14(a). However, when multiple-DOF joints are introduced in the system
the proposed algorithm out performs the algorithms available in the literature and
Table 6.8 Computational complexity of the recursive O(n) forward dynamics algorithm for fixed-base systems
Algorithms Computational complexity Gripper
n1=4,n2=0,n3=0
n = 4
Biped
n1=2,n2=4,n3=6
n = 12
Hyper-DOF
n1=0,n2=200,n3=0
n = 200
Proposed 1 2 3
21 2 33
(135n +99n +87n -116)M
(131n +92n +79 n -123)A
444 M 401A 1072M981A 19684M18277A
Mohan and Saha
(2007)
(173n-128)M(150n-133)A 564 M 467A 1948M1667A 34472M29867A
Saha (2003) (191n-284)M(187n-325)A 480 M 423A 2008M1919A 37916M37075A
Featherstone (1983) (199n-198)M(174n-173)A 598 M 523A 2190M1915A 39602M34627A
Lilly and Orin (1991) 3 231 1
6 2 3
3 2 51
6 6
( 10 40 51)M
( 7 50 51)A
n n n
n n n
305 M 275A 2377M1855A
1801349M
1623449A
133
significant improvement in the computational efficiency can be obtained as seen in Figs.
6.14(b-d).
(a) All 1-DOF joints (b) All 2-DOF joints
(c) All 3-DOF joints only (d) Equal number of 1-, 2- and 3-DOF joints
Fig. 6.14 Performance of the proposed inverse dynamics algorithm for a system with multiple-DOF joints
Proposed Balafoutis Featherstone Angeles
0 10 20 30 40
0
2000
4000
6000
8000
10000
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
2000
4000
6000
8000
10000
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
2000
4000
6000
8000
10000
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
2000
4000
6000
8000
10000
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
From Fig. 6.15, it is clear that the proposed forward dynamics algorithm performs better
than any algorithm available in the literature. More the number of multiple-DOF joints
more the improvement in the computational efficiency, as shown in Fig. 6.15(b-d). This is
mainly due the implicit inversion of the GIM using TUDU decomposition and
simplification of the expression associated with multiple-DOF joints. Moreover, many of
the computations required for the evaluation of the elements of U need not be repeated
134
(a) All 1-DOF joints (b) All 2-DOF joints
(c) All 3-DOF joints only (d) Equal number of 1-, 2- and 3-DOF joints
Fig. 6.15 Performance of the proposed forward dynamics algorithm for a system with multiple-DOF joints
Proposed Mohan and Saha Featherstone Lilly and Orin
0 10 20 30 40
0
0.5
1
1.5
2x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2x 10
4C
om
pu
tatio
na
l C
ou
nts
Joint variables (n)
while performing the calculation with T
U . As a result, a computer code developer can
combine many steps to enhance efficiency. In the tree-type robotic systems, such as biped,
quadruped, etc., where the DOF of the system is more than 30, and the system consists of
many multiple-DOF joints, the proposed algorithms significantly improves the
computational efficiency.
Comparison of the proposed algorithm in terms of the CPU times for a system with Large
DOF, i.e., hyper-DOF system, is also shown in Fig. 6.16, which clearly indicates that the
proposed recursive algorithm outperforms all other recursive algorithms available in the
135
literature. In fact, through a personal communication2 it was found that a flexible hose
with 1000 links and 2000 DOF took more than a day (24 hours) when simulated with the
help of commercial software RecurDyn (2009). Hence the need of a dedicated customized
algorithm is emphasized here over general purpose software for analysis of complex
system with large DOF.
Fig. 6.16 Comparison of CPU time for hyper-systems (number of steps= 9×105)
0 100 200 300 400 500 600 700
0
20
40
60
80
100
120
DOF (n)
CP
U t
ime
(m
in)
Proposed
Fetherstone
Mohan and Saha
Lil ly and Orin
6.4 Summary
In this chapter, efficient recursive inverse and forward dynamics algorithms are reported
for tree-type robotic systems consisting of multiple-DOF joints. The proposed algorithms
performed better or as good as the fastest algorithm present in the literature when the
systems consisted of only 1-DOF joints. However, with multiple-DOF joints in a system
the algorithms performed much better. This finding with the algorithms forms an integral
part of the contribution of this thesis. Several systems like robotic gripper, spatial biped,
and a hyper-DOF system were analyzed using the proposed recursive algorithms.
136
2 Dr. S. Bandopadhyay of IIT Madras
Chapter 7
RECURSIVE DYNAMICS FOR FLOATING-BASE
LEGGED ROBOTS
Robotic systems studied in Chapter 6 have their bases fixed, however, in reality many
robotic systems have their bases mobile or floating. In the case of a fixed-base robotic
system, the base does not influence the dynamics, whereas it significantly influences the
dynamics in the case of a floating-base robotic system. Space manipulators and legged
robots are examples of floating-base robotic systems. Legged robots find applications in
maintenance task of industrial plants, operations in dangerous and emergency
environments, surveillance, maneuvering unknown terrains, human care, terrain adaptive
vehicles and many more. A legged robot may be classified based on the number of legs,
e.g., biped, quadruped, hexapod, etc., or the way it balances, e.g., statically or
dynamically balanced. As reviewed in the literature survey, legged robots 1) have
variable topology, 2) move with high joint accelerations, 3) are dynamically balanced as
Center-of-Mass (COM) moves out of the polygon formed by the support feet, and 4) are
under actuated. Hence, objective of achieving stable motion is difficult to decompose into
actuator command. Therefore, control of legged robots is intricate and dynamics plays
vital role in achieving stable motion.
As mentioned earlier, legged robots have variable topologies. One approach for their
dynamic analyses is to have separate dynamic models for different topologies or
configurations as shown by Shih et al. (1993), Raibert et al. (1993), Ono et al. (2001) and
others. For example, when one foot of a biped is on the ground it can be treated as a
137
fixed-base tree-type system, as analyzed in Chapter 6, whereas it may be treated as a
closed-loop system when both the feet are on the ground, as suggested in Appendix A.
Such configuration-dependant dynamic analysis is inconvenient when the system has
many configurations, which are frequently changing as the robot walk. An alternative
approach is to treat a biped or a quadruped as a floating-base system as proposed by
Freeman and Orin (1991), Ouezdou et al. (1998) and Vukobratic et al. (2007). In this
approach, a foot touching the ground is a contact rather than fixed as in the configuration-
dependant approach of Chapter 6. Hence, it may be referred to as the configuration-
independent approach. The latter approach is more generic and helps in modeling legged
robots in a unified manner, which is presented in this chapter.
Contact problem for configuration-dependent approach is essentially to solve the
kinematic constrains together with the equations of motion. In this approach a single point
contact is assumed and the contact remains fixed during the support phase, which is
however not valid in reality. On the contrary, contact problems for configuration-
independent approach can be divided into three categories, viz., a) analytical, b) impulse-
based, and c) penalty-based. Analytical method of contact formulation (Baraff, 1994;
Stewart and Trinkle, 2000; Lloyd, 2005) involves equality and inequality constraints, and
solution of constraint forces is an optimization problem. This approach is useful when the
contact environment is composed of small number of objects of relatively simple shapes.
Presence of friction makes analytical approach quite complex. In the impulse-based
method (Mirtich and Canny, 1995), the contact between bodies is modeled as collisions at
points. Impulse-based contact has limitation, particularly, when the objects have
continuous or stable contacts. In penalty-based approach (Bogert, 1989; Gerritsen et al.,
1995; Marhefka and Orin, 1996; Nigg and Herzog, 1999), the constraint forces at the
contact points are modeled by the deformation of linear or nonlinear visco-elastic model
138
and its time derivatives. Penalty base approach, however, requires precise integration with
refined time steps during collision. Recently, Yamane and Nakamura (2006) and
Drumwright (2008) showed that the penalty based approach can be used to obtain fast and
stable simulations.
It is worth mentioning that the number of Degrees-of-Freedom (DOF) of legged robots is
generally high. For example, a humanoid robot has 40 DOF, as shown by Yamane and
Nakamura (1999). Moreover, motion of the legged robots is very complex. Hence, the
role of recursive dynamics, which leads to efficient algorithms for systems with many
DOF, is inevitable for trajectory planning and control of such robots. Recursive
algorithms are also known to provide numerically stable simulation results and thus make
the prediction of a robot’s motion more realistic.
The main objective of this chapter is to present dynamic analyses of several legged
robots, which have spatial joints, e.g., a spherical or a universal joint, in addition to the
revolute joints. In this work, a legged robot is considered as a floating-base system with
intermittent contact of feet. The penalty-based contact modeling is used to take into
account the intermittent foot-ground interaction. The concept of kinematic modules
introduced in the Chapters 4 and 5 is used to obtain efficient algorithms for recursive
dynamics of the floating-base robotic systems like biped, quadruped and hexapod
consisting of multiple-DOF joints.
7.1 Recursive Dynamics
Recursive dynamics of a floating-base robotic system, e.g., a legged robot, is important
due to following reasons: 1) The DOF of the robot is as high as 40 or more.; 2) system
consists of many multiple-DOF joints; 3) The inverse dynamics problem also requires
solution of differential equation for the base motion; and 4) The foot-ground interaction
139
inherently consumes time for computation. As a result, the use of recursive algorithms
outperforms all other methods of solving the problem of dynamics. Two such algorithms
are presented next.
7.1.1 Inverse dynamics
In contrast to the fixed-base robotic systems, inverse dynamics problem of a floating-base
system involves solution of the accelerations of floating-base, followed by the
computation of the joint torques. Therefore, in order to solve the inverse dynamics
problem, the equations of motion given by Eq. (5.12) are rewritten after separating the
floating-base accelerations, , from the joint accelerations, 0q q , i.e.,
0 00 0
0
T q 0 h=
q h
I I
I I (7.1)
where is the 6×6 matrix associated with the floating base, 0I I is the n×n matrix
associated with the rest of the tree-type legged robot, and 0 1,0 ,0
TT T
sI I I is the
n×6 matrix. Moreover, 1
TT
s
Tq qq and
1
TT
s
T are the n-
dimensional vectors and 0
TT T F
h h h Cq is the (n+n0)-dimensional vector.
The inverse dynamics of the legged robot is then formulated by using Eq. (7.1) as
1
0 0 0
0 0
, where
, whe
q I h h
I q h
0 0 0
re
I q h
h I q h
T
(7.2)
It is evident from Eq. (7.2) that inverse dynamics of a floating-base legged robot involves
the solution of accelerations of the floating-base, , followed by evaluation of joint
torques,
0q
, by using the algebraic equations. The above calculations are done by using
three steps given below:
140
Step 1: Computation of *, , and t t w (Mt MEt) wF
Step 2: Computation of *
0 0, and h h h N N w I IT
T T T T
d l 0
Step 3: Computation of 1
0 0 0 0 0andq I h I q h
where is the generalized twist-rate vector while t0q 0. The algorithm to compute the
above three steps require inter- and intra-modular recursion, that are explained next.
Step 1. Forward recursion: Computation of *, , and t t w
In this step, the generalized twist , twist-rate t t , and wrench are calculated. Inter-
and intra-modular computations involved are shown below:
*w
A. Inter-modular computations:
For module M0
0 0 0 0 0 0
0 0 0 0 0 0 0 0
,t N q t N q
t M E t wF*
w M (7.3)
For module Mi (i = 1, …, s)
,
, ,
i
i i
i i i i
i i i i i i
F
i i i i i i
t A t N q
t +A t +N q N q
t M E t w
0 0 0 0 0 0
*
0 0 0 0 0 0 0 0
,t P q t P q
w M t M E t wF
*
i
i i
t A
w M
(7.4)
Intra-moduler steps for the above inter-modular steps are given below:
B. Intra-modular computations:
For floating base #0
(7.5)
141
In Eq. (7.5) the vector [0T
gT]T, where ‘g’ is the 3-dimensional vector due to
gravitational acceleration, has been added to the acceleration of floating-base to take into
account the effect of gravity on the links. Moreover, 0t is the twist-rate of floating-base,
when . 0q 0
For link #ki (k
i = 1
i, …,
i)
( )
( ) ( )
,
, ,
For 1:
, 1
, 1
,
j k j jj
j j
j k k j j j j jj j
j j j j j
k
k k k k
k k
k k k k k k k k
k k k k k
j
j
j
, 1j
t A t p
p
t A t A t p p
p p
* ,
,
j
j j j j j j
k k
F
k k k k k k k k
j
j
w 0
M t M E t w
1j
(7.6)
where (k-1), for k>1.
Step 2. Backward Recursion: Computation of 0 0, and h I I
Having the results of Step 1 available, this step computes 0, and 0h I I with the help of
another set of inter- and intra-modular steps as follows:
A. Inter-modular computations:
For module Mi (i = s, …, 1)
*
,0
, where
, where
and
h N w w w
A M N
M M
i i i i i
j
T
i i i i i
i i
j
,
, ,
A w
A M A
i
i
T T
j i j
i
T
j i j j i
(7.7)
where i stands for array of the children of module Mi. Moreover, *
i iw w and i i
for having no children. In Eq. (7.7),
M M
if i={} M i repr nts the mass matrix of the ith
composite-modules as defined in Eq. (5.19).
ese
142
For module M0
0
0
,0
0
,0 ,0
A w
A M A
T T
j j
j
T
j j j
j
i
k
T i
k
*
0 0 0 0 0
0,0 0 0 0 0
0 0
, where
, where
and
h N w w w
I N M N
M M
T (7.8)
The above inter-modular stpes require the following sets of intra-modular computations.
B. Intra-modular computations:
For link #ki (k =
i, …, 1)
)
1
*
,
*
1, ( 1)
For 1
, where , ,
, ,
p w w w A w
w A w
w
j j j j j
k j
j
k
T T
k k k k k l k l
l
k k k k k
k
j
h j
j k
1
)
1
,0
, ,
1, ( 1) 1,
,
, where
and , ,
, ,
A M p
M M A M A
M A M A
j
j j j j j
j j
k j
j
k
T
k k k k k k
k k l k l l k k
l
k k k k k k k
j
j k
j k
T i
T i
1, M
jk kj
0
0
*
0 ,0
0 0
,0 ,0
w A w
M P
A M A
T T
l l
l
T
l l l
(7.9)
Floating base #0
0 0 0 0
0,0 0 0 0
0 0
, where
, where
and
h P w w
I P
M M
T
l
(7.10)
Step 3. Forward recursion: Computation of and 0q
In this step, , and are obtained by using the following inter- and intra-modular
computations:
0q
143
A. Inter-modular computations:
For module M0
1
00 0,0 0
00 0 0
q I h
q N q (7.11)
For module Mi (i = 1, …, s)
00
T
i i iq h (7.12)
It is worth noting that in Eq. (7.12), 00 ,0 0 0( )( )T T
i i i i iq N M A N q I q,0 0 where
,0 ,0 0
T
i i i iI N M A N .
B. Intra-modular computations:
For floating base #0
1
0 0,0 0
0 0 0
q I h
q P q
0
For 1:
q
k
T
k k k
j
h
(7.13)
For link #ki (For k = 1, …,
i)
,0 0
(7.14)
Once again, in Eq. (7.14), where . It
may be noted that inter-modular steps are compact representation of the intra-modular
steps. For example, the expression for in Eq. (7.14), for k= 1, …., i, is obtained after
writing
0 ,0 0 0( )( )T T
k k k k iq p M A P q I q
k
,0 ,0 0
T
i k k kI p M A P
i in Eq. (7.12) in terms of the block elements of i and ih . Hence, they are
equivalent.
The algorithmic implementation of the above steps is shown in Table 7.1. The
computational counts for the various steps in Table 7.1 are shown in Appendix B. The
computational complexity of the proposed inverse dynamics algorithm is obtained as
144
21 2 3 1 2 33
(164 113 96 60)M (156 113 82 66)An n n n n n , where M and A stand for
Multiplications/Divisions and Additions/Subtractions, respectively. Moreover, n1, n2, and
n3 represent total number of joint variables associated with 1-DOF, 2-DOF and 3-DOF
joints respectively, and the total number of joint variables n is equal to n1+n2+n3. Hence,
the proposed recursive inverse dynamics algorithm is of O(n) complexity. A detailed
Table 7.1 Recursive O(n) inverse dynamics algorithm for floating-base robotic systems
Step 1: Compute *, , andj j jt t w
jM
j 0qj Step 2: Compute h and Step 3: Compute and
0 0 0
0 0 0
0,0
*
0 0 0 0 0 0 0 0
*
0 0 0 0
,
0, 0, 0
,
For 1: (Inter modular)
For 1: (Intra modular)
1 (Joint level)
1
j
F
i
j k j j
i k j
i s
k
r
j j
t P q
t P q
A 1
w M t M E t w
w w M M
-
-
t A t p
, ,
,0 , ,0
1
,
For 2 :
1
j jj k k
j j j j j
k k k
j j
k
j j j j
j j
r
j j
t A t A t
p p
A A A
w 0 M O
t t p
t t 1
,0 ,0
*
*
,
end
,
end
end
j j j j j
k k
j j
F
k k j j k k j j
j k j k
p p
A A
w 0 M O
w M t M E t w
w w M M
For :1 (Inter modular)
For :1 (Intra modular)
For : 2 (Joint level)
call function_1
1
end
j
j
i
k
j
j
j DOF
i s
k
r
j j
-
-
w w
M M
,
, ,
0 0 0
0 0 0
0,0 0 0
1 (Joint level)
call function_1
1
end
end
0, 0, 0
,
- - - - - - - - - - - - - - - - - - - - - - -
j j
j j
T
k j
T
k j k
T
T
r
j j
i k j
w w A w
M M A M A
h P w
M P
I P
function_1
,0
T
j j j
j j j
T
j k i
h
p w
M p
A
1
0 0,0 0
0 0 0
0
0, 0, 0
For 1: (Inter modular)
For 1: (Intra modular)
For 1: (Joint level)
1
end
end
end
i
k
T
j j j
i k j
i s
k
r
j j
h
q I h
q P q
-
-
q
145
comparison of the proposed inverse dynamics algorithm with those existing in the
literature will be provided in Section 7.5.
7.1.2 Forward dynamics
Main objective in the forward dynamics is to find independent joint accelerations, which
are integrated twice to obtain velocities and positions. In order to perform the forward
dynamics, the equations of motion obtained in Eq. (5.12) are rewritten as follows:
*F T T
d lN N w, whereIq h h Cq (7.15)
where In contrast to the inverse dynamics algorithm, where * Fw (Mt MEt) w . t
rresponds to twist-rate when 0co q 0 here , t corresponds to q 0 Similar to the
forward dynamics of a fixed-base system, proposed in Subsection 6.1.2, the floating-base
system does not require the explicit inverse of the GIM, I, of Eq. (7.15). In fact, the
accelerations for each module are solved recursively without actually performing any
explicit inversion. The block
.
TUDU decomposition of the GIM proposed in Chapter 5 is
used to obtain the joint accelerations for the floating-base robotic systems. Based on the
block TUDU decomposition of the GIM, the equations of motion, Eq. (7.15), are
presented as
TUDU q h (7.16)
in which U and D are the (n+n0)×(n+n0), block upper-triangular and diagonal matrices.
It may be noted that h can be obtained by using the inverse dynamics algorithm given in
Subsection 7.1.1. However, the use of inverse dynamics for computation of h is not
computationally efficient as it involves computation of the terms associated with GIM,
i.e., and . On the contrary, here, h is computed efficiently together with the k M
,0kI
146
computation of the joint accelerations. Next, the generalized acceleration, q , is
calculated by using three sets of linear algebraic equations, namely,
ˆ ˆ, where
ˆ , where
T
T
h DU q
U q
=
i)
ii)
iii) T
U
D
U q
(7.17)
Equations (7.16) or the above steps actually require inter- and intra-modular recursions as
given next.
Step 1. Forward recursion: Computation of *, , andt t w
This step has similar inter- and intra-modular recursions as shown in step 1 of the inverse
dynamics algorithm given in Subsection 7.1.1. However, here t corresponds to the
generalized twist-rate when . q 0
Step 2. Backward recursion: Computation of ˆ , and
In this step, ˆ and are obtained by using backward substitutions based on inter- and
intra-modular recursions, which are given below:
A. Inter-modular computations:
For module Mi (i = s, …, 0)
*
1
ˆi) ( ), where,
ˆ
ˆ ˆii)
N w
I
i
i i i i i i
j
,
*
, and
( )
A
w
T T
j i j
j j j
i i i
j i
(7.18)
In Eq. (7.18) i and i are the 6ni-dimensional vectors, and i 0 , if i={}. Also,
*
iw is
added to i in order to take into account the effect of h, appearing in Eq. (7.17).
147
Moreover, ˆ
iI and i are already obtained in Eqs. (5.34) and (5.35), respectively. Intra-
modular computations for the above step are carried out as follows:
B. Intra-modular computations:
For link #ki (k =
i, …, 1)
1
*
,
1, ( 1)
For 1
ˆi) ( + ), where , ,
, ,
p w A
A
j j j j j j
k
k
T T
k k k k k k l k l k
l
T i
k k k k
j
j k
j k
1
1 1 1 1
*ˆ and ( )
, where
ˆ and
ˆ ˆii)
w
p
j j j j j
j j j j
j j
l l l l l
T
k k k k k k
k k k k
k k k
j
m
i
j
(7.19)
For floating base #0
0
*
0 0 0 0 0
0 ,0
1
0 0 0
ˆi) ( ),
ˆwhere , and
ˆ ˆii)
T
T
l l l l l
l
P w
A
I
*( )l l+w (7.20)
Step 3. Forward recursion: Computation of q
Finally, the generalized independent accelerations ( q ) are computed using inter- and
intra-modular steps, which are given below:
A. Inter-modular computations:
For module M0
0 0q (7.21)
For module Mi (i = 1, …, s)
, , i
i i i i
i, where
and
T
i i i i i Aq
N q (7.22)
148
in which i and i are the 6ni -dimensional vectors. Intra-modular computations for the
above step are given next.
B. Intra-modular computations:
For floating base #0
0 0q
( )
( )
, 1k j
k j
j
( )+
k j
(7.23)
For link #ki (k = 1, …,
i)
1
( ) ( )
,
For 1:
, where
, 1
and
j j j j j
j
k kj j
k
T
k k k k k k
k
j
j
A
p
(7.24)
In the above step k =(k-1) , for k>1.
It may be noted that derivation of the intra-modular steps from the inter-modular steps are
not straightforward as in the case of inverse dynamics. This essentially requires analytical
decomposition of T
i i iU D U ˆiI . Next, writing q of Eq. (7.22) in terms of the block
expressions of
i
i , i and i , the expressions of k , for k=1, …, i, as in Eq. (7.24) are
obtained.
Algorithmic implementation of the proposed recursive forward dynamics is shown in
Table 7.2. Computational counts of different steps in Table 7.2 are also provided in
Appendix B. Computational complexity of the proposed forward dynamics algorithm is
obtained as 1 1 11 2 3 1 2 32 3 3
(209 139 116 60)M(201 130 106 72)An n n n n n . The proposed
forward dynamics algorithm is also recursive with O(n) complexity. Comparison of the
proposed forward dynamics algorithm with those existing in literature will be provided in
Section 7.5.
149
Table 7.2 Recursive O(n) forward dynamics algorithm for floating-base robotic systems
Step 1: Compute t t *, , and w ˆ andk k
The proposed recursive algorithms for inverse and forward dynamics of floating-base
systems are implemented on MATLAB platform and forms sub-modules of Recursive
Step 2: Computek
Step 3: Compute
0 0 0
0 0 0 0
*
0 0 0 0 0 0 0 0
0 0
,
0, 0, 0
ˆ
For 1: (Inter modular)
For 1: (Intra modular)
1 (Joint level)
1
j
F
i
j k j j
j k
i k j
i s
k
r
j j
t P q
t P q
w M t M E t w
M M
-
-
t A t p
t A , ,
1
1
*
ˆ
For 2 :
1
ˆ
end
j jk j j j
j
k
j j j j
j j j j j
j
F
k k j j k k j j
r
j j
t A t p
M O
t t p
t t p
M O
w M t M E t w
ˆ
end
end
j k M M
,
For :1 (Inter modular)
For :1 (Intra modular)
For : 2 (Joint level)
call function_2
ˆ
ˆ ˆ
ˆ ˆ ˆ
ˆ
i
k
T
j j j j
j j j
T
j j j j j
j j
j DOF
i s
k
r
m
-
-
p
M M
1 ,
1
*
,
*
ˆ ˆ
1
end
1
call function_2
ˆ ( )
ˆ ˆ
ˆ ˆ ˆ
ˆ ( )
ˆ ˆj j
j j
j j j
j j
T
j j j j k
j j j
T
j j j j j
j j j j k
j j
r
m
M M
p w
M M
w
M M , , ,
,
0 0 0
0 0 0
*
0 0 0 0 0
1
0 0 0
ˆ
1
end
end
0, 0, 0
ˆˆ
ˆ ˆ
ˆ (
ˆ ˆ
ˆˆ
ˆˆ
ˆ ˆ/
j j
T
k j j k
T
k j
T
T
j j j
T
j j j
j j j
j j
i k j
m
m
A M A
A
M P
I P
P w )
I
function_2
M p
p
0 0
0 0 0
,
0, 0, 0
For 1: (Inter modular)
For 1: (Intra modular)
1 (Joint level)
1
call function_4
For 2 :
q
P q
-
-
A
j
i
j k
k
i k j
i s
k
r
j j
r
1
1
call function_4
end
end
function_4
p
j j
T
j j j j
j j j j
j j
+
150
Dynamics Simulator (ReDySim). The ReDySim has been used for analysis of legged
robots presented in this chapter.
7.2 Biped
There have been significant contributions in the fields of dynamics, control, and gait
planning of biped robots over the last two decades. Research in the area of biped walking
can be categorized into active (Sakagami et al., 2002; Kuroki et al., 2003; Kurazume et
al., 2003; Kaneko et al, 2008) and passive walking (McGeer, 1990; Collins et al., 2005;
Wisse et al., 2005). Active walking further can be categorized into static and dynamic
walking. In static walking, Center-Of-Mass (COM) remains within the convex hull of the
support feet, whereas in dynamics walking, Zero-Moment-Point (ZMP) (Vukobratovic,
1989) stays within the convex hull. Concept of the ZMP has played a significant role in
achieving dynamic walking for biped. The ZMP-based walking pattern generation of a
biped can mainly be divided into two. In the first approach walking pattern is obtained
from the equation of the ZMP, as shown by Hirai et al. (1998), Yamaguchi et al. (1999),
Kagami et al, (2002), and Huang. et al. (2001). Trajectory generation with the help of
equations of ZMP results into computationally expensive procedure as it is a problem of
solving complex differential equations involving many dynamic parameters. Second
approach is based on Inverted Pendulum Model (IPM), as shown by Kajita and Tani
(1991). This approach assumes that the mass of the biped is concentrated at the hip. The
IPM based trajectory generation is much simpler and relies on feedback control. It has
been successfully implemented to attain dynamic walking by Park and Kim (1998), Kajita
et al. (2003), Harada et al. (2004) and Morisawa et al. (2005). The discussion on ZMP
and trajectory generation for a 3-dimenisonal walk using IPM is provided in Appendix C.
In this section, an IPM based trajectory is used to obtain planar and spatial bipedal
dynamically stable walking. In contrast to the work by Park and Kim (1998) and Kajita et
151
al. (2003), where a controller plays the major role in achieving the stable gait, here, the
input joint torques are obtained purely based on the inverse of dynamic model of the
biped robot under study.
Note that a biped negotiates three topologies, viz., double supported, single supported,
and flight, during different phases of its walking or running. Analysis of biped dynamics
may be either configuration-dependent or configuration-independent. The former
approach uses different sets of equations of motion for different configurations, while the
latter uses a single set of equations of motion for the complete dynamic analysis. Here,
configuration-independent approach, based on the dynamics of floating-base systems
presented in Section 7.1, is followed. For the feet contact, penalty-based model, as shown
in Appendix E is used.
7.2.1 A planar biped
In configuration-independent approach, a floating-base is identified first. Knowing the
motions of the floating-base, and other joint motions, dynamic analyses may be
performed. Figure 7.1 shows a 7-link planar biped. Trunk of the biped is assumed to be
(a) Module architecture (b) Joint variables
Fig. 7.1 A 7-link planar biped
M2
Trunk
M2 M1
M0
M1
Module architecture
#12
#0, M0
#11
#21
#22
#31 #3
2
Hip
Knee
Ankle
#12
#21
#11
#22
Z
X
021
11
22
12
(x0,z0)
#32 #3
1
23 13
(xa,za)
152
the floating-base that forms module M0, and two legs form modules M1 and M2, as shown
in Fig. 7.1(a). Note that the expression of the DeNOC matrices for the system under study
is obtained in Chapter 4, whereas the GIM, its inverse and decomposition are shown in
Chapter 5. The coordinates of Center-of-Mass (COM) (x0, y0, z0) and the YXZ Euler
angles ( 0, 0, 0) are assumed to be the generalized independent coordinates for the
trunk #0, as shown in Fig, 7.1(b). It is assumed that the biped moves in a sagittal plane
and hence x0, y0, and 0 are the only variable coordinates and others are constant.
Moreover, 1 1 1 2 21 2 3 1 2 3, , , , , and 2 are the generalized coordinates associated with
the joint variables, which are also shown in Fig. 7.1(b).
The length and mass of the links are taken as l0= 0.5m, 11= = = 0
= = = = =
l 12l 21
l 22l = .5 m, 13
l = 23
0.15m, m0 = 5 Kg, and m m m m 1 Kg, and m = 0.2 Kg. The
trajectories for the COM of trunk and the swing foot are synthesized first. The COM
trajectories are designed based on the Inverted Pendulum Model (IPM), whereas the
swing foot trajectory is defined as cosine function. These trajectories are function of cycle
time (T), co-ordinates of COM x0(0), y0(0) and z0(0) at T=0, stride length (ls,) and
maximum foot height (hf) as synthesized in Appendix C. For the planar biped under
study, T, x0(0), y0(0), z0(0), ls, and hf are assumed as 1 sec, -0.15m, 0m, 0.96m, 0.3m and
0.1m, respectively. The resulting trajectories of COM of the trunk and ankle of the swing
foot are shown in Fig. 7.2. The COM and feet trajectories are then used to obtain the joint
trajectories by using the inverse kinematics relationships provided in Appendix C. The
joint trajectories thus obtained are shown in Fig. 7.3.
l
11 12 21 22 13= 23
m
153
(b) Ankle of the swing foot
Fig. 7.2 Designed trajectories of the trunk COM and ankle of the planar biped
(a) Trunk COM
0 0.5 1-0.2
0
0.2
x0
time (sec)
0 0.5 10
1
2
3
z0
time (sec)
0 0.5 1-0.5
0
0.5
xa
time (sec)
0 0.5 1-0.1
0
0.1
0.2
za
time (sec)
Fig. 7.3 Joint trajectories of the planar biped obtained from trunk and ankle trajectories by using inverse
kinematics relationships
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
0 0.5 10
10
20
30
1 1 (
de
gre
e)
time (sec)
0 0.5 1-35
-30
-25
1 2 (
de
gre
e)
time (sec)
0 0.5 190
100
110
120
1 3 (
de
gre
e)
time (sec)
0 0.5 10
20
40
time (sec)
2 1 (
de
gre
e)
0 0.5 1-80
-60
-40
-20
2 2 (
de
gre
e)
time (sec)
0 0.5 180
100
120
140
time (sec)
2 3 (
de
gre
e)
Recursive inverse dynamics algorithm derived in Subsection 7.1.1 is then used to obtain
the motion of the trunk and the driving toques for one cycle of the bipedal walking. The
motion of the trunk in Fig. 7.4 depicts that the biped travels distance of 0.3 m in one
second. During the waking cycle, variation of the angle 0 is found to be 3o, which is
154
acceptable. The corresponding joint torques are shown in Fig. 7.5. The torques are
continuous in nature. However, the discontinuity appears after 0.83 sec that is due to the
touchdown of the swing foot. This is evident from Fig. 7.6, where the vertical and
horizontal reactions for the swing and support feet are shown. The swing foot touches the
ground after 0.83 sec. As a result, vertical reaction on foot changes from 0 to 100 N and
the horizontal reaction changes from 0 to -50 N. Two types of ground models, namely,
dusty-ground model and firm-ground, have been used for modeling the foot-ground
interactions. Biped walking is successfully achieved using both the models, however the
results are reported for the firm ground model. The ground model ensures that the vertical
(b) Swing leg (Module 2)
Fig. 7.5 Joint torques at different joints of the planar biped
(a) Support leg (Module 1)
0 0.5 1-100
-50
0
50
time(s)
1 1 (
Nm
)
0 0.5 1-40
-20
0
20
time(s)
1 2 (
Nm
)
0 0.5 1-5
0
5
time(s)
1 3 (
Nm
)
0 0.5 1-50
0
50
100
time(s)
2 1 (
Nm
)
0 0.5 1-50
0
50
100
time(s)
2 2 (
Nm
)
0 0.5 1-100
-50
0
50
time(s)
2 3 (
Nm
)
(a) x0 (COM) (b) z0 (COM) (c) 0
Fig. 7.4 Motions of trunk (Floating-base) of the planar biped
Actual Designed
0 0.5 1-0.2
0
0.2
time(s)
x0(m
)
0 0.5 11
1.2
1.4
time(s)
z0 (
m)
0 0.5 1-100
-90
-80
time(s)
0 (
de
gre
e)
155
reaction force remains always positive throughout the walking cycle. Hence, ground
never pulls the legs. Moreover, the horizontal friction force was approximated by using a
pseudo-Coulomb friction model. Details of the ground models are provided in Appendix
E.
(b) Swing foot (Module 2)
Fig. 7.6 Horizontal Reaction (HR) and Vertical Reaction (VR) on the feet of the planar biped
(a) Support foot (Module 1)
0 0.5 1-10
0
10
20
time (s)
HR
(N)
0 0.5 10
50
100
time (s)
VR
(N)
0 0.5 1-60
-40
-20
0
time (s)
HR
(N)
0 0.5 10
50
100
time (s)V
R(N
)
Next, the forward dynamics is performed to simulate the motion of the biped by using the
torque obtained using the inverse dynamics. The recursive forward dynamics algorithm
given in the Subsection 7.1.2 was used to simulate the biped shown in Fig. 7.1(a). It is
evident from Fig. 7.7 that the biped moves in the forward direction (i.e., X) with stable
(a) x0 (COM) (b) z0 (COM) (c) 0
Fig. 7.7 Simulated motions of trunk of the planar biped
Simulated Desired
0 0.5 1-0.2
0
0.2
time(s)
x0 (
m)
0 0.5 11
1.2
1.4
time(s)
z0 (
m)
0 0.5 1-100
-90
-80
time(s)
0 (
de
gre
e)
156
periodic motion. Simulation results in Figs. 7.8 show that the biped follows all the desired
joint trajectories without any feedback control.
(b) Swing leg (Module 2)
Fig. 7.8 Simulated joint motions of the planar biped
(a) Support leg (Module 1)
Simulated Desired
0 0.5 10
10
20
30
1 1 (
de
gre
e)
time (sec)
0 0.5 1-35
-30
-25
1 2 (
de
gre
e)
time (sec)
0 0.5 190
100
110
120
1 3 (
de
gre
e)
time (sec)
0 0.5 10
20
40
time (sec)
2 1 (
de
gre
e)
0 0.5 1-80
-60
-40
-20
2 2 (
de
gre
e)
time (sec)
0 0.5 180
100
120
140
time (sec)
2 3 (
de
gre
e)
7.2.2 Spatial biped
In the previous subsection, dynamics of planar biped was studied, where all the joints are
1-DOF revolute joints, however, a real-life biped, e.g., a human, has many multi-DOF
joints as shown in Fig. 7.9. The ankle, for example, allows 2-DOF motion which can be
modeled as a universal joint. Similarly, each leg at the hip has a spherical joint, which
may be modeled as Euler-Angles-Joints as proposed in Chapter 3. The spatial biped in
Fig. 7.9 has seven links and 18-DOF. The biped is divided into three modules, as shown
in Fig. 7.9. Inverted Pendulum Model is again used to obtain the motion of the trunk,
whereas trajectory of swing foot is obtained as a cosine function. For this, T, x0(0), y0(0),
z0(0), ls, and hf are assumed as 0.5 sec, -0.15 m, 0.08 m, 0.92 m, 0.3 m and 0.1 m,
respectively. The trajectories are designed to achieve dynamic walk of the biped with the
157
forward velocity of 0.6 m/s. The trajectories of trunk’s COM and swing foot are shown in
Fig. 7.10. Note that (x0, y0, z0) represent the co-ordinates of the Trunk’s COM, i.e., O0 in
Fig. 7.9, in the inertial frame (O-XYZ), whereas ( 0, 0, 0) represent the YXZ Euler
Angles between frames O-XYZ and O0-X0Y0Z0.
Fig. 7.9 A spatial biped and its modularization
#31
Spherical joints at hips
Revote joints at knees
Universal joints at ankles
#12
#22
#32
M2
#0 (M0)
M1
#21
#11
M2 M1
M0
Module architecture
Y (Sidewise)
Z (Vertical)
X (Forward)
Y0Z0
X0O0
O
(b) Ankle of the swing foot
Fig. 7.10 Designed trajectories of the trunk COM and ankle of the spatial biped
(a) Trunk COM
0 0.5-0.2
0
0.2
x0
time (sec)
0 0.50
0.01
0.02
y0
time (sec)
0 0.5-1
0
1
2
z0
time (sec)
0 0.5-0.5
0
0.5
xa
time (sec)
0 0.5-0.06
-0.04
-0.02
0
ya
time (sec)
0 0.5-0.1
0
0.1
za
time (sec)
158
The desired joint trajectories, i.e.,
, calculated from the trunk and feet
trajectories by using inverse kinematics relationships, are shown Fig. 7.11. The length and
mass of the links are taken as l0= 0.1m, w0= 0.1m 1
1 1 1 1 11 2 3 1 2
1 1 11 1 1 3 31 2 3[ ] , , [T T
22
2 3]T
l l1l 22
l 13l 23
l
= 13m = 23
m
] ,
2 2 2 21 2 3 1
2 21 1 1 31 2 3[ ] , , and [T
1m 12
m 21m 22
m
1 = 12 = 2 = = 0.5 m, = =
0.15m, m0 = 5 Kg, and 1 = = = 1 Kg, and = 0.2 Kg. It may be
(b) Swing leg (Module 2)
Fig. 7.11 Joint trajectories of the spatial biped obtained from trunk and ankle trajectories by using inverse
kinematics relationships
(a) Support leg (Module 1)
0 0.5-1
0
1
1,1
1 (
de
gre
e)
time (sec)
0 0.5-91
-90.5
-901,2
1 (
de
gre
e)
time (sec)
0 0.5-40
-30
-20
-10
1,3
1 (
de
gre
e)
time (sec)
0 0.542
44
46
48
21 (
de
gre
e)
time (sec)
0 0.50
0.5
1
3,1
1 (
de
gre
e)
time (sec)
0 0.5-40
-30
-20
-10
time (sec)
3,2
1 (
de
gre
e)
0 0.5-1
0
1
1,1
2 (
de
gre
e)
time (sec)
0 0.5-90
-89.5
-89
-88.5
time (sec)
1,2
2 (
de
gre
e)
0 0.5-40
-30
-20
-10
1,3
2 (
de
gre
e)
time (sec)
0 0.540
50
60
70
time (sec)
22 (
de
gre
e)
0 0.5-1.5
-1
-0.5
0
3,1
2 (
de
gre
e)
time (sec)
0 0.5-40
-30
-20
-10
time (sec)
3,2
2 (
de
gre
e)
159
noted that four points of the foot plane are monitored to check the status of contact in
contrast to two points as in the case of planar biped. This is outlined in Appendix E.
Inverse dynamics of the biped was then performed to obtain the motion of the trunk and
the joint torques for given input joint motions. Fig 7.12 shows that for the given joint
motions the biped travels distance of 0.3m in 0.5 sec in the forward direction (i.e., X),
whereas motion along Z remains unchanged. This happened due to the assumption that
the COM stays always at a level. The orientation of the trunk represented in terms of
Euler angles is limited to 2o. Corresponding torques are shown in Fig. 7.13. It is worth
noting that at touch down the joint torques are smoother than that of the planar biped.
This is mainly due to the spatial motion of the biped and presence of the multiple-DOF
joints at the ankles and hips.
Fig. 7.12 Motions of trunk of the spatial biped
(a) Center-of-Mass
(b) Euler angles
Actual Designed
0 0.5-0.2
0
0.2
x0
time (sec)
0 0.50
0.01
0.02
y0
time (sec)
0 0.50.92
0.94
0.96
0.98
1
1.02
z0
time (sec)
0 0.5-4
-2
0
2
time(s)
0 (
de
gre
e)
0 0.5-4
-2
0
2
time(s)
0
(de
gre
e)
0 0.5-4
-2
0
2
time(s)
0 (
de
gre
e)
160
It may be pointed out that the single support phase of a spatial biped with the same model
parameters was also analyzed in Chapter 6. There, the biped was assumed as a fixed-base
robotic system, where the foot is the fixed-base. For the sake of comparison, the joint
torques ]T
as shown in Fig. 7.13 for the floating-base system, may be compared with
1 1 1 1 1 2 2 2 2 21 2 3 1 2 1 2 3 1 2
1 1 1 2 2 21 1 1 3 3 1 1 1 3 31 2 3 1 2 3[ ] , , [ ] , [ ] , and [T T T
1 1 1 1 1 2 2 2 2 21 2 3 1 2 1 2 3 1 2
1 1 1 2 2 23 3 3 1 1 1 1 1 3 33 2 1 1 2 3[ ] , , [ ] , [ ] , , and [ ]T T T
in
Fig. 7.13 Joint torque at different joints of the spatial biped
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
0 0.5-1
0
1
2
time(s)
1 1,1
(N
m)
0 0.5-5
0
5
10
time(s)
1 1,2
(N
m)
0 0.5-10
0
10
20
time(s)
1 1,3
(N
m)
0 0.5-20
-10
0
10
time(s)
1 2 (
Nm
)
0 0.5-1
0
1
time(s)
1 3,1
(N
m)
0 0.5-10
0
10
time(s)
1 3,2
(N
m)
0 0.5-1
0
1
2
time(s)
2 1,1
(N
m)
0 0.5-10
-5
0
5
time(s)
2 1,2
(N
m)
0 0.5-20
-10
0
10
time(s)
2 1,3
(N
m)
0 0.5-10
-5
0
5
time(s)
2 2 (
Nm
)
0 0.5-5
0
5
time(s)
2 3,1
(N
m)
0 0.5-5
0
5
10
time(s)
2 3,2
(N
m)
T
161
Fig. 6.6 for the fixed-base system. The comparison of the figures Figs. 6.6 and 7.13 leads
to the following observations:
Joint torques for the swing leg match immediately after the lift-off and before
touchdown.
For the support leg, torques match at the hip and the knee, but torques at the ankle
differ. The difference in torques at the ankle is mainly due to the assumption of foot
remaining fixed during the support phase.
The dynamic modeling of the biped as floating-base system not only gives rise to
unified approach to model different phases of motion but also allows one to simulate
the biped on variety of surfaces just by changing the parameters of the ground model.
Forward dynamics was then performed with the values of the torques obtained in inverse
dynamics calculations. Simulated motions of the trunk are shown in Fig. 7.14. Here, the
attitude of the biped is uncontrollable after 0.1 sec, as depicted in Fig. 7.14(b).
(b) Euler angles
Fig. 7.14 Simulated motions of trunk of the spatial biped
(a) Center-of-Mass
Simulated Desired
0 0.50
0.05
0.1
time(s)
y0 (
m)
0 0.5-0.2
0
0.2
time(s)
x0 (
m)
0 0.50.7
0.8
0.9
1
time(s)
z0
0 0.5-600
-400
-200
0
time(s)
0(d
eg
ree
)
0 0.5-50
0
50
100
time(s)
0(d
eg
ree
)
0 0.5-1000
-500
0
time(s)
0(d
eg
ree
)
162
Corresponding simulated joint angles are shown in Fig. 7.15 from which it may be seen
that the biped is unable to follow the desired trajectory after 0.1 sec. This is attributed to
the propagation of numerical errors in computation, which is expected for complex
systems. In an actual system, it may not happen if all parameters were identified
accurately. However, in real systems inaccuracy is inevitable due to manufacturing errors
in the components of the biped. Moreover, many unmodeled phenomenon like backlash
in the actuators, joint frictions, etc. may lead to the deviation of the system’s behavior.
(b) Swing leg (Module 2)
Fig. 7.15 Simulated joint motions of the spatial biped
(a) Support leg (Module 1)
Simulated Desired
0 0.50
200
400
600
1,1
1 (
de
gre
e)
time (sec)
0 0.5-200
-100
0
1,2
1 (
de
gre
e)
time (sec)
0 0.5-400
-200
0
200
1,3
1 (
de
gre
e)
time (sec)
0 0.50
50
100
150
21 (
de
gre
e)
time (sec)
0 0.5-1000
-500
0
500
3,1
1 (
de
gre
e)
time (sec)
0 0.5-200
0
200
400
time (sec)
3,2
1 (
de
gre
e)
0 0.5-400
-200
0
200
1,1
2 (
de
gre
e)
time (sec)
0 0.5-200
-100
0
time (sec)
1,2
2 (
de
gre
e)
0 0.5-600
-400
-200
0
1,3
2 (
de
gre
e)
time (sec)
0 0.50
100
200
time (sec)
22 (
de
gre
e)
0 0.5-50
0
50
100
3,1
2 (
de
gre
e)
time (sec)
0 0.5-150
-100
-50
0
time (sec)
3,2
2 (
de
gre
e)
163
Hence, a system like the biped must be controlled. The issue of control will be taken up in
Chapter 8.
7.3 Quadruped
Apart from the biped robots extensive research work in the field of quadruped legged
robots has been reported. Muybridge (1957) was first to present a systematic study on
different gaits of quadruped horse. Later, Gambaryan (1974) provided the detailed study
of different gaits and mechanics of quadruped mammals. Raibert (1990) used symmetry
in quadruped motion and built a hydraulically actuated quadruped. Inspired by the work
of Raibert, Furusho et al. (1995), Kimura et al. (1999), Ridderstrom et al. (2000),
Marhefka et al. (2003) and Poulakakis et al. (2006) built several quadruped machines.
The major research in the field of quadruped is on achieving dynamic walking and
running. This work mainly attempts dynamic walking of the quadruped. Early work on
quadruped walking can be found in the reference of Miura et al. (1985). Buehler (1999)
presented the open loop dynamic walking, where quadruped with one actuator per leg was
considered. The work done by Ridderstrom et al. (2000) mainly pertains to achieve
statically balanced gait where three feet always remain on the ground. Kurazume et al.
(2001) presented an adaptive attitude control scheme of a quadruped during support
phase. Later, Doi et al (2005) presented quadruped walking on steep slope.
Here, the dynamic analysis of a spatial quadruped is reported based on trotting gait, where
diagonal legs move in synchronized manner. In order to study the spatial behavior, a 9-
link, 18-DOF spatial quadruped as shown in Fig. 7.16 is considered. It has universal joints
at the hips, whereas knees contain revolute joints. The quadruped is divided into five
modules, as shown in Fig. 7.16(b). The Inverted Pendulum Model (IPM) and cosine
function were again used to attain the trajectory of the COM of trunk and
164
swing foot, respectively. For this, the cycle time (T), the co-ordinates of COM x0(0), y0(0)
and z0(0), the stride length (ls,) and the maximum foot height (hf) are taken as 1 sec, -0.15
m, 0 m, 0.5 m, 0.3m and 0.08 m, respectively. The trajectory was designed to attain the
forward velocity of 0.4 m/s. The trajectories are show in Fig. 7.17.
(a) (b)
Fig. 7.16 A quadruped and its modularization
YZ
Trunk (Floating-base)
The desired trajectories at the joint levels, i.e., 1 11 2
1 11 11 2[ ] ,
T ,
42
2 2 3 3 4 41 2 1 2 1 2
2 2 3 3 41 1 1 1 1 11 2 1 2 1[ ] , , [ ] , , [ ] , and
T T T , calculated from the
(a) Trunk COM
(b) Ankle of the swing foot
Fig. 7.17 Designed trajectories of the trunk COM and ankle of the quadruped
0 0.5 1-1
0
1
y0
time (sec)
0 0.5 1-1
0
1
2z
0
time (sec)
0 0.5 1-0.2
0
0.2
x0
time (sec)
0 0.5 1-1
0
1
ya
time (sec)
0 0.5 10
0.05
0.1
za
time (sec)
0 0.5 1-0.5
0
0.5
xa
time (sec)
Universal joints at hips
Revolute joints at kneesFeet Contacts
X
Leg1
Leg2
Leg3 Leg4
O
Z0 Y0
X0 O0
M0
M4
M3
M1
M2
12
22
11
21
0
23 24
14 13
165
COM and the feet trajectories by using inverse kinematics, are shown in Fig. 7.18. The
length and mass of the links were taken as 0 = 1m, 1 = 1 = 2 = = = = = = 0.3m,
= 4 Kg, and = = = = = = = = 1 Kg.
l
m
1l
4
2l
1l 22
l 31l 32
l 41l 42
l
0m 11m 12
m 21m 22
m 31m 32
m 41 2m
Trunk motions were obtained from the joint motions by using inverse dynamics algorithm
shown in Table 7.1. The motions of trunk are shown in Fig. 7.19. Figure 7.19(b) shows
that the given joint motions provide finer attitude control as the maximum change in the
Euler angles associated with trunk is limited to 2o. The joint torques were then calculated
for the prescribed trunk and joint motions. Figure 7.20 shows joint torques at hip and
knee for swing and support legs. The discontinuity in the torque after 0.8 s is due to
touchdown of the swing legs.
(a) Support leg (Modules 1 and 4)
(b) Swing leg (Modules 2 and 3)
Fig. 7.18 Joint trajectories of the quadruped obtained from trunk and ankle trajectories by using inverse
kinematics relationships
-89
0 0.5 1-91
-90
1,1
1 a
nd
1,1
4
e (setim c)
0 0.
60
5 10
20
40
1,2
an
d
1,2
14
(sec)time
0 0.5 1-70
-65
-60
-55
1 a
nd
4
22
e (sectim )
0 0.5 1-91
-90
-89 60
time (se
1,1
2 a
nd
1,1
3
c)
0 0.5 10
20
40
1,2
an
d
1,2
23
(sectime )
0 0.5 1-100
-80
-60
-40
time (sec)
22 a
nd
23
166
Fig. 7.20 Joint torques at different joints of the quadruped
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
0 0.5 1-10
-5
0
5
time(s)
1 1,1
(N
m)
0 0.5 1-20
-10
0
10
time(s)
1 1,2
(N
m)
0 0.5 1-10
0
10
time(s)
1 2 (
Nm
)
0 0.5 1-10
0
10
20
time(s)
2 1,1
(N
m)
0 0.5 1-20
0
20
time(s)
2 1,2
(N
m)
0 0.5 1-50
0
50
100
time(s)
2 2 (
Nm
)Fig. 7.19 Motions of trunk of the quadruped
(a) Center-of-Mass
(b) Euler angles
Actual Designed
0 0.5 1-0.1
0
0.1
time(s)
y0(m
)
0 0.5 10.4
0.5
time(s)
z0 (
m)
0 0.5 1-0.2
0
0.2
time(s)
x0 (
m)
0 0.5 1-5
0
5
time(s)
0 (
de
gre
e)
0 0.5 1-5
0
5
time(s)
0 (
de
gre
e)
0 0.5 1-5
0
5
time(s)
0 (
de
gre
e)
The simulation was performed, based on the torques obtained in Fig. 7.20, by using the
forward dynamics algorithm presented in Table 7.2. The variation of the COM of the
167
trunk and the Euler angles are shown in Fig 7.21, which depicts that the quadruped moves
in the forward direction (X), however it is unable to follow the desired trajectories after
0.8 sec. Figure 7.22 shows the variation of the joint angles, which also follow the desired
(b) Swing leg (Module 2)
Fig. 7.22 Simulated joint motions of the quadruped
(a) Support leg (Module 1)
Simulated Desired
0 0.5 1-110
-100
-90
-80
1,1
1 (
de
gre
e)
time (sec)
0 0.5 10
20
40
60
1,2
1 (
de
gre
e)
time (sec)
0 0.5 1-100
-80
-60
-40
21 (
de
gre
e)
time (sec)
0 0.5 1-110
-100
-90
-80
time (sec)
1,1
2 (
de
gre
e)
0 0.5 10
20
40
60
1,2
2 (
de
gre
e)
time (sec)
0 0.5 1-100
-80
-60
-40
time (sec)
22 (
de
gre
e)
Fig. 7.21 Simulated motions of trunk of the quadruped
(a) Center-of-Mass
(b) Euler angles
Simulated Desired
0 0.5 1-0.1
0
0.1
time(s)
y0 (
m)
0 0.5 10.4
0.5
time(s)
z0 (
m)
0 0.5 1-0.2
0
0.2
time(s)
x0
0 0.5 1-5
0
5
10
15
time(s)
0(d
eg
ree
)
0 0.5 1-10
-5
0
5
time(s)
0(d
eg
ree
)
0 0.5 1-10
-5
0
5
time(s)
0(d
eg
ree
)
168
trajectories till 0.8 sec. Once again, the deviation of the actual trajectories from the
desired one is due to the propagation of numerical errors. As discussed at the end of
Subsection 7.2.2, these deviations may not actually happen in real system if the
quadruped is correctly modeled. However, uncertainty is inevitable and a control strategy
must be introduced. The control strategy will be explained in Chapter 8.
7.4 Hexapod
Dynamic analysis of hexapod walking was carried out next to understand its behavior by
using algorithms presented in Subsections 7.1.1 and 7.1.2. For such systems, tripod gait is
the most popular one, where the triangularly placed legs move in synchronization. Hence,
if the COM of the hexapod remains within the polygon formed by the support feet, the
hexapod walking is statically balanced. Any trajectory that follows the above condition
will be able to achieve a stable gait. However, this limits the speed of walking. Moreover,
walking on rough terrain, self-righting (Saranli et al., 2004), etc. lead to dynamic walking.
Figure 7.23 shows 13-link 18-DOF spatial hexapod, where all the joints are assumed to be
revolute. In order to use the modular dynamics algorithm proposed in this thesis, the
hexapod was divided into seven modules, as shown in Fig. 7.23(b). Using IPM approach,
trajectory of COM of the trunk was obtained in order to make the hexapod move at a
(a) (b)
Fig. 7.23 A hexapod and its modularization
ZY
Trunk (Floating-base)
Revolute jointsFeet Contacts
X
Leg1
Leg2
Leg3
Leg4
Leg5
Leg6
Z0 Y0
X0 O0
O
M0
M5
M6
M1
M2
12
22
11
21
0
26 25
15 16
25
M4
M3
23 24
14 13
169
speed of 0.8 m/s. For this, T, x0(0), y0(0), z0(0), ls, and hf are assumed as 0.5 sec, -0.20 m,
0m, 0.55 m, 0.4 m and 0.08 m, respectively. The trajectories of trunk COM’s and ankle of
swing foot thus obtained are shown in Fig. 7.24.
(a) Trunk COM
0 0.5-0.5
0
0.5
x0
time (sec)
0 0.5-1
0
1
2
y0
time (sec)
0 0.5-1
0
1
z0
time (sec)
0 0.5-0.5
0
0.5
xa
time (sec)
0 0.5-1
0
1
ya
time (sec)
0 0.50
0.05
0.1
za
time (sec)
(b) Ankle of the swing foot
Fig. 7.24 Designed trajectories of the trunk COM and ankle of the hexapod
Fig. 7.25 Joint trajectories of the hexapod obtained from trunk and ankle trajectories by using inverse
kinematics relationships
(a) Support leg (Modules 1, 4 and 5)
(b) Swing leg (Modules 2, 3 and 6)
0 0.2 0.4-100
-80
-60
-40
11,
14 a
nd
15
time (sec)
0 0.2 0.4-50
-40
-30
-20
21,
24 a
nd
25
time (sec)
0 0.2 0.4-150
-100
-50
0
12,
13 a
nd
16
time (sec)
0 0.2 0.4-100
-50
0
22,
23 a
nd
26
time (sec)
170
The desired trajectories at the joint levels, i.e., 1 1 2 2 3 31 2 1 2 1 2, , , , , ,
, 5 54 4 61 21 2 1 2, , , , and 6 ,
= 41l = 42
l = 51l = 52
l = 61l = 62
l
42m = 51
m = 52m = 61
m = 62m
eet trajectories, are shown in Fig.
7.25 above. The length and mass of the links were taken as l = 1m, l = l = l = l = l = l
calculated using COM and f
= 0.3m = 4 Kg, and =
= 1 Kg.
Inverse dynamics results are shown in Fig 7.26 and 7.27. The motions of the trunk (Fig.
7.26) show that the hexapod travels 0.4 m in 0.5 sec in the forward direction (X), whereas
the orientations of trunk shown by Euler Angles vary within 0.3 only. This shows that
fine control over attitude of the trunk can be achieved by appropriate selection of the
parameters of trajectory. Figure 7.27 shows the joint torques needed to achieve the
desired motion of the trunk that was synthesized using IPM. It is worth noting that for the
given joint motions the joint torques are continuous, and the tendency of discontinuity is
0
=
11 12 21 22 31 32
21 = 22m = 31
m = 32m = 41
m =, 0m 11m 12
m m
o
(a) Center-of-Mass
Fig. 7.26 Motions of trunk of the hexapod
Actual Designed
0 0.5-0.5
0
0.5
time(s)
x0(m
)
0 0.50.53
0.54
0.55
0.56
time(s)
z0 (
m)
0 0.5-0.02
0
0.02
time(s)
y0 (
m)
0 0.5
-0.5
0
0.5
time(s)
0 (
de
gre
e)
0 0.5
-0.5
0
0.5
time(s)
0 (
de
gre
e)
0 0.5
-0.5
0
0.5
time(s)
0 (
de
gre
e)
(b) Euler angles
171
much less pronounced in comparison with the biped and quadruped even after the
touchdown at 0.45 sec.
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
0 0.5-40
-20
0
20
time(s)1 1 (
Nm
)
0 0.5-10
-5
0
5
time(s)
1 2(N
m)
1
0 0.5-40
-20
0
20
time(s)
2 1 (
Nm
)
0 0.5-20
0
20
time(s)2 2 (
Nm
)
4
Fig. 7.27 Joint torque at different joints of the hexapod
Like the other walking robots in the previous section, the motion of hexapod was
simulated for the joint torques shown in Fig. 7.27. Simulation results, in Fig. 7.28, show
(a) Center-of-Mass
Simulated Desired
0 0.5-0.2
0
0.2
time(s)
x0 (
m)
0 0.50.53
0.54
0.55
0.56
time(s)
z0 (
m)
0 0.5-0.02
0
0.02
time(s)
y0 (
m)
0 0.5-0.4
-0.2
0
0.2
time(s)
0 (
de
gre
e)
0 0.5
-0.5
0
0.5
time(s)
0 (
de
gre
e)
0 0.5-0.4
-0.2
0
0.2
time(s)
0 (
de
gre
e)
(b) Euler angles
Fig. 7.28 Simulated motions of trunk of the hexapod
172
that the hexapod moves in the forward direction (X), while its orientation, shown by the
Euler angles, deviate only at the end of the walking cycle. Similarly, the hexapod is able
to follow the desired joint angles with little variations at the end as depicted in Fig. 7.29.
The controlled simulation will be taken up in Chapter 8.
Fig. 7.29 Simulated joint motions of the hexapod
(a) Support leg (Module 1)
(b) Swing leg (Module 2)
Simulated Desired
0 0.5-100
-80
-60
-4011 (
de
gre
e)
time (sec)
0 0.5-50
-40
-30
-20
21 (
de
gre
e)
time (sec)
0 0.5-150
-100
-50
0
12 (
de
gre
e)
time (sec)
0 0.5-100
-50
0
50
time (sec)
22 (
de
gre
e)
7.5 Computational Efficiency
Since recursive algorithms are well known for computational efficiencies when the
Degrees-of-Freedom (DOF) are many, it was decided to look into this aspect for the
floating-base system. The computational efficiencies for the inverse and forward
dynamics algorithms, given in Tables 7.1 and 7.2, are compared in Tables 7.3 and 7.4,
respectively, with those available in the literature. As expected, the computational
complexities depend on the total number of joint variables, n, in the system at hand. The
number ‘n’ is the total of joint variables associated with 1-, 2- and 3-DOF joints, i.e., n1,
n2, and n3, respectively. As evident form Tables 7.3 and 7.4 and Figs. 7.30 and 7.31, the
proposed algorithms are computationally more efficient than those available in the
173
literature. The efficiencies were mainly achieved from clever modeling of multiple-DOF
joints as proposed in Chapter 3. On this aspect, Yamane and Nakamura (1999) showed
that 40 DOF humanoid has 12 spherical joints and 4 revolute joints. Each spherical joint
can be represented as three intersecting revolute joints. Such an approach will require one
to have 41 links connected by 40 revolute joints. On the contrary, the use of Euler Angles
Table 7.3 Computational complexity of the recursive O(n) inverse dynamics algorithm for floating-base systems
Algorithms Computational complexity in terms of
n = n1+n2+n3
F
b
n
n
n
loating B
ase
0 = 6
iped
1=2,n2=4,n3=6
= 12, n0 = 6
Quadruped
n1=4,n2=8,n3=0
n = 12, n0 = 6
Hexapod
n1=12,n2=0,n3=0
n = 12, n0 = 6
Proposed 1 2 3
21 2 33
(164n +113n +96n )M
(156n +113n +82 n )A
6
0M66A 1416M 1322A 1620M 1594A 2028M 1938A
**Balafoutis
et al.
( 1991)
(93n-69)M(81n-65)A+
2 232
11 65(10 11 42)M( 54)A
2 2n n n n
6
0M66A 3011M 2222A 3011M 2222A 3011M 2222A
**Featherstone (130n-68)M(101n-56)A+
(1987) 2 2(10 31 41)M(6 40 46)An n n n
6
0M66A 3479M 2644A 3479M 2644A 3479M 2644A
**Saha (1999),
Bhangale and
Saha ( 2004)
(120n-44)M(97n-5
2(11n
5)A+
242 18)M(7 44 53)An n n
60M66A 3682M 2782A 3682M 2782A 3682M 2782A
Note: M: Multiplications/Divisions, A: Addition/Subtraction;
**Complexity assumed as the computation of Recursive Newton Euler Algorithm (RNEA) and Composite Rigid
Body Algorithm (CRBA) proposed by the same author
Table 7.4 Computational complexity of the recursive O(n) forward dynamics algorithm for floating-base systems
Algorithms Computational
complexity
(n = n1+n2+n3)
Floating
base
n0 = 6
Biped
n1=2,n2=4,n3=6
n = 12, n0 = 6
Quadruped
n1=4,n2=8,n3=0
n = 12, n0 = 6
Hexapod
n1=12,n2=0,n3=0
n = 12, n0 = 6
Proposed 1 11 2 32 3
11 2 33
(209n +139 n +116 n )M
(201n +130n +106 n )A
60M 72A 1430M 1624A 2008M 1910A 2568M 2478A
McMillan et al.
( 1998)
(224n)M (205n)A 158M 131 2846M 2591A 2846M 2591A 2846M 2591A
Stejskal and
Valasek(1990)*
(226n)M (206n)A 158M 131* 2870M 2603A 2870M 2603A 2870M 2603A
McMillan
(1998)
3 21 1 1
6 2 3
3 2 51
6 6
( 17 175 )M
( 13 160 )A
n n n
n n n
137M 91A 5081M 4181A 5081M 4181A 5081M 4181A
Note: 1) M: Multiplications/Divisions, A: Addition/Subtraction; 2) DOF = n0+ n.
* When implemented on floating base systems
** Assumed same as that of McMillan et al. (1998) as both use articulated body algorithm
174
Joints (EAJs) in Chapter 3 treats each spherical joint as three intersecting 1-DOF revolute
joints, but no physical link between 1st and 2
nd and 2
nd and 3
rd joints. As a result, only 17
links, instead of 41 links, are required for the analysis of the above-mentioned biped,
which has 12 spherical and 4 revolute joints. This brings significant savings in the
computational complexity. Similar benefits were achieved in other walking robots
reported in this chapter. This was not possible in the work reported by Sugihara et al.
(2002), Kurazume et al. (2003), Vukobratovic et al. (2007), Kwon and Park (2009) and
others.
(a) All 1-DOF (b) All 2-DOF joints
(c) All 3-DOF (d) Equal number of 1-, 2- and 3-DOF joints
Fig. 7.30 Performance of the proposed inverse dynamics algorithm for a system with multiple-DOF joints
Proposed Balafoutis Featherstone Saha
0 10 20 30 40
0
0.5
1
1.5
2
2.5
3x 10
4C
om
pu
tatio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2
2.5
3x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2
2.5
3x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2
2.5
3x 10
4C
om
pu
tatio
na
l C
ou
nts
Joint variables (n)
175
It may be noted that biped, quadruped and hexapod analyzed in the previous subsection
contain different combinations of multiple-DOF joints, however, have a total of 12 joint
variables. Hence, the use of any existing algorithms for the analysis will require the same
computational counts as shown in Tables 7.4 and 7.5. However, with the use of the
proposed algorithms the quadruped requires less computational counts than the hexapod.
This is due to the presence of universal joints in the quadruped. Moreover, the biped
requires even less computational count than the quadruped, as shown in Tables 7.4 and
7.5, due to presence of spherical joints. This is also evident from Figs. 7.30 and 7.31,
where the slopes for the systems with multiple-DOF joints are much less in both inverse
(a) All 1-DOF (b) All 2-DOF joints
(c) All 3-DOF (d) Equal number of 1-, 2- and 3-DOF joints
Fig. 7.31 Performance of the proposed forward dynamics algorithm for a system with multiple-DOF joints
Proposed McMillan Valasek McMillan
0 10 20 30 40
0
0.5
1
1.5
2x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
0 10 20 30 40
0
0.5
1
1.5
2x 10
4
Co
mp
uta
tio
na
l C
ou
nts
Joint variables (n)
176
and forward dynamics. This is an important observation and contribution of this thesis as
well. It is pointed out here that in contrast to the inverse dynamics algorithm for fixed-
base system, the same for floating-base systems requires some additional computations,
mainly, to compute elements of the Generalized Inertia Matrix (GIM) as evident from Eq.
(7.1). Computational counts for such inverse dynamics algorithm for floating-base system
are not found in the literature. Hence, the computational count of the proposed inverse
dynamics algorithms is compared with the total computational count of Recursive
Newton-Euler Algorithm (RNEA) and Composite-Rigid-Body Algorithm (CRBA)
proposed by the same author.
7.6 Summary
In this chapter, efficient recursive Order (n) inverse and forward dynamics algorithms
were obtained for the analyses of floating-base robotic systems consisting of multiple-
DOF joints. Several important legged robots were analyzed using these algorithms, which
required for their design and control. The proposed algorithms performed little better than
the fastest algorithm available in the literature when the robots consist of only 1-DOF
joints but performed much better when the robot have many multiple-DOF joints.
177
178
Chapter 8
SIMULATION OF CONTROLLED LEGGED ROBOTS
A controller is an essential part of a robotic system in achieving desired motion. A
Proportional Integral Derivative (PID) controller is the simplest form of controller used
for this purpose. A PID controller is widely used in industries for control of processes or
machines. In a robotic system, e.g., an industrial robot, a PID controller independently
controls motion of each joint ignoring the effects of the system’s dynamics. However, for
accomplishing complex motion or task, PID controller does not always result into best
performance, as shown by Lewis et al. (2004), Kelly et al. (2005), and Craig (2006). The
legged robots discussed in Chapter 7 are meant to perform a variety of complex tasks. As
a result, the use of a PID controller without taking into account dynamics of the legged
robots would result into poor control performance. On the other hand, the use of model-
based controllers (Lewis et al., 2004; and Kelly et al., 2005) has become popular in order
to improve the performance of the conventional PID controllers. The model-based
controllers work based on the information of the dynamic model of a system. If the
dynamic model of a robot is not very accurate, the model-based control approach will still
be able to eliminate major nonlinearities due to the robot’s inertia. In this chapter,
simulation of model-based control of floating-base legged robots, studied in Chapter 7,
will be carried out.
8.1 Model-based Control
Since model-based controllers work well on precise information of the dynamic model of
a robot, the recursive algorithms for inverse and forward dynamics proposed in Chapter 7
179
are valuable in control of robots due to their efficiency, computational uniformity and less
numerical errors produced during dynamic computations. While the inverse dynamics
algorithm helps in calculating the controlling torques of the actuators located at different
joints, the forward dynamics algorithm predicts the behavior of the robot. The latter also
allows real time simulation, which helps in predicting the future state of a system for
corrective control measures. Model-based controller, e.g., computed-torque control and
feedforward control, are developed next for the floating-base legged robots.
8.1.1 Computed-torque control
The dynamic equations of motion obtained in Eq. (5.12) are rewritten as
+ = , where F h Cq
q
+ =h K e K e K eP D I
Iq h (8.1)
Equation (8.1) is nonlinear as elements of the Generalized Inertia Matrix (I) are nonlinear
functions of the state variable q, and the elements of Matrix of Convective Inertia (C)
are nonlinear function of the state variables . Hence, the use of a classical PID
controller will lead to a set of nonlinear differential equations for the closed-loop system
that will still have the nonlinear terms I and h as shown below:
andq
Iq
I h
(8.2)
where KP, KD and KI are diagonal matrices with constant gains on the diagonal, whereas
and e are the vectors of the error in position and velocity, respectively. On the
contrary, the computed-torque control works on the principle of feedback linearization of
the nonlinear system under study. Accordingly, the controller torque is given by
e
(8.3)
180
Substituting Eq. (8.3) into (8.1) the resulting equations of motion of the closed-loop
control system are represented as q . For being the linear function of the state
variables, the closed-loop equations are also linear functions of the state variables. As a
result, the problem of control is simply to solve a system of linear differential equations.
For the floating-base legged robots, the components of associated with the generalized
forces of the floating-base are zeros. Hence, Eq. (8.3) is rewritten by using Eq. (7.1) as
0 00 0
0
T hI I
hI I
1
0 0 0 0( )TI I h
0 0 ( )
0= (8.4)
which is further simplified as
(8.5)
I I h
1 1
0 0 0( )h I I h
(8.6)
Substituting Eq. (8.5) into Eq. (8.6), the computed-torque control law for the floating-
base legged robots is obtained as
0 0 0( )
0 0=
I I I IT (8.7)
In. Eq. (8.7), is the required actuator torque, whereas representing the servo part is
given by
_ _( )q K q qd P des D _( )K q qdes (8.8)
The schematic of the above computed-torque control scheme is shown in Fig. 8.1. It may
be noted that in Fig. 8.1, the legged robot is represented by its dynamic equations of the
181
motion. Substituting Eqs. (8.7) and (8.8) into Eq. (7.1), the dynamic equations of motion
may be rewritten as
Fig. 8.1 Computed-torque control scheme
Dynamic
Model
Position gain
qd
qd
qd
Velocity gain
K eP
K eD
Desired
motion
q
qLegged
Robot
Inverse dynamics
Actual
motion
Simulation
(Forward dynamics)
qqd
1
0 0 0 0( )q I I q hT
D P
(8.9)
e+K e+K e 0 (8.10)
where e q _ qdes. Equation (8.9) represents the base accelerations in terms of the joint
accelerations, whereas Eq. (8.10) represents the resulting close-loop control system,
which is described by a set of linear differential equations. It may be shown that the
origin of the closed loop system, [ ]e eT T T
0 , is asymptotically stable (Kelly et al.,
2005), i.e.,
lim and lime 0 e 0t t
d idk
(8.11)
The resulting closed-loop control system in Eq. (8.10) is multivariable linear system
where error in each joint position is governed by an independent linear differential
equation. Hence, the gains KP and KD are chosen as K
. The gains k can be obtained by assuming critically
damped response, i.e.,
1and
nP p pdiag k k
1K
nD ddiag k k and ip
2i id pk k .
182
It is worth noting that the direct use of Eq. (8.7) to compute the driving torque, , is
computationally inefficient as the equations cannot be solved recursively due to the
presence of the terms 1
0 0 0
TI I I and I I . On the contrary, Eqs. (8.5-8.6) have
representations similar to Eq. (7.2). As a result, they can be solved recursively using the
proposed recursive inverse dynamics algorithm by substituting
1
0 0 0h
q and in Eq.
(7.2).
0q 0
8.1.2 Feedforward control
In practice, any robotic system including legged robots is digitally controlled. Hence,
sampling of the state variables, calculation of the joint torques, and communication of the
appropriate commands to the actuators in a proper sequence form three essential tasks of
a controller. For legged robots, where the system moves very fast, the above tasks have to
be performed at a high rate. Out of the three tasks, computation of the joint torque is the
most time consuming one. Hence, an efficient computation of the joint torques is of
primary importance. In the case of known path to be followed by the robot, one may
compute the joint torques in advance. These may then be stored in the controller’s
memory in the form of a look-up table. As a result, when the control actions need to be
performed, these values are read out from the controller memory. This type of control is
referred to as feedforward control and this reduces computational burden of the controller
significantly. Simply forwarding the torque obtained from an inverse dynamics algorithm
to the robot, as shown in Chapter 7, is the simplest form of the feedforward control.
However, this suffers from several disadvantages caused by unmodeled parameters,
backlash, uncertainty, external disturbances, etc. Hence, it is commonly used along with a
PD controller. Thus, feedforward control scheme consists of a linear servo feedback and a
feedforward of the nonlinear robot dynamic model, as shown in Fig. 8.2. It
183
is the simplest form of the non-linear controller, which can be employed for motion
control of robots. The control law for this scheme is given by
Fig. 8.2 Feedforward control scheme
Dynamic
Model
Position gain
q
q
dq
dq
dq ID
Velocity gain
Inverse dynamics
Actual
motion
Simulation
(Forward dynamics)
Desired
motion
_ _( )ID p des d
00=
K q q K q( )des q
d
(8.12)
where , and torques, , are
obtained from the recursive inverse dynamics algorithm presented in Section 7.1.1. It is
worth noting that the feedforward control can achieve performance as good as computed-
torque control with the proper tuning of the control gains. The gains can be calculated
using, for example, a design procedure proposed by Kelly et al. (2005).
1 1andK K
n np p p d ddiag k k diag k k ID
8.2 Biped
The computed-torque and feedforward control schemes presented in the previous sections
are applied to simulate the controlled motion of the planar and spatial biped presented in
Section 7.2. It may be noted that the recursive inverse dynamics algorithm proposed in
Section7.1.1 is used to implement the control law, whereas the recursive forward
dynamics algorithm obtained in Section 7.1.2 is used for the simulation studies. Two
control schemes are used mainly to study the effectiveness of one control scheme over the
other.
Legged
Robot q
K eD
K eP
184
8.2.1 Planar biped
As presented in section 7.2, it was observed that for the given joint torques, calculated
using the inverse dynamics algorithm, the biped was able to walk for one cycle as shown
in Figs. 7.7-7.8. However, biped was unable to follow the desired trajectories after one
cycle. This is due to zero Eigen value problem. However, in real life such deviation
occurs due to unmodeled parameters, uncertainty, backlash, etc. Hence, control is
inevitable in practical systems. Simulation of the controlled motion of the planar biped is
presented next by using computed-torque and feedforward control schemes.
8.2.1.1 Computed-torque control
In order to achieve the motion of the biped using the computed-torque control scheme,
the expressions in Eqs. (8.5, 8.6 and 8.8) were used. Control gains , and are
chosen as 49 and 14, respectively, such that
ipkidk
2idk
ipk . Joint torques are solved
recursively by substituting q and 0q 0 in the inverse dynamics algorithm
presented in Section 7.1.1. Recursive forward dynamics was then used to obtain the
motions of the trunk (floating-base) and the joint angles. Figures 8.3 and 8.4 show
simulated motion of the trunk and the joint angles obtained for the time span of 4
seconds, chosen tacitly. Comparison of the results with desired one is also shown in Figs.
8.3 and 8.4. Figure 8.3 shows that the biped moves in the forward direction (X) without
Fig. 8.3 Simulated motion of trunk of the planar biped under computed-torque control
Computed-torque Desired
0 2 4-1
0
1
2
time(s)
x0(m
)
0 2 41.15
1.2
time(s)
z0 (
m)
0 2 4-100
-90
-80
time(s)
0 (
de
gre
e)
185
falling for four steps. The slight variation in 0 is due to the assumption that the biped
mass is concentrated at the trunk. The joint angles associated with the legs are also shown
in Fig. 8.4. The joint angles follow the desired trajectory using computed-torque control
scheme. It may be noticed that without the control action the simulated and desired
trajectories was found to deviate after a time of 1 s, however in comparison the control
action ensures a close match of the trajectories (shown in Fig. 8.4) even after 4 seconds.
The simulation was run for times more than 4 seconds and the same close match between
the trajectories was noticed. This shows the importance and necessity of implementing
control scheme for achieving desired motion of the biped robot.
(a)Support leg (Module 1)
(b) Swing leg (Module 2)
Fig. 8.4 Simulated joint motions of the planar biped under computed-torque control
Computed-torque Desired
0 2 40
20
40
1 1 (
de
gre
e)
time (sec)
0 2 4-80
-60
-40
-20
1 2 (
de
gre
e)
time (sec)
0 2 480
100
120
140
1 3 (
de
gre
e)
time (sec)
0 2 40
20
40
time (sec)
2 1 (
de
gre
e)
0 2 4-80
-60
-40
-202 2 (
de
gre
e)
time (sec)
0 2 480
100
120
140
time (sec)
2 3 (
de
gre
e)
8.2.1.2 Feedforward control
Next, the feedforward control scheme was applied for the controlled simulation of the
planar biped under study. For this, the joint torques, obtained from the inverse dynamics
algorithm, were fed forward to the controller by using the control law given in Eq. (8.12).
186
The gains were taken as ipk =49 and =7. Figures 8.5 and 8.6 depict the motion of the
trunk and joint angles. Simulation results in Fig 8.5 show that the biped moves in the
forward direction with periodic motion. Moreover, the controller is able to follow the
desired joint motion as evident form Fig. 8.6. Hence, the feedforward control scheme
performs as good as computed torque control for a given set of gains.
idk
Fig. 8.5 Simulated motion of trunk of the planar biped under feedforward control
Feedforward Desired
0 2 4-1
0
1
2
time(s)
x0(m
)
0 2 41.15
1.2
time(s)
z0 (
m)
0 2 4-100
-90
-80
time(s)
0 (
de
gre
e)
(a)Support leg (Module 1)
(b) Swing leg (Module 2)
Fig. 8.6 Simulated joint motions of the planar biped under feedforward control
Feedforward Desired
0 2 40
20
40
1 1 (
de
gre
e)
time (sec)
0 2 4-80
-60
-40
-20
1 2 (
de
gre
e)
time (sec)
0 2 480
100
120
140
1 3 (
de
gre
e)
time (sec)
0 2 40
20
40
time (sec)
2 1 (
de
gre
e)
0 2 4-80
-60
-40
-20
2 2 (
de
gre
e)
time (sec)
0 2 480
100
120
140
time (sec)
2 3 (
de
gre
e)
187
8.2.2 Spatial biped
Next, the computed-torque and feedforward control schemes were applied to simulate the
controlled motion of the spatial biped discussed in Section 7.2.2. The proportional and
derivative gains were taken as =200 and =40 for both the control schemes.
Simulated motions of the trunk and the joint angles using both the control schemes are
shown in Figs. 8.7 and 8.8, respectively. The desired motions are also depicted in Figs.
8.7 and 8.8. It can be seen that the biped moves in the forward direction (X) under both
the control schemes, however, feedforward control scheme performs little better than
computed torque scheme, as evident from Figs. 8.7 and 8.8. It is worth noting that without
the control action the simulated and desired trajectories were found to deviate after a time
of 0.1 s, as shown in Figs. 7.14-15, however in comparison the control action ensures a
close match of the trajectories even after 2 seconds. For the given set of gains
feedforward scheme shows better tracking of the trajectories than the computed torque
control.
ipkidk
(a) Center-of-Mass
(b) Euler Angles
Fig. 8.7 Simulated motion of trunk of the spatial biped under control
Computed-torque Feedforward Desired
0 1 2-0.1
0
0.1
time(s)
y0(m
)
0 1 2-1
0
1
2
time(s)
x0 (
m)
0 1 20.94
0.96
0.98
1
time(s)
z0 (
m)
0 1 2-5
0
5
time(s)
0 (
de
gre
e)
0 1 2-4
-2
0
2
4
time(s)
0 (
de
gre
e)
0 1 2-4
-2
0
2
4
time(s)
0 (
de
gre
e)
188
(a)Support leg (Module 1)
(b) Swing leg (Module 2)
Fig. 8.8 Simulated joint motions of the spatial biped under control
Computed-torque Feedforward Desired
0 1 2-5
0
5
1,1
1 (
de
gre
e)
time (sec)
0 1 2-92
-91
-90
-89
1,2
1 (
de
gre
e)
time (sec)
0 1 2-40
-30
-20
-10
1,3
1 (
de
gre
e)
time (sec)
0 1 240
50
60
70
time (sec)
1,1
2 (
de
gre
e)
0 1 2-1
0
1
2
21 (
de
gre
e)
time (sec)
0 1 2-40
-30
-20
-10
time (sec)
3,1
1 (
de
gre
e)
0 1 2-5
0
5
1,1
2 (
de
gre
e)
time (sec)
0 1 2-91
-90
-89
-88
1,2
2 (
de
gre
e)
time (sec)
0 1 2-40
-30
-20
-10
1,3
2 (
de
gre
e)
time (sec)
0 1 240
50
60
70
time (sec)
22 (
de
gre
e)
0 1 2-2
-1
0
1
3,1
2 (
de
gre
e)
time (sec)
0 1 2-40
-30
-20
-10
time (sec)
3,2
2 (
de
gre
e)
8.3 Quadruped
Simulation of controlled motion of the spatial quadruped is attempted next. Dynamic
simulation of quadruped was also presented in Section 7.3 (Figs. 7.21-22), where the
torques obtained using the inverse dynamics algorithm were inputs to the actuators. The
results showed that the quadruped was able to follow the trajectory for 0.8 seconds only
before deviations occur. This is due to zero Eigen value problems. However, in real life
189
such deviation occurs due to unmodeled parameters, uncertainty, backlash, etc. Hence,
appropriate control is required. Here, the motions of the quadruped under computed-
torque and feedforward control schemes are studied for the periodic walking. Values of
the gains are taken as ipk =49 and =14 for both the feedforward and computed-torque
control schemes. The variations of the COM of the trunk and the Euler angles are shown
in Fig. 8.9, which depicts that the quadruped moves in the forward direction (X) with
stable periodic motion. Figure 8.10 shows the variations of joint angles of the legs, where
the quadruped follows the desired trajectories. The simulation was run for times more
than 4 seconds and the same close match between the trajectories was noticed. It is worth
mentioning that for selected values of the gains, feedforward control performs little better
than the computed-torque control scheme.
idk
(a) Center-of-Mass
(b) Euler Angles
Fig. 8.9 Simulated motion of trunk of the quadruped under control
Computed-torque Feedforward Desired
0 2 4
-0.05
0
0.05
time(s)
y0(m
)
0 2 4
0.48
0.5
0.52
time(s)
z0 (
m)
0 2 4-1
0
1
2
time(s)
x0 (
m)
0 2 4-5
0
5
time(s)
0 (
de
gre
e)
0 2 4
-2
0
2
time(s)
0 (
de
gre
e)
0 2 4-0.5
0
0.5
time(s)
0 (
de
gre
e)
190
(a) Support legs (Module 1)
(b) Swing legs (Module 2)
Fig. 8.10 Simulated joint motions of the quadruped under control
Computed-torque Feedforward Desired
0 2 4-90.2
-90
-89.8
1,1
1 (
de
gre
e)
time (sec)
0 2 40
20
40
60
1,2
1 (
de
gre
e)
time (sec)
0 2 4-100
-80
-60
-40
21 (
de
gre
e)
time (sec)
0 2 4-90.2
-90
-89.8
time (sec)
1,1
2 (
de
gre
e)
0 2 40
20
40
60
1,2
2 (
de
gre
e)
time (sec)
0 2 4-100
-80
-60
-40
time (sec)
22 (
de
gre
e)
8.4 Hexapod
As discussed in Section 7.4, the dynamics plays important role in hexapod walking. In
this section, simulation of hexapod walking is presented using feedforward and
computed-torque control schemes. The gains were taken as ipk =49 and =14. Hexapod
was simulated for the periodic walking for the time duration of 2 seconds. The simulated
motions of the trunk are shown in Fig. 8.11. The hexapod moves along the forward
direction (X) with the velocity of 0.8 m/s. For both the control scheme, the Euler angles
associated with the trunk are in close match with those of the desired one. Figure 8.12
shows the variation of the joint angles, which are in close match with the desired ones for
both the control schemes. It is pointed out that without the control action the simulated
and desired trajectories as shown in Figs. 7.28-29 was found to deviate after a time of 0.9
s, however in comparison the control action ensures a close match of the trajectories even
after 2 seconds.
idk
191
(a) Center-of-Mass
(b) Euler Angles
Fig. 8.11 Simulated motion of trunk of the hexapod under control
Computed-torque Feedforward Desired
0 1 2-1
0
1
2
time(s)
x0(m
)
0 1 20.54
0.545
0.55
0.555
time(s)
z0 (
m)
0 1 2-0.01
0
0.01
time(s)
y0 (
m)
0 1 2-0.4
-0.2
0
0.2
0.4
time(s)
0 (
de
gre
e)
0 1 2-0.4
-0.2
0
0.2
0.4
time(s)
0 (
de
gre
e)
0 1 2-0.4
-0.2
0
0.2
0.4
time(s)
0 (
de
gre
e)
(a) Support legs (Module 1)
(b) Swing legs (Module 2)
Fig. 8.12 Simulated joint motions of the hexapod under control
Computed-torque Feedforward Desired
0 1 2-150
-100
-50
0
11 (
de
gre
e)
time (sec)
0 1 2-100
-50
0
21 (
de
gre
e)
time (sec)
0 1 2-150
-100
-50
0
12 (
de
gre
e)
time (sec)
0 1 2-100
-50
0
time (sec)
22 (
de
gre
e)
5
192
8.5 Summary
Two model-based control schemes, namely, the computed-torque control and the
feedforward control, have been presented for the controlled motion study of several
floating-base legged robotic systems. Simulations of the biped, quadruped and hexapod
were performed. The simulation study showed that the desired trajectory was attained
using both the control schemes for longer simulation time, and this was not achievable if
the control schemes are not implemented. Feedforward control scheme, however, showed
better tracking of the desired trajectories than computed-torque for the spatial biped and
quadruped, whereas both controllers showed good tracking ability in the case of planar
biped and hexapod.
193
194
Chapter 9
CONCLUSIONS AND FUTURE WORK
In conclusion, it may be said that this research work has given rise to an efficient
computational framework for dynamic modeling and analysis of tree-type fixed- and
floating-base robotic systems. Empowered with it, recursive inverse and forward
dynamics algorithms have been proposed. The algorithms are much faster than or as fast
as the most efficient algorithm proposed in the literature. The gain in computational time
is more as the number of links and joints in the system increase. The specialty of the
algorithms exists in its recursive nature, its capability of dealing with multiple-DOF joints
using a novel form of Euler-Angle-Joints (EAJs), not reported in the existing literature so
far. The analytical expressions of the Generalized Inertia Matrix (GIM) and its inverse
also provide better insight to the participation of the inertial quantities in affecting the
kinematic and dynamic behaviors of the system at hand. The work delves upon the
Decoupled Natural Orthogonal Complement (DeNOC) approach, originally developed for
serial chain manipulators. In the present thesis, the same has been extended to general
tree-type fixed- and floating-base robotic systems, which encapsulate the serial forms by
using the concept of kinematic modules.
Kinematic pairs are very important to decide kinematic and dynamic behaviors of any
mechanical system. So a first attempt was taken to come up with a generic representation
of a rotary joint or pair (where a ‘rotary’ joint admits only rotation about axis/axes but no
translation) for admitting single or multiple degree/degrees of freedom, as in the cases of
revolute, universal and spherical joints. For this, the concept of EAJs, not proposed in
195
literature so far, was evolved by characterizing the Euler angle rotation with the help of
intersecting revolute joints. The axes of the revolute joints were identified using the well
known Denavit-Hartenberg (DH) parameters. However, the concept of EAJs is not
relevant for simulating the translatory behavior, as the EAJs are basically the DH
parametrization of the Euler angle rotations only.
The usefulness of the EAJs is immediately understood in the capability of the proposed
computational framework in simulating the kinematic and dynamic behaviors of walking
robots, e.g., a biped, quadruped and hexapod, which are essentially floating-base systems,
having a number of rotary kinematic pairs particularly at ankles, knees and hips. Dynamic
behaviors of such walking machines have been easily simulated efficiently. This feature
is very much important to simulate biokinematics and biodynamics.
The importance of robot control is an inseparable part of studying kinematic and dynamic
behavior of robots. For this, two well-known control methodologies, viz., the computed-
torque control and the feedforward control, were incorporated. The effect of control
action is seen immediately in generating any target trajectory that any robot is required to
follow; the joint motions as well as the joint torque functions over time for such
controlled motions are also easily obtained.
This research work has also given rise to MATLAB based general purpose software
named Recursive Dynamic Simulator (ReDySim), which essentially consisting of
recursive order (n) inverse and forward dynamics algorithms for simulation and control of
tree-type fixed- or floating-base robotic system. As the “ReDySim” is generic software
for simulating multi-degrees-of-freedom robotic systems, its capability is extended for
simulation of hyper-degrees-of-freedom (hyper-DOF) systems. Examples of such systems
are flexible ropes, chains and the like, which can be thought of as an assembly of
196
numerous rigid links or bodies connected by kinematic pairs. Hence, the domain of rigid
multibody dynamics is extended to simulate dynamic behaviors of highly flexible
systems. In this area the effects of conservative and dissipative material behaviors in
forming the kinematic and dynamic behaviors of such systems are being thought out.
A few simulation results were validated by comparing those generated using ADAMS
software. These are primarily the small systems, not having many links and joints.
However, the simulation results of large systems, e.g., the biped, quadruped, hexapod,
and the hyper-DOF systems, were validated by finding out the energy balance,
comprising of the energy stored and the energy dissipated.
Salient contributions, as a result of this research work are listed below:
1. The concept of Euler-Angle-Joints (EAJs) for the representation of a spherical
joint and its generalization for 1-, 2-, and 3-degrees-of-freedom joints.
2. Generalization of the link-to-link kinematic transformation of velocities, i.e.,
twist-propagation, to module-to-module twist-propagation using the concept of
kinematic modules. As a consequence, definition of the Decoupled Natural
Orthogonal Complement (DeNOC) for a serial chain system is extended to a tree-
type robotic system.
3. Dynamic modeling of a tree-type robotic system using the concept of the module-
DeNOC matrices giving module-level expressions for the vectors and matrices
appearing in the equations of motion.
4. Module-level, analytical block UDUT decomposition of the Generalized Inertia
Matrix (GIM) for the tree-type robotic system using the Block Reverse Gaussian
Elimination (BRGE), where U and D are the block upper triangular and block
197
198
diagonal matrices, respectively. Subsequently analytical expressions of the inverse
of the GIM are derived providing deeper insight into the dynamics.
5. Efficient recursive algorithms for the inverse and forward dynamics of the fixed-
and floating-base tree-type robotic systems consisting of multiple-DOF joints
introducing inter- and intra-modular recursions.
6. Dynamic analyses of several tree-type practical robotic systems, namely, (i) a
robotic gripper, (ii) planar and spatial biped, (iii) a quadruped, and (iv) a hexapod,
which would help researcher and practicing engineer to use these results for
design, simulation and control of those robots.
7. Closed-loop control simulation of several robots, mainly, those listed in item 6
above, to study their controlled behaviors.
9.1 Scope of future work
This research work has given rise to some useful directions which forms the future scope
of research. They are as follows:
1. Implementation of the proposed computational framework for design, control and
trajectory planning of an actual robotic system.
2. Use of the properties of the GIM and its inverse for the prediction of instability of
a robot as well as appropriate control action.
3. Development of hybrid parallel recursive forward and inverse dynamics
algorithms for the modular description of a robotic system.
4. Obtaining a general optimization problem for minimization of the inertia-induced
forces in the legged robot.
References
Ahmadi, M. and Buehler, M., 1999, “The ARL Monopod II Running Robot: Control and
Energetic,” IEEE Int. Conf. on Robotics and Automation, 1689-1694.
Anderson, K. S., 1991, “An Order-N Formulation for the Motion Simulation of General Multi-
Rigid Tree Systems,” J. Computers and Structures, 46(3), 547-559.
Anderson, K.S. and Duan, S., 2000, “Highly Parallelizable Low Order Algorithm for the
Dynamics of Complex Multi Rigid Body Systems,” J. of Guidance, Control and Dynamics 23(2),
355–364.
Angeles, J., and Lee, S., 1988, “The Formulation of Dynamical Equations of Holonomic
Mechanical Systems Using a Natural Orthogonal Complement,” ASME J. Applied Mechanics, 55,
243-244.
Angeles, J., and Ma, O., 1988, “Dynamic Simulation of N-Axis Serial Robotic Manipulators
Using a Natural Orthogonal Complement,” Int. J. of Robotics Research, 7(5), 32-47.
Angeles, J., and Ma, O., and Rojas A., 1989, “An Algorithm for the Inverse Dynamics of N-Axis
General Manipulator Using Kane's Formulation of Dynamical Equations,” Computers and
Mathematics with Applications, 17(12), 1545-1561.
Armstrong, W. W., 1979, “Recursive Solution to the Equations of Motion of an N-Link
Manipulator,” World Cong. on Theory of Machines and Mechanisms (ASME), Montreal, Canada,
2, 1343-1346.
Asada, H., 1984, “Dynamic Analysis and Design of Robot Manipulators Using Inertia
Ellipsoids,” IEEE Int. Conf. on Robotics and Automation, 1, 94-102.
Ascher, U. M., Pai, D. K., and Cloutier, B. P., 1997, “Forward Dynamics, Elimination Methods,
and Formulation Stiffness in Robot Simulation,” Int. J. of Robotics Research, 16(6), 749-758.
Automated Dynamic Analysis of Mechanical System (ADAMS), 2004, Version 2005.0.0, MSC.
Software.
B. Mirtich and J. Canny, 1995, “Impulse-Based Simulation of Rigid Bodies,” Symposium on
Interactive 3D Graphics, Monterey, CA, 181–188.
Bae, D. S., and Haug, E. J., 1987, “A Recursive Formulation for Constrained Mechanical System
Dynamics: Part I, Open Loop Systems,” Mechanics of Structure and Machine, 15, 359–382.
199
Bae, D., Kuhl, J.G. and Haug, E.J., 1988, “A Recursive Formation for Constrained Mechanical
System Dynamics: Part III, Parallel Processing Implementation,” Mechanisms, Structures, and
Machines, 16, 249–269.
Balafoutis, C. A., and Patel, R. V., 1991, Dynamic Analysis of Robot Manipulators: A Cartesian
Tensor Approach, Kluwer Academic Publishers, Boston.
Baraff, D. 1996, “Linear-Time Dynamics Using Lagrange Multipliers,” Proc. ACM SIGGRAPH ,
New Orleans, 137-146.
Baumgarte, J., 1972, “Stabilization of Constraints and Integrals of Motion,” Computer methods in
Applied Mechanics and Engineering, 1, 1-16.
Begg, K. R., Rahman, S. M., 2000, “A Method for the Reconstruction of the Ground Reaction
Force-Time Characteristics During Gait from Force Platform Recording of Simultaneous Foot
Faults,” IEEE Trans. on biomedical engineering, 47(4), 547-551.
Berkemeier, M. D., 1998, “Modeling the Dynamics of Quadrupedal Running,” Int. J. of Robotics
Research, 17, 971 – 985.
Bhangale, P.P., Saha, S.K., and Agrawal, V.P., 2004, “A Dynamic Model Based Robot Arm
Selection Criterion,” Int. J. of Multibody System Dynamics, 12(2), 95-115.
Bicchi, A., 2000, “Hands for Dexterous Manipulation and Robust Grasping: A Difficult Road
Toward Simplicity,” IEEE Trans. on Robotics and Automation, 16(6), 652-662.
Blajer, W., Bestle, D., and Schiehlen, W., 1994, “An Orthogonal Complement Matrix
Formulation for Constrained Multibody Systems,” ASME J. of Mechanical Design, 116, 423-428.
Bogert, A. J., Schamhardt, H. C., Crowe A., 1989, “Simulation of Quadrupedal Locomotion
Using a Rigid Body Model,” J. of Biomechanics, 22(1), 33-41.
Brandl, H., Johanni, R., and Otter, M. 1988. “A Very Efficient Algorithm for the Simulation of
Robots and Similar Multibody Systems Without Inversion of the Mass Matrix,” Theory of Robots,
Oxford: Pergamon Press, 95-100.
Brown, B. and Zeglin, G., 1998, “The Bow Leg Hopping Robot,” IEEE Int. Conf. on Robotics
and Automation, 781-786.
Buehler, M., Battaglia, R., Cocosco, A., Hawker, G., Sarkis, J., and Yamazaki, K., 1998,
“SCOUT: A Simple Quadruped That Walks, Climbs and Runs,” IEEE Int. Conf. on Robotics and
Automation, 1707 – 1712.
Buehler, M., Cocosco, A., Yamazaki, K., and Battaglia, R., 1999, “Stable Open Loop Walking in
Quadruped Robots with Stick Legs,” IEEE Int. Conf. on Robotics and Automation, 2348 – 2353.
200
Cameron, J. M., and Book, W. J., 1997, “Modeling Mechanisms with Nonholonomic Joints Using
the Boltzmann-Hammel Equations”, Intl. J. of Robotics Research, 16(1), 47-59.
Cham, Jorge G., Bailey, Sean A.,Clark, Jonathan E., Full, Robert J., Cutkosky, and Mark R.,
2002, “Fast and Robust: Hexapedal Robots Via Shape Deposition Manufacturing,” Int. J. of
Robotics Research, 21(10), 869 – 882.
Chaudhary, H., and Saha, S. K., 2007, “Constraint Wrench Formulation for Closed-Loop Systems
Using Two-Level Recursions,” ASME J. of Mechanical Design, 129, 1234–1242.
Chaudhary, H., and Saha, S. K., 2009, Dynamics and Balancing of Multibody Systems, Springer,
Berlin.
Collins, S. H., and Ruina, A., 2005, “A Bipedal Walking Robot with Efficient Sand Human-Like
Gait,” IEEE Int. Conf. on Robotics and Automation, 1983-1988.
Coset, H., Lynch, K. M., Hutchinson, S., Kantor, G., Burgard, W., Kavraki, L. E., and, Thrun, S.,
2005, Principle of Robot Motion: Theory, Algorithms, and Implementations, MIT press,
Cambridge, MA.
Craig, J. J., 2006, Introduction to Robotics, Mechanics and Control. Pearson Education, Delhi.
Critchley, J. H. and Anderson, K. S., 2004, “Parallel Logarithmic Order Algorithm for General
Multibody System Dynamics,” J. of Multiscale Computational Engineering, 12(1), 75-93.
Critchley, J. S., and Anderson, K. S., 2003, “A Generalized Recursive Coordinate Reduction
Method for Multibody System Dynamics,” Multibody System Dynamics, vol. 9, 185-212
Cyril, X., 1988, Dynamics of Flexible Link Manipulators, Ph.D. dissertation, McGill University,
Canada.
D. Baraff, 1994, “Fast Contact Force Computation for Nonpenetrating Rigid Bodies,” in Proc. of
SIGGRAPH, Orlando, FL.
D. Stewart and J. Trinkle, “An Implicit Time-Stepping Scheme for Rigid Body Dynamics with
Coulomb Friction,” IEEE Int. Conf. on Robotics and Automation, 162–169.
Denavit, J. and Hartenberg, R. S., 1955, “A Kinematic Notation for Lower-Pair Mechanisms
Based On Matrices,” J. of Applied Mechanics, 22, 215-221.
Deo, N., 1974, Graph Theory with Application in Engineering and Computer Science, Prentice-
Hall, Englewood Cliffs, NJ.
Doi, T., Hodoshima, R., Hirose, S., Fukuda, Y., Okamoto, T., and Mori, J., 2005, “Development
of a Quadruped Walking Robot to Work On Steep Slopes, TITAN XI,” IEEE/RSJ Int. Conf. on
Intelligent Robots and Systems, 2067- 2072.
201
Dormand, J. R. and Prince, P. J, 1980, “A Family of Embedded Runge-Kutta Formulae,” J. Comp.
Applied Mathematics, Vol. 6, 19-26.
Drumwright, E., 2008, “A Fast and Stable Penalty Method for Rigid Body Simulation,” IEEE
Trans. On Visualization and Computer Graphics, 14(1), 231-240.
Duffy, J., 1978, “Displacement Analysis of the Generalized RSSR Mechanism,” Mechanism and
Machine Theory, 13, 533-541.
Eberhard, P., and Schiehlen, W., 2006, “Computational Dynamics of Multibody Systems: History,
Formalisms, and Applications,” ASME J. of Computational and Nonlinear Dynamics, 1(1), 3-12.
Espenschied, K. S., Quinn, R. D., Beer, R. D., and Chiel, H. J., 1996, “Biologically Based
f Physically Valid Human Motion”
ynamics Using Articulated Body Inertias,”
s Algorithms, Boston, Kluwer Academic Publishers.
og.N
, 2005, “Efficient Factorization of the Joint-Space Inertia Matrix for Branched
tions and Algorithms,” IEEE Int.
“Parallel O(Log N) Algorithms for Computation
a
dy System,” J.
pe Modeled as a Multi-Body System
Distributed Control and Local Reflexes Improve Rough Terrain Locomotion in a Hexapod
Robot,” Robotics and Autonomous Systems, 18(1-2), 59-64.
Fang, A. C., and Pollard, N. S. 2003. Efficient Synthesis o
ACM Trans. Graphics (SIGGRAPH), 22(3), 417-426.
Featherstone, R., 1983, “The Calculation of Robotic D
Int. J. of Robotics Research, 2, 13–30.
Featherstone, R., 1987, Robot Dynamic
Featherstone, R., 1999, “A Divide-and-Conquer Articulated Body Algorithm for Parallel O.L
Calculation of Rigid Body Dynamics. Part 1: Basic Algorithm,” Int. J. of Robotics Research,
18(9), 867-875.
Featherstone, R.
Kinematic Tree,” Int. J. of Robotics Research, 24(6), 487–500.
Featherstone, R., and Orin, D., 2000, “Robot Dynamics: Equa
Conf. on Robotics and Automation, 1, 826-834.
Fijany A., Sharf I., D'Eleuterio, G. M. T., 1995,
of Manipulator Forward Dynamics,” IEEE Trans. on Robotics and Automation, 11(3), 389-400.
Freeman, P. S., and Orin, D. E., 1991, “Efficient Dynamic Simulation of a Quadruped Using
Decoupled Tree Structured Approach,” Int. J. of Robotics Research, 10, 619-627.
Fritzkowski, P., and Kaminski, H., 2008, “Dynamics of a Rope as a Rigid Multibo
of Mechanics of Materials and Structures, 3(6), 1059-1075.
Fritzkowski, P., and Kami ski, H., 2010, “Dynamics of a Ro
with Elastic Joints,” Computational Mechanics, 46(6), 901-909.
202
Fukuoka, Y., Kimura, H., and Cohen, A. H., 2003, “Adaptive Dynamic Walking of a Quadruped
Robot On Irregular Terrain Based On Biological Concepts,” Int. J. of Robotics Research, 22,
187–202.
Furukawa, N., Namiki, A., Taku, S., and Ishikawa, M., 2006, “Dynamic Regrasping Using a
High-Speed Multifingered Hand and a High-Speed Vision System,” IEEE Int. Conf. on Robotics
and Automation, 2006 181-187.
Furusho, J., Sano, A., Sakaguchi, M., and Koizumi, E., 1995, “Realization of Bounce Gait in a
Quadruped Robot with Articular-Joint-Type Legs,” IEEE Int. Conf. Robotics and Automation,
697-702.
Gambaryan, P.P., 1974, How Mammals Run: Anatomical Adaptations, John Wiley and Sons, New
York.
Gatti-Bono, C., and Perkins, N. C., 2002, “Physical and Numerical Modelling of the Dynamic
Behavior of a Fly Line,” J. of Sound and Vibration, 255(3), 555-577.
Gerritsen, K. G. M., Van Den Bogert, A. J., and Nigg, B. M., 1995, “Direct Dynamics Simulation
of the Impact Phase in Heel-Toe Running,” J. of Biomechanics, 28(6), 661-668.
Goldenberg, A. A., Benhabib, B., and Fenton, R. G., 1985, “A Complete Generalized Solution to
the Inverse Kinematics of Robots,” IEEE J. Robotics and Automation, RA-1(1), 14–20, 1985.
Greenwood, D.T., 1988, Principles of Dynamics, Prentice-Hall of India, New Delhi.
Harada, K., Kajita, S., Kanehiro, F., Fujiwara, K., Kaneko, K., Yokoi, K., and Hirukawa, H.,
2004, “Real-Time Planning of Humanoid Robot's Gait for Force Controlled Manipulation,” IEEE
Int. Conf. on Robotics and Automation, 1, 616-622.
Hasegawa, Y., Higashiura, M., and Fukuda, T., 2003, “Simplified Generation Algorithm of
Regrasping Motion - Performance Comparison of Online-Searching Approach with EP-Based
Approach,” IEEE Int. Conf. on Robotics and Automation, 2, 1811-1816.
He, G., Tan, X., Zhang, X., & Lu, Z., 2008, “Modeling, Motion Planning, and Control of One-
Legged Hopping Robot Actuated by Two Arms,” Mechanism and Machine Theory, 43(1), 33-49.
Hemami, H., and Weimer, F. C., 1981, “Modeling of Nonholonomic Dynamic Systems with
Applications,” ASME J. of Applied Mechanics, 48(1), 177-182.
Hirai K., Hirose M., Haikawa Y., and Takenaka T., 1998, “The Development of Honda
Humanoid Robot,” IEEE Int. Conf. on Robotic and Automation, 1321–1326.
Hollerbach, J. M., 1980, “A Recursive Lagrangian Formulation of Manipulator Dynamics and a
Comparative Study of Dynamics Formulation Complexity,” IEEE Trans. on Systems, Man, and
Cybernetics, 10(11), 730-736.
203
Hollerbach, J.M., and Gideon, S., 1983, “Wrist-Partitioned Inverse Kinematic Accelerations and
Manipulator Dynamics,” Int. J. of Robotics Research, 4, 61–76.
Hu, W., Marhefka, D. W., & Orin, D. E., 2005, “Hybrid Kinematic and Dynamic Simulation of
Running Machines,” IEEE Trans. on Robotics, 21(3), 490-497.
Huang, Q., Yokoi, K., Kajita, S., Kaneko, K., Aral, H., Koyachi, N., and Tanie, K., 2001,
“Planning Walking Patterns for a Biped Robot,” IEEE Trans, on Robotics and Automation, 17(3),
280-289.
Huston, R. L., and Passerello, C. E., 1974,” On Constraint Equations-A New Approach,” ASME J.
of Applied Mechanics, 41, 1130-1131.
Hyon, S., Emura, T. and Mita, T., 2003, “Dynamics-Based Control of a One-Legged Hopping
Robot,” J. of Systems and Control Engineering, 217(2): 83-98
Jacobsen, S.C, Iversen, E.K., Knutti, D.F., Johnson, R.T., and Biggers, K.B., 1986, “Design of the
Utah/MIT Dextrous Hand,” IEEE Int. Conf. on Robotics & Automation, 1520-1532.
Kagami, S., Kitagawa, T., Nishiwaki, K., Sugihara, T., Inaba, M., and Inoue, H., 2002, “A Fast
Dynamically Equilibrated Walking Trajectory Generation Method of Humanoid
Robot,” Autonomous Robots, 12(1), 71-82.
Kahn, M.E., and Roth, B., 1971, “The Near Minimum-Time Control of Open-Loop Articulated
Kinematic Chains,” ASME J. Dyn. Systs. Meas. and Control, 91, 164-172.
Kahtib, O., and Burdick, J., 1987, “Optimization of Dynamics in Manipulator Design: the
Operational Space Formulation,” Int. J. of Robotics and Automation, 2(2), 90-98.
Kajita, S., and Tani, K., 1991, “Study of Dynamic Biped Locomotion On Rugged Terrain,” IEEE
Int. Conf. on Robotic and Automation, 1405–1411.
Kajita, S., Kanehiro, F., Kaneko, K., Fujiwara, K., Harada, K., Yokoi, K., and Hirukawa, H.,
2003, “Biped Walking Pattern Generation by Using Preview Control of Zero-Moment Point,”
IEEE Int. Conf. on Robotics and Automation, 2, 1620-1626.
Kamman, J. W., and Huston, R. L., 1984, “Constrained Multibody System Dynamics: An
Automated Approach,” Computers & Structures, 18(6), 999-1003.
Kane, T. R., and Levinson, D. A., 1983, “The Use of Kane’s Dynamical Equations for Robotics,”
Int. J. of Robotics Research, 2(3), 3-21.
Kaneko, K., Harada, K., Kanehiro, F., Miyamori, G., and Akachi, K., 2008, “Humanoid Robot
HRP-3,” IEEE/RSJ Int. Conf. on Intelligent Robots and Systems, 2471-2478.
204
Kelly, R., Santibanez, V., and Loria, A., 2005, Control of Robot Manipulators in Joint Space.
London: Springer-Verlag.
Khalil, W., Kleinfinger, J., 1986, “A New Geometric Notation for Open and Closed-Loop
Robots,” IEEE Int. Conf. on Robotics and Automation, 3, 1174- 1179.
Khalil, W., Kleinfinger, J.F., and Gautier, M., 1986, “Reducing the Computational Burden of the
Dynamical Models of Robots,” IEEE Int. Conf. on Robotics & Automation, 525-531.
Khan, W. A., Venkat N. Krovi, V. N., Saha, S. K. and Angeles, J., 2005, “Recursive Kinematics
and Inverse Dynamics for a Planar 3R Parallel Manipulator”, J. of Dynamic Systems,
Measurement, and Control, 127(4), 529–536.
Khatib, O., 1986, “Real-Time Obstacle Avoidance for Manipulators and Mobile Robots,” Int. J.
of Robotics Research, 5(1):90–98, 1986.
Khatib, O., 1987, “Unified Approach for Motion and Force Control of Robot Manipulators: The
Operational Space Formulation,” IEEE J. of Robotics and Automation, RA-3(1), 43-53.
Kim, S. S., and Vanderploeg, M. J., 1986, “A General and Efficient Method for Dynamic
Analysis of Mechanical Systems Using Velocity Transformations,” ASME J. of Mechanisms,
Transmissions, and Automation in Design, 108( 6), 176-182.
Kimura, H., Akiyama, S., and Sakurama, K.., 1999, “Realization of Dynamic Walking and
Running of the Quadruped Using Neural Oscillator,” Autonomous Robots, 7(3), 247-258.
Kimura, H., Fukuoka, Y., and Cohen, A. H., 2007, “Adaptive Dynamic Walking of a Quadruped
Robot On Natural Ground Based On Biological Concepts,” Int. J. of Robotics Research, 26(5),
475-490.
Kurazume, R., Hasegawa, T., and Yoneda, K., 2003, “The Sway Compensation Trajectory for a
Biped Robot,” IEEE Int. Conf. on Robotics and Automation, 1, 925-931.
Kurazume, R., Hirose, S., and Yoneda, K., 2001, “Feedforward and Feedback Dynamic Trot Gait
Control for a Quadruped Walking Vehicle,” IEEE Int. Conf. on Robotics and
Automation, 3, 3172-3180.
Kuroki, Y., Fujita, M., Ishida, T., Nagasaka, K., and Yamaguchi, J., 2003, “A Small Biped
Entertainment Robot Exploring Attractive Applications,” IEEE Int. Conf. on Robotics and
Automation, 471 –476.
Kwon, O., and Park, J. H., 2009, “Asymmetric Trajectory Generation and Impedance Control for
Running of Biped Robots,” Autonomous Robots, 26(1), 47-78.
Lee, K., and Chirikjian, S. G., 2005, “A New Perspective On O(N) Mass-Matrix Inversion for
Serial Revolute Manipulators,” IEEE Conf. on Robotics and Automation, 4733-4737.
205
Lewis, F.L., Dawson, D. M., Abdallah C. T., 2004, Robot Manipulator Control: Theory and
Practice, Marcel Dekker, INC., New York
Li, C., and Sankar, T. S., 1992, “Fast Inverse Dynamics Computation in Real-Time Robot
Control,” Mechanism and Machine Theory, 27(6), 741-750.
Lilly, K. W., 1993, Efficient Dynamic Simulation of Robotic Mechanisms, Kluwer Academic
Publishers, Boston.
Lilly, K.W., and Orin, D. E., 1991, “Alternate Formulations for the Manipulator Inertia Matrix,”
Int. J. of Robotics Research, 10(1), 64–74.
Lloyd, J., 2005, “Fast Implementation of Lemke’s Algorithm for Rigid Body Contact
Simulation,” IEEE Int. Conf. on Robotics and Automation, 4538 - 4543.
Luh, J. Y. S., Walker, M. W., and Paul, R. P. C., 1980, “On-Line Computational Scheme for
Mechanical Manipulators,” ASME J. of Dynamic Systems, Measurement and Control, 102, 69-76.
Ma, O., and Angeles, J., 1990, “The concept of dynamic isotropy and its applications to inverse
kinematics and trajectory planning,” IEEE Int. Conf. on Robotics and Automation, 1, 481-486 .
Mani, N. K., Haug, E. J., and Atkinson, K. E., 1985, “Application of Singular Value
Decomposition for Analysis of Mechanical System Dynamics,” ASME J. of Mechanisms,
Transmissions, and Automation in Design, 107(1), 82-87.
Marhefka, D. W., & Orin, D. E., 1996, “Simulation of Contact Using a Nonlinear Damping
Model,” IEEE Int. Conf. on Robotics and Automation, 2, 1662-1668.
Marhefka, D. W., Orin, D. E., Schmiedeier, J. P., & Waldron, K. J., 2003, “Intelligent Control of
Quadruped Gallops,” IEEE/ASME Trans. on Mechatronics, 8(4), 446-456.
Mason M. and Salisbury J. K. 1985, Robot Hands and the Mechanics of Manipulation. MIT,
Cambridge, MA.
Matlab, 2009, Version 7.4 Release 2009a, MathWorks Inc.
McGeer, T., 1990, “Passive Dynamic Walking,” Int. J. of Robotics Research, 9(2), 62-82.
McMillan, S., and Orin, D. E., 1995, “Efficient Computation of Articulated-Body Inertias Using
Successive Axial Screws,” IEEE Trans. on Robotics and Automation, 11(2), 606-611.
McMillan, S., and Orin, D. E., 1998, “Forward Dynamics of Multilegged Vehicles,” IEEE Int.
Conf. on Robotics and Automation, 464-470.
McMillan, S., Orin, D. E., and McGhee, R. B., 1995, “Efficient Dynamic Simulation of an
Underwater Vehicle with a Robotic Manipulator,” IEEE Trans. On Systems, Man, and
Cybernetics, 25(8), 1194-1205.
206
McPhee, J. J., 1996, “On the Use of Linear Graph Theory in Multibody System Dynamics,”
Nonlinear Dynamics, 9, 73-90.
Mistri, B. D., 2001, Simulation of Quadruped Gallop, M. Tech. Thesis, Mechanical Department,
Indian Institute of Technology, Bombay.
Miura, H., and Shimoyama, I., 1984, “Dynamic Walk of a Biped,” Int. J. of Robotics Research,
3(2), 60-74.
Miura, H., Shimoyama, I., Mitsuishi, M., and Kimura, H., 1985, “Dynamical Walk of Quadruped
Robot (Collie-1),” Int. Symp. Robotics Research, MIT Press, Cambridge, 317-324.
Mohan, A., and Saha, S. K., 2007, “A Recursive, Numerically Stable, and Efficient Algorithm for
Serial Robots,” Multibody System Dynamics, 17(4), 291-319.
Morisawa, M., Kajita, S., Kaneko, K., Harada, K., Kanehiro, F., Fujiwara, K., and Hirukawa, H.,
2005, “Pattern Generation of Biped Walking Constrained On Parametric Surface,” IEEE Int.
Conf. on Robotics and Automation, 2405-2410.
Muybridge, E., 1957, Animals in Motion, Dover Publications, New York.
Nelson, G. M., and Quinn, R. D., 1998, “Posture Control of a Cockroach-Like Robot,” IEEE Int.
Conf. on Robotics and Automation, 157 – 162.
Nigg, B. M., Herzog, W., 1999, Biomechanics of the Musculo-Skeletal System, John Wiley &
Sons, Chichester, Englend.
Nikravesh, P. E., 1988, Computer-Aided Analysis of Mechanical Systems, Prentice-Hall,
Englewood Cliffs, New Jersey.
Nikravesh, P. E., and Gim, G., 1993, “Systematic Construction of the Equations of Motion for
Multibody Systems Containing Closed Kinematic Loops,” ASME J. of Mechanical Design, 115,
143-149.
Ono, K., Takahashi, R., & Shimada, T., 2001, “Self-Excited Walking of a Biped Mechanism,” Int.
J. of Robotics Research, 20(12), 953-966.
Ottaviano E., Ceccarelli M., Tavolieri C., 2004. “Kinematic and Dynamic Analyses of a
Pantograph-Leg for a Biped Walking Machine”, Int. Conf. on Climbing and Walking Robots
CLAWAR, Madrid.
Ouezdou, F. B., Bruneau, O., & Guinot, J. C., 1998, “Dynamic Analysis Tool for Legged
Robots,” Multibody System Dynamics, 2(4), 369-391.
Park, F. C., Bobrow, J. E., and Ploen, S. R., 1995, “A Lie Group Formulation of Robot
Dynamics,” Int. J. of Robotics Research, 14(6), 606-618.
207
Park, J. H., and Kim, K. D., 1998, “Biped Robot Walking Using Gravity-Compensated Inverted
Pendulum Mode and Computed Torque Control,” IEEE Int. Conf. Robotics and Automation,
3528-3533.
Perrin, B., Chevallereau, C., and Verdier, C., 1997, “Calculation of the Direct Dynamic Model of
Walking Robots: Comparison Between Two Methods,” IEEE Int. Conf. on Robotics and
Automation, 1088-1093.
Pfeiffer, F., 1996, “Grasping with Hydraulic Fingers - An Example of
Mechatronics,” IEEE/ASME Trans. on Mechatronics, 1(2), 158-167.
Pons, J. L., Ceres, R., and Pfeiffer, F., 1999, “Multifingered Dextrous Robotics Hand Design and
Control: A Review,” Robotica, 17(6), 661-674
Poulakakis, I., Papadopoulos, E., and Buehler, M., 2006, “On the Stability of the Passive
Dynamics of Quadrupedal Running with a Bounding Gait,” Int. J. of Robotics Research, 25(7),
669-687.
Raibert, M. H. 1984, “Hopping in Legged System- Modeling and Simulation for the Two-
Dimensional One-Legged Case,” IEEE Trans. on Systems, Man, and Cybernetics, vol. 14(3), 451-
463.
Raibert, M. H., 1986, Legged Robot That Balance, MIT press, Cambridge, Massachusetts.
Raibert, M. H., 1990, “Trotting, Pacing and Bounding by a Quadruped Robot,” J. of
Biomechanics, 23(1), 79-98.
Raibert, M., Tzafestas, S., and Tzafestas, C., 1993, “Comparative Simulation Study of Three
Control Techniques Applied to a Biped Robot,” IEEE Int. Conf. on Systems, Man and
Cybernetics, 1, 494-502.
RecurDyn, 2009, FunctionBay Inc..
Ridderström, C., Ingvast, J., Hardarson, F., Gudmundsson, M., Hellgren, M., Wikander, J.,
Wadden, T., and Rehbinder, H., 2000, “The Basic Design of the Quadruped Robot Warp1,” Int.
Conf. on Climbing and Walking Robots.
Ringrose, R., 1997, “Self-Stabilizing Running,” IEEE Int. Conf. on Robotics and Automation, 1,
487-493.
Roberson, R. E., Schwertassek R., 1988, Dynamics of Multibody Systems, Springer, Berlin.
Rodriguez, G., 1987, “Kalman Filtering, Smoothing, and Recursive Robot Arm Forward and
Inverse Dynamics,” IEEE J. of Robotics and Automation, 3(6), 624–639.
208
Rodriguez, G., Jain, A., and Kreutz-Delgado, K., 1991, “A Spatial Operator Algebra for
Manipulator Modeling and Control,” Int. J. of Robotics Research, 10(4), 371-381.
Rodriguez, G., Jain, A., and Kreutz-Delgado, K., 1992, “Spatial Operator Algebra for Multibody
System Dynamics,” J. of the Astronautical Sciences, 40(1), 27-50.
Rosenthal, D. E., 1990, “An Order n Formulation for Robotic Systems”, J. of Astronautical
Sciences, 38(4), 511-529.
S. K. Saha, 2008, Introduction to Robotics, Tata Mcgraw Hill, New Delhi, India.
Saha, S. K., 1997, “A Decomposition of the Manipulator Inertia Matrix,” IEEE Trans. On
Robotics and Automation, 13(2), 301-304.
Saha, S. K., 1999, “Analytical Expression for the Inverted Inertia Matrix of Serial Robots,” Int. J.
of Robotic Research, 18(1), 116–124.
Saha, S. K., 1999, “Dynamics of Serial Multibody Systems Using the Decoupled Natural
Orthogonal Complement Matrices,” ASME J. of Applied Mechanics, 66, 986-996.
Saha, S. K., 2003, “Simulation of Industrial Manipulators Based On the UDUT Decomposition of
Inertia Matrix,” Int. J. of Multibody System Dynamics, 9(1), 63-85.
Saha, S. K., and Schiehlen, W. O., 2001, “Recursive Kinematics and Dynamics for Closed Loop
Multibody Systems,” Int. J. Mech. Structures Machines, 29(2), 143–175.
Saha, S. K., Shirinzadeh, B., and Alici Gl, 2006, “Dynamic Model Simplification of Serial
Manipulators,” ISRA, Mexico.
Saha, S.K., and Angeles, J., ``Dynamics of Nonholonomic Mechanical Systems Using a Natural
Orthogonal Complement," ASME J. of Applied Mechanics, 58, 238-243.
Sakagami, Y., Watanabe,R., Aoyama, C., Matsunaga, S., Higaki, N., and Fujimura, K., 2002,
“The Intelligent ASIMO: System Overview and Integration,” IEEE Int. Conf. On Intelligent
Robots and Systems, 2478-2483.
Salisbury, J. K., and Craig, J. J., 1982, “Articulated Hands: Force and Kinematic Issues,” Int. J.
Robotics Research, 1(1), 4-17.
Saranli, U., Buehler, M., and Koditschek, D. E., 2001, “Rhex – A Simple and Highly Mobile
Hexapod Robot,” Int. J. of Robotics Research, 20(7), 616 – 631.
Saranli, U., Rizzi, A. A., and Koditschek, D. E., 2004, “Model-Based Dynamic Self-Righting
Maneuvers for a Hexapedal Robot,” Int. J. of Robotics Research, 23(9), 903-918.
Schiehlen, W., 1990, Multibody Systems Handbook, Springer-Verlag, Berlin.
209
Schiehlen, W., 1997, “Multibody System Dynamics: Roots and Perspectives,” Multibody System
Dynamics, 1, 49–188.
Shabana A. A.., 2001, Computational Dynamics, Wiley, New York.
Shah, S. V., Mistri, B. D., and Issac, K. K., 2006, “Evaluation of Foot Ground Interaction Model
Using Monopod Forward Hopping,” Int. Con. on Recent Trends in Automation and its Adaptation
to Industries, India.
Shah, S. V., Saha, S. K., and Dutt, J. K., 2009, “Denavit-Hartenberg Parameters of Euler-Angle-
Joints for Order (N) Recursive Forward Dynamics,” ASME Int. conf. on Multibody systems,
Nonlinear Dynamics and control, USA.
Shih, C. L., Gruver, W. A., and Lee, T. T., 1993, “Inverse Kinematics and Inverse Dynamics for
Control of a Biped Walking Machine,” J. of Robotic Systems, 10(4), 531-555.
Shuster, M. D, 1993, “A Survey of Attitude Representations,” J. of the Astronautical Sciences,
41(4), 439-517.
Shuster, M. D., and Oh, S. D., 1981, “Three-Axis Attitude Determination from Vector
Observation,” J. of Guidance, Control and Dynamics, 4(1), 70-77.
Singla, P., Mortari, D. and Junkins, J. L, 2004, “How to Avoid Singularity for Euler Angle Set?,”
AAS Space Flight Mechanics Conf., Hawaii.
Stejskal, V., and Valasek, M., 1996, Kinematics and Dynamics of Machinery, M. Dekkar Inc.,
New York.
Stelzle, W., Kecskem´ethy, A., and Hiller, M., 1995, “A comparative study of recursive methods,”
Archive of Applied Mechanics. 66, 9–19.
Stewart G. W., 1973, Introduction to Matrix Computations, Academy press, Florida.
Stokes, A., and Brockett, R., 1996, “Dynamics of Kinematic Chains,” Int. J. of Robotics
Research, 15, 393-405.
Strang, G., 1998, Linear Algebra and its Applications, Harcourt, Brace, Jovanovich, Publisher,
Florida.
Sugihara, T., Nakamura, Y., and Inoue, H., 2002, “Realtime Humanoid Motion Generation
Through ZMP Manipulation Based On Inverted Pendulum Control,” IEEE Int. Conf. on Robotics
and Automation, 2, 1404-1409.
Uicker, Jr., J.J., 1965, On the Dynamic Analysis of Spatial Linkages Using 4 x4 Matrices, Ph.D.
thesis, Northwestern University, Evanston.
210
Vereshchagin, A.F., 1975, “Gauss Principle of Least Constraint for Modeling the Dynamics of
Automatic Manipulators Using a Digital Computer,” Soviet Physics - Doklady, 20(1), 33-34.
Vukobratovic, M., Borovac, B., Surla, D., and Stokic, D., 1989, Biped Locomotion: Dynamics,
Stability, Control and Application, Springer, Berlin.
Vukobratovic, M., Potkonjak, V., Babkovic, K., Borovac, B., 2007, “Simulation Model of
General Human and Humanoid Motion,” Multibody System Dynamics, 17(1), 71-96.
Walker, M. W., and Orin, D. E., 1982, “Efficient Dynamic Computer Simulation of Robotic
Mechanisms,” ASME J. of Dynamic Systems, Measurement and Control, 104, 205-211.
Wehage, R. A., and Haug, E. J., 1982, “Generalized Coordinate Partitioning for Dimension
Reduction in Analysis of Constrained Dynamic Systems,” ASME J. of Mechanical Design, 104,
247-255.
Wisse, M., Schwab, A. L., van der Linde, R. Q., and van der Helm, F. C. T., 2005, “How to Keep
from Falling Forward: Elementary Swing Leg Action for Passive Dynamic Walkers,” IEEE
Trans. on Robotics, 21(3), 393-401.
Wittenburg J., 2008, Dynamics of Multibody systems, Sprnger, Berlin.
Wong, C. W., & Yasui, K., 2006, “Falling chains,” American J. of Physics, 74(6), 490-496.
Yamaguchi, J., Soga, E., Inoue, S., and Takanishi, A., 1999, “Development of a Bipedal
Humanoid Robot – Control Method of Whole Body Cooperative Dynamic Biped Walking,” IEEE
Int. Conf. on Robotics and Automation, 368 – 374.
Yamane, K., and Nakamura, Y., 1999, “Dynamics Computation of Structure-Varying Kinematic
Chains for Motion Synthesis of Humanoid,” IEEE Int. Conf. on Robotics and Auto., 1, 714-721.
Yamane, K., and Nakamura, Y., 2006, “Stable Penalty-Based Model of Frictional Contacts,”
IEEE Int. Conf. on Robotics and Automation, 1904-1909.
Yamane, K., and Nakamura, Y., 2002, “Efficient Parallel Dynamics Computation of Human
Figures,” IEEE Int. Conf. on Robotics and Automation, 1, 530-537.
Yen, J., and Petzold, L. R., 1998, “An Efficient Newton-type Iteration for the Numerical Solution
of Highly Oscillatory Constrained Multibody Dynamic Systems,” SIAM J. on Scientific
Computing, 19(5), 1513-1534.
Yoshikawa, T., 1985, “Manipulability of Robotic Mechanisms,” Int. J. of Robotics Research, 4(2),
3–9.
Yu, Q., and Chen, I. M., 2000, “A Direct Violation Correction Method in Numerical Simulation
of Constrained Multibody Systems,” Computational Mechanics, 26(1), 52-57.
211
212
Appendix A
CLOSED-LOOP SYSTEM
For the completeness of the dynamic formulation proposed in this thesis, dynamics of
robotic systems having closed topology called the closed-loop systems are outlined in this
appendix. In order to analyze a closed-loop system, it is first opened at appropriate joints
to form a tree-type system. The opened joints are substituted with suitable constraint
forces, ’s, also known as Lagrange multipliers, which are then treated as external forces
to the resulting open tree-type system. As a result, the problem is converted to a problem
of tree-type system with externally applied constraint forces. Hence equations of motion
can be represented as
F TIq Cq J (A.1)
where is the constrained Jacobian matrix (Nikravesh, 1988) for the closed-loop system,
and is defined in a way so that
J
Jq 0 . Moreover, is the vector of Lagrange multipliers
representing the constraint forces at the cut opened joints. There are several methods of
solving Eq. (A.1) as shown by Shabana (2001). However, concept of “determinate” and
“indeterminate” subsystems, as proposed by Chaudhary and Saha (2007), has been
proven to be more powerful and elegant approach in comparison with others for the
dynamic analyses of closed-loop systems.
In this appendix, it is shown how the algorithm presented in Chapters 6 and 7 for tree-
type robotic systems can be adopted to solve the closed-loop systems as well. The
213
methodology is illustrated using an example of 1-DOF robotic leg (Ottaviano at el.,
2004), as shown in Fig. A.1.
The robotic leg is a 1-DOF approximate straight line mechanism (#0 #1 #3 #2) whose
motion is amplified by the pantograph mechanism (#0 #4 #5 #7 #6). Such a
mechanism was used as a device for carpet scrapping mechanism, as shown in Fig. A.2,
as reported by Saha et al. (2003). The results of inverse dynamics for the carpet scrapping
mechanism reported by Saha and Chaudhary (2009) will be used as a reference to validate
the proposed algorithm as well as the results generated for the robotic leg as an extension.
The robotic leg has 7 links and 10 joints and, thus, it has 10 7=3 independent loops.
Hence in order to convert it into a tree-type system it has to be opened at three joints. In
order to cut the closed-loop system, its graph representation is drawn in Fig. A.3, where
the links or bodies are indicated with circles while the lines joining the circles indicate
joints. The joints to be cut are then identified using the concept of Cumulative DOF
(CDOF) in graph theory (Deo, 1974), which is defined as the total DOF of all the joints
Fig. A.1 A robotic leg
#0
1
#2
#3
#1
#4
#5
#6 #7
2
3
4 5
6
7
8
9, 10
m
Fig. A.2 A carpet scrapping mechanis
#1
#2
#4
#0
#0
#5
#6#7
#3
1 2
8
3
7
6
5 4
9, 10
214
lie between the base link (#0) and a link (say kth
) of the system along any path. The path
giving minimum CDOF is chosen as the way for cutting a close-loop system. Based on
the minimum CDOF, the graph in Fig. A.3 is cut at joints 8, 9 and 10. The resulting tree-
type system is shown in Fig. A.4, where subsystem-I has one link, subsystem-II has two
links and the tree-type subsystem-III has four links. The module architecture of the
system is shown in Fig. A. 5.
Fig. A.3 Graph representation of the robotic leg
#0
#2 #3 #7
#4
#5
#6
#1
1
2
3
4
5
6
7
10
98
Fig. A.5 Module architecture of the robotic leg
1
2
3
#0
M2
M3
M4
M5
#11
M1
#12
#22
#13
#14
#15
#25
15
25
14
121
1
13
22
D
Fi g. A.4 Tree-type representation of robotic leg
1
2
3
Subsystem I
Subsystem II
Subsystem III
D
215
A.1 Inverse Dynamics
Once the tree-type system is formed, the “determinate” and “indeterminate” sub-systems
are identified using the methodology provided by Chaudhary and Saha (2009). Referring
to Fig. A.5, subsystem-I has only one hinged link. Hence, it will have one constrained
equation of motion. However, it has three unknowns, i.e., two components of the
constraint forces at the cut joint denoted by 1, and the driving torque ( D). As a result,
subsystem-I is an indeterminate subsystem. Similarly, subsystem-II has two constrained
equations of motion with four unknowns, i.e., two components of 1 and 2 each. Hence,
it is also an indeterminate subsystem. On the other hand, subsystem-III has four
constrained equations of motion with four unknowns, i.e., two components of 2 and 3
each. Hence, it is a determinate subsystem because the four constraint equations of
motion allow one to solve for all four unknown of the constraint forces due to the cut at
the joints 9 and 10. So, the subsystem III is solved first. With four components of 2 and
3 together known, the subsystem-II becomes determinant which will allow to solve for 1
from its two constrained dynamic equations of motion. Finally, with the knowledge of the
two component of 1, the driving torque ( D) can immediately be computed from the only
constrained equation of motion for determinant subsystem-I. This way, a subsystem-level
recursion was formed and this makes the resultant algorithm computationally very
efficient (Chaudhary and Shah, 2009). The following steps explain the algorithm:
The three independent loops (Fig. A.1) for the robotic leg are identified as (1-2-3-8-
1), (2-3-9-4-2), and (4-5-6-7-10-5-4). Based on the three loop-closer equations, the
kinematic constraint are obtained in the form Jq 0 as
216
,1 ,2
,1 ,2
I I I
II II II
III III
J J O q 0
O J J q 0
O O J q 0
(A.2)
where , , , , ,1IJ ,2IJ ,1IIJ ,2IIJ IIIJ are of sizes 2×1, 2×2, 2×2 , 2×4 and 2×4
respectively.
Using Eq. (A.1-2), the equations of motion for the tree-type determinate subsystem-III
can be written as
,2 2 3 , whereT T
II III III III III IIIJ J I q CF
III III IIIq (A.3)
In the above equation III is known from the input joint motions and is
calculated subsequently.
2 3[ ]T T T
III
Knowing the , subsystem-II becomes “determinate”. Hence 1 is calculated from
the following equation of motion:
2
,2 1 ,1 2 , whereJ J I qT T
I II II II I C q F
I II II II II
I q C qT F
(A.4)
Knowing the 1 the subsystem-I becomes “determinate”. As a result, the driving
torque is calculated using the only equation of motion which is
,1 1, whereJ D I I I I I I I I (A.5)
The model parameters of the robotic leg are given in Table A.1. The input motion
provided was one complete rotation of the input link #11 with angular velocity of 270
deg/sec. Numerical values for the torque at the actuated joint (11) is calculated using Eq.
(A.5). The result for the joint torque is shown in Fig. A.6. It may be noted that
, , and III II I in Eqs. (A.3-A.5) were obtained using the proposed recursive inverse
dynamics algorithm, as shown in, in Table 6.1 of chapter 6.
217
Table A.1: Model parameters of the robotic leg
Mass (gms) Length (mm)
11 10 25
12 20 62.5
22 50 125
13 80 200
23 30 75
33 120 300
43 60 150
Fig. A.6 Torque require at joint 11
0 0.2 0.4 0.6 0.8 1 1.2 1.4
-30
-25
-20
-15
-10
-5
0
5
10
t (sec)
Drivin
g t
orq
ue
(N
mm
)
1
1
A.2 Forward Dynamics
Conventionally (Shabana, 2001) forward dynamics of closed-loop system solves
independent accelerations ( ) and constraint forces ( ) together by combining the
equations of motion in (A.1), and the second order derivative of the constrained equations
in the form of . They are shown as
q
G Cq
Jq Jq
, where T qI J
- JqJ O (A.6)
The formulation in Eq. (A.6) is popularly known as Differential Algebraic Equations
(DAE) formulation. Using Eq. (A.6), and can be solved simultaneously, and requires q
218
order (133) computations as the system has 7 unknown for q and 6 unknown for .
Alternatively, can be obtained first after rearranging Eq. (A.6) as
1 1S (JI Jq 1, where T
I IS JI J
1 T
(A.7)
Next, the solution of the joint accelerations is obtained as
(A.8) q I (J
As a result, solution of ’s requires a maximum of order (63) computations, whereas the
joint accelerations were solved recursively using the forward dynamics algorithm
proposed in Table 6.2, which requires order (7) computations. Here, the latter approach
was followed to take the advantage of recursive forward dynamics algorithm of Chapter 6
even for a closed-loop system.
Simulation results of actuated joint angle ( 11) for the robotic leg are given in Fig. A.7 by
using the torque obtained in Fig. A.6 as a solution of the inverse dynamics problem.
Comparison of the joint angle with the desired one is also shown in Fig. A.7. The error
between the desired and the actual joint angle is found to be small, as shown in the Fig.
A.8. Hence, the correctness of the results is validated.
Fig. A.7 Simulated joint angle (Input link)
0 0.5 1 1.5-7
-6
-5
-4
-3
-2
-1
0
time (s)
Actu
ate
d jo
int
an
gle
(d
eg
)
Desired
Actual
Fig. A.8 Error in joint angle
0 0.5 1 1.5-5
0
5
10x 10
-3
err
or
in a
ctu
ate
d jo
int
an
gle
time (s)
219
220
Appendix B
COMPUTATIONAL COMPLEXITY
In this appendix, vectors and matrices associated with the kth
link, e.g., vector tk or matrix
Mk, are represented in the frame attached to link k and referred to as the kth
frame.
However for brevity as well as simplicity of writing, the frame of reference will not
explicitly be mentioned. If a vector or matrix is represented in the frame other than kth
frame, say the jth
frame, it will then be expressed as [rk]j or [Mk]j.
B.1 Elementary Computations
Computations of the terms , , and (T
k k k k k k )e e r e r are shown in this section. For this, the
3-dimensional vector ek denoting the unit vector along the axis of rotation or translation
of a joint is represented in the body-fixed frame as 0 0 1T
ke . Hence, for a scalar
joint rate k n the 3-dimensional vector a d 1k krr terms
,e k k
2kr 3
T
kr , the
), and (e r e rT
k k k k lculated as are ca
2
3 1
0
0 (0M0A), (0M0A), (0M0A)
0
e e r e r
k
T
k k k k k k k k
k
r
r r (B.1)
The numbers within the parenthesis, i.e., (0M0A), denote the numbers of
Multiplications/Divisions (M) and Additions/Subtractions (A) required to compute the
expressions.
221
B.2 Representation of Vector in a Different Frame
A rotation matrix Qk (representing rotation between kth
and jth
frame where j is the parent
of k) when considered as two successive rotations about X- and Z- axes, can be
represented by using Eq. (3.4) as
1 0 0
0 0
Q =Q Qk kk k
k k
C
C S S
S C
0
0 0
0 1
k k
k k k
S
C
wherek k
k k
k k k
r
r r Q r
1)
wherek k
T
k j
T T
(B.2)
A vector rk can then be represented in jth
frame as
[ ]k jr Q
Q (B.3)
where and are computed as follows krk kQ r
1 1 2 1
2 1 2 2 3
3 3 2 3
(4 2 ); 2) (4 2 )k
k k k k k k
k k k k k k k k k k k
k k k k k k
r r C r S r
r r S r C M A r C r S M A
r r r S r C
r = Q r (B.4)
So, the transformation requires computational count of 8M4A. Similarly, one may
also represent vector rj in kth
frame as , i.e.,
k kQ r
T
k jQ r
[ ]j k
j j j
r
r r Q r
r Q
Q (B.5)
where jr and k
T
jQ r are computed as follows
1 1 1 2
2 2 3 1 2
3 2 3 3
(4 2 ); 2) (4 2 )
j j j k j k
T
j j j k j k k j j k j k
j j k j k j
r r r C r S
r r C r S M A r S r C M A
r r S r C r
r = Q r1) (B.6)
222
In the case of multiple-DOF universal or spherical joints, is typically taken as 90o, i.e.,
joint axes intersecting orthogonally. Hence, r does not require any computation.
B.3 Representation of Matrix in a Different Frame
A 3×3 matrix Fk can be represented in the jth
frame as
[ ]F Q F Q
Q F Q k k
T
k j k k k
where F Q F Qk k
T T
k k k
(B.7)
Note that in Eq. (B.7), the 3×3 rotation matrix Qk denotes the orientation of the kth
frame
with respect to jth
where j is parent of k. Moreover, Qk
and Qk
have the same
representations as given in Eq. (B.2). Equation (B.7) is computed in the following two
steps:
Step 1: Computation of F Q F Qk k
T
k k
11 1 12 2 13 23
21 2 22 1 13 23
31 32 31 32 33
1 1 1 2 2 2 1 2 2 1 1 11 22 2 12 21
1 2
(8 8
where
, ( ), (
, (2 0 )
F
=
k k
k k
k k k k
k k k k
f d f d f C f S
f d f d f S f C M
f C f S f S f C f
d b t b t d b t b t b f f b f f
t S S t C S M A
)
) (4 4 )
k A
M A
(B.8)
In Eq. (B.8), the term rsf is the (r, s)th
element of matrix Fk.
Step 2: Computation of [ ] F Q F Qk k
T
k j k
8 )
) (4
11 12 13 12 13
21 31 22 1 23 2
21 31 32 2 33 1
1 1 1 2 2 2 1 2 2 1 1 22 33 2 23 32
[ ] (8
where
, , ( ), (
F
k k k k
k j k k
k k
f f C f S f S f C
f C f S f d f d
f S f C f d f d
d b t b t d b t b t b f f b f f
1 2, (0 0 ) (off - line) = k k k k
M A
4 )M A
t S S t C S M A
(B.9)
223
In Eq. (B.9), the term rsf is the (r, s)th
element of matrix Fk. The terms in Eq.
(B.9) may be computed offline as k is the constant DH parameter. Computation of Eqs.
(B.8) and (B.9) need computational counts of 14M12A and 12M12A, respectively, and
the total count of 26M24A is required for calculation of [ . In the case of multiple-
DOF universal or spherical joints, the angle between the intersecting revolute axes are
90o, so, Eq. (B.9) does not require any computation as it is simply
1 andt 2t
12
32
22
; (0 0 )
f
] jFk
11 13
31 33
21 23
[ ]F k j
f f
f f f M A
f
)
) (4 3 )
1; (4 1 )
M A
M A
A
f f (B.10)
If Fk is a symmetric matrix, then and [ are obtained as shown below: Fk ]Fk j
11 1
2 22 1
31 32 31 32 33
1 1 1 21 3 2 1 2 21 4 1 11 22
1 2 3 2 4 1
(4 4
where
, , (
, 2 2
F
=
k
k k k k
k k k k
f d sym
d f d
f C f S f S f C f
d b t f t d b t f t b f f
t S S t C S t t t t M
(B.11)
11
21 31 22 1
21 31 2 33 1
1 1 1 32 3 2 1 2 32 4 1 22 33
1 2 3 2 4
[ ] (4 4 )
where
, , ( ) (4 3 )
, 2 2
F
=
k j k k
k k
k k k k
f sym
f C f S f d M A
f S f C d f d
d b t f t d b t f t b f f M A
t S S t C S t t t 1 1; (0 0 ) (off - line) t M A
(B.12)
Equations (B.11) and (B.12) require computational counts of 12M8A and 8M7A,
respectively. As a result, total computational count require for calculation of is
20M15A. Moreover, if is constant then the computational count is 16M14A. In the case
of multiple-DOF joints with k=90, Eq. (B.12) is simply
[ ]Fk j
224
11
31
21
[ ]k j 33
32 22
(0 0 )F
f sym
f f M A
f f f
andk
j
k
(B.13)
B.4 Spatial Transformations
The 6×6 matrix (where j is the parent of k) in Eq. (4.3) represents the twist-
propagation matrix whereas in Eq. (5.6) is the 6-dimesional wrench vector. Matrix
and vector have following representation:
,k jA
kw
kw
,k jA
,
,
k j
k j
nA w
1 f
is
] whe
1
a 1 (B.14)
In Eq. (B.14), ,k ja 1 the cross-product tensor associated with the vector
, [k ja re ak and bk are the DH parameters, which are the link
length and the joint offset, respectively. The tensor ,k j
k kb C T
k k ka b S ,
a en operates on any 3-
dimensional Cartesian vector, x, results in a cross-product vector, i.e., ,k ja x tensor
,k ja 1 e following representation:
1 wh
The
0
0
k k k k
k k
k k k
b C b S
a
a
,
.
has th
,
0
k j kb C
b S
]
,( )Tk kk j
k k
a 1 (B.15)
If matrix and vector w are available in jth
and kth
frame, respectively, the
transformation in the jth
frame may be calculated as
,k jA k
,[ T
k j k jA w
,[ ]T
k j k j
Q n1 a 1
Q fO 1A w (B.16)
The above equation is written as
225
,( )Tkj k
kk
,[ ]T k k
k j k j
n1 Q
fQ
k k
k
Q aA w (B.17)
Now, Eq. (B.17) can also be rewritten as
,
( ) ( )[ ] k k k
k k
T T
k kT
k j k j
n
f
) )
k
k
Q a 1 Q Q b 1 QA w
O Q O Q (B.18)
In Eq. (B.18), and ( are cross-product tensors associated with the vectors
and . Moreover, matrices
( ka 1
0]T
kb 1
[0 0k[ 0k kaa ]Tbb
( ) ( ) and k k k
k k
T T
k kQ a 1 Q Q b 1 Q
O Q O Q
( )
( )
k k
k
k k
k
T
k k
k k
T
k
k
may be interpreted as planar screw transformation (Featherstone, 1987) about X and Y
axes, respectively. Now Eq. (B.18) is computed in two steps as
,
1)
2) [ ]
k
k
kT
k j k j
1 Qn n
f f
1 Q n
fO Q
( )k k
k
T
k k k
k
b 1 Q f
Q f
Q b w
O Q
Q a A w
(B.19)
These two steps are explained below:
Step 1: Computation of wk
k
Q nw
(B.20)
Equation (B.20) is computed as
226
1 2
1 2
3
1
2
3
1 1 2 2 1 2
( )
(0 0 )
where ,
Q n b 1 Q f
Q f
k k
k
k k k k k
T
k k k k k k k k
k
k
k
k k k k k k k
n C n S b h
n S n C b h
h
h M A
f
h f C f S h f S f C
2
1 (6 4 )
(4 2 )
k
M A
M A
( )k k
k
T
k k k
k
(B.21)
Step 2: Computation of ,[ ]T
k j k jA w
,[ ]T
k j k j
Q n a 1 Q f
Q f
2
1
(6 4 )
(4 2 )
k
M A
M A
A w
(B.22)
Eq. (B.22) is computed as
1
2 3
2 3
1
1
2
1 2 3 2 2 3
( )
(0 0 )
where ,
Q n a 1 Q f
Q f
k k
k
k
T
k k k k k k k k
k k k k k
k
k
k k k k k k k
n
n C n S a h
n S n C a h
f
h M A
h
h f C f S h f S f C
(B.23)
Steps 1 and 2 require computational cont of 10M6A each and hence a total computational
count of 20M12A is required to find ,
T
j k jA w in the kth
frame. Similarly, it may also be
shown that computational count to find out , ][A tj k k j is 20M12A, where is the 6-
dimensional twist vector as defined in Eq. (4.2).
kt
B.5 Some Special Computations
The linear acceleration ( ) of the kth
link in terms of its parent link, j, is obtained as ko
, ,[ ( )]j k j j j kaT
k k j jo Q o a
(B.24)
227
where j and j are the 3-dimensional vectors of angular velocity and angular
acceleration, respectively, of the jth
link. Equation (B.24) may also be rewritten as
, where ) ( )(T
k k j j j k j j jo Q o a 1 1 )j 1
a
(B.25)
In Eq. (B.25), and re the cross-product tensors associated with j 1 j 1 j and j
spectively. The term is computed efficiently as follows: , re
23
11
(0M9A)
33 22 3 12 2 13
3 12 33 11 1
2 13 1 23 22
(B.26)
where 13 1 3 23 2 3 13 1 3 11 1 1 22 2 2 33 3 3, , , , , (6M0A) .
Moreover, s and s , for s=1,…,3, are the sth
element of the vectors, j and j ,
respectively. Hence, requires a computational count of 6M9A, whereas computation
of requires a computational count of 17M13A. ko
Next, the Euler equations of motion (as obtained in Eq. 5.4) for the kth
link is given as
k k k n I k k k k k kmI d o
15 15 )M A
(B.27)
In Eq. (B.27), is efficiently computed as k k k k kI I
1 11 31 12 21 13 23 22 33 23 23
2 22 21 23 32 12 13 33 11 31 13
3 33 23 13 13 23 12 11 22 12 12
( )
( ) (
( )
k k k k k
i i i i p
i i i i p
i i i i p
n I I
(B.28)
23 22 33 31 33 11 12 11 22where ( ), ( ), and ( )p i i p i i p i i
rsi rs
, which are constant terms and
may be calculated offline. Moreover, and are the (r,s)th
elements of the matrices
and , respectively. Note that, matrix kI is already computed while obtaining the
228
linear acceleration as in Eq. (B.26). Hence, the computation of requires total
computational count of 21M21A.
kn
B.6 Mass Matrix of Composite Body
The mass matrix of composite body is expressed as
, ,
T
j j k j k k jM M A M A (B.29)
where jM , jM and have the following representations: ,k jA
,
,
( 1), ,
1
I d 1 IM M
d 1 1 a1
Tj j j j j
j j
j j j kj j
m
m m m
1A
j 1k j (B.30)
where and are the cross-product tensors associated with vectors and jd 1 1j kdj,
respectively. In Eq. (B.29), solving in jth
frame of reference is
computationally very expensive step as is available in the kth
frame of reference. The
transformation, in the jth
frame is obtained as
,
T
k j k k jA M A
k
,
,
1
M
,
T
k j kA M k jA
,
, ,
,
( )( 1)[ ]
( )
Q I Q Q 1 Q1 aA M A
Q 1 Q Q 1QO 1
T TT
T k k k k k kk j
k j k k j j T Tk jk k k k k km 1
1
a
T
(B.31)
Equation (B.31) may also be rewritten as
,
, ,
,
( 1) ( )[ ]
( 1( )
QQ a Q I 1A M A
Q a QO Q 1 1
TT TkT k k j k k k
k j k k j j T
k k j kk k km ) T
k
T
(B.32)
The above equation is now expressed in terms of planar screw transformation about X
and Y axes as
, ,[ ]
( 1) ( 1) ( )
( 1) 1)( )
A M A
Q a Q Q b Q QI 1
O Q O Q Q b Q Q Q1 1
k k k k k k
k k k k
T
k j k k j j
T T T TTk k k k
T T
k km (
Q
ak
T
k k
(B.33)
229
Equation (B.33) is then obtained in two steps as shown below:
, ,
( 1)( ) ( )
( ) ( ) ( 1)
( 1) ( )]
( )
k k k
k k
k k k
k
T TT Tkk k k k
k T T
k k k k k
T TTkT k k
k j k k j j
k k
m m
m
Q b Q QI 1 I 1
1 1 O Q 1 1 Q b Q
Q a Q QI 1A M A
O Q 1 1 ( 1)k k
T T
kQ a Q
k
1)
2)[
M
(B.34)
These above steps are expanded below:
Step 1: Computation of jM
( )
( )
( ) ( 1) ( 1) ( ) ( 1)
( ) ( 1)
k k k k k k k k
k k k k k k
T
k k
k k
T T T T T T
k k k k k k k
T T T
k k k k
m
m sym
m m
I 1
1 1
Q I Q Q 1 Q b b Q 1 Q Q 1Q b
Q 1 Q Q 1Q b Q 1Q
kM
(B.35)
The transformation k
Q is obtained by using Eq. (B.11), whereas
k kmQ 1Qk
T= 1 ation of
k k
T
k
k
. Comput
T
kI Q
k k kmQ = 1 as k
T T
km= Qk
Q Q Q I Q anT
1Q
unts of 12M8A and 0M0A, respectively. Moreover, ( )k k
T
kQ 1 Q is
ntly as follows:
d
d efficie
) (4 2 )k
k kkmQ
require, co
obtaine
( ) (k k
T
k k M A1 Q 1 Q = Q (B.36)
The block elements of Eq. (B.35) are obtained as
11 2 12 13 1 1 2
22 2 23 2 1 1
33 2 1
1 3 3 2 1 3 3
0
(2 4 ); ( ) 0 (0 0 )
0
ere , ( ) (1 2 ) and (0 0 ) (off - line)
I 1
k
k k k
k k k
i c i i b c
i c i b M A c M A
sym i
c c c c b M A c m b M Awh
(B.37)
In Eq. (B.37), irs and s are the (r,s)th
and sth
elements of the matrix k
T
k kQ I Q and vector
, respectively. The total computational count for step 1 is 19M16A. k kQ
230
Step 2: Computation of , ,[ ]T
k j k k j jA M A
, ,[ ]
( ) ( 1) ( 1) ( ) ( 1)
( ) ( 1)
k k k k k k k k
k k k k k k
T
k j k k j j
T T T T T T
k k k k k k k
T T
k k k
m s
m m
A M A
Q I Q Q 1 Q a a Q 1 Q Q 1Q a
Q 1 Q Q 1Q a Q 1QT
k
ym
k
(B.38)
In Eq. (B.38), k
T
kQ I Q
Q 1
k
is obtained using Eq. (B.12) and has computational count of
8M7A, whereas requires no computations. Moreover
is obtained as
(0 0 )k k
T
k km m MQ = 1 A
( ) (4 2 )kk k
( )k
T
kQ 1 Q
( )k k
T M AQ 1
1)k
Q 1 Q = (B.39)
Now, the block elements of Eq. (B.38) are given by
11 12 2 13 3
22 2 23
33 2
3 2
3 1
( ) ( 1) ( 1) ( ) (
(2 4 )
( ) ( 1)
0
0
k k k k k k k k
k k k k
T T T T T T
k k k k k k
k k
T T
k k k
m
i i a i a
i c i M A
sym i c
m
c
Q I Q Q 1 Q a a Q 1 Q Q 1Q a
=
Q 1 Q Q 1Q a
=
2 1
1 3 1 2 1 1 3
(0 0 )
0
where , ( ) (1 2 ) and (0 0 ) (off - line)k k k
M A
c
c c c c a M A c m a M A
(B.40)
In Eq. (B.40), and rsi s
T
are the (r,s)th
and sth
elements of the matrix and
vector , respectively. Computational count for step 2 is obtained as 15M15A.
Hence, the total count required for is 34M31A. In the case of a prismatic
joint it would have required a computational count of 31M30A instead. Finally, the
computation of M A
k
T
kQ I Qk
]
k kQ
, ,[A M AT
k j k k j j
, ],[ M Aj k j k k j j has a computational count of 0M9A for the
summation. So the final computational count to obtain jM is 34M40A.
231
B.7 Mass Matrix of Articulated Body
The mass matrix of articulated body is expressed as
, , ,ˆ ˆ , whereM M A M A
T
,ˆ ˆ M Mj j k j k k k j k k k k (B.41)
The matrices ˆjM , and in Eq. (B.41) have the following representations: ,
ˆk kM
,
ˆ ˆ
ˆˆ
T
kk kk
k
kk kk
ˆ ˆˆ ˆ and
ˆˆ
T
j j
j k
j j
I F
F G
,
,
I FM M
F G (B.42)
In Eq. (B.41), solving in j
th frame of reference is computationally a very
expensive step as M is available in the kth
frame. The term in the jth
frame is obtained as
, ,ˆT
k j k k k jA M A
,k kˆ
, ,ˆT
k j k k k jA M A
,
, , ,
,
ˆ ˆ( 1)ˆ[ ]ˆ 1ˆ
1Q I Q Q F Q1 aA M A
a 1O 1 Q F Q Q G Q
T T TTk kk k k k kT k j
k j k k k j j T Tk j
k kk k k kk k
(B.43)
Similar to Eq. (B.31), the above equation may also be represented in terms of planar
screw transformations as
, , ,ˆ[ ]
ˆ ˆ( 1) ( 1)
ˆˆ ( 1) ( 1)
A M A
Q a Q Q b Q Q QI F
O Q O Q Q b Q Q a QF G
k k k k k k
k k k k k
T
k j k k k j j
T T T TTk k kk kk
T T T T
k kkk kk k
(B.44)
Equation (B.44) is then solved in two steps as
,
, , ,
ˆ ˆ ˆ ˆ( 1)ˆ1)
ˆ ˆˆ ˆ ( 1)
ˆ ˆ( 1)ˆ2)[ ]
ˆˆ
Q b Q QI F I F M
O Q Q b QF G F G
Q a Q QI FA M A
O Q QF G
k k k
k k
k k k
k k
T TT Tkkk kk kk kk
k k T T
kkk kk kk kk
T TTk kk kkT
k j k k k j j T
kk kk( 1)a Q
k
T
k
k
(B.45)
These above two steps are expanded below:
232
Step 1: Computation of ,ˆ
k kM
,
( 1) ( 1) ( 1)ˆ
ˆ ˆˆ ( 1)
k k k k k k k k
k k k k k k
kk kk k k kk kk k
k kT T
kk kk k kk
symQ I Q Q F Q b b Q F Q Q G Q bM
Q F Q Q G Q b Q G Q
ˆkkI ˆ
kk
ˆˆ ˆ ˆT T T T T T
T
0 0
ˆ ˆ0 and 0
0
kkF =
k k
(B.46)
In Eq. (B.46), and G are the symmetric matrices. For the kth
joint being revolute,
matrices and have the following forms of representations: ˆkkI Fkk
0 0 0
kkI = (B.47)
where ‘ ’ denotes non-zero value of elements. In order to compute Eq. (B.46), first
is obtained by using Eq. (B.8), whereas T
Qˆk kkQ F ˆ
k
T
kkQ I Q and ˆk
T
kk kQ G Q are obtained
by using Eq. (B.11). Many computations in ˆk kk k
TQQ I and ˆ
k kk k
TQQ F simplify for and
because they have many zero elements as indicated in Eq. (B.47). The
transformations
ˆkkI
ˆkkF
ˆk k
T
kkQ F Q , and ˆk
T
kkQ I Qk
ˆk kk k
TQ G Q have the following representations:
11 12 11 12
12 22 21 22
31 32
11 12 13
22 23
33
0 0
ˆ ˆ0 (8M6A), 0 (8M10A
0 0 0 0
ˆand (8M7A)
k k k k
k k
T T
kk kk
T
kk
i i f f
i i f f
f f
g g g
g g
sym g
Q I Q = Q F Q =
Q G Q =
),
3 )k M A
(B.48)
Given Eq. (B.48), the block elements of Eq. (B.46) are obtained below:
11 4 21 12 2 22
22 3 12
2 3
4 22 1
31 23 32 13
1 12 2 11 1 3 12 11 4 21 22
( ) ( ) 0
ˆ ( ) 0 ; (3 6 )
0
0
ˆ 0 ; (2 3 )
0
where , , , (3
k k
kk k
kk
k k
k k
i c f b i c f b
i c f b M A
sym
c c
c f c M A
f b g f b g
c b g c f c c f b g c f b g
I
F
(B.49)
233
The total computational count for step 1 is 32M35A. Next, step 2 is evaluated.
Step 2: Computation of [ ] , , ,ˆA M A
T
k j k k k j j
T
k k
, , ,ˆ[ ]
ˆˆ ˆ ˆ( 1) ( 1) ( 1)
ˆ ˆˆ ( 1)
A M A
Q I Q Q F Q a a Q F Q Q G Q a
Q F Q Q G Q a Q G Q
k k k k k k k k
k k k k k k
k j k k k j j
T T T T T T
kk kk k k kk kk k
T T T
kk kk k kk
sym (B.50)
Here, is obtained by using Eq. (B.9), whereas ˆk
T
kkQ F Q ˆk
T
kkQ I Q and are
obtained by using Eq. (B.12). The representations and computational complexity of the
transformations , and
ˆk k
T
kkQ G Q
ˆk k
T
kkQ I Q ˆk
T
kkQ F Qk k
ˆk
T
kkQ G Q are shown below:
11 12 13 11 12 13
22 23 21 22 23
33 31 32 33
11 12 13
22 23
33
ˆ ˆ (4M1A), (10M6A),
ˆand (8M7A)
k k k k
k k
T T
kk kk
T
kk
i i i f f f
i i f f f
sym i f f f
g g g
g g
sym g
Q I Q = Q F Q =
Q G Q =
(B.51)
Now, the block elements of Eq. (B.50) are obtained as
11 12 31 13 21
22 32 4 23 22 2
33 23 3
ˆˆ ˆ ˆ( 1) ( 1) ( 1
( ) ( ) ; (5 8 )
( )
ˆˆ (
k k k k k k k k
k k k k
T T T T T T
kk kk k k kk kk k
k k
k k
k
T T
kk kk
i i f a i f a
i f c a i f c a M A
sym i f c a
Q I Q Q F Q a a Q F Q Q G Q a
=
Q F Q Q G Q
11 12 13 13 12
21 22 1 3
31 4 2
1 23 2 33 1 3 23 22 4 32 33
1)
; (2 3 )
where , , , ; (3 3 )
k
k k
k k
f f g a f g a
f f c c M A
f c c
c g a c f c c f g a c f g a M A
a
=
)
k
]
(B.52)
The computational count for step 2 is obtained as 32M28A. Hence, the total
computational count to compute (i.e., step1+step2) is 64M63A. The , , ,ˆ[A M A
T
k j k k k j j
234
proposed computational count is little better than that obtained by McMillan and Orin
(1995), who reported the count to be 70M71A. If the kth
joint is prismatic, the
computational count will be 60M62A as k is constant. Finally, a computational count of
0M15A is required for summation , , ,ˆ[M A M A
T ]j k j k k k j j . So, the final count to obtain ˆjM
is 60M77A
B.8 Recursive Algorithms for Fixed-base Systems
Computational count for the different steps of recursive inverse and forward dynamics
algorithms, obtained in Tables 6.1 and 6.2, are given in Tables B.1 and B.2, respectively.
Table B.1 Computational count for recursive inverse dynamics of fixed-base system
Forward recursion: For k=1: , r=1: k (Given Ik , dk, mk, mkdk, ) ( ),k ka
For r=1 Counts For r=2: k Counts
, jj k j jt A t p 1j j j
1 jt t p
( )
T
j j j j jQ e 8M5A1
T
j j j j jQ e 4M3A
( ) ( ) ( ),( )T
j j j j k ko Q o a -1
T
j j jo Q o -
2
, ,j jj k k j j j j jt A t A t p p 1
j j j j j j jt t p p
( )
T
j i j j j j j jQ e e 10M7A 1
T
j i j j j j j jQ e e 6M5A
( ) ( ) ( ),( )T
j i j j k ko Q o a 1
T 17M13Aj j jo Q o 4M2A
For r= k For r=1:( k-1)
3 j j j j
i6M9A
0 -
4
* *;k k j j k k j j kw M t M E t w w j w 0
k j j k jn I I 15M15A n 0 -
j k k jmn n d o j6M6A n 0 -
j k j j k km mf o dj
12M9A f 0 -
Backward recursion: For k= :1, r= k:1
For r= 1 For r= k:2
1
T
j j jp wT
j j jp w
T
j j je nT-
j j je n -
2
,j j
T
k jw w A w1
j jw w
,
T
k jA w 1 (Eq. B.16) 20M12Aj j jn Q n 4M2A
,j
T
k jw A w1j j jf Q f
0M6A 4M2A
Total 94M82A + 22M14A( k-1)
Note: 1) If parent of a link is fixed then only 13M7A counts are required instead of 94M82A.
2) ++ not required in the algorithm and hence no computations.
235
Table B.2 Computational count for recursive forward dynamics of fixed-base system
Backward recursion: For k= :1, r= k:1
For r=1 Counts For r= k:2 Counts
1
ˆˆj j j
M p ˆˆj j j
M p
,
ˆˆj t j jI e -
,ˆˆ
j t j jI e -
,
ˆˆj b j
F ej
- ,
ˆˆj b j
F ej
-
2
ˆˆ T
j j jm p
ˆˆ T
j j jm p
,
ˆˆ T
j j j tm e
- ,
ˆˆ T
j j j tm e -
3
ˆ ˆ/j j jm
ˆ ˆ/j j jm
, ,
ˆ ˆj t j t jm 2M0A++
, ,ˆ ˆ
j t j t jm 1M0A
, ,
ˆ ˆj b j b jm
3M0A
, ,ˆ ˆ
j b j b jm 3M0A
4
ˆ T
j j jp j ˆ T
j j jp j
,
ˆ T
j j j je t 0M1A
,ˆ T
j j j je t0M1A
5
ˆ ˆj j jm
1M0A ˆ ˆ
j j jm 1M0A
6
,ˆ ˆ ˆ T
j j j jM M j
,ˆ ˆ ˆ T
j j j jM M j
, ,
ˆ ˆ ˆI IT
j j j j t j t, ,3M3A
, ,ˆ ˆ ˆI I
T
j j j j t j t1M1A
, ,
ˆ ˆ ˆG GT
j j j j b j b, , 6M6A
, ,ˆ ˆ ˆG G
T
j j j j b j b
6M6A
, ,
ˆ ˆ ˆF FT
,j j j j b j t ,6M6A
, ,ˆ ˆ ˆF F
T
j j j j b j t3M3A
7
ˆj j j j
ˆj j j j
, ,
ˆj t j t j j t,
2M3A , ,
ˆj t j t j j t,
1M2A
, ,
ˆj b j b j j b,
3M3A , ,
ˆj b j b j j b,
3M3A
8
, , ,ˆ ˆ ˆ
j j
T
k j j kM M A M A
,
ˆ ˆj j jM M
, , ,
ˆT
k j j kA M A 64M63A
,ˆ
j jM 24M23A
, , ,
ˆ ˆ ˆj j
T
k j j kM M A M A
15A
9
,j
T
k jA
20M12A j j
8M4A
Forward recursion: For k=1: , r=1: k
For r= 1 For r=2: k
1
, jj kA 20M12A jj
8M4A
2
T
j j j j T
j j j j
, , , ,( )T T
j j j t j t j b j b5M6A
, , , ,( )T T
j j j t j t j b j b4M5A
3
j j j jp + j j j jp +
, ,
+j t j j je
t0M1A
, ,+j t j j je
t0M1A
, ,j b j b
- , ,j b j b
-
Total 135M131A + 63M53A ( k-1)
Note: 1) For the terminal link (link with no child) only 19M8A counts are required instead of 135M131.
2) ++The last element of is always identity, i.e., ,j t , [ 1 T
j t ]
236
Note that, in Table B.2, wherever required, a 6-dimensional vector, say, j , was
represented as
,
,
j t
j
j b
(B.53)
where ,j t and ,j b represent top and bottom three elements, respectively, of j .
The computational count for recursive inverse and forward dynamics of the kth
link
connected by a multiple-DOF joint is summarized in Table B.3.
Table B.3 Summary of computational count for the kth link
Inverse dynamics
94M82A+22M14A( k-1)
Forward dynamics
135M131A+63M53A( k-1)
Joint type Joint type
1-DOF
k =1
2-DOF
k=2
3-DOF
k=3
1-DOF
k =1
2-DOF
k=2
3-DOF
k=3
Count per joint (CPJ) 94M82A 116M96 138M110A 135M131A 198M184 261M237A
Count per DOF
(CPJ/ k)
94M82A 58M48 135M131A 99M92A 87M79A 2
346 36M A
It may be concluded from table B.3 that if a system consists of total number of n1, n2 and
n3 joint variables associated with 1-, 2- and 3-DOF joints, then the computational count of
recursive inverse and forward dynamics algorithms are obtained as
For inverse dynamics: 21 2 3 1 2 33
(94 58 46 81) (82 48 36 75)n n n M n n n A
For forward dynamics: 21 2 3 1 2 33
(135 99 87 116) (131 92 79 123)n n n M n n n A
B.9 Recursive Algorithms for floating-base Systems
Computational counts for different steps of recursive inverse and forward dynamics
algorithms of floating-base system, obtained in Tables 7.1 and 7.2, are shown in Tables
B.4 and B.5, respectively. Note that the details of the steps which are already given in
Table B.1 and B.2 are not repeated here.
237
Table B.4 Computational count for recursive inverse dynamics of floating-base system
Forward recursion:
Counts Counts
For k=0 (Floating-base #0)
1
0 0 0 0t P q =q 0( ) P 1 -
2
0 0 0 0(t P q P O)
0,0A 1
-
3
*
0 0 0 0 0 0 0 0
*
0 0 0 0
;
,
Fw M t M E t w
w w M M
24M30
For k=1: , r=1: k
For r=1 For r=2: k
4
, k jj k j jt A t p1
8M5A j j j jt t p 4M3A
5
, ,k j k jj k k
j j j j j
t A t A t
p p
1
27M20A j j j j j j jt t p p 10M7A
6 ,0 , ,0k kA A A ,0 ,0k k
A A
0, 0, ( ) ( ), 1[ ] [ ]T
k j j k k k ja =Q a +a 0, 0, 1[ ] [ ]T
k j j k j 8M7A a =Q a 4M2A
For r= k For r=1:( k-1)
7 j j j j
i6M9A
0 0M0A
8
*
*
;
,
F
k k j j k k j k
j k j k
w M t M E t w
w w M M
,j j
39M45 w 0 M O 0M0A
Backward recursion:
For k= :1, r= k:1
For r= 1 For r= k:2
1
T
j j jh p w j T
j jh p w
T
j j jh e n - T
j j jh e n -
2
M pj j j j M pj j
j,t j jI e
-
,j t jI e j-
,
( 1)j b j j
e - ,
( 1)j b j
ej
-
3
,0 AT
j j j
,0 AT
j j j
, ,j b j b
- , ,j b j b
-
, , ,0 ,[ ]T
j t j t k j j ba , 6M6A
, , ,0[ ]T
j t j t k j ja b6M6A
4
,j j j
T
k jw w A w 20M18A j jw w 8M4A
5 , ,j j
T
k j kM M A M A
34M40A j jM M 16M10A
For k=0 (Floating-base #0)
6 0 0h P w
T
0-
7 0 0 0 0,0 0 0 0; T
M P I P M -
Forward recursion:
For k=0 (Floating-base #0)
1
1
0 0,0q I h0 36M36A
2 0 0 0q P q q0
-
For k=1: , r=1: k
For r=1 For r=2: k
238
3
00, -1
00, -1
k t j
k b j
Q q
Q q0]
T
j T[q
16M8A 00, -1
0
00, -1
]
T
k t j
j T
k b j
Q q
[qQ q
8M4A
4
0[ ]T
j j j hq j j 6M7A 0[ ]T
j j j hq 6M7A
Total: 1) kth
link 164M156A + 62M46A( k-1)
2) Floating-base (#0) 60M66A
Table B.5 Computational count for recursive forward dynamics of the floating-base system
Forward recursion
(In this step are calculated similarly as in forward recursion of inverse dynamics) *, ( 0) and j j j kt t w
Counts Counts
For k=0 (Base #0): *
0 0 0, and t t w 24M30A
For k=1: , r=1: k
For r=1: *, and j j kt t w 74M66A For r=2: k : ,j jt t 14M10A
Backward recursion
For k= :1, r= k:1
For r= 1 For r= k:2
1
ˆˆj j j
M p - ˆˆj j j
M p -
2
ˆˆ T
j j jm p
- ˆˆ T
j j jm p -
3
ˆ ˆ/j j jm
5M0A ˆ ˆ/j j jm 4M0A
4
*ˆ ( )T
j j j j kp w
0M2A ˆ pT
j j j j0M2A
5
ˆ ˆj j jm
1M0A ˆ ˆ
j j jm 1M0A
6
,ˆ ˆ ˆ T
j j j jM M j 18M18A
,ˆ ˆ ˆ T
j j j jM M j 10M10A
7
*ˆ ( )j j j j kw
5M18A ˆj j j j
4M11A
8
, , ,ˆ ˆ ˆ
j j
T
k j j kM M A M A
64M78A ,
ˆ ˆj j jM M 24M23A
9
,j
T
k jA
20M12A j j
8M4A
For k=0 (Floating-base #0)
10 0 0 0 0
ˆ ˆˆ M P M 0M0A
11 0 0 0
ˆ ˆ ˆTI P 0
0M0A
12 *
0 0 0 0 0 0 0ˆ ( ) (T
P w w* ) 0M6A
13 1
0 0ˆ ˆI 0
36M36A
Forward recursion
For k=0 (Floating-base #0)
1
0 0q 0M0A
2
0 0 0 0P q q
For k=1: , r=1: k
For r= 1 For r=2: k
3
, jj kA 20M12A jj
8M4A
4
T
j j j j5M6A T
j j j j4M5A
5
j j j jp + 0M1A j j j jp + 0M1A
Total: 1) kth
link 209M201A + 70M59A( k-1)
2) Floating-base (#0) 60M72A
239
The computational count for the recursive inverse and forward dynamics of the kth
link
connected by a multiple-DOF joint is summarized in Table B.6.
Table B.6 Summary of computational count for the kth link
Inverse dynamics
164M156A+62M46A( k-1)
Forward dynamics
209M201A+70M59A( k-1)
1-DOF
k =1
2-DOF
k=2
3-DOF
k=3
1-DOF
k =1
2-DOF
k=2
3-DOF
k=3
Count per joint (CPJ) 164M156A 226M202 288M248A 209M201A 279M260 349M319A
Count per DOF
(CPJ/ k)
164M156A 113M101 209M201A
240
2
396 82M A 1
2139 130M A
1 1
3 3116 106M A
Based on Table B.6, the computational count for the recursive inverse and forward
dynamics for floating-base system is obtained as
For inverse dynamics: 2 A1 2 3 1 2 33(164 113 96 60) (156 113 82 66)n n n M n n n
For forward dynamics: 1 1 1 A1 2 3 1 2 32 3 3(209 139 116 60) (201 130 106 72)n n n M n n n
where n1, n2 and n3 are the total number of joint variables associated with 1-, 2- and 3-
DOF joints, respectively.
Appendix C
TRAJECTORY GENERATION OF LEGGED ROBOT
The trajectories used for the dynamic analysis of the legged robots are presented in this
appendix.
C.1 Biped
The motion of a biped is generally designed such that the Zero-Moment-Point
(Vukobratovic, 1989) remains within the convex hull of the supporting feet. Hence, the
concept of Zero-Moment-Point (ZMP) is introduced first.
C.1.1 Zero-Moment-Point (ZMP)
Zero-Moment-Point (ZMP) is a point on the walking surface about which the horizontal
components (i.e., X and Y) of the resultant moment generated by active forces and
moments acting on links are zero as shown in Fig. C.1. In other words, it is a point about
which sum of the moments caused by inertia and gravitational forces is equal to zero.
Fig. C. 1 Zero-Moment-Point
n 0r
Z
X
ZMP
fr
241
Hence, with the assumption that ZMP remains within the convex hull of the supporting
feet, a biped requires no external moment to attain instantaneous equilibrium.
The ZMP (xzmp, yzmp, 0) can be calculated as
, ,
, ,
]
]
k k yy k y
k k k xx k x
z i
z i
1
1
1
1
[ ( )
( )
[ ( )
( )
n
k k k k k
kzmp n
k k
k
n
k k k k
kzmp n
k k
k
m z g x m x
x
m z g
m z g y m y
y
m z g
(C.1)
where (xk, yk, zk) are the Cartesian coordinates of the center-of-mass Ck of the kth
link and
mk is the mass of the link as shown in Fig. C.2. Moreover, ik,xx and ik,yy are the mass
moments of inertia about X and Y axes, ,k x and ,k y are the X and Y components of
vector of angular acceleration and g=9.81 .
Fig. C. 2 Parameters of biped
Z
X
Ck, mk
ckzk
xk
kth link
242
C.1.2 Hip trajectory: Inverted Pendulum Model (IPM)
Trajectory generation of the hip of a biped based on the equations of ZMP in Eq. (C.1)
results into computationally expensive procedure as it requires first the evaluation of the
expression in Eq. (C.1) followed by the solution of complex differential equations
involving many dynamic parameters. Alternatively, Inverted-Pendulum-Model (IPM),
shown by Kajita and Tani (1991), assumes that mass of the biped is concentrated at the
hip, i.e., the floating base, as shown in Fig. C.3. As a result, the biped motion can be
approximated by considering it as an inverted pendulum. For the IPM, the moment
equation about the ZMP can be written as
( ) ( ) =a a a g 0h h hm m
]
(C.2)
where a [ T
h h h hx y z
0 ]Tg
represents a vector from the origin O to the point mass m and
. Equation (C.2) may be rewritten in component form as [0g
0
0
0
h h h h h
h h h h h h
h h h h
y z z y g y
z x x z g z
x y y x
(C.3)
Fig. C.3 Inverted-Pendulum-Model
n 0r
m
gm
O
ahm
ah
Z
X
Hip
Trunk
fr
243
The IPM assumes that the trajectory is such that the height of the hip remains constant,
i.e., zh=constant, throughout the motion cycle of the biped. Hence, the above equations
get simplified as
0
0
h h
h
h h
h
gx x
z
gy y
z
21
43
r 0
( )
( )
wtwt
h
wtwt
h
t T
(C.4)
Solutions of the above equations are then obtained as
Fo
x t c ec e
y t c ec e
h
(C.5)
If the biped moves in the sagittal plane, i.e., in the XZ-plane, then . Given the
initial positions and the velocities , the coefficient c1, c2,
c3, and c4, are obtained as follows
( ) 0hy t
(0) and (0) hx y (0) and (0) h hx y
1 2
3 4
1 1 1[ (0) (0)], [ (0)
2 2
1 1 1[ (0) (0)], [ (0)
2 2
= + =
= + =
h h h
h h h
x x xc cw
y y yc cw w
1(0)]
1(0)]
h
h
xw
y
(C.6)
where hw g z . Substituting Eq. (C.6) into Eq. (C.5) the coordinates of the hip are
obtained
sinh
sinh
For 0
(0)( ) (0)cosh
(0)( ) (0)cosh
hh h
hh h
t T
xx t x wt
w
y
wt
y t y wtw
wt
(C.7)
244
In order to obtain the periodic and symmetric biped pattern, the following repeatability
conditions are used:
(0)
(0)
( ); (0) ( )
( ); (0) ( )
h h h h
h h h h
x x T x x T
y y T y y T
, i.e.,
(C.8)
The above repeatability conditions help in obtaining the values of initial velocities
(0) and hx (0) hy
1 1(0) (0) and (0)
1 1
wT
h h hwTx wx y (0)
wT
hwT
e ewy
e e(C.9)
C.1.3 Ankle trajectories
Ankle trajectories are then synthesized as cosine functions, i.e.,
( ) cos
( ) 1 cos2
a s
f
a
x t l tT
hz t t
T
(C.10)
Fig. C.4 Parameters of ankle trajectories
ls
hf
245
In Eq. (C.10), ls, and hf are stride length and maximum foot height, respectively, as
indicated in Fig. C.4.
For the planar and spatial bipeds discussed in Chapter 7, the parameters of hip and ankle
trajectories are shown in Table C.1.
Table C.1 Trajectory parameters for biped
T
(Sec)
xh(0)
(m)
yh(0)
(m)
zh
(m)
ls
(m)
hf
(m)
Planar Biped 1 -0.15 - 0.96 0.3 0.1
Spatial Biped 0.5 -0.15 -0.08 0.92 0.3 0.1
C.1.4 Joint motions
The joint motions or variables associated with the leg of a biped are shown in Fig. C.5.
Based on the hip and ankle trajectories obtained in the previous subsections, the joint
motions can be obtained.
Fig. C.5 Joint motions of a biped
1
23
4
5
6
X
Y
Z
Using the geometry of a leg, as shown in Fig. C.6, the associated joint variables are
obtained as follows:
246
(a) YZ plane (b) XZ' plane
Fig. C.6 Geometry of a biped to determine the joint motions
2
5
zh
Z
Y
Z'
(xh, yh, zh)
5
(xa, ya, za)
X
(xh, yh, zh)
14
(xa, ya, za)
Z'
1
a2
a3
a0
4
1
6
3 4 ( )
1
2 5
2 2 21 20 2 3
4 0
1 1
1 1 2 43 4
0 0
6
tan
cos where ( ) ( ) ( )2
sin( ), where sin , sin
h a
h a
h a h a h
h a
y y
z z
a a aa x x y y z
a a
x x a
a a
2 2
az(C.11)
Moreover, angle 1 , in XY plane, is assumed to be zero, i.e., 1 0 . Similarly, the joint
motion may also be obtained for the other leg of the biped.
C.2 Quadruped and Hexapod
Motion of the trunk of the quadruped and hexapod used in Chapter 7 was also
approximated by using the Inverted Pendulum Model discussed in section C.1.2. The
trajectory parameters for the quadruped and hexapod are shown in Table C.2.
247
248
Table C.2 Trajectory parameter for legged robots
T
(Sec)
xh(0)
(m)
yh(0)
(m)
zh
(m)
ls
(m)
hf
(m)
Quadruped 1 -0.15 - 0.50 0.3 0.09
Hexapod 0.5 -0.20 - 0.55 0.4 0.08
Appendix D
ENERGY BALANCE
Law of energy conservation states that energy cannot be created or destroyed, but, it can
only be transformed from one form to another. Energy in a system takes different forms
such as kinetic, potential, heat, etc, and total energy remains constant. As a result, the
principle of energy conservation can be used to validate the numerical results obtained
during the dynamic simulation of legged robots reported in Chapters 6, 7, 8. For the
systems studied in this thesis, energy was present in four forms. They are kinetic energy,
potential energy, work done by the actuator, and the energy dissipation by the ground.
D.1 Kinetic Energy (KE) and Potential Energy (PE)
Kinetic and potential energy of a system are functions of velocities and positions,
respectively, of the constituting bodies. If denote the 3-dimesional vectors
of the position, linear velocity and angular velocity of the Center-of-Mass of the kth
link ,
then the total kinetic and potential energy of the system are calculated as
, , and k kc c k
1
1
1( )
2c c I
g c
T T
k k k k k k
k
T
k k k
k
KE m
PE m
(D.1)
where is total number of links, mk is mass of the kth
link and g is the vector due to
gravitational acceleration.
249
D.2 Work done by Actuator and Energy Dissipation by Ground
Both, work done by the actuator and energy dissipation by the ground can be calculated
by integrating the power delivered by the actuating torques and forces, and the power
dissipated due to ground interaction, respectively. If , and k kq
1
k k
k
dt
1
f v T
k k
k
dt
k
denote the actuating
torque/force and the corresponding joint rate associated with the kth
link then the energy
input by the actuator may be calculated as
Work done by actuator (D.2)
Similarly, the energy dissipation by the ground is calculated as
Energy dissipation by ground (D.3)
where are the vectors of ground reactions and linear velocity of the contact
point on the kth
link.
andf vk
D.3 Energy Balance
The sum of kinetic energy, potential energy, actuator work and ground dissipation over a
period of simulation time must remain constant. Hence, checking the energy balance
validates the simulation results. The energy balance for the planar and spatial biped,
quadruped and hexapod, simulated in Chapter 7 and 8, are shown in Figs. D.1-4. It is
evident form Figs. D.1-4 that the total energy remains constant throughout the simulation
period. Moreover, the maximum error in the total energy is in the order of 10-2
to 10-5
.
This is mainly due to integration errors. This validates the simulation results.
250
Fig. D.1 Energy balance for planar biped
(Maximum error in total energy = 8.48E-04)
0 0.5 1 1.5 2 2.5 3 3.5 4
77
77.5
78
78.5
79
79.5
time (s)
En
erg
y (
J)
0 0.5 1 1.5 2 2.5 3 3.5 4
-10
-5
0
5
10
time (s)
En
erg
y (
J)
Total PE
Actuators Ground KE
Fig. D.2 Energy balance for spatial biped
(Maximum error in total energy = 3.6E-03)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
65
66
67
68
time (s)
En
erg
y (
J)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
-10
-5
0
5
10
time (s)
En
erg
y (
J)
Total PE
Actuators Ground KE
251
Fig. D.3 Energy balance for quadruped
(Maximum error in total energy = 6.28E-05)
0 0.5 1 1.5 2 2.5 3 3.5 4
38
39
40
41
time (s)
En
erg
y (
J)
0 0.5 1 1.5 2 2.5 3 3.5 4
-20
-10
0
10
20
time (s)
En
erg
y (
J)
Total PE
Actuators Ground KE
Fig. D.4 Energy balance for hexapod
(Maximum error in total energy = 3.31E-02)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
42
44
46
48
50
time (s)
En
erg
y (
J)
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
-30
-20
-10
0
10
20
time (s)
En
erg
y (
J)
Total PE
Actuators Ground KE
252
Appendix E
FOOT-GROUND INTERACTION
As discussed in Chapter 7, methods of contact modeling can mainly be divided into
analytical, impulse and penalty-based approaches. In this thesis, the penalty-based
approach is used for contact modeling. In penalty-based approach the vertical reactions
are approximated by using visco-elastic (spring-damper) model such that the foot does
not bounce back while landing and the ground does not pull the leg while lift off. On the
other hand, sliding of the foot is approximated by using Coulomb or viscous friction.
Various penalty based models were proposed in the literature in order to take into account
the foot ground interactions. For example, Bogart (1989) presented a penalty-base model,
where the foot ground interaction was approximated vertically by linear spring-damper
and horizontally by Coulomb friction. Later, Gerritsen et al. (1995) used nonlinear spring-
damper model to simulate the heel-toe impact phase while running. Marhefka and Orin
(1996) presented a contact simulation using the nonlinear damping model. Nigg and
Herzog (1999) and Begg and Rahman (2000) showed typical ground reaction forces for
walking and running for human foot having heel-toe shape. Mistri (2001) showed
nonlinear visco-elastic model representing firm and dusty ground, which was later
successfully used by Shah et al. (2006). Recently Yamane and Nakamura (2006) and
Drumwright (2008) showed that a fast and stable simulation can be obtained by using the
penalty-based approach.
253
E.1 Ground Models
The visco-elastic model used in this work was inspired by the work of Mistry (2001)
whereas the friction model was inspired by the work of Gerritsen et al. (1995). Two
ground models, namely, firm and dusty ground, are introduced next.
E.1.1 Firm ground model
In the firm ground model, as shown in Fig. E.1, the vertical reaction is approximated by
visco-elastic model, which is represented by
( )zF kz c z (E.1)
where k and c are spring stiffness and damping coefficient, respectively. In the above
visco-elastic model spring is assumed to be linear whereas, the damper is chosen as
nonlinear, in a sense that the damping coefficient is function of , the penetration of foot
into ground. In the case of negative foot velocity, i.e., downward motion of the foot, the
damping co-efficient offered by the firm ground model is assumed to remain constant as
given below:
foot' and ', if < 0 k k c c v (E.2)
Fig. E.1 Firm ground model
k
Ground Surface
c = c' If vfoot<0
c = 0 to c' If vfoot>0
(Cubic polynomial)
c
+ve
-ve
254
On the contrary, for positive foot velocity, the damping coefficient is a function of the
penetration ( ), varying from zero to a maximum value at a specified penetration, and
then remains constant, i.e.,
2 3
3 foot, if > 0 v0 1 2' and k k c a a a a (E.3)
where the positive and negative foot velocities refer to upward and downward motion of
the foot, and stands for foot penetration into the ground. Moreover, the cubic
polynomial of Eq. (E.3) is solved to obtain damping coefficient c using initial conditions,
(a) 0 fo = 0 c c r , and (b) c = c' and 0c for = max, where c' is calculated
assuming an over-damped behavior as
0
' 2 'n
i
i
c k m (E.4)
In Eq. (E.4), , k', and mi are the over-damping factor, spring stiffness and mass of the ith
link, respectively.
To avoid sliding/slipping, ground is represented by pseudo-Coulomb friction forces
(Gerritsen et al., 1995) in the horizontal directions, i.e., X and Y directions represented by
the horizontal plane. The pseudo-Coulomb friction force may be represented as
1
1
2( ) tan
2
2( ) tan
2
xx z
z
y
y z
z
c xF F
F
c yF F
F
(E.5)
In Eq. (E.5), is coefficients of friction and xc and are the coefficients of damping.
The above sliding model behaves as a Coulomb friction model if
yc
/z xx F c , and
viscous friction model when /z xx F c .
255
E.1.2 Dusty ground model
With the introduction of the restriction on damping coefficient, energy dissipation may
not be sufficient and foot may bounce off the ground a little. In order to increase the
dissipation, the dusty ground model shown in Fig. E.2 was also used. Initial sinking of the
foot contributes only to energy dissipation, while the lowered spring ensures that the foot
does not sink without stopping. When the foot moves upwards, damping is switched off
to prevent ground pull. By changing the extent to which spring is lowered, different
ground characteristics can be obtained. This model requires higher computational time for
simulation. In the case of dusty ground model (Fig. E.2) values of k and c are assumed for
different dust layer thickness of td, i.e.,
Fig. E.2 Dusty ground model
k
Ground Surface
c = c' If vfoot<0
c = 0 If vfoot>0
c
Dust layer
+ve
-ve
foot
foot
foot
0 and ', if
' and ', if
' and 0, if
k c c
k k c c v
k k c v
< 0 and >
< 0 and
> 0
d
d
v t
t (E.6)
E.1.3 Multi-point and whole body contacts
The number of contact points to take into account for a foot depends on the contact area
and shape of the foot. Quadruped and hexapod discussed in Chapter 7 have point contacts
with the ground, as shown in Fig. E.3(a), whereas feet of planar and spatial biped have
line and surface contact, respectively, as shown in Figs. E.3(b) and E.3(c). As a
256
result, one contact point per foot is required for analysis of quadruped and hexapod, on
other the hand two and four contact points per foot are sufficient for analysis of planar
and spatial biped, respectively.
Fig. E.3. Different types of foot contact
f1 f1 f2 f1
f4f3
f2
Joints
Contact points
(a) (b) (c)
The contact model presented above has also been extended for the modeling of whole
body contact of the robot, i.e., for the links other than feet. The effect of the contact forces
for the kth
link having nf contact points can then be taken into account in the dynamic
model as shown in Section 5.1.4. In order to simulate the whole body contact, several free
simulations of legged robots were performed under gravity, and these showed realistic
motions.
257
258