by
Pradip N. Sheth
Associate Professor
Department of Mechanical Engineering
University of Virginia
Charlottesville, Virginia
Preface
Preface
Multibody mechanical systems have an important and pervasive presence in both real and virtual
mechanisms, linkages, and machinery. They appear in robotic and other automated machines
and vehicles, on and off road vehicles, appliances, aerospace systems, biomechanical models of
musculo-skeletal systems including gait and athletic activity models, rehabilitation aids and
assistive devices, injury models of occupant dynamics in vehicular crash or other events, and
many other devices and systems. Recent applications of tensegtity structures to deployable
systems in space as well as to kinetic architectural systems have further increased the interest in
multibody systems. Computer graphics animation technology also relies on multibody
simulations.
During the past three decades, powerful general-purpose analytical and computational tools
have evolved for analyzing the spatial motions, forces, and dynamics of these systems. Control
and dynamic aspects of the design of real-time controllers for these systems are evolving into a
unified analytic treatment. Matrix modeling procedures and associated symbolic/numeric
computational schemes provide a generic computational foundation for analyzing these systems.
This textbook focuses on the analytic techniques that are fundamental to the modeling and
analysis of these systems.
A number of texts are available dealing with analytical and computational methods for
multibody mechanical systems, and an obvious question is: why this textbook and what makes
this textbook unique? Our motivation for writing this textbook is summarized in the following:
The material presented in this textbook is developed from the original research, software
development, and industrial applications by the authors and their students over the past three
decades. Both authors have been involved in the evolution and development of the original
Denavit-Hartenberg matrix model of kinematic analysis into general purpose computational
tool IMP1, research and industrial applications of IMP and the associated methods. This
textbook presents the general purpose analytical formulations and powerful computational
procedures which have proven highly successful and efficient in tools such as IMP.
The power and ease of use made possible by general-purpose higher level languages such as
MATLAB provide significant complementary opportunities for applying these analytical
foundations to complex systems, and the ability to produce customized codes for complex
systems is exploited in this textbook, by utilizing the pre-packaged code provided as a
supplement to this textbook. This pre-packaged code includes (i) the entire C language based
library of subroutines and functions comprising the IMP system, and (ii) general purpose
MATLAB scripts in m files. These two sources of buliding blocks provide a powerful toolset
1.
P.N.Sheth and J.J.Uicker, "IMP (Integrated Mechanisms Program), A Computer-Aided Design Analysis System
for Mechanisms and Linkages," Journal of Engineering for Industry, ASME Transactions, vol. 94, May 1972,
pp. 454-464.
Preface
ii
for the readers to create customized software for their own multibody systems, both for
custom simulations and also for embedding the code in a control system. The reader may
optionally utilize a programming language such as C, FORTRAN, or VISUAL BASIC to
complete some homework problems, although the prepackaged toolset in C or MATLAB will
allow much rapid prototyping of simulation.
The analytical and the numerical processes presented in this textbook have become unifying
foundations upon which further developments in multibody systems continue to occur. This
textbook , therefore, is intended to establish a research and development reference for
engineers in industry and academia.
Much of the material presented in this textbook forms the basis for a graduate level course
taught at the University of Virginia and at the University of Wisconsin-Madison, although
additional details are included here that may be too long for a formal one semester course.
Although usually taught for mechanical engineering students, the material should be
understandable to those with technical backgrounds including:
First year college-level physics (statics and dynamics);
Some matrix algebra (at least matrix multiplication);
Interest in digital simulation of mechanical systems.
Some exposure to programming with MATLAB or C, although this can be learned rather
quickly during the course.
The topics covered in a course from this text can develop some or all portion(s) of the
following list, putting emphasis on topics in which the participants show the most interest:
Preface
iii
The (relative) motions allowed by various joint types. Motion axes. Screw coordinates.
Plcker vectors.
Loop-closure constraints on relative velocities. The Jacobian matrix for the system.
Linearization of the dynamic equations of motion. Recognition of the mass and stiffness
matrices, and their dependence on system geometry. Complexity caused by gyroscopic and
Coriolis accelerations.
Numeric search for static equilibrium position. Newton-Raphson versus gradient search
techniques. Recognition of stable, unstable, or neutral equilibrium positions. Discussion of
accuracy and tolerances.
Preface
iv
Frequency domain analysis. Eigenvalues and eigenvectors and their physical interpretations.
Determination of resonant frequencies, damping ratios, and stability. Modal transfer
functions.
Fourier and Laplace transforms of the equations of motion. Dynamic system transfer
functions and their poles and zeroes. System stability. Control system assumptions which do
NOT fit articulated systems.
Discussion of numeric time integration techniques and their fitness for the solution of the
present class of differential equations.
Stiff differential equations. Gears algorithm versus modal integration. Choice of time-step.
Discussion of various models of damping, and how they may be incorporated into the
equations of motion.
Formulation of static and dynamic constraint force analysis by virtual work approach versus
solution of Newtons laws.
Over-constraint and the numeric detection of indeterminate force components. Their effects
on analysis under different solution techniques.
Discussion of the application of the material presented in this text to other areas of
CAD/CAM. Formulation of other problems in geometry, particularly moving geometry.
It must be recognized that the material presented in this text is intended for numeric solution,
not hand solution. A particularly simple multibody system is chosen and is solved by hand
throughout most of the chapters to demonstrate the process of solution. The pre-developed
functions written in C from IMP and MATLAB code (m files) which may accompany this text
are intended to facilitate piecing together numeric solutions for more complex multibody systems
by writing appropriate function calls in a main script for a specific problem.
The matrix methods have been extensively tested, both in the classroom and in the world of
engineering industry. In the classroom, the authors have tested the drafts of this text in
senior/graduate level courses at the University of Wisconsin Madison and the University of
Virginia for several years, and the authors are indebted to all of those students for their trials and
their suggestions for improvements. As for use in engineering industry, the methods presented
herein have been the basis for the software system known as the Integrated Mechanisms Program
Preface
(IMP). First released in 1972, IMP has continued to be extensively refined, updated, and used in
many companies and academic institutions to analyze widely diverse mechanical systems. IMP
continues to be used and its many users also deserve much credit for the authors insights and the
experience reflected in the methods described herein.
J. J. Uicker, Jr.
P. N. Sheth
Preface
vi
Table of Contents
Preface
Table of Contents
List of Figures
Chapter 1: Concepts and Definitions
Chapter 2: Topology and Structural Analysis
Chapter 3: Modeling Mechanisms with Transformation Matrices
Chapter 4: Position Analysis (Analytic)
Chapter 5: Displacements and Derivatives
Chapter 6: Position Analysis (Numeric)
Chapter 7: Velocity Analysis
Chapter 8: Acceleration Analysis
Chapter 9: Modeling Dynamic Aspects of Machinery
Chapter 10: Dynamic Equations of Motion
Chapter 11: Linearized Equations of Motion
Chapter 12: Equilibrium Analysis
Chapter 13: Frequency Response of Machinery
Preface
vii
Preface
viii
Notation
A
B
C
D
force
generalized force
H
I
identity matrix
Jacobian
stiffness matrix
Lagrangian
mass matrix
N
O
origin of coordinates
P
link-joint path matrix;
Cartesian point position vector
Q
Preface
ix
kinetic energy
potential energy
X
Y
Z
a
b
c
general constant
d
degree of a link;
differentiation operator symbol;
infinitesimal change symbol;
general constant distance
e
f
mobility;
number of degrees of freedom
g
gravitational acceleration
general index
i
general index;
link label
i
j
general index;
joint label
j-
j+
Preface
k
general index;
generalized coordinate label
k
number of links;
index of fixed link
m
general index
number of joints
o
p
q
r
t
time;
intermediate axis
u
auxiliary coordinate axis;
curve shape function
v
auxiliary coordinate axis;
curve shape function
w
homogeneous coordinate;
auxiliary coordinate axis
x
coordinate axis
coordinate axis
coordinate axis
Preface
xi
u-axis ("roll") Euler angle;
global acceleration operator matrix
small quantity;
tolerance
general angle
avoid (similar to i)
avoid (similar to k)
number of loops;
eigenvalue
avoid (similar to v)
avoid (similar to o)
3.14592654
radius of curvature
pitch of a helix
time increment
Preface
xii
Preface
xiii
avoid (similar to A)
avoid (similar to B)
product operator
summation operator
Preface
xiv
Preface
xv
Position Equations
Generalized coordinates
1
2
=
!
f
....................................... (4-1)
Joint variables
1j
1
2
j
2
= j =
!
!
f
j j
n
j = 1, 2, , n ...............................(4-2)
j = 1, 2, , n ...............................(4-4)
i, k = 1, 2, , .............................(4-5)
Transformation products
Tik = TihThk
i, h, k = 0,1, , .........................(4-6)
Inverse transformation
Tik1 = Tki
i, k = 0,1, , ...........................(4-11)
i = 1, 2, , ................................(4-9)
Loop closure
T00 = I
Preface
i = 1, 2, , .............................(4-10)
xvi
Qj =
j ( j ) j 1
j
j = 1, 2, , n .............................(5-32)
j ( j ) = Q j j ( j )
j = 1, 2, , n .............................(5-28)
j
Derivative operator for joint j in global coordinates
D j = (T0 j S j j ) Q j (T0 j S j j )
j = 1, 2, , n .............................(5-29)
T0 i ( j ) = P ( i, j ) D jT0i ( j )
i = 1, 2, , j = 1, 2, , n ......(5-31)
j
Kinematic derivative of the inverse global position of link i
1
T0 i ( j ) = T0i 1 ( j ) P ( i, j ) D j
i = 1, 2, , j = 1, 2, , n ......(8-20)
j
Kinematic derivative of global position of a point of link i
Ri ( j ) = P ( i, j ) D j Ri ( j )
i = 1, 2, , j = 1, 2, , n
.(5-30)
j
First kinematic derivative of a joint variable
j ,k = j
j = 1, 2, , n
k
k = 1, 2, , f ......(7-8)
( i, j ) D
j
j ,k
=0
i = 1, 2, ,
k = 1, 2, , f
j =1
J = 0
....................................................(7-9)
Wi ,k = P ( i, j ) D j j ,k
i = 1, 2, ,
k = 1, 2, , f .....(7-17)
j =1
Preface
xvii
h, j = 1, 2, , n .............(8-22)
D j
k
= W j ,k D j D jW j ,k + (T0 j S j , j ) Qj j , k (T0 j S j , j )
Preface
j = 1, 2, , n
k = 1, 2, , f ....(8-23)
xviii
......................................(7-13)
( i, j ) D $
j
=0
i = 1, 2, , .............................(7-14)
j =1
J $ = 0
......................................(7-15)
$
$dep = J 111J 12 J 111J 13 $ = dep
......................................(7-16)
i = P ( i, j ) D j$j
i = 1, 2, , ..............................(7-20)
j =1
i = Wi ,k$ k
i = 1, 2, , ..............................(7-22)
k =1
i = 1, 2, , ..............................(7-25)
Velocity of link i
T$0i = iT0i
i = 1, 2, , ..............................(7-21)
j = 1, 2, , n .............................(8-24)
Preface
xix
=
k j k
h,k , j = h, j ,k
j , k = 1, 2, , f .........................(8-35)
Solution for joint variable second kinematic derivatives
n
i = 1, 2, ,
1
.(8-27)
Ci, j ,k = ( i, h ) Wh ,k Dh DhWh ,k + (T0 h S h ,h ) Qh (T0 h S h ,h ) h, j
j , k = 1, 2, , f
h =1
= J 1 C%
j , k = 1, 2, , f .........................(8-33)
dep , j , k
( C% )
j ,k
11
J J
1
21 11
( )
( C% ) = 0
j ,k
j ,k
j , k = 1, 2, , f .........................(8-34)
1
Ai , j ,k = P ( i, h ) Dhh, j , k + Wh ,k Dh DhWh ,k + (T0 h S h ,h ) Qh (T0 h S h ,h ) h, j
h =1
i = 1, 2, , j , k = 1, 2, , f ..(8-45)
Ai ,k , j + Wi ,kWi , j = Ai , j ,k + Wi , jWi ,k
i = 1, 2, , j , k = 1, 2, , f ..(8-47)
= ( Ai , j ,k + Wi , jWi ,k ) T0 i
k j
Second kinematic derivative of position of a point of link i
Ri
i = 1, 2, , j , k = 1, 2, , f ..(8-48)
Ri, j ,k =
= ( Ai , j ,k + Wi , jWi , k ) Ri
k j
Preface
xx
h = 1, 2, , n .............................(8-36)
1
i = P ( i, h ) Dh$$h + h Dh Dh h + (T0 h Sh ,h ) Qh$h (T0 h Sh ,h ) $h
h =1
i = 1, 2, , ......(8-50)
i = Wi , j$$ j + Ai , j ,k$ k$ j
j =1
i = 1, 2, , ..............................(8-51)
j =1 k =1
$$ = ( + ) R
R
i
i
i i
i
i = 1, 2, , ..............................(8-55)
Acceleration of link i
f
f
f
$$
T0i = ( i + ii ) T0i
i = 1, 2, , ..............................(8-53)
Preface
i = 1, 2, , ..............................(8-54)
i = 1, 2, , ..............................(8-52)
xxi
Equations of Motion
Non-linear equations of motion
f
t
t
Trace
f
f
t
+ Trace Wh ,i (T0 h J hT0th ) ( Ah , j ,k + Wh , jWh ,k ) $ j$ k
j =1 k =1
h =1
+ h,i chh, j
j =1 h =1
n
+ h,i kh (h h 0 )
i, j = 1, 2, , FGC
h =1
0
0
+ h f h ( t )
h =1
i, j = 1, 2, , FGC
Di , j = h,i chh, j
i, j = 1, 2, , FGC
h =1
Preface
xxii
K i , j = kh h,i , j (h h 0 ) + h,ih, j
h =1
0
0
t
t
g ( Ah ,i , j + Wh ,iWh , j ) (T0 h J hT0 h )
0
h =1
1
i, j = 1, 2, , FGC
h,i , j f h ( t )
h =1
f
f
t
Trace Wh ,i (T0 h J hT0th ) ( Ah , j ,k + Wh , jWh ,k ) $ j$ k
j =1 k =1
h =1
SGC n
h,i chh, j$ j
j
h =1
h,i kh (h h 0 )
i = 1, 2, , FGC
h =1
0
0
t
t
g Wh ,i (T0 h J hT0 h )
0
h =1
1
n
fh (t )
+ h,i
h=1
Preface
xxiii
called analysis. These are the techniques which allow us to critically examine an already existing
or proposed design in order to judge its suitability for a given task. Thus, in itself, analysis is not
a creative science, but rather is used for evaluating and rating things already conceived. We
should also bear in mind that, though the majority of our effort is spent on techniques of analysis,
the real goal is synthesis, the design of a product or system. Analysis is simply a tool. It is,
however, a vital tool and will invariably be used during the design process.
1.
Leonhard Euler (1707-83), Novi commentarii Academiae Petropolitanae, vol. 20, 1775; also in Theoria motus
corporum solidorum seu rigidorum ..., 1765. The translation is by A. B. Willis, Principles of Mechanism, 2nd
ed., p.viii, 1870. The word "stereotomy" at the end of the first paragraph refers to the art of stonecutting.
and kinetics, which treat the motion and the forces producing it, respectively.2
The predominate problem in mechanical system analysis, as will become evident, is often one
of kinematics, and one major emphasis in this book is on that topic. Statics and kinetics,
however, are also important parts of any complete design analysis, and these topics are covered
in depth as well.
Figure 1.2 Multibody model of a radio controlled car showing the front and the rear
suspension systems.
2.
Kinematics was first defined as a separate study by Andre Marie Ampere (1775-1836) in his Essai sur le
Philosophie des Sciences, ou exposition analytiqiue dune classification naturelle de toutes les connaissances
humaines, Paris, 1834. He chose the French name cinmatique from the Greek word meaning motion.
3.
An interesting narrative on the history of mechanism design and analysis is found in R. S. Hartenberg and J.
Denavit, Kinematic Synthesis of Linkages, McGraw-Hill, Inc., New York, 1964, pp. 1-27.
The NASA Mars Exploration Rover, Figure 1.3, is another example of a multibody system.
Figure 1.4 Biomechanical model for human gait and detailed model of a foot with articulated
appendages are examples of multibody systems.
Figure 1.5 The MIT/NSF bipedal Walking Robot is another example of a multibody system.
Deployable systems and structures are widely used in space applications, as shown in Figure 1.6.
These systems are also taking an important role in the design of new architectural concepts called
"kinetic structures". These may also involve tensegrity systems, and all of these are examples of
multibody systems.
Figure 1.6 Deployment sequence of a hoop/column space antenna (NASA Langley Research
Center).
Stewart's Platform (shown in Figure 1.7) has been a popular system for a large number of
applications since the 1960's, including many recent adaptations as parallel robotic systems.
Parallel (Figure 1.8) and serial robots (Figure 1.9) are also examples of multibody systems.
1.10.
Figure 1.10 Turbula machine for powder blending applications; taken from
http://www.glenmills.com/product_showcase/index-powder.shtml.
Speaking rigorously, a mechanism is defined as an assemblage of mechanical parts, movably
connected by joints to form a mechanical chain with one part fixed and having the purpose of
transforming motion.4 In contrast to a general multibody system, a "mechanism" is considered to
have one of the bodies fixed, while a general multibody system can be an unrooted free flying
system. Although this definition includes several terms which must themselves be more precisely
defined, this is the inherent pitfall of any first definition. However, a start must be made
somewhere, and this definition is perhaps as good a place as any.
Some light might be shed on the meaning of the word mechanism by discussing first what is
not meant. Let us distinguish first between the words mechanism and structure. A structure is
also an assemblage of mechanical parts connected by joints, but its purpose is definitely not to
transform motion. A structure, such as a truss, is intended to be rigid. It can perhaps be mobile
in the sense of being moved from place to place. However, it has no internal mobility; no
relative motion takes place between its parts or members. A mechanism on the other hand does
have this freedom among its various members to move relative to one another. Indeed the whole
purpose of a mechanism is to utilize these relative motions in transforming or modifying some
given input motion to produce a different output motion. For example, a shaft set in a pair of
bearings is not a mechanism since the intent is to transmit the input motion to the output, rather
4.
Much of the material in this chapter is based on definitions originally set down by Professor Franz Reuleaux
(1829-1905), a German kinematician whose work, Theoretische Kinematik: Grundzge einer Theorie des
Maschinenwesens, Friedrich Vieweg & Sohn, Braunschweig, 1875, marked the beginning of a systematic
treatment of kinematics. For an English translation including additional reading see Alexander. Blackie William
Kennedy(1847-1928), Kinematics of Machinery, Outlines of a Theory of Machines, McMillan & Co., Ltd.,
London, 1876; reprinted by Dover Publications, Inc., New York, 1963. Reuleauxs second book, Lehrbuch der
Kinematik, Zweiter Band: Die praktischen Beziehungen der Kinematik zur Geometrie und Mechanik, Friedrich
Vieweg & Sohn, Braunschweig, 1900, also made a lasting impression but, unfortunately, has not been translated
into English.
than to transform it, but it can be viewed as a multibody system. A speed reducing set of gears
between input and output shafts, on the other hand, does form a mechanism.
This brings us to distinguish between the words machine and mechanism. A machine is an
assemblage of fixed and moving parts for doing work, a device for applying power or changing
its direction. It differs from a mechanism in its purpose. In a machine, force, torque, work, and
power are the predominant concepts. In a mechanism, even though it may transmit power or
force, the predominant concept is one of altering motion.
identify these types, many simplifications are possible in their design and analysis. As pointed
out above, it is possible to observe the motions of all particles of a planar linkage in true size and
shape from a single direction. Said in another way, all motions can be represented graphically in
a single view. Thus graphical techniques are well suited to their solution, as is demonstrated by
an abundance of texts on the kinematics of mechanisms. Since spatial mechanisms do not enjoy
this fortunate geometry, visualization can become difficult, and more powerful techniques are
needed for their analysis.
Since the vast majority of mechanisms in use today are planar, we may question the need for
the more complicated techniques to be developed in later chapters. There are several reasons
why more powerful methods are of value, even though the "simpler" graphical techniques have
been mastered. First, they provide new, alternative methods which solve the same problems in a
different way. Thus they provide a means for checking results. Certain problems by their nature
may be more amenable to one method than to another. Secondly, methods which are analytic in
nature are better suited to solution by digital computation than are graphical techniques. Thirdly,
even though the majority of useful linkages are planar and well suited to graphic solution, the
few remaining must also be analyzed, and techniques should be known for analyzing them.
Fourthly, one possible reason that planar linkages are so common is that good methods of
analysis of the more general spatial systems have not been readily available. Therefore their
design and use has not been common, even though they may inherently be better suited for
certain applications. Finally, spatial mechanisms are much more common in practice than their
formal description indicates.
Consider a "planar" four-bar linkage. It has four bodies connected by four pin joints whose
axes are "parallel". This parallelism is a mathematical hypothesis; it is not a reality. The joint
axes, as produced in a shop -- in any shop, no matter how good -- are only approximately
parallel. If the joint axes are far out of parallel there is binding in no uncertain terms, and the
system only moves because the bodies flex and twist producing loads in the bearings. If the axes
are nearly parallel, the system operates because of looseness in the bearings or flexibility of the
bodies. A common way for compensating for small non-parallelism is to connect the bodies
with self-aligning bearings, actually spherical joints allowing three-dimensional rotation. Such a
planar linkage is thus really a low-grade spatial mechanism.
10
Figure 1.11 (a) Open mechanical chain; (b) simple chain; (c) compound chain.
Referring to the definition of a mechanism in Section 1.2, we see that it is necessary to have
one part fixed. When we say that a part is fixed we mean that it is chosen as the frame of reference for the movement of other bodies, that is, that the motions of other points on the
mechanism are measured with respect to a coordinate system attached to this fixed body. This
fixed part in a practical machine usually takes the form of a stationary platform or base or
housing rigidly attached to such a base, and is called the frame or ground or base. The question
of whether this reference frame is truly stationary (in the sense of being an inertial frame of
reference) is immaterial in the study of kinematics since masses are neglected, but does become
important in the investigation of kinetics where inertial forces are considered. In either case,
once a frame member is designated (and other conditions are met), the kinematic chain becomes
a mechanism and, as the input is moved through various positions, all other bodies have well
defined motions with respect to the chosen frame.
If, for the same mechanical chain, a different body is chosen as the frame, the relative
motions between the various parts are not altered but their absolute motions with respect to the
new base may be dramatically different. The process of designating a different part for the frame
of a mechanism is known as kinematic inversion. Examples are shown in Figure 1.12.
11
5.
Some joints do not have this obvious hollow and solid geometry, as for example in the case of a flat joint. The
two may then be arbitrarily distinguished by assigning one term to each.
12
13
contact between the elemental surfaces. However, as noted above in the case of a ball bearing,
this criterion may be misleading. Instead, we should look for distinguishing features in the
relative motion(s) which the joint allows.
14
Figure 1.15 Inversion of the hollow and solid elements of a revolute joint.
The six joint types defined by Reuleaux to form the category referred to as lower pairs are
listed in Table 1.1 and are shown in Figure 1.16.
Table 1.1
Characteristics of the Lower Pairs
Joint
type
Helical
Symbol
H()
Joint
variable(s)
or s
Degrees of
freedom
1
Relative
motion
helical
Motion
type
spatial
Revolute
circular
planar
Prismatic
linear
planar
Cylindric
and s
cylindric
spatial
Spheric
,',"
spheric
spheric
Flat
s,s',
planar
spatial
15
Figure 1.16 The six lower pairs: (a) helical joint; (b) revolute joint; (c) prismatic joint;
(d) cylindric joint; (e) spheric joint; (f) flat joint.
The most general of the six lower pairs defined by Reuleaux, the one from which all others
may be derived, is the helical or screw joint. It carries the symbol H() where represents the
pitch of the screw. The helical joint consists of a solid element borne by the "bolt" and a hollow
element carried by the "nut" and, as with other lower pairs, the loci traced by coincident points
are identical, in this case helical. If one of the joint elements is turned through an angle
relative to the other, it also advances by an axial distance s. The relationship between and
s is an invariant property of the helix defined as its pitch, = s/, the axial advance per unit
rotation. When is specified then s is determined and vice-versa. Either or s may therefore be used as the joint variable defining the relative displacement of the elements. However,
since and s are interrelated through the pitch, the joint has only one degree of freedom in
relative motion, and only one of these variables may be chosen as the joint variable.
Two other lower pairs are formed by allowing the pitch of a helical joint to reach its two
extreme values. On setting the pitch to zero, we see that s becomes zero and only relative
16
rotation is possible; the "threads" become circumferential bands. This type of joint, which could
be written H(0), is so common in linkages, appearing as a pinned joint, that it is given its own
symbol R and is called a revolute joint. The revolute joint has only one degree of freedom and,
since there is no axial advance, the joint variable is the relative rotation between the elements.
When the pitch of a helical joint is made infinite, the "threads" align themselves axially
allowing only relative axial translation. This type of joint also has one degree of freedom, and
the joint variable is the relative axial translation between the joint elements s. Again, this pair
could be denoted symbolically as H() but it is so important, appearing whenever there is
rectilinear translation, that it is given the name prismatic joint and is denoted by the symbol P.
Of these three types of joints, the helical joint and its two descendants, the revolute and
prismatic joints, each has a single degree of freedom; each has its own unique type of relative
motion, helical, circular, and rectilinear motion, respectively; each may be described by a single
joint variable; and each may be located by its distinctive geometric axis. The remaining three
lower pairs each have more than one degree of freedom and can be thought of as equivalent to
series combinations of revolute and prismatic joints.
The cylindric joint is equivalent to a revolute joint mounted coaxially with a prismatic joint.
It has two degrees of freedom since the axial advance and the rotation are independent of each
other. Thus its two joint variables are and s. The cylindric joint is denoted by the symbol C.
The ball-and-socket joint is an example of a spheric or globular joint. It may be visualized as
a combination of three consecutive revolute joints with three non-coplanar axes all intersecting at
a single point. Although any three intersecting non-coplanar axes will suffice, mutually
perpendicular axes are often chosen for convenience in visualization and ease in calculations.
The spheric joint has three degrees of freedom and the joint variables may be chosen as , ',
and ", the relative motions in each of the three independent revolutes. The symbol S is used to
denote a spheric joint.
The sixth and final type of lower pair is the flat or planar joint, denoted by the symbol F.
The joint elements of a flat joint are planes, constrained to remain in contact but free to move by
sliding upon one another. The relative motion is general planar motion, having three degrees of
freedom. It may be visualized as two non-parallel translations in the plane and one rotation about
an axis normal to the plane. Thus it is equivalent to two prismatic joints and a properly oriented
revolute joint connected in series; its three joint variables can be chosen as s, s', and .
As pointed out earlier, the lower pairs are very common in the construction of practical
mechanisms and, in some cases, all of a mechanical systems joints are lower pairs. A
mechanism which is made up entirely of lower pairs is referred to as a linkage.
Planar linkages utilize only revolute and prismatic joints. Although a flat joint might
theoretically be included, this would impose no constraint(s) on the relative motion in the plane
and thus would be equivalent to an opening in the chain. Planar motion also requires that the
axes of all prismatic joints be parallel to the plane of motion and that all revolute joints have axes
normal to the plane of motion.
17
Spherical linkages are constituted entirely of revolute joints since a spheric joint would be
equivalent to an opening in the chain and all other lower pairs have non-spheric motion. In
spheric linkages, the axes of all revolute joints must intersect at a single point.
One could argue that Reuleaux should have included two more joint types in his compilation
of lower pairs. One of these might be called a rigid joint; it is defined here as a joint which has
zero degrees of freedom and allows no motion between the connected bodies. The other might
be called an open joint; it is defined here as a logical connection with six degrees of freedom and
allows complete freedom between the "connected" bodies. On the other hand, one could argue
that these two joint types do not truly fit the definition of a joint in the first place, and should not
be included. Nevertheless, these two additional joint types do allow significant advantages in the
simulation of mechanical systems, and are included in later chapters of this text.
18
19
It should be pointed out that a kinematically equivalent combination of lower pairs may be
found which properly restricts the relative motion as desired, but which has force transmission
characteristics entirely different from the higher pair being modeled. Thus, attention must also
be given to static and dynamic equivalence if these types of analyses are to be performed on the
model.
20
21
Introduction
In order to make a systematic study of multi-body mechanical systems and to develop general
methods for their analysis by digital computer, we must be able to recognize and precisely
describe certain basic information which governs their operation. For example, it is clear that, at
some point, we must explicitly identify certain dimensional information, such as part shapes and
dimensions, in order to perform the analysis. However, before we reach this stage, another even
more basic problem confronts us. We must first study each system enough to determine how its
various parts are interrelated, that is, which is connected to which, and what is the nature of each
connection.
In the classic methods of analysis, both graphic and analytic, this task of recognizing the
basic structure of a mechanical system did not require reduction to a step by step procedure. No
real difficulties arose since the analyst, through experience, developed a "feel" for analyzing
problems of a given type. As the analysis progressed, s/he could continually make decisions as
to what steps needed be taken next and what techniques might be applied to accomplish each
step.
However, if a general method for use on a digital computer is to be developed, the problem of
recognizing a system's topology, the interrelationships between its parts, must be dealt with in a
more systematic manner. It is not possible to depend on a computer to know how to "guide" the
solution process. It is necessary to discover and adopt a unified procedure, common to all
situations which might be encountered. This algorithmic development for guiding the complete
numerical simulation can also augment and complement the physical feel for the system.
The success of a generalized approach, therefore, depends on the development of general
algorithms whereby a computer can recognize and manipulate systems of widely differing
structure without placing awkward requirements or special conventions on the task of data
preparation. Insofar as possible, all problems should be handled by one consistent procedure.
The challenge, therefore, is to devise procedures powerful enough that they are common to as
wide a variety of multi-body mechanical systems as possible.
In keeping with this philosophy, the purpose of this chapter is to develop a general algorithm
for studying the topology of a multi-body mechanical system, that is, the number of bodies, the
number and types of joints, the pattern in which the bodies and joints are arranged, the number
and pattern of closed loops (if any), and other such characteristics which are determined solely by
the connectivity of the system. This phase of the analysis of a system is referred to as structural
analysis.
In order to describe the topology of a multi-body mechanical system explicitly and precisely,
it is necessary to choose a format which can be understood by others for the purposes of
17
Figure 2.1
Another approach, common throughout the history of traditional kinematics, is the use of
schematic drawings such as that shown in Figure 2.2. Such schematics suppress many of the fea-
Figure 2.2
tures which are unimportant in structural analysis. However, they still retain the aura of "shape",
and can become misleading for this reason. Also, though such diagrams are well suited to human
communication, they are not well suited to manipulation by computer; a numeric format would
be preferable.
2.2
We recall from Chapter 1 that all mechanical systems are made up of only two basic types of
1.
The remainder of this chapter relies on the branch of mathematics called graph theory. See, for example, F.
Harary and Z. Norman, The Theory of Graphs, Addison-Wesley, Reading, MA, 1963.
18
entities, machine parts and joints. Their definitions are repeated here:
Mechanical Part (Body): A mechanical part is a rigid body which may contain
joint elements for connecting it to other bodies.
Joint: A joint is the connection between two (and only two) joint elements of
separate bodies which provides constraints on the relative motions of the two
bodies so joined.
Notice that a joint does not exist merely by the fact that both joint elements exist; it also
requires that they be joined. Therefore a joint is considered a separate entity, in itself, distinct
from the two elements.
Once each of the bodies and joints has been identified for a given system, the problem of
structural analysis is one of describing the relationships which exist between them. Precise
discussion of these relationships requires two further definitions:
Incidence: A joint is said to be incident to each of the two bodies containing its
joint elements.
Mechanical Graph (Assembly): A mechanical graph or assembly consists of a set
of bodies, a set of joints, and a prescribed incidence relationship between these
two sets.
Thus a mechanical graph uniquely defines those characteristics of a multi-body mechanical
system which are essential to its structural analysis, and at the same time strips away all other
features such as the geometry and material properties of the bodies. These features will, of
course, be reintroduced at a later stage in the analysis, but are not pertinent to a system's
topology. The incidence relationships for the clamp example of Figure 2.2 are given in Table
2.1.2
Table 2.1
Incidence Table for Figure 2.2
Joint
A
B
C
D
E
F
G
to Body
3
5
4
4
5
1
6
One further property must be defined in order to achieve maximum flexibility in the
2.
In this example, letters rather than numbers are used for joint labels to reduce confusion between the body and
joint labels. Notice also that the stationary body is intentionally chosen to have the highest body label (6); the
reason for this becomes clear in Section 2.5.
19
upcoming manipulation scheme. Each joint must be assigned an arbitrary orientation. If the
orientation of a joint j is chosen as directed from body i to body k, then the joint is said to be
negatively incident with body i and positively incident with body k. A mechanical graph in
which every joint is assigned an orientation is called an oriented mechanical graph or oriented
assembly.
Another way to represent the topology is through a graphical representation which perhaps
aids in the visualization of the topological structure of a complex system. In this representation, a
body is represented as a node and a joint is represented as an arc in the graphical representation.
If the orientation of joint j is selected as directed from body i to body k, then the arc for joint j is
directed from the node representing body i to the node representing body k as shown in Figure
2.3.
Joint j
Body i
Figure 2.3
Body k
With this convention, the oriented graph for the clamp mechanism of Figure 2.2 according to
the orientations chosen in Table 2.1 is depicted in Figure 2.4.
D
Body 1
Body 4
C
A
Body 3
Body 6
B
G
Body 2
E
Figure 2.4
Body 5
The oriented graph of the hydraulic clamp mechanism of Fig. 2-2 showing the
joint orientations chosen in Table 2-1
With the above definitions we are now prepared to define a new and very useful format for
expressing the incidence relations of a mechanical system. The information contained in the
20
incidence table or in the oriented graph can be written in the form of an incidence matrix, in
which each row represents a body, each column represents a joint, and the entries define the
incidence between corresponding rows and columns. For a system having bodies and n joints
the incidence matrix is an ( n ) matrix. The entry in row i and column j is defined as
follows:
(2.1)
Therefore, for the example of Figure 2.2, assuming that the orientations of the joints are
chosen as shown in Table 2.1, the incidence matrix is
0 0 0 1 0 1 0
0 0 0 0 1 0 1
1 1 1 0 0 0 0
=
0 0 1 1 0 0 0
0 1 0 0 1 0 0
1 0 0 0 0 1 1
A
1
2
3
4
5
6
The incidence matrix completely describes the topology of the oriented mechanical graph
and, therefore, also completely describes the structure of the multi-body mechanical system. It
also has the advantage that it can be communicated to and manipulated by a digital computer,
and thus provides a working tool as well as a convenient symbolism. A few further definitions
will bring out some simple tests which can be performed on the incidence matrix.
A system is said to contain a self-loop whenever there is a joint for which both joint elements
are contained in the same body, that is, whenever a joint connects a body to itself. Self-loops,
such as that shown in Figure 2.5, are of no interest in kinematics since they permit no relative
motion. They can be easily detected, however, since each "proper" joint is represented by a
column of the incidence matrix having exactly two nonzero entries, one positive and one
negative. Any self-loops should be eliminated from the incidence matrix (and from the count of
the joints) before further manipulations are performed.
21
Figure 2.5
Self-loop.
The degree of a body is defined as the number of joints which are incident with that body.
Thus, a binary part has degree two; a ternary part has degree three; and so on.3 The degree of a
body can be found by summing the absolute values of the elements of the corresponding row of
the incidence matrix. Alternatively, the degree of all bodies can be found as the diagonal
elements of the product of the incidence matrix with its transpose.
d i = ( t ) ( i, i )
i = 1, 2,...,
(2.2)
Another interesting property can be found by summing this equation over all bodies.
= trace t = 2n
(2.3)
i =1
This shows that, since the number of joints in any mechanical system must be an integer, the
number of bodies of odd degree must be even.
2.3
An assembly (mechanical graph) is said to be connected if and only if its bodies cannot be
grouped into subsets such that no joint is incident with a body from each subset, that is, if and
only if it is not possible to relabel the bodies and joints such that the incidence matrix becomes
block diagonal.
= 11
0 22
(2.4)
If a mechanical graph is not connected, it does not represent a single assembly, and its
3.
Notice that the degree of a body counts joint elements only when they are contained in joints. Thus, a "ternary"
part, for example, in which one joint element is not joined to another body is only of degree two.
22
unconnected subassemblies may (although they need not4) be analyzed as separate systems.5
Since there are (!n!) permutations of body and joint labeling sequences, Eq. (2.4) does not
provide a suitable test for connectivity. Such a test is provided, however, from the following
theorem, taken from graph theory:6
Theorem 2.1: The incidence matrix of a mechanical graph containing bodies
and including a connected assemblies has rank (-a).
2.4
Kinematic Loops
4.
An example of a situation where simultaneous analysis may be desired or even required is when the analyst is
considering possible collision between bodies of two unconnected subassemblies.
5.
Physically unconnected assemblies may be logically connected by means of the "open" joint; see Section 3.9.8.
6.
See, for example, S. Seshu and M. B. Reed, Linear Graphs and Electrical Networks, Addison-Wesley
Publishing Co., Reading, MA, 1961, p.93.
23
+1
L ( i, j ) = -1
(2.5)
For the clamp example of the last section, therefore, an oriented loop matrix containing all
possible loops can be found directly by inspection of Figure 2.2.
1 0 1 1 0 1 0
1 1 0 0 1 0 1
0 1 1 1 1 1 1
L=
1 0 1 1 0 1 0
1 1 0 0 1 0 1
0 1 1 1 1 1 1
(2.6)
The desired algorithm need not generate all possible loops, as shown for this example. It is
clear, for instance, that the final three rows of the above matrix represent the same loops as the
first three rows, but are oppositely oriented. Also, careful inspection will verify that the third
row is equal to the sum of the first two. It is only necessary to generate enough loops to
completely characterize the system. That is, we seek a complete set of independent kinematic
loops.
Returning our attention to the incidence matrix, consideration of Theorem 2.1 insures that it
can be partitioned as follows:
12
= 11
21 22
(2.7)
where 11 is the largest possible nonsingular square submatrix. It is of order -a, and 21 and 22
contain a rows, and where a is the number of unconnected assemblies. Some relabeling of the
bodies (rows) and joints (columns) may be required to achieve a nonsingular submatrix for 11.
However, this is assured possible since, according to Theorem 2.1, the rank of is -a.
For the example which we have been treating, relabeling is not required. The submatrices for
this example are:
24
0 0 0 1 0
0 0 0 0 1
1 1 1 0 0
11
= 0 0 1 1 0
21 0 1 0 0 1
1 0 0 0 0
A B C D E
1 0
0 1
0 0
12
= 0 0
11 0 0
1 1
F G
It is interesting to note the significance of this partitioning. The submatrices 11 and 21,
taken together, also represent a mechanical graph, but not the same assembly as the original.
This new system has the same bodies as the original, but has certain of its joints (F and G)
disconnected as shown in Figure 2.6. It is clear in this example that precisely the proper number
of joints are disconnected so that the assembly remains connected but no longer contains any
kinematic loops.
Figure 2.6
Is this a coincidence? No. Theorem 2.1 ensures that the multi-body mechanical system
retains a connected assemblies as long as 11 is nonsingular and contains -a rows. Therefore, it
is always possible to disconnect at least [n-(-a)] joints (although the choice of which joints may
not be arbitrary) without dividing any of the assemblies. But not more than this number of joints
can be disconnected since, if one more joint were disconnected, 11 would contain only (-a-1)
columns and, according to Theorem 2.1 the system would then consist of (a+1) assemblies.
These partially disconnected assemblies have such interesting properties with regard to
topological studies that they are given a special name. A mechanical graph which is connected
but contains no loops is called a tree or kinematic tree. One fundamental property of a kinematic
tree is that it possesses a unique kinematic path between any two of its bodies. Therefore, as can
be seen from Figure 2.6, when any of the disconnected joints is reconnected a unique loop is
produced, consisting of the reconnected joint and the joints of the unique path through the tree.
The set of n ( a ) joints which were disconnected to form the tree are called the cut set.
Each joint of the cut set can be reconnected, one at a time, and a unique loop will be formed for
each. Also, since each of these contains at least one joint (the reconnected joint) which appears
in no other loop, the loops found in this manner must be independent. But, since n ( a )
joints were disconnected in forming the tree, this procedure shows that there are at least
25
set of kinematic loops generated by this process also provides a complete set of independent
kinematic loops for the system.
Suppose that we are successful in finding the NL kinematic loops by the procedure described
above. Suppose also that we form the oriented loop matrix L including only these NL
independent loops. If they are taken in the proper order and if the proper orientation is chosen for
each, then the oriented loop matrix can be partitioned as follows:
L = [ L1 I ]
(2.8)
where I is the (NLNL) identity matrix and the rows of L1 correspond to the unique oriented paths
through the tree. The arbitrary negative sign is chosen to produce a positive result in Eq. (2.10),
below.
An extremely simple algorithm for generating the paths in L1 is based on another important
theorem from graph theory:8
Theorem 2.2: When the columns of the incidence matrix and the oriented loop
matrix L are ordered consistently, these two matrices are orthogonal. That is
Lt = 0
(2.9)
11 12 L1t
=0
21 22 I
or, on expanding the top row of submatrices,
11 Lt1 12 = 0
Since 11 was chosen to be nonsingular, this equation can be readily solved for the unknown
portion of the oriented loop matrix:
L1 = ( 111 12 )
(2.10)
7.
This number has also found much significance in other applications of graph theory and is alternatively referred
to as the nullity, the connectivity, the cyclomatic number, or the first Betti number of the graph. The digraph
NL is used to avoid duplicate symbolism in later chapters.
8.
Proof is omitted here; see for example, Seshu, op. cit., p.92.
26
Using this procedure on our clamp example problem, we find by Eq. (2.10) that
1 1
0 1
111 = 1 0
1 0
0 1
1
1
0
0
0
1 1
0 1
L1t = 1 0
1 0
0 1
1 0 1 1 0 1 0
L = 1 1 0 0 1 0 1
A B C D E F G
(2.11)
(2.12)
Having successfully found the rank of for this example to be five while the number of
bodies is six verifies that the system consists of a = 1 assembly. Checking the entries of Eq.
(2.12) against the first two rows of Eq. (2.6) above, we verify that we have indeed found a valid,
complete, and independent set of oriented kinematic loops for the system. These are shown in
Figure 2.7.
Figure 2.7
Several paragraphs earlier we made use of the fact that the rank of cannot be greater than
that which gives NL = n - + a in order to prove that NL loops form a complete and independent
set. This can be shown directly from Theorem 2.2. Since and L are orthogonal, we know that
the rank of plus the rank of L cannot exceed the dimension of their common vector space, the
vector space of all joints in the system.9
rank() + rank(L) n
Theorem 2.1 tells us that the rank of is -a. Therefore,
rank (L) = n - + a = NL
(2.13)
In this section we have seen that the incidence matrix can be manipulated to produce a
complete set of independent kinematic loops which can be used for analysis of the system. It will
9.
Sylvester's law of nullity; see, for example, Seshu, op. cit., p.67.
27
be noted from Eq. (2.10) that the matrix can be found directly by performing those row
operations which are required to reduce the original incidence matrix to its row echelon form:
11 12 I Lt1
21 22 0 0
The valid row operations allowed for reducing to this form are:
(a) A row may be replaced by its negative.
(b) A row may be added to or subtracted from another.
(c) A row or column may be switched with another.
Switching rows is equivalent to relabeling bodies while switching columns is equivalent to
relabeling joints. If these operations are used, however, the rearranged order of the original row
and column labels must be recorded for later use in interpreting the body and joint labels in the
results.
2.5
Kinematic Paths
Another topological matrix for which we will find many uses in the coming chapters is called the
path matrix, and is labeled P. It is an (n) matrix whose rows show the joints which appear in
the path from the base body to each of the other bodies of the system. These paths will be useful,
for example, in calculating the motion of a given body by adding the relative motions of the
joints along the path to that body.
The entry in row i, column j, of the oriented path matrix is defined as follows:
+1
P ( i, j ) = -1
if joint j is contained in the path from the base body to body i, and if the
orientation of joint j and the orientation of that path are the same;
if joint j is contained in the path from the base body to body i, and if the
orientation of joint j and the orientation of that path are opposite;
(2.14)
if joint j is not contained in the path from the base body to body i.
The oriented path matrix can be found by a procedure very similar to that used in finding the
loop matrix. The process is nicely shown by continuing the clamp example problem shown
above. If, for that example, we augment the original incidence matrix with an () identity
matrix on its right, it appears as follows:
28
0
0
1
I]=
0
0
0
0
0
0
0
Using the row operations enumerated above, this augmented incidence matrix can be reduced
to row echelon form, exactly as was done above to find the loop matrix, but working also on the
additional columns of the identity matrix. The final reduced form is:
L1t
111 =
1 1
0 1
0 1
0 1
0
0
0
0
0
0
0
0
1
0
1
0
0 1
1 1
0
1
0
1
0
1
0
0
0
0
0
0
0
The sixth and seventh columns of this result confirm the L1t portion of the loop matrix, as
was shown above, and the later columns show how 111 was found for Eq. (2.11) above. The
final row of unit entries (in the later columns) will be explained below.
If the upper right ( 111 ) portion of this result is transposed, we obtain the path matrix.
1 t
P = 11
( )
1
1
P=1
1
(2.15)
0
0
0
0
0
1
2
3
4
5
6
A B C D E F G
where the last two columns of zeroes have been added to represent the cut set joints F and G.
We can see from this matrix that the path from the base (body 6) to body 2, for example, goes
through joints A and B with positive orientation and through joint E with reversed orientation.
This and the paths to other bodies can be confirmed by comparison with Figure 2.2.
29
From this example it is clear that the path matrix can be found directly from the transpose of
111 . This is true for this example and also in general. However, for multi-body mechanical
systems containing more than one assembly, another phenomena arises. We can see this best by
following through another example. Therefore, we now seek the oriented loop and path matrices
for the system shown in Figure 2.8 Without taking any notice of its unconnected, multi-assembly
characteristics we form the incidence matrix. This is
Figure 2.8
1 1 0 0 0 0 0
1 0 1 0 0 0 0
0 1 1 0 0 0 0
0 0 0 1 0 1 0
=
0 0 0 1 1 0 0
0 0 0 0 1 0 1
0 0 0 0 0 1 1
1
2
3
4
5
6
7
where, again, row and column labels have been added to indicate the body labels (numbers) and
joint labels (letters).
Now, when this matrix is augmented with a (77) identity matrix,
30
1 1 1 0 0 0 0 0
2 1 0 1 0 0 0 0
3 0 1 1 0 0 0 0
4 0 0 0 1 0 1 0
5 0 0 0 1 1 0 0
6 0 0 0 0 1 0 1
7 0 0 0 0 0 1 1
0
0
0
0
0
0
1
and, when this augmented matrix is reduced to row echelon form, it yields
A
1
2
4
5
6
3
7
0 1
-1
0
0
0
0
0
0
1
Here we see that it was necessary to rearrange rows and columns of the original matrix in
order to find this form. Notice also the rearrangement of the body and joint numbers shown as
labels for the rows and columns; we see that the matrix was only of rank 5 since the rows for
bodies 3 and 7 both became zeroes. Thus there are a = 2 assemblies and NL = n - + a = 2
kinematic loops.
Of course, it would be possible to separate the bodies into two disjoint groups and treat each
assembly as a separate multi-body mechanical system. It would also be possible to artificially
include another fictitious joint into the graph (say between bodies 3 and 7), a joint which
produces no constraint on the motions of the connected bodies, to logically, though not physically, connect the two assemblies.10 We choose not to do either in this example in order to show
how to proceed with multiple, unconnected assemblies.
The oriented loop and path matrices can now be formed in the same manner as in the
previous example. They are
10.
31
A B D E F G C
L=0
1
0
1
1
0
1
0
1
0
1 0
0 1
and
A
0
1
0
P=
0
0
0
0
-1 1
0
0
0
0
0
0
0
1/3
2/3
3/3
4/7
5/7
6/7
7/7
We note here that each path formed in this multi-assembly problem falls totally within an
individual assembly. The fact that the rows which originally corresponded to bodies 3 and 7
were those that reduced to zeroes shows that bodies 3 and 7 are the two reference (base) bodies
of the two separate assemblies. The entries in the bottom-right quadrant of the row reduced
matrix show that the paths to bodies 1, 2, and 3 are all with reference to body 3 as a base body for
their assembly, while the paths for bodies 4, 5, 6, and 7 are found with respect to body 7 as their
base body.
If desired, we can now rearrange the columns of the oriented loop and path matrices to match
the original order of the joint labels. This gives:
A B C D E F G
L=0
1
0
1
0
1
1
0
1
0
1
0
1
0
and
A
0
1
0
P=
0
0
0
0
-1 1
0
0
0
0
0
0
0
1/3
2/3
3/3
4/7
5/7
6/7
7/7
32
In order to find paths with respect to the body which is actually stationary, even for a singleassembly multi-body mechanical system, it is necessary to choose the original body labeling such
that the fixed body is represented by the final row of the incidence matrix. We note that this was
done in the above examples. If it is not done, then paths will be found with respect to the highest
labeled body of each assembly.
We can see from the above examples that these row reduction operations are extremely
simply performed, even by hand computation. All entries remain either +1, 0, or -1 throughout
the procedure.11 Also, on a computer, integer arithmetic operations can be used, thus gaining
speed and avoiding any risk of rounding or truncation errors.
11.
This property, called the unimodular property, is more fully explained in Seshu, op. cit., pp. 88-115.
33
Problems
2.1
Find the oriented loop and path matrices for the multi-body mechanical shown by the
following Fig. P2.1 and incidence table:
B
A
2
1
Figure P2.1
Incidence Table
from body i
to body j
1
2
2
3
2
4
3
5
4
5
5
6
5
7
6
8
7
8
8
1
Joint
A
B
C
D
E
F
G
H
J
K
2.2
The following Fig. P2.2a shows a model of Stewarts platform, one type of parallel
robotic system.
S6
S5
S4
MOVING BODY
PLATFORM
MOVING BODY
PLATFORM
Si
S1
CYLi
S3
S2
Pi
U6
U5
PISTON i
U4
Ui
U1
U3
FIXED
BASE BODY
FIXED
BASE BODY
U2
Figure P2.2a
P2.2b
In this system, there are two main bodiesthe "Moving Body Platform" and the "Fixed
Chapter 2: Topology and Structural Analysis
34
Base Body". The motions of the Moving Body Platform relative to the Fixed Base Body
are controlled by six struts. Each of these six struts is attached to the Fixed Base Body by
a universal joint and to the Moving Body Platform by a ball joint. These struts are linear
actuators and for our purposes assume that hydraulic actuators are used. The schematic
on the right in the Fig. 2.2b shows a typical strut. For modeling, the actuator is composed
of two bodies, PISTONi and CYLi, and these two bodies are connected by a prismatic
joint Pi. A directed graph of Stewart's platform, with the orientations of joints arbitrarily
selected, is shown in the following Fig. P2.2c.
Moving Body
Platform
S6
S1
S5
S2
CYL6
S4
S3
CYL1
CYL2
CYL4
CYL5
CYL3
P1
P2
P4
P5
P6
P3
PISTON4
PISTON2
PISTON1
PISTON5
PISTON3
PISTON6
U2
U3
U4
U5
U1
U6
Fixed Base
Body
S1
P1
U1
S2
P2
U2
S3
P3
U3
S4
P4
U4
S5
P5
U5
S6
P6
U6
-1
-1
-1
-1
-1
-1
1
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
-1
Utilize the incidence matrix and appropriate software to compute the oriented loops for
this system, and answer the following questions:
35
2.3
Figure P23a shows a model of a multibody system which represents the stance posture of
a walking "bug" robot. All joints are revolute joints and are designated J1, J2, , J10.
The various bodies are identified as BODY 1 (ground), BODY 2, etc. and there are a total
of nine (9) bodies.
BODY 5
J6
J4
J7
BODY 8
BODY 3
J2
J3
J8
J9
BODY 6
J5
BODY 7
BODY 9
BODY 4
BODY 2
J1
J10
BODY 1
BODY 1
(BODY 10) is extended from BODY 7 and a new revolute joint J11 is formed
between BODY 7 and BODY 10. The original joint J1 which formerly connected
BODY 1 and BODY 2 in the stance posture now connects BODY 2 to the new
BODY 10.
36
BODY 5
J6
J4
J7
BODY 8
BODY 3
J2
J3
J8
J9
BODY 6
J5
BODY 7
BODY 9
BODY 4
BODY 2
J11
BODY 10
J1
J10
BODY 1
2.4
J11
J12
B3
J7
B12
J8
B14
B8
J18
J19
B7
J16
J6
J13
J17
B15
B5
B11
B6
J20
J14
J4
B2
J15
B10
J5
B4
J2
J3
J1
BODY 1
37
In this system, there are fifteen (15) bodies and twenty (20) joints. Joints J1 and J20 are
prismatic joints while all others are revolute joints. A directed graph of this system, with
the orientations of the joints arbitrarily selected, is shown in Fig. P2.4b.
J10
B13
J11
BODY 1
J1
B12
J20
B2
J12
J2
J9
B4
J3
B14
J19
J5
B3
B10
J13
J18
B5
J16
J15
J17
B9
B15
J4
J14
B6
J7
B11
J6
J8
B8
B7
BODY 1
B2
B3
B4
B5
B6
B7
B8
B9
B10
B11
B12
B13
B14
B15
10
11
12
13
14
15
16
17
18
19
20
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-1
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
-1
0
0
0
0
0
0
0
0
0
0
-1
0
0
0
1
0
0
0
0
0
0
0
0
0
-1
1
0
0
0
0
0
0
0
0
1
0
0
0
0
0
-1
0
0
0
0
0
0
1
0
0
0
0
0
0
0
-1
0
0
0
0
0
0
1
0
0
0
0
-1
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
0
-1
0
0
0
1
0
-1
0
0
0
0
0
0
0
0
0
0
0
0
Figure P2.4c. Incidence matrix for the deployable system of Fig. P2.4b
Utilize the incidence matrix and apprpriate software to compute the oriented loops for
38
39
Introduction
3.2
Ren Descartes (1596-1650), Discours de la mthod pour bien conduire sa raison et chercher la vrit dans
les sciences, or Discourse on methods for conducting reason and seeking truth in the sciences, Leiden, 1637.
Cartesian coordinates were introduced in the third appendix which is titled La Gometrie and which focusses
on the connections between geometry and algebra.
example, using cylindric or spheric coordinates for problems in which these were more suitable.
As a less common example, suppose that we define (instead of a set of Cartesian reference axes)
a tetrahedron of reference, whose vertices are A, B, C, and D. Suppose also that we wish to
determine the location of a point P which, to avoid complications, we assume to be inside of our
tetrahedron of reference. Let us next define symbols for the volumes of the four smaller
tetrahedrons determined by the point P and each of the four faces of the tetrahedron of reference.
We define these volumes by the symbols V1 = Volume(PBCD), V2 = Volume(PCDA), V3 =
Volume(PDAB), and V4 = Volume(PABC). We could think of these four volumes as being four
coordinates of the point P since, once the tetrahedron of reference and the point are chosen, these
coordinates are uniquely determined, and conversely.2 The fact that this method requires four
coordinates to locate a point in three-dimensional space is explained by the fact that the four
coordinates are not independent. They must sum to the volume of the tetrahedron of reference.
These are not the type of coordinates we shall use in the coming methods. This discussion is
brought out solely to emphasize the fact that coordinates can be defined in a number of different
ways. There is nothing sacred about Cartesian, or cylindric, or spheric coordinates; in fact, in
certain applications, a completely strange point coordinate definition may add appreciably to the
power, flexibility, and ease of use of the developed formulae. The above example also illustrates
that, although at least three coordinates are necessary to define the location of a point in threedimensional space, more than three coordinates may be used as long as three and only three are
independent.
Throughout the remainder of this text we will be working with a definition of point
coordinates which form a special case of homogeneous coordinates, sometimes referred to as
affine or projective coordinates.3 In homogeneous coordinates, four coordinates are used to
define the location of a point in three-dimensional space. When these are written in column vector form, the position of a point is given by
r1
2
r
r = 3
r
4
r
(3.1)
The conditions which relate the four homogeneous coordinates to the Cartesian coordinates
of the same point are as follows:
px =
r1
r4
py =
r2
r4
pz =
r3
r4
(3.2)
2.
These are referred to as the Feuerbach coordinates of the point. The original reference is: Karl Wilhelm
Feuerbach (1800-1834), Grundriss zu analytischen Untersuchungen der dreieckigen Pyramide, Nremberg,
1827.
3.
Homogeneous coordinates were introduced by August Ferdinand Mbius (1790-1868) in his work, Der
barycentrische Calcul, in Crelle's Journal fr die reine und angewandte Mathematik, 1827. An excellent
general reference is E. A. Maxwell, General Homogeneous Coordinates in Space of Three Dimensions,
Cambridge University Press, London, 1951.
Thus, if we are given the homogeneous coordinates of a point, we can quite easily find the
Cartesian coordinates of the same point by dividing the four-dimensional homogeneous position
vector r by its last coordinate r4
px
y
p
r = z
p
1
(3.3)
One reason that these coordinates are referred to as homogeneous is that any polynomial
relating Cartesian position coordinates can be written in homogeneous form by recasting it in
terms of homogeneous coordinates. For example, if the Cartesian coordinates are related by the
quadratic equation
x 2
(p )
+ 2 p x + ( p y ) 2 p y p z + 3 p z = 18
(r )
+ 2r 1r 4 + ( r 2 ) 2r 2 r 3 + 3r 3 r 4 18 ( r 4 ) = 0
We note that, since each term is of the same order, all of the homogeneous position coordinates ri
can be multiplied by an arbitrary constant without affecting the validity of the equation. Thus,
using homogeneous coordinates, we are free to rescale the position vector r by any nonzero
multiplier at will. When the problem solution is completed, the Cartesian coordinates can be
found by dividing r by its fourth element r4 as shown in Eq. (3.2).
Another interesting characteristic of homogeneous point coordinates is that, with them, we
can describe the location of a point infinitely distant from the origin of coordinates. For
example, the homogeneous position vector
r i r cos ( r,i )
r j
= r cos ( r, j )
r=
r k r cos ( r,k )
0
0
(3.4)
describes a point whose Cartesian coordinates are all infinite. This point is located infinitely far
from the origin along a line whose direction is determined by the first three components of the
vector r. Note that the homogeneous coordinates of such a point at infinity are all finite. Thus
the point is uniquely described in a manner which can be manipulated on a computer without
numeric difficulty.
The study of homogeneous coordinates is rich in history and, since its beginnings, has been
closely connected with the study of kinematics. Although we shall not have need for all of the
elegance in this book, you will find that this and the related fields of affine and projective
geometry provide fascinating reading and add further insight into the work of the coming
chapters.4
3.3
One of the most basic problems of kinematics is that of describing three dimensional rotations or,
more precisely, of specifying the angular orientation of a rigid body with respect to a known
frame of reference. Clearly, the orientation of a rigid body is completely determined once a set of
coordinate axes fixed to the body has been located relative to a known reference frame. In this
Section we will assume that the origins of the two coordinate systems remain coincident so that
we may concentrate solely on their relative angular orientation. A typical problem of this type is
that of describing the position of a spinning top such as that shown in Figure 3.1.
The top carries a right-hand Cartesian coordinate system x1 y1 z1 which must be located
relative to a fixed coordinate system x2 y2 z2 .5
One fruitful way of describing the relative angular relationship between two coordinate
systems is through what are called direction cosines. If p is the position vector of some arbitrary
An excellent account of the history of these methods (including an extensive bibliography) is given in J. L.
Coolidge, A History of Geometrical Methods, Dover Publications, Inc., New York, 1963.
5.
The part labels, 1 for the top and 2 for the stationary reference frame, follow our convention of Chapter 2 that
the fixed body carries the highest index.
p x2 = i p = ( i i ) p x1 + ( i j ) p y1 + ( i k ) p z1
!
!
!
= cos(i, i) p x1 + cos(i, j ) p y1 + cos(i, k ) p z1
(3.5)
where cos(i"
, j ) , for example, denotes the cosine of the angle between the i and j unit vectors.
Expressing the p y2 and p z2 components of p in the same format, and grouping the results
into a single matrix equation, we obtain
#
"
"
p x2 cos(i, i) cos(i, j ) cos(i, k ) p x1
y2
y1
"
!
!
or
p2 = 21 p1
(3.6)
Such a (3x3) matrix is called a rotation matrix and is useful for transforming any free vector
from one coordinate system to another. The nine direction cosines in the matrix 21 completely
describe the instantaneous angular orientation of the x1,y1,z1 coordinate system with respect to the
x2,y2,z2 coordinate system.
We know, however, that the nine direction cosines cannot be independent since a rigid body
has only three degrees of freedom in spatial rotation. There must be six additional equations
relating these directions cosines. These may be found by considering the fact that the magnitude
of the vector p must be identical in both coordinate systems,
2
( p ) +( p ) +( p ) = ( p ) +( p ) +( p )
x2
y2
z2
x1
y1
z1
(3.7)
where the superscript t indicates the transpose of the matrix. Now, substituting Eq. (3.6) into this
expression yields
p1t 21t 21 p1 = p1t p1
21t 21 = I
(3.8)
21t = 211
(3.9)
A matrix having this interesting property is said to be an orthogonal matrix, and Eq. (3.9) is
one expression for what are called the orthogonality conditions. This matrix equation includes
the six conditions relating the nine direction cosines of Eq. (3.6).
Since these direction cosines are not all independent, it is not convenient to use them as the
"coordinates" which describe the angular orientation of the spinning top. It would be more
suitable to find a set of three independent parameters, preferably angles, for describing such a
three-dimensional rotation.
Although a number of possible sets of parameters have been suggested in the literature, one
classical method is the specification of three angles as shown in Figure 3.2. A moving coordinate
system x1,y1,z1 is initially coincident with the reference coordinate system x2,y2,z2. It is first
rotated about its own x2 axis through a counterclockwise angle , after which the y1 axis finds
itself in a new position labeled y .6 The coordinate system is then rotated about this new y axis
through a counterclockwise angle , the x and z axes reaching new positions designated x
and z . Finally, the system is rotated through a third counterclockwise angle about this new z
axis, with the new x and y reaching new locations called x1 and y1.
These three rotations -- taken in the order given7 -- may be chosen to uniquely describe an
arbitrary three-dimensional rotation. These choices of angles, taken in this order, are called the
Tait-Bryan angles.8 Taken under different sets of conventions the three angles are more generally
referred to as Euler angles. Once the order and sign conventions are specified, three angles are
unique and are sufficient to specify the relative angular orientation of any two arbitrarily oriented
Cartesian coordinate systems.9
One might be tempted to try to represent the group of three successive rotations by means of
6.
The convention used consistently throughout this text, that counterclockwise angles are positive, is not
arbitrary. It is required by such conventions as k = i x j and the assumption that we wish to use right- handed
Cartesian coordinate systems, with their y axes taken counterclockwise from their x axes as seen from their
positive z axes.
7.
There is little agreement among different authors on which axes the three successive rotations are to be taken
about and in which order; a wide variety of definitions exist. See, for example, H. Goldstein, Classical
Mechanics, Addison-Wesley Publishing Co., Inc., Reading, MA, 1959, pp.107-108. Care must be taken when
comparing detailed final results with texts using other conventions.
8.
These are named after Peter Guthrie Tait (1831-1901). They are also called Cardano angles, after Gerolamo
Cardano (1501-1576). Sometimes, with the x axis aligned with the fore-aft axis of a craft or vehicle, with the y
axis lateral, and with the z axis vertical, these three angles are referred to as nautical angles and called roll,
pitch, and yaw angles, respectively.
9.
There are certain positions, for example with the conventions used here, where the angle is equal to 90,
for which there are not unique values for and for a chosen orientation since, at such an orientation, the
and angles are measured about collinear axes. Such an orientation does not have three independent angles
and full three-dimensional rotational motion about such an orientation cannot be described by this choice of
variables. All choices of sets of Euler angles share this difficulty. There is always at least one orientation
where two of the rotation axes are collinear, causing a singularity called "gimbal lock" in the description.
a vector directed along each axis of rotation and having a magnitude defined by the size of the
angle; the three component vectors would represent the three individual rotations. However, this
representation would be misleading. The net rotation, the resultant of the three angles taken in
succession, would not be represented by the sum of the three individual "rotation vectors". This
is evident when we remember that the order of the three rotations is vital, and is not taken into
account by the laws of vector addition. On the other hand, the Tait-Bryan angles (which do not
form a vector) can be used quite conveniently in our matrix formulation, as we will see, since
angular rotations are combined by matrix multiplication, which is not commutative and does
preserve the sequence.
In order to express the rotation transformation matrix 21 in terms of Tait-Bryan angles we
proceed in the sequence indicated in Figure 3.2. The first rotation takes place about the x2 axis
and has a rotation matrix of the form
p2 = p
0
1
= 0 cos
0 sin
sin
cos
0
(3.10)
cos
= 0
sin
sin
1
0
0 cos
0
(3.11)
Finally, the third rotation takes place about the z axis and has a rotation matrix of the form
p " = p1
cos
= sin
0
sin
cos
0
0
0
1
(3.12)
To combine these three rotations into a single transformation matrix we substitute Eq. (3.12)
into Eq. (3.11) and then substitute the result into Eq. (3.10). This gives
p2 = p1
and, on comparing with Eq. (3.6), we find that the total direction cosine matrix relating the
orientations of coordinate systems x2,y2,z2 and x1,y1,z1 must be of the form
21 =
cos cos
(3.13)
cos sin
sin
sin cos
cos cos
(3.14)
cos cos
(3.15)
211 = 21t = t t t
1
21
cos cos
= cos sin
sin
21 = +1
3.4
(3.16)
Euler Parameters
As mentioned in the previous Section, there is one major difficulty with the use of any set of
Euler angles for the specification of spatial orientation. No matter which set of conventions is
chosen for the definition of Euler angles, there is always a singularity in the specification for
some values of the angles. It would be nice to have a method of specification of threedimensional rotations which does not display such a singularity for any values of orientation.
The Euler parameters provide such a description.10
Figure 3.3 shows the x1 y1z1 coordinate frame rotating with respect to the x2 y2 z2 axes. By
Euler's theorem (see Section 5.2) we will see that the moving body can achieve its modified
10.
position by a single rotation about an axis of rotation, identified in Figure 3.3 by the vector u .
u x
u = u y
z
u
Axis to achieve rotation of
of
toachievth
to x2 y2 z2
Xx1 yY1 z1Z relative
orientat
e relati
e to
th X 0 Y 0ion
Z 0 coordina
ve fram
e
te
e
y2
$
u is a unit vector
ofrotation
rotati
along the
axis
on
y1
x1
x2
z2
z1
y 2
z 2
(u ) + (u ) + (u )
=1
e1 u x
2 y
e = u sin ( )
e3 u z
Note that the components of this vector are the same in both coordinate frames, because it is
aligned with the axis of rotation. We also define a fourth parameter, e4 = cos ( ) , so that the
total set becomes a unit vector
10
e1
2
e
{e} = 3
e
e 4
2
where ( e1 ) + ( e2 ) + ( e3 ) + ( e 4 ) = 1 or {e} {e} = 1 . These four parameters are called the Euler
parameters for the rotation. Taken together they form a four dimensional algebra, consisting of a
Cartesian vector along with a scalar, and this set of four is also called a quaternion.11
t
Expressed in terms of Euler parameters, the transformation matrix for the rotation of the
x1 y1 z1 coordinate frame with respect to the x2 y2 z2 coordinate frame is
( e1 )2 ( e2 )2 ( e3 )2 + ( e4 )2
21 =
2e1e2 + 2e3e4
2e1e3 2e2e4
2e1e2 2e3e4
2
2 3
1 4
2e e 2e e
(3.17)
2
2
2
2
( e1 ) ( e2 ) + ( e3 ) + ( e4 )
2e1e3 + 2e2e4
( e1 ) + ( e2 ) ( e3 ) + ( e4 )
2e2e3 + 2e1e4
For situations in which a numerical form of the transformation matrix is already known and
we wish to compute the corresponding Euler parameters, we may desire a numerical procedure to
do this.12
Let us suppose that the rotational transformation is available in numeric form, that is, that
( i, j ) are known numeric values.13 From Eq. (3.17), we see that14
{(
) (e ) (e )
2
( )}
+ 3 e4
e4 = trace ( ) + 1
(3.18)
First developed by Sir William Rowan Hamilton (1805-1865), Lectures on Quaternions: Containing a
Systematic Statement of a New Mathematical Method. Dublin, Hodges and Smith, 1853.
12.
The material in the remainder of this Section is adapted from O. Friberg, "Computation of Euler Parameters
From Multipoint Data", Journal of Mechanisms, Transmissions, and Automation in Design, ASME
Transactions, June 1988, vol. 110, pp. 116-121.
13.
14.
The trace of a square matrix is defined as the sum of the terms on the major diagonal.
11
identical. For these reasons, we establish an acceptable precision threshold such that e4 is
considered close to zero if e4 .15 There are two possible cases:
(3.19)
e3 = 1 + 2 ( 3, 3) trace ( )
and, by subtracting off-diagonal elements of [ ] , we also have
( 4e )
= (1,3) ( 3,1) ( 4e )
= ( 2,1) (1, 2 ) ( 4e )
e1 = ( 3, 2 ) ( 2,3)
e2
e3
(3.20)
Equations (3.20) might be used to compute the three parameters e1 , e 2 , e3 once the sign of e4 has
been selected. However, a better numerical approach is to utilize the magnitudes given by Eqs.
(3.19) together with sign information from the numerators of Eqs. (3.20). The reason for this
choice is that, when e4 0 , the transformation matrix approaches symmetry and, in that
situation, numerical cancellation effects can occur in the numerators of Eqs. (3.20). It should
also be noted that, when e4 0 , then trace( ) 1 might result and "zero" divided by "zero"
situations might occur in Eqs. (3.20) if the divisions were attempted.
If e has been determined numerically to be essentially zero according to the threshold , then
we have,
e 2 e3 = ( 3, 2 ) + ( 2,3)
e1e3 = (1,3) + ( 3,1)
(3.21)
Also,
15.
12
e1 = (1,1) + 1
e 2 = ( 2, 2 ) + 1
(3.22)
e3 = ( 3,3) + 1
Since
1 2
2 2
3 2
4 2
(e ) + (e ) + (e ) + (e )
= 1 , with e 4
e1 , e 2 , or e3 must be nonzero. From Eqs. (3.22) above, we can select the largest numeric value
and arbitrarily assign it a plus or minus sign, and then utilize Eqs. (3.21) to compute the
remaining two Euler parameters. Thus, in this case, when the rotation transformation matrix
is essentially symmetric, it is convenient to use only the row and column of corresponding to
the largest diagonal element.
Example 3.1:
As an illustrative example, consider the coordinate frames shown in Figure 3.4. In this case, the
x1 y1 z1 frame is rotated such that the x1 axis is precisely opposite to positive z2 , the z1 axis is
opposite to positive y2 , and the y1 axis completes the right handed coordinate system by aligning
itself parallel to x2 .
xX
1 1
10
5
0
y2
Y
0
y1
Y1
z1
x2
X0
Z1
Zz20
Figure 3.4 Example 3.1.
By inspection, the rotation matrix is:
x2 0 1 0 x1
y2 = 0 0 1 y1
z 1 0 0 z
2
1
This (3x3) rotation matrix is the matrix for computation of the corresponding Euler parameters.
13
where we have arbitrarily selected the positive sign. Note that this is Case 1.
Next, from Eqs. (3.19) give:
e1 =
e 2 =
e 3 =
e 2 = +
e 3 =
e1 = +
Thus, we have the definition of signs as well as magnitudes of the four Euler parameters.
e1 0.500
2
e 0.500
3 =
e 0.500
e4 0.500
Since e4 = cos ( ) = 0.500 , we see that the angle of rotation is = 120% and the unit vector
along the axis of rotation to achieve the orientation of the x1 y1 z1 frame is
e1 u x
0.500
2 y
e = u sin ( ) = 0.500
e3 u z
0.500
which shows that
u x 1 3 0.577
y
u = 1 3 = 0.577
u z
1 3 0.577
Example 3.2:
As another example, consider the coordinate frames shown in Figure 3.5.
14
Yy20
Xx11
xX
2
zZ
2
z1Z1
0
yY
1
x2 1 0 0 x1
y2 = 0 1 0 y1
z 0 0 1 z
2
1
e4 = trace( ) + 1 = 0
Note that this is Case 2. Therefore, from Eqs. (3.22):
e1 = 0
e2 = 0
e3 = 1
e1 0
2
e 0
3 =
e 1
e4 0
Since e4 = cos ( ) = 0 , the angle of rotation is = 180% . The unit vector along the axis of
rotation to achieve this orientation of the x1 y1 z1 frame is
15
e1 u x
0
2 y
e = u sin ( ) = 0
e3 u z
1
which shows that
u x 0
y
u = 0
u z 1
3.5
Transformation of Coordinates
In Section 3.3 we demonstrated that the position vector of a point in a Cartesian coordinate
system can be transformed into an equivalent position vector in a second Cartesian coordinate
system by multiplying by the rotation matrix as was shown in Eq. (3.6). This transformation,
however, was restricted to the case where the two coordinate systems shared coincident origins.
In this Section we will remove this restriction and develop a general transformation of coordinates in three dimensional space.
Consider the arbitrarily chosen point p of Figure 3.6. The two Cartesian position vectors pi
and pk of this point are related by the vector equation
pi = pk + pOk
(3.23)
zk
pk
zi
pi
p xk
Ok
p yk
pOk
xk
p zk
yk
pOzik
xi
Ok
xi
p zi
pOyik
xi
p yi
yi
16
If we write each of these vectors in terms of its components along its own coordinate axes,
then, referring to Figure 3.7, we have
pi = p xi i + p yi j + p zi k
pk = p xk i + p yk j + p zk k
xi
yi
zi
(3.24)
pOk = p O i + p O j + p O k
zk
pk
pi
Ok
p zk
pOk
xk
xk
yk
p yk
zi
Ok
xi
Ok
xi
zi
p zi
p yi
pOyik
p xi
yi
(3.25)
Now taking the dot product of this equation with each of the unit vectors i, j, and k in turn,
we obtain three scalar equations:
17
( )
( )
cos ( !
j, j ) + p cos ( !
j, k ) + p
cos ( k!
, j ) + p cos ( k!
, k ) + p
p xi = p xk cos i#
, i + p yk cos i"
, j + p zk cos i"
, k + p Oxi
( )
( )
cos ( k"
, i ) + p
p yi = p xk cos "
j, i + p yk
p zi = p xk
yk
zk
zk
yi
Ok
zi
Ok
( )
j, j )
( ) cos ( !
, j)
( ) cos ( k!
( )
cos i"
, j
( )
cos ( !
j, k )
cos ( k!
, k )
cos i"
,k
p Oxi x
k
p
yi y
pO p
k
pz
zi
pO
k
1 k
1
(3.26)
where the final row of the new (4x4) transformation matrix simply expresses the identity, 1 = 1.16
We can extend the utility of the above equation by noting that a point at infinity (in the sense
of Eq. (3.4)) is also properly transformed by the same (4x4) matrix.17 Therefore we can say in
complete generality that the transformation between any two three-dimensional Cartesian
coordinate systems labeled i and k is expressed by the equation
ri = Tik rk
(3.27)
where ri and rk represent the homogeneous position vectors of a point expressed in the i and k
coordinate systems, respectively, and Tik is a (4x4) transformation matrix of the form
cos i#
, i
cos "
j, i
Tik =
cos k"
, i
( )
j, j )
( ) cos ( !
, j )
( ) cos ( k!
( )
cos i"
, j
( )
cos ( !
j, k )
cos ( k!
, k )
cos i"
,k
p Oxi
k
p Oyi
k
p Ozi
k
(3.28)
In terms of the Tait-Bryan angles relating coordinate systems i and k, from Eq. (3.14) we can
write
16.
The simplicity of the bottom row of this matrix results from our assumption of rigid body transformations; it is
not so in the more general fields of affine or projective transformations. It can also be viewed as a constraint
that the scale (a unit distance) in the i coordinate system is equal to the scale (a unit distance) in the k
coordinate system.
17.
The reader may wish to verify that, after transformation, a point at infinity remains at infinity. Note how this
results from the special rigid body form of the bottom row of the matrix.
18
cos cos
cos sin
sin
sin cos
cos cos
p Oxi
k
yi
pO
k
zi
pO
k
(3.29)
By expanding the determinant of Tik along its bottom row and using Eq. (3.16) it is easy to
demonstrate that
Tik = +1
(3.30)
Although the (3x3) rotation submatrix remains orthogonal, however, this orthogonality
property [Eq. (3.9)] does not always extend to the entire (4x4) transformation matrix.
3.6
Consider the problem of describing the shape of the rigid machine part pictured in Figure 3.8.
From our structural analysis studies in Chapter 2 we have already assumed that each body has an
identifying label i; we find it convenient to use these same identifying labels here. To allow a
precise definition of what we mean by "shape" we now assume that a right-hand Cartesian
coordinate system xi,yi,zi is chosen for each machine part and is rigidly attached to its own body
at some convenient, but arbitrary, location.
19
note that this coordinate system can be used as the reference for specifying the shape of the body,
the joint element locations, the center of mass location, the mass moments of inertia, and so on,
and that, as long as bodies are considered rigid, all such properties remain constant in that body
coordinate system as the system moves.
3.7
It was pointed out in Section 1.4 that the primary function which a rigid body serves is to insure
that the relative positions of its joint elements do not change; that is, the purpose of a machine
part is to hold its joint elements in constant geometric relationship. To reflect this we define
another right-hand Cartesian coordinate system at each of the joint elements, defined to be
aligned conveniently with the natural axes of that joint. Such an auxiliary coordinate system may
also be convenient for locating an important shape feature of a body such as a hole or a keyway
or a handle as shown in Figure 3.9.
3.8
Information about the shapes of the parts of a mechanical system is usually available in the form
of x,y,z Cartesian coordinate data for certain key points. This comes about since, at least in early
design stages, a sketch or layout drawing of a mechanical system is usually the primary source of
dimensional data. At other times, such as in the analysis of an existing machine, perhaps the
20
detail drawings or CAD18 data files for individual parts may provide a more convenient source of
information for dimensions. In any case, however, it is usually quite easy to obtain x,y,z
coordinate data for strategic points.
Here we assume that data is specified in a convenient measurement coordinate system whose
axes are labeled x,y,z and that we wish to locate another coordinate system whose axes are
labeled u,v,w. We want to establish a procedure for determining the location and orientation of
u,v,w with respect to x,y,z; that is, we wish to find data for the transformation matrix of the
following equation19
(3.31)
To establish a general procedure we require that the following data be specified, all measured
along some chosen set of x,y,z axes:20
(a)
Coordinates x1,y1,z1 of the origin of the u,v,w coordinate system. This is the point labeled
1 in Figure 3.10.
(b)
Coordinates x2,y2,z2 of a point lying on the positive w axis, such as point 2 in Figure 3.10.
(c)
Coordinates x3,y3,z3 of a point lying on the positive u axis, such as point 3 in Figure 3.10.
19.
The symbolism T(i,j) refers to row i, column j, of the transformation matrix T. It is used here to avoid the
definition of yet further subscripts.
20.
This coordinate system is chosen conveniently for measurement of the data. It need not be the same as that
used for other body coordinate systems since, except for the base (frame), its location will not be kept for later
analysis.
21
From the definition of the first of these data points we set u = v = w = 0, x = x1 , y = y1 , and
z = z1 in Eq. (3.31); doing this shows that T(1,4) = x1, T(2,4) = y1, and T(3,4) = z1 as we should
expect. Procedurally this means that the data for the first point can be entered directly into the
fourth column of the transformation matrix without change.
We next use the difference between x2,y2,z2 and x1,y1,z1 and their definitions to show that
0
0
0 0
x1 0
T (1,3)
0
y1
T ( 2,3)
= w2
T ( 3,3)
z1 w2
1 0
0
( x2 x1 ) + ( y2 y1 ) + ( z2 z1 )
T (1,3) = ( x2 x1 ) w2
T ( 2,3) = ( y2 y1 ) w2
T ( 3,3) = ( z2 z1 ) w2
Procedurally, this shows that we may fill the third column of our matrix by taking the
differences between the data for the second and first points, and that we should then normalize
this column to become a unit vector. This should be no surprise since the third column of the
transformation denotes the direction of the unit vector for the w axis as measured in the x,y,z
system.
In a similar fashion, we use the difference between points x3,y3,z3 and x1,y1,z1 and their
definitions to show that
u3 =
( x3 x1 ) + ( y3 y1 ) + ( z3 z1 )
T (1,1) = ( x3 x1 ) u3
T ( 2,1) = ( y3 y1 ) u3
T ( 3,1) = ( z3 z1 ) u3
Thus, the first column of the transformation matrix is found by taking the differences
between the data for the third and first points and then normalizing. This first column represents
the unit vector for the u axis as measured in the x,y,z system.
Once the first and third columns of the matrix are found and normalized, we find the entries
of the second column by remembering that the vector cross product between unit vectors along
the w axis (column 3) and u axis (column 1) yields a unit vector along the v axis. Thus,
22
21.
This also shows why it is unwise to choose a measurement coordinate system x,y,z which is located extremely
distant from the points for which data are being measured. Since the computer has finite precision it sacrifices
accuracy (requiring small differences between large values) to choose the global coordinate system of a car, for
example, when specifying data for the internal workings of the glove compartment lock.
23
3.9
Let us now review our progress to this point. In Chapter 2 we learned how a computer program
can be written to accept information on the topology of a mechanical system, and which can discover the kinematic loops and paths from the fixed frame to each and every other part. In finding
these we assigned identifying numbers (labels) to every body and every joint.
We now assume that there exists an agreed upon absolute Cartesian coordinate system
x0,y0,z0 which is assumed stationary and which is the primary coordinate system in which results
are expected.
In Section 3.6, we noted that each machine part carries a body coordinate system xi,yi,zi,
where i is the identifying label of the body. Data for the initial location of each of the body
coordinate systems may be supplied by the methods shown in Section 3.8. For points of each
body i:
Ri = T0i ri
i = 1,2,, (3.32)
where ri shows the homogeneous coordinates of a point attached to body i, measured with respect
to xi,yi,zi, and Ri shows the homogeneous coordinates of the same point with respect to the
absolute system, x0,y0,z0. Thus, for each part of the mechanical system, we assume that data is
supplied as described above by which we find initial numeric values for each of the
transformation matrices for the body coordinate frames with respect to the fixed frame. This
assumes that it is convenient to gather the initial data in the global coordinate system, as from a
layout drawing. These data, however, are all given for only one position of the mechanical
system, and change when the system moves.
In Section 3.7, we saw that there may also be need for several joint and auxiliary coordinate
systems attached to the various bodies, to define joint element locations and orientations, for
example. Data for the initial locations of these are also supplied in the same way. We have:
R j = T0 j rj
(3.33)
where subscript j identifies the label of a joint or auxiliary coordinate system and rj shows the
homogeneous coordinates of a point measured in coordinate system uj,vj,wj. Rj shows
homogeneous coordinate data for the same point with respect to the global reference frame,
x0,y0,z0.
For the case of joint or auxiliary coordinate systems, however, we do not choose to store the
T0j data as such. By setting Eq. (3.33) equal to Eq. (3.32) we see that
ri = Sij rj
(3.34)
(3.35)
where
24
This Sij matrix, called the shape matrix for joint or auxiliary coordinate system j, is the data
which we store for later calculations since this matrix remains constant when the system moves.
Keeping this shape matrix constant during the motion is our technique for enforcing the rigid
body assumption for body i; it insures that each joint element and each auxiliary coordinate
system retains a constant geometric relationship to its own body coordinate system.
If we prefer to enter data for a body from a detail drawing of that part alone, comparing Eq.
(3.31) and Eq. (3.34) shows that the procedure of Section 3.8 can be used to find the Sij matrix
directly. If not, we can collect the T0j data for the joint or auxiliary coordinate systems with
respect to the global reference frame from the layout drawing as shown in Eq. (3.33). Then, once
the body coordinate systems have been located and the T0i data are complete, Eq. (3.35) can be
used to find the shape matrices.22
By one of these procedures, we assume that a shape matrix Sij is found for each joint element
and each auxiliary coordinate system before any further analysis is attempted for the system.
These form the primary dimensional data for our computer model of the mechanical system.
For any point of the system, then, once we have coordinate data for a particular point of
interest on one of the bodies, and once this data is known with respect to one of the joint or
auxiliary coordinate systems, we can use Eq. (3.34) to find its position with respect to the body
and then use Eq. (3.32) to find its absolute global position. As the system moves, the T0i
matrices change showing the movement of each body; these same T0i matrices may then be used
to update the changed global positions of any points attached to body i.
We note also that very detailed shape models of the bodies might be used, such as finite
element models for stress analysis, or solid models for animated picture generation or
interference detection between the bodies. In each case, no matter how complex the shape
model, each mechanical parts data can be stored unambiguously with respect to its body
coordinate system, and remains constant with respect to that coordinate system as the system
moves (as long as we accept the rigid body assumption for the part shapes). All movement of a
mechanical part is simulated by modifying the T0i matrix for that body, and this implicitly
changes the global positions of all points of that part model simultaneously. Thus, we have a
very general and widely applicable procedure for measuring and storing all critical dimensional
parameters of the moving bodies of a mechanical system.
3.10
The above descriptions of the body shapes, however, do not tell the whole story. As pointed out
in Chapter 1, one of the primary purposes of a mechanical system is to transform motion, and the
shape matrices and local coordinate data for all points of interest on the parts are treated as
constant because of our rigid body assumption. We must now provide a means for characterizing
22.
Note that the coordinate system used for data collection need not necessarily match the "global" coordinate
system used later during the simulation of the final mechanical system. We need only be consistent until the
shape matrix is found. Since this is independent of the coordinate system in which the data was gathered for
finding it, we can use a different measurement coordinate system for finding another shape matrix.
25
the motions allowed in the machine; that is, we must find a convenient matrix description for the
constraints provided by the joints of the mechanical system.
The motion(s) taking place within a joint are fully described if we write an equation for the
relative motion between that joints two contacting joint element surfaces. However, to keep
generality, we must choose some standard procedure for describing this relative motion, a
procedure which can be applied to any kind of joint. Since there are an unlimited variety of joint
types, and since each has its own particular characteristic motion, it is not reasonable to look for
a single set of equations describing all joint types. We can, however, find a consistent procedure
for formulating such equations, and show how it is used for each of the lower pairs and a few
examples of particular types of higher pairs. If the procedure is general, it can then be extended
to new types of joints as the need arises.
We first assume that each of the two mating joint elements carries one of the Cartesian joint
coordinate systems discussed in Section 3.7.23 We assume for each joint j that a joint coordinate
system u j v j w j is rigidly attached to the "preceding" joint element and another u j vj wj is rigidly
attached to the "following" joint element, where the "preceding" and "following" elements are
distinguished by the defined orientation of the joint as explained in Section 2.2.24 These
coordinate systems are shown for a revolute joint, as an example, in Figure 3.11.
Since the transformation matrix of Eq. (3.27) can be adapted to describe the relative location
and orientation of any two coordinate systems, we can formulate such an equation relating
coordinate system u j vj wj to u j v j w j and it will result in a transformation matrix. If we give this
new transformation matrix the symbol j the transformation will be of the form
rj = j ( j ) rj
j = 1,2,, n (3.36)
where j is a vector containing as many joint variables as required for the freedom(s) of joint j.
Since the joint is movable, the elements of the transformation j change value depending on the
posture of the joint. The remaining task, therefore, is to derive the form of the joint matrix, j ,
for each type of joint which we expect to encounter in our analysis.25
It was pointed out in Chapter 1 that the helical joint is the parent of both the revolute and the
prismatic joints, and that the remaining lower pairs may be simulated by kinematically equivalent
combinations of these. Aside from the fact that revolute, prismatic, and helical joints each have a
single degree of freedom, the other feature common to these three is that each has an easily
identified axis for its relative motion. These joint axes provide a convenient starting place for the
mathematical description of joint motions since the choice of the coordinate axes for these joint
23.
Note here the necessity for defining a joint such that it connects two and only two joint elements.
24.
Note that these are the same joint coordinate systems which were used for shape matrices defined in Section
3.9.
25.
Note that two major restrictions have been placed on our methods so far. We have assumed that the system to
be analyzed consists entirely of rigid bodies, and that all of its joint types fall among those for which the
explicit form of the j matrix can be written.
26
types can be based on the locations and orientations of the joint axes.
3.10.1
The w j and wj axes must be chosen along the joint motion axis; they must be collinear
and must have the same positive sense.26
2.
cos j
sin j
j ( j ) =
0
sin j
cos j
0
0
0 0
0 0
1 0
0 1
(3.37)
On the other hand, if accurate values of j ( j ) are known numerically, say by the methods
26.
The w j and wj axes are chosen so that, in the case of a two-dimensional problem, the motion lies in the
common u v and uj vj planes.
j
27
of Section 3.8, then the values of the joint variable may be found as follows:27
j ( 2,1) j (1, 2 )
j (1,1) + j ( 2, 2 )
j = tan1
(3.38)
3.10.2
axes for a
1.
The u j and u j axes must be selected parallel to the joint motion direction; they must be
collinear and have the same positive sense.28
2.
The w j and wj axes must be parallel and have the same positive sense.
27.
Note that the signs of the numerator and denominator must be considered separately to achieve the proper
quadrant for j . Note also that the possible division by zero must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.
28.
The prismatic joint motion axis is not unique. Any convenient axis parallel to the direction of the relative joint
motion may be chosen. The axis conventions are chosen here so that, in the case of a two-dimensional
problem, all motion lies in the common u j v j and u j vj planes.
28
1
0
j ( j ) =
0
0 0 j
1 0 0
0 1 0
0 0 1
(3.39)
If accurate values of j ( j ) are known numerically, then the values of the joint variable may
be found from:
j = j (1, 4 )
(3.40)
3.10.3
sj
The w j and wj axes must be chosen along the joint motion axis; they must be collinear
and have the same positive sense.
2.
The u j and u j axes must be chosen such that they coincide when the joint variable is
zero.
There are two possible choices for the joint variable of a helical joint. The rotational motion
is designated j , the angle from positive u j to positive u j and is measured counterclockwise
Chapter 3: Modeling Machines with Transformation Matrices
29
about positive w j , wj . The accompanying translational motion in the helical joint is designated
s j and is the distance from u j to u j measured along positive w j , wj .
There is only one joint variable possible, however, since a helical joint only exhibits one
degree of freedom in relative motion, and the two variables s j and j are related by the pitch j
of the screw.
j = s j = j j
(3.41)
We take the sliding distance s j to be the joint variable since this leads to no ambiguity when
the rotation extends beyond one full cycle.
The transformation matrix for a helical joint under these conventions is:
cos ( j j ) sin ( j j )
sin
cos ( j j )
j ( j ) = ( j j )
0
0
0
0
0 0
1 j
0 1
0
(3.42)
If accurate values of j ( j ) are known numerically, then the value of the joint variable may
be found from:
j = j ( 3, 4 )
(3.43)
30
3.10.4
The w j and wj axes must be chosen along the common joint motion axis.
2.
(3.44)
The first joint variable is the angle 1j from positive u j to positive u j counterclockwise about
positive w j , wj . The second joint variable is the distance j2 from u j to u j measured along
positive w j , wj .
The transformation matrix for a cylindric joint under these conventions is:
31
cos 1j
1
sin j
j ( j ) =
0
0
0 0
1 2j
0 1
sin 1j 0
cos 1j
0
0
(3.45)
If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:29
j ( 2,1) j (1, 2 )
j (1,1) + j ( 2, 2 )
1j = tan1
(3.46)
= j ( 3, 4 )
2
j
3.10.5
The only condition imposed on the placement of the u j v j w j and u j vj wj coordinate axes for a
spheric joint is that they must be chosen such that their origins are coincident and are located at
the center of the relative rotation of the spheric joint.
Note that the signs of the numerator and denominator must be considered separately to achieve the proper
quadrant for 1j ; also the possible division by zero must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.
32
Euler parameters are used to describe the rotation between the two coordinate systems. The
choice of Euler parameters rather than Tait-Bryan or other angles avoids the difficulty of a
singular position as discussed in Section 3.4. Therefore, the spheric joint has four joint variables
1j
2
j = j3
j
4
j
(3.47)
( ) ( ) ( ) ( )
1j
+ 2j
+ 3j
+ 4j
=1
(3.48)
The transformation matrix for a spheric joint under these conventions is:
(1 )2 (2 )2 (3 )2 + (4 )2
21j2j 23j4j
21j3j + 2j2j4
j
j
j
j
2
2
2
2
21jj2 + 23j j4
(1j ) + (j2 ) (3j ) + (j4 )
2j23j 21jj4
j ( j ) =
2
2
2
2
21j3j 2j2j4
2j23j + 21jj4
(1j ) (j2 ) + (3j ) + (j4 )
0
0
0
0
(3.49)
If accurate values of j ( j ) are known numerically, then the values of the Euler parameters may
be found as discussed in Section 3.4. First, the fourth Euler parameter, j4 , is found by Eq. (3.18)
. Then, depending on its magnitude, we can proceed to find 1j , 2j , and 3j by Eqs. (3.19) and
(3.20) if 4j > , or by Eqs. (3.21) and (3.22) if 4j .
3-10.6
33
The u j v j and u j vj planes must coincide and must be parallel to the two mating surfaces.
2.
The w j and wj axes must both be positively directed to the same side of this common
plane.
The three joint variables for the planar joint are the two rectilinear translation coordinates, 1j
measured along positive u j and j2 measured parallel to positive v j , respectively, and 3j the
rotation from positive u j to positive u j measured counterclockwise about positive w j , wj .
1j
j = j2
3j
(3.50)
cos 3j
sin 3j
j ( j ) =
0
0
sin 3j
cos 3j
0
0
0 1j
0 j2
1 0
0 1
(3.51)
If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:30
1j = j (1, 4 )
j2 = j ( 2, 4 )
(3.52)
j ( 2,1) j (1, 2 )
j (1,1) + j ( 2, 2 )
3j = tan1
30.
Note that the signs of the numerator and denominator must be considered separately to achieve the proper
quadrants for 3j ; also the possible division by zero must be avoided. When programming for digital computation, the atan 2( , ) function provides both of these services directly.
34
3-10.7
3-10.8
0 0 0
1 0 0
=I
0 1 0
0 0 1
(3.53)
35
There are no special conventions for the assignment of the u j v j w j and u j vj wj coordinate
axes for an open joint; they may each be chosen completely arbitrarily.31
Since we choose to use Euler parameters to describe the rotation between the two coordinate
systems, the open joint has seven joint variables. The seven joint variables for the open joint are
the three rectilinear translation coordinates defining the translations followed by the four Euler
parameters defining the orientation for the relative motion between the "connected" bodies.
1j
2
j
3j
j = j4
5
6j
j
7
j
(3.54)
( ) ( ) ( ) ( )
4j
+ 5j
+ 6j
+ 7j
=1
(3.55)
Here, as with the spheric joint, our choice of the use of Euler parameters for the rotational joint
variables rather than Tait-Bryan or other angles avoids the possibliity of a singular position as
discussed in Section 3.4.
Under these conventions the open joint transformation matrix is as follows:
(4 )2 (5 )2 (6 )2 + (7 )2
24j 5j 26j 7j
2j46j + 25j 7j
j
j
j
j
4 5
6 7
4 2
5 2
6 2
7 2
2
+
2
25j 6j 2j47j
(
)
(
)
(
)
(
j
j
j
j
j
j
j
j)
j (j ) =
2
2
2
2
24j j6 25j j7
25j j6 + 2j4j7
(j4 ) (5j ) + (j6 ) + (j7 )
0
0
0
1j
(3.56)
3j
1
2
j
Since there are six degrees of freedom, and seven joint variables with one constraint, it is
clear that the open joint places no constraint on the relative motion(s) between the bodies.
If accurate values of j ( j ) are known numerically, then values of the Euler parameters may
be found as discussed in Section 3.4. First, the seventh Euler parameter, 7j , is found by Eq.
(3.18). Then, depending on its magnitude, we proceed to find the values of j4 , 5j , and 6j by
Eqs. (3.19) and (3.20) if 7j > , or by Eqs. (3.21) and (3.22) if 7j .
31.
Convenience in definition of motion input or interpretation of results, particularly force results, may give
advantages to a particular choice of location and/or orientation; see Chapter 17 for details.
36
3-10.9
The wj and wj axes lie must along the respective rotation axes of the two gears, must be
parallel, and must have the same positive sense.
2.
3.
There is one position 1j for the joint such that the positive u j and positive u j axes are
both directed along positive t j .
32.
The variety of tooth forms included here include spur gears, helical gears, and herringbone gears, all having
involute tooth profiles. A circular disk rolling without slip against another may also be modeled by treating the
pressure angle and helix angle as zero.
33.
It is assumed that the gears do not lose contact with each other and that the teeth of one do not hit the bottom of
the tooth space of the mating gear. If either of these were to happen, the transformation matrix shown would
not accurately represent the true relative motion of the joint.
37
1j
j = j2
3j
(3.57)
The first joint variable is the angle 1j from positive u j to positive t j and measured
counterclockwise about positive w j . The second joint variable is the possible increase in centerto-center distance j2 beyond its nominal value, measured from w j to wj along the t j axis. The
third joint variable is the distance 3j , measured from the uj,vj plane to the uj,vj plane along wj or
wj. The joint also has four invariant parameters necessary for complete characterization of its
motion, the two pitch radii, R j and Rj , respectively, their normal pressure angle, j , and their
helix angle, j .35 Because of the assumption of involute tooth profiles, even though the center to
center distance may not exactly match the design value ( R j + Rj ) , or the axial sliding distance 3j
may not be zero, the rotation of the gear attached to u j vj wj with respect to the t j axis may be
calculated.
This yields the following transformation matrix for a parallel axis gear joint:
cos
sin
j ( j ) =
0
sin
cos
( R + R + ) cos
( R + R + ) sin
j
2
j
1
j
2
j
1
j
3
j
(3.58)
and where F is positive when the force transmitted between the gear teeth causes the backlash to
be taken up such that counterclockwise rotation of the u j vj wj gear increases, negative if it
34.
Notice that the assumptions do not define that the center to center distance of the two gears must match the sum
of their pitch radii, nor that the two gears must lie in a common plane. These constraints are provided by the
other joints and body shapes of the system, those which control the positions of the two shafts on which the
gears are mounted. Notice, however, that it is assumed that the two gear axes are parallel; this was assumed to
avoid complexity in the transformation matrix. The second and third joint variables defined here are usually
constant parameters, but they allow small changes in center distance and axial adjustment during installation or
operation. If defined as constants they would result in the calculation of statically indeterminate force
components. See Chapter 17 for details.
35.
The helix angle is defined such that a positive axial sliding motion 3j of the u j vj wj gear produces a positive
rotational change in the angle of the gear with respect to the u j v j w j gear. For spur gears the helix angle is
zero. For herringbone gears a helix angle of zero should be used and the value of 3j should also be set to zero.
38
decreases. 36 This transformation matrix is also valid for a joint with an internal gear; however, in
such a case, the pitch radius of the internal gear, either R j or Rj , must be treated as negative.
If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:37
1j = tan1 j ( 2, 4 ) j (1, 4 )
j2 = j (1, 4 ) + j ( 2, 4 ) ( R j + Rj )
2
(3.59)
3j = j ( 3, 4 )
where j ( i, k ) refers to row i, column k of the matrix j .
Figure 3.20 Coordinate systems for an involute rack and pinion joint.
Since the transformation matrix for a parallel-axis gear joint is valid for both internal and
external gears, we would expect that it might also be used to describe a rack and pinion.
36.
The term preceded by sgn( F ) may be ignored in the calculation of with very little error, probably less than
the error of manufacturing tolerances. This is a great saving in the difficulty of kinematic analysis where
forces need not otherwise be analyzed. The term is included rather than ignored in these equations, however,
since it can not be ignored in the calculation of (virtual) derivatives and will become important in finding the
tooth force transmitted through the gear mesh. This term and its derivatives cause the tooth force to be applied
at the proper pressure angle; ignoring it would cause the parallel axis gear joint to transmit force as would
happen with high-friction disks with no pressure angle. This can be seen by the methods of Chapter 17.
37.
Note that the signs of the numerator and denominator must be considered separately to achieve the proper
1
quadrant for j ; also the possible division by (1, 4 ) = 0 must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.
j
39
However, this is not the case; this would require locating the coordinate system for the rack
element at its infinitely remote center of curvature, and would provide a very inconvenient
description of such a joint.
For the involute rack and pinion joint38 the orientation must be chosen to go from the rack to
the pinion.39 The coordinate systems are chosen as shown in Figure 3.20. The assumptions are:
1.
The wj axis must lie along the pinion axis of rotation. The wj axis, attached to the rack,
must be parallel to wj , and must have the same positive sense.
2.
The u j v j axes are fixed to the rack and are chosen such that uj is directed along the pitch
surface of the rack, i.e. in the direction of relative motion of the pinion.
3.
There is one position for which u j v j and u j vj are parallel, and for which v j w j and vj wj
are coplanar.
The involute rack and pinion joint has three joint variables.
1j
j = j2
3j
(3.60)
The variety of tooth forms included here include spur, helical, and herringbone teeth. All are assumed to have
involute tooth profiles. A circular disk rolling without slip against a flat surface may also be modeled by
treating the pressure angle and helix angles as zero.
39.
Note that this rule must be followed even as early as when finding the kinematic loops and paths as was
discussed in Chapter 2.
40.
Notice that these assumptions do not define that the pinion center offset distance from the pitch surface of the
rack must match the pitch radius of the pinion, or that the central planes of the pinion and rack must be
coplanar. These constraints can be provided by the other joints and body shapes of the system, those which
control the positioning of the rack with respect to the shaft on which the pinion is mounted. However, notice
also that it is assumed that the central planes of the rack and pinion are parallel, and that the teeth remain in
proper mesh. The second and third joint variables defined here are usually constant parameters, but they
allow small changes in center distance and axial adjustment during installation or operation. If defined as
constants they would result in the calculation of statically indeterminate force components. See Chapter 17 for
details. The helix angle is defined such that a positive axial sliding motion of the pinion produces a positive
rotational change in the angle of the gear with respect to the rack. For spur gear teeth on the pinion the helix
angle is zero; for herringbone teeth a helix angle of zero should be used and the value of must also be set to
zero.
3
40
These conditions yield the following transformation matrix for the involute rack and pinion
joint:
cos sin 0
1j
2
sin cos 0 Rj + j
j ( j ) =
(3.61)
3
0
0
1
0
0
0
1
where
1j = j (1, 4 )
j2 = j ( 2, 4 ) Rj
(3.62)
3j = j ( 3, 4 )
where j ( i, k ) refers to row i, column k of the matrix j .
41.
The term preceded by sgn ( F ) may be ignored in the calculation of with very little error, probably less than
the error of ignoring manufacturing tolerances. This is a great saving in the difficulty of kinematic analysis
where forces need not otherwise be analyzed. The term is included rather than ignored in these equations,
however, since it can not be ignored in the calculation of (virtual) derivatives as will become important in
finding the tooth force transmitted through the mesh. This term and its derivatives cause the tooth force to be
applied at the proper pressure angle; ignoring it would cause the rack and pinion joint to transmit force as
would happen with a high-friction disk, but with no pressure angle. This can be seen by the methods of
Chapter 17.
41
The w j and wj axes intersect at a common apex for the two pitch cones and lie along the
respective rotation axes of the two bevel gears. Both are positive directed outward from
the apex toward the two gears.
2.
The common perpendicular to both w j and wj is given the symbol ti with positive
direction chosen in the sense of the vector cross product ti = w j wj .
3.
There is one position for the joint such that the positive u j and positive u j axes are
coincident and both are aligned along positive t j .
The straight tooth bevel gear joint has two joint variables.
1j
(3.63)
j = 2
j
The first joint variable is the angle 1j from positive ti to positive ui measured counterclockwise
about positive w j . The joint has two invariant parameters, the two pitch-cone half-angles, j
and j , respectively. The second joint variable j2 is the possible increase in shaft intersection
angle beyond the sum of the two pitch-cone half-angles, measured counterclockwise from w j to
42
Because of the assumption of involute tooth profiles, the rotation of the bevel gear attached to
u j vj wj with respect to the t j axis may be calculated. This yields the following transformation
matrix for a bevel gear joint:
cos1j cos sin1j cos sin cos1j sin + sin1j cos cos sin1j sin
sin1j cos + cos1j cos sin sin1j sin + cos1j cos cos cos1j sin
j ( j ) =
sin sin
sin cos
cos
0
0
0
0
1
(3.64)
where
= ( tan j tan j ) 1j
= j + j + j2
If accurate values of j ( j ) are known numerically, then the values of the joint variables
may be found as follows:43
j (1, 3)
j ( 2, 3)
1j = tan1
(3.65)
j2 = cos1 j ( 3, 3) j j
where j ( i, k ) refers to row i, column k of the matrix j .
This transformation matrix is also valid for a joint with an internal bevel gear; but, in such
cases, the pitch cone angle of the internal gear, either j or j , must be treated as negative.
42.
Notice that these assumptions do not define that the angle between the two intersecting axes necessarially
matches the sum of the two pitch-cone half-angles. This constraint may be provided by other joints and body
shapes of the system, those which control the positions of the two shafts on which the bevel gears are mounted.
It is assumed that the gears do not come out of contact with each other and that the teeth of one do not touch
bottom in the tooth space of the mating gear. If either of these were to happen, the transformation matrix
shown would not accurately represent the true relative motion of the joint.
43.
Note that the signs of the numerators and denominators must be considered separately to achieve the proper
quadrant for . Also the possible division by ( 2, 3 ) = 0 must be avoided. When programming for digital
computation, the atan 2( , ) function provides both of these services directly.
1
43
Figure 3.22 Typical situations modeled by a point on a planar curve joint. Note placement of
coordinate systems.
Several different types of joints are treated together in this Section since their formulations
and transformations are the same. Some typical situations are shown in Figure 3.22. The name
chosen for this type of joint comes from their common characteristic. In each situation, the
designers intent is to cause a chosen point of the "following" element of the joint to follow a
curve defined by the shape of the "preceding" element. Typical examples include a pin
constrained to follow a slot, or a roller following the pitch curve of a disk cam.
44
For this type of joint the coordinate systems are chosen as shown. The assumptions are:
1.
The u j v j and u j vj axes are attached to the joint elements containing the "curve" and the
"point", respectively.44 Both are chosen in planes parallel to the plane of the "curve".45
The w j and wj must be parallel and must be positively directed to the same side of the
plane of the "curve".
2.
The "curve" is defined by two specified functions, u ( 1j ) and v ( 1j ) . These functions are
continuous, single valued, and at least twice differentiable functions of the same
independent variable, 1j .46
The point on a planar curve joint has three joint variables.
1j
j = j2
3j
(3.66)
The first joint variable is the value of the independent parameter for equations, u ( 1j ) and
v ( 1j ) , defining the curve 1j . The second joint variable j2 is the angle from the positive u j
axis to the positive u j axis, measured counterclockwise about the positive w j axis. The third
joint variable is the distance 3j , measured from the u j v j plane to the u j vj plane along w j or
wj .47
These conventions yield the following transformation matrix for a point on a planar curve
joint:
44.
Note that this must be considered when setting the joint orientation, before finding the kinematic loops and
paths as discussed in Chapter 2.
45.
In real three-dimensional problem situations, the joint often consists of a straight line for the "point" element
which is constrained to follow a right-cylindric ruled surface for the "curve" element (defined by the curve and
a generating line which remains parallel to the w j axis).
46.
As a practical matter, these functions must be programmed for digital computation. Rather than program anew
for each new curve, it is highly advantageous to choose a standard form for the functions that can be
programmed once and will be widely applicable. Fourier series, for example, might be chosen as the standard
form for the software.
47.
Notice that the assumptions do not define that the "point" offset distance from the "curve" must be zero, or that
the planes of the "point" and the "curve" must be coplanar. These constraints may be provided by other joints
and body shapes of the system, those which control the positioning of the "point" body and the body to which
the "curve" is attached. However, it is assumed that the planes of the "point" and "curve" are parallel resulting
in the third joint variable remaining essentially constant. If this third joint variable were defined as a
constant, however, this would result in the calculation of a statically indeterminate force component in the w j
direction. See Chapter 17 for details.
45
cos j2
sin j2
j ( j ) =
0
sin 2j
cos j2
0
0
0 u 1j
0 v 1j
3
1
j
0
1
( )
( )
(3.67)
If accurate values of j ( j ) and 1j are known numerically, then the values of the other joint
variables may be found as follows:48
j ( 2,1) j (1, 2 )
j (1,1) + j ( 2, 2 )
j2 = tan1
(3.68)
= j ( 3, 4 )
3
j
3-9.13
Figure 3.23 Typical situation modeled by a line tangent to a planar curve joint. Note
placement of the coordinate systems.
The name for this type of joint comes from its relative motion characteristic. Here the
designers intent is to cause a chosen straight line of the "following" element of the joint to
remain tangent to a curve defined by the shape of the "preceding" element. Typical examples
48.
The inability to solve in closed form for 1j stems from the unspecified parametric form of the functions
defining the curve shape, and thus the inability to numerically find their inverses. Note also that the signs of
the numerators and denominators must be considered separately to achieve the proper quadrant for j2 ; and that
the possible division by zero must be avoided. When programming for digital computation, the atan 2( , )
function provides both of these services directly.
46
include a flat surface constrained to remain in contact with a curved surface as exemplified by a
flat-faced follower sliding on the pitch curve of a disk cam.
For this type of joint, the coordinate systems are chosen as shown. The assumptions are:
1.
The u j v j and u j vj axes are attached to the joint elements containing the "curve" and the
"line", respectively.49 Both are chosen in planes parallel to the plane of the "curve".50 The
w j and wj must be parallel and must be positively directed to the same side of the plane
of the "curve".
2.
The u j axis is defined along the "line" which is to remain tangent to the "curve".
3.
The "curve" is defined by two specified functions, u ( 1j ) and v ( 1j ) . These functions are
continuous, single valued, and at least twice differentiable functions of the same
independent variable, 1j .51
The line tangent to a planar curve joint has three joint variables.
1j
j = j2
3j
(3.69)
The first joint variable is the value of the independent parameter for the curve 1j . The second
joint variable j2 is the position along the u j axis of the point of tangency. The third joint
variable is the distance 3j , measured from the u j v j plane to the u j vj plane along w j or wj .52
These conventions yield the following transformation matrix for a line tangent to a planar
curve joint:
49.
Note that this must be considered when setting the joint orientation, before finding the kinematic loops and
paths as discussed in Chapter 2.
50.
In real problem situations, the joint often consists of a flat surface for the "line" element which is constrained to
follow a right-cylindric ruled surface for the "curve" element (defined by the curve and a generating line which
remains parallel to the w j axis).
51.
As a practical matter, these functions must be programmed for digital computation. Rather than program anew
for each new curve, it is highly advantageous to choose a standard form for the functions that can be
programmed once and will be widely applicable. Fourier series, for example, might be chosen as the standard
form for the software.
52.
Notice that the assumptions do not define that the planes of the "line" and the "curve" must be coplanar. This
constraint may be provided by other joints and body shapes of the system, those which control the positioning
of the "line" body and the body to which the "curve" is attached. However, notice that it is assumed that the
planes of the "line" and "curve" are parallel, resulting in the third joint variable remaining essentially
constant. If this third joint variable were defined as a constant, however, this would result in the calculation of
a statically indeterminate force component in the w j direction. See Chapter 17 for details.
47
cos
sin
j ( j ) =
0
0 u 1j j2 cos
0 v 1j j2 sin
1
j
0
1
( )
( )
sin
cos
0
0
(3.70)
where
d
1
d 1 v j
= tan 1 j
d u 1
j
d 1
j
( )
( )
If accurate values of j ( j ) , 1j and j2 are known numerically, then the value of the third
joint variable may be found as follows:53
3j = j ( 3, 4 )
(3.71)
53.
The inability to solve in closed form for j and j stems from the unspecified parametric form of the functions
defining the curve shape, and thus the inability to numerically find their inverses.
48
APPENDIX
DERIVATION OF EULER PARAMETERS
FOR
3-D ROTATIONS OF A RIGID BODY
Consider the general, 3-dimensional rotation of the coordinate frame X 1Y1Z1 relative to the frame
X 2Y2 Z 2 where both reference frames are initially coincident. The premise, based on Euler's
theorem, is that the general arbitrary angular orientation of X 1Y1Z1 can be achieved by a single
$
rotation about a skewed axis of rotation V as depicted in the figure A-1 below.
$
Axis of rotation V
Q1
Y2
$
R1
Z1
$
R2
O1
Z2
O2
90%
Q2
Y1
X2
X1
Figure A-1: Arbitrary rotation of X 1Y1Z1 relative to X 2Y2 Z 2 and the associated rotation
$
axis V
In Figure A-1, Q1 and Q2 are positions 1 and 2, respectively, of a point Q in the plane
$
normal to the axis of rotation V . Thus, Q1 and Q2 lie on a circular arc defined by angle .
Vectors R1 and R2 respectively point to Q1 and Q2 from the origin O1 and O2 of the coordinate
systems. The point C is the center of rotation of the angular rotation . The radius from C to
$
Q1 and also from C to Q2 is a . The view of the circular arc from the axis of rotation V is
shown in Figure A-2.
49
a
Q1
90%
a
$
R
Q2
From the geometric construction of Figure A-2, and with reference to Figure A-1,
$
$
$
$
R2 = R1 + R and also, R = Q D + DQ
1
2
$
DQ2 = a sin , and from Figure A-1, a = R1 sin
The vectors
where Vu is a unit vector along the axis of rotation V , and R1 is the initial
vector to point Q1 as defined in Figure A-1.
Vu R1
= Vu R1 sin
Vu R1
a
Q1
$
R1
C
90%
O1
50
Q1 D = 2a sin 2
= 2 Vu Vu R1 sin 2
2
a
2
((($ (((($ (((($
$
$ ((($
Also, since R2 = R1 + R , and R = Q1 D + DQ2 , we can express:
(($ (($
(($ (($ (($
(($ (($
R2 = R1 + 2 Vu Vu R1 sin 2 + Vu R1 sin
2
(($ (($
The vector cross product Vu R1 can be represented as a matrix product:
0
(($ (($
Vu R1 = Vuz
Vuy
The matrix
Vuz
0
Vux
Vuy R1x
Vux R1 y =
0 R1z
[Vu ]{R1}
33
31
33
(($
(($
vector Vu ; since Vu is along the axis of rotation, these x, y, z components are identical in the
coordinate frames X 1Y1Z1 and X 2Y2 Z 2 . The vector { R1} contains the x, y, z components of the
31
(($
R1 vector in the X 1Y1Z1 coordinate frame.
33
33
31
33
31
The column vector { R2 } can now be expressed in the matrix form as:
3x3
R2 x
2
{R2 } = R2 y = {R1}+ [Vu ]{R1} sin + 2 [Vu ] {R1} sin 2 2
3 x3
3 x3
3x3
R 3 x3 3 x3
2z
2
51
3x3
3x3
3 x3
3x3
3x3
sin 2 2
3x3
in terms of the angle of rotation and a unit vector {Vu } along the axis
of rotation.
Now, if we utilize the trigonometric identity sin = sin 2 2 = 2 sin 2 cos 2 ,
(e ) + (e ) + (e ) + (e )
1
e 3
0
1
0
e2
1
4
e [ I ] e + e 3
e 2
0
e 3
0
e1
e2
e1
0
1 2 e3 2 + e 2 2
( ) ( )
[ A] = 2 ( e1e2 + e3e4 )
1 3
2 4
2 ( e e e e )
2 ( e1e 2 e 4 e3 )
1 2 ( e3 ) + ( e1 )
2 ( e 2 e3 + e1e 4 )
2 ( e1e3 + e 2 e 4 )
2
2 ( e 2 e3 e1e 4 )
1 2 ( e 2 ) + ( e1 )
Since, e02 + e12 + e22 + e32 = 1, the diagonal terms can also be alternately represented in the [ A] matrix as:
( e1 )2 ( e2 ) 2 ( e3 )2 + ( e4 )2
2e1e 2 + 2e3e 4
[ A] =
2e1e3 2e 2 e 4
2e1e 2 2e3e 4
2
( e1 ) + ( e 2 ) ( e3 ) + ( e4 )
2e 2 e3 + 2e1e4
2 3
1 4
2e e 2e e
2
2
2
2
( e1 ) ( e 2 ) + ( e3 ) + ( e 4 )
2e1e3 + 2e 2 e 4
52
Problems
3.1
The figure shown represents a slider-crank linkage to be used in the design of a nonlinear
weighing device.
a) Form all of the shape matrices Sij assuming that the lengths of the parts are both equal to
some given length l .
b) Form the joint matrices j in symbolic form.
3.2
3.3
3.4
It was stated during the derivation of the rotational transformation matrix Eq. (3.14) using
Tait-Bryan angles that this method of modeling three-dimensional rotation leads to a
singularity called "gimbal lock" when the angle = 90% . Demonstrate this singularity
mathematically.
53
Introduction
"Position" is a term which signifies information on where an item is. If the item in question is a
particle or point, its position might be specified by its distance from and angular orientations of a
line drawn to that point with respect to some set of reference axes whose location is assumed
known. If we choose to work with a Cartesian coordinate system, we may specify the position of
a point by giving its x, y, and z coordinates. If we choose to work in cylindrical or spherical
coordinates, on the other hand, another set of parameters would be given. In Section 3.2 we
discussed a system of homogeneous coordinates for the position of a point. In any case, the
position of a point is a vector quantity, having at least three scalar components (in threedimensional space) called coordinates.
Let us now consider the term position when applied to something other than a point. In order
to specify the location of a body or system of points, for example, it is necessary to specify more
than just three coordinates. It is necessary to specify enough coordinates that the location of each
and every point is uniquely determined. If all of these coordinates are grouped into a single
vector (according to some agreed upon set of conventions), then the resulting vector describes the
position of the system of points.
The term position may also be used to describe the location of a rigid body. For this specific
type of system six coordinates, perhaps the position of one point and three angular orientation
values, are sufficient since a rigid body has six degrees of freedom in three-dimensional space.
In Section 4.3 we will choose the (4x4) homogeneous coordinate transformation matrix T0i to
represent the position of the body with label i. Although T0i contains sixteen entries, only six of
these are independent.
In the kinematics and dynamics of mechanical systems we are not only concerned with the
position of a point or a single rigid body, but of an assembly of rigid bodies; we wish to describe
the position of an entire system. Used in this way, the term position has the connotation
conveyed in the word configuration. The robotics community has come to refer to this as a
pose; however, the word posture might be more appropriate1.
The word position, therefore, may be used in a variety of ways depending on the situation.
Each requires the specification of a vector of coordinates, defined by some agreed upon set of
conventions, with respect to some known frame of reference.
One common means of describing the position of a mechanical system is by a vector of
1.
The Webster Comprehensive Dictionary: International Edition, 1996, states under its definition of attitude,
Synonyms: pose, position, posture. A posture is assumed without any special reference to expression of
feeling; A pose is a position studied for artistic effect or considered with reference to such an effect.
coordinates listing the positions of a set of independent "input" joint variables, that is, by
specifying the values of a number of joint variables j equal to f, the mobility of the system, the
number of independent degrees of freedom. These are called the generalized coordinates and
they describe the position of the system since, in many cases, they uniquely determine the
position of each and every point of every body and the values of all joint variables. That is to
say, there is usually only one unique configuration corresponding to a given set of generalized
coordinates. We shall denote a generalized coordinate by the symbol k and note that each is
equivalent to one of the joint variable values; that is, k = j for some k and j. Listing the full
vector of f generalized coordinates in a chosen order, we define the generalized position vector
which describes the configuration of the system.
1
2
=
!
f
(4.1)
This, however, is not the complete story. In some mechanical systems, the bodies can be
assembled in more than one way and, depending on how they are assembled, the positions of
some bodies may be quite different even for identical positions of the generalized coordinates.
Such a case is exemplified by the planar four-bar linkage shown in Figure 4.1 where the broken
lines show a second possible configuration of the same system with the same setting for the
"input" angle.
Figure 4.1
In order to precisely describe the posture of such a system, it is necessary to specify some
additional information which distinguishes the position vector of one "closure" of the system
from other possible closures. Therefore we define the position vector for a system as a vector
which explicitly includes all of the joint variables rather than just the generalized coordinates2.
1
= 2
!
n
(4.2)
These coordinates, of course, are not always independent. They may be related by constraint
equations, for example the constraints for loop closure or the constraints for Euler parameters, as
will be explained later.
4.2
Consecutive Transformations
Just as in the construction of a machine, we start by manufacturing the individual parts before we
join them together, so too, in the construction of a mathematical model for a mechanical system,
we have begun by deriving analytical descriptions of the individual pieces, the bodies and the
joints. We will now join these pieces together and show that, in combination, they can be made
to simulate the true system. Then, in later chapters, we will be in a position to use this
mathematical model to perform the various phases of analysis.
Let us start by showing how, in terms of our transformation matrices, we can "attach" two
bodies by means of a joint with label j. We recall from Eq. (3.36) that
rj = j ( j ) rj
where rj and rj refer to the u j v j w j and u j vj wj coordinates of the same point measured in two
different joint coordinate systems, those attached to the mating joint elements of the two bodies
connected by joint j.
Since we have allowed labeling of both bodies and joints in arbitrary order, we now define
the ligatures j- and j+ to stand for the labels of the two bodies which immediately precede (is
negatively incident with) and follow (is positively incident with) the joint with label j,
respectively, as defined by the chosen joint orientation. This notation is necessary to avoid future
confusion since j, by symbolism, does not infer a value for another symbol, such as i, but does
when written as j- or j+. It is also important to emphasize that, while j is a joint label, j- and j+
are body labels. Figure 4.2 illustrates this nomenclature, where the j- body is body i, while the j+
body is the body k, both reflecting the direction of the joint j as established from the topological
analysis.
Now, applying Eq. (3.34) to each of the mating joint elements, we see that
2.
It should be remembered that some of the joints may require more than one joint variable; all joint variables are
included in the vector.
Ri = T0 i ri = T0 j rj ; and since i j ,
ri = rj = T0i 1T0 j rj = T0,1j T0 j rj = S j , j rj
and, similarly,
yk
JOINT j
vj
yi
xk
uj
uj
vj
wj
wj
zk
BODY k
xi
j + BODY
zi
BODY i
j BODY
Figure 4.2
We found it advantageous to define the joint coordinate systems on each of the bodies in
order to derive the relationships between the joint elements. If we recognize that rj and rj + are
merely two different descriptions for the same point and that there is no restriction on what point
is chosen, we can combine these three equations into a single transformation as follows:3
rj = S j , j j S j +1, j rj +
j = 1, 2, , n
(4.3)
This equation says that, if we know the position vector of an arbitrary point in the x j + y j + z j +
coordinate system of the body following joint j, we may find its position coordinates in the
3.
Note that the order of the matrix multiplications is important. A rotation of coordinate axes followed by a
translation, for example, in general, is not equal to the same translation followed by the same rotation; i.e.,
S S .
.
JOINT A
wA
y1
x2
vA
vA
BODY 1
y2
uA
wA
uA
z2
BODY 2
vB
JOINT B
uB
wB
x1
vB
z1
wB
uB
BODY 3
Topological path
direction
y3
z3
vC
y4
x4
BODY 4
wD
y5
x5
z5
uC
wC
vD
uC
wC
vC
z4
x3
JOINT C
uD
vD
uD
wD
JOINT D
BODY 5
Figure 4.3
We notice in the above equation the continuing pattern of products of shape and joint
transformation matrices. These products appear throughout our remaining work and are given
their own symbol. For each joint j (connecting and oriented from body number j- to body
number j+) we define4
4.
j , j
T j , j + = S j , j j S j +1, j
j = 1, 2, , n
(4.4)
Then, for consecutive products of these along the kinematic paths, we define
Tik = Ti ,i +1Ti +1,i + 2 !Tk 1,k
i, k = 1, 2, ,
(4.5)
In applying these equations, however, we must remember that the subscripts do not usually
occur in consecutive numerical order (as implied by the subscripts "i+1", "i+2", and "k-1"), but
in the order of appearance of the body labels in the kinematic paths and loops through the system
as were determined in Chapter 2.5
We note that Eq. (4.5) also gives us a very convenient and compact notation since it shows
that
Tik = TihThk
i, h, k = 0,1, ,
(4.6)
Thus, if we know the transformation Tih from body i to body h and the transformation Thk
from body h to body k, then their product gives the transformation from body i to body k. Even
though the two paths may include several bodies and joints each, the total transformation,
consisting of a product of several factors, is naturally collapsed into a single symbol. With this
notation, the transformation between any two xyz (body) coordinate systems in the mechanical
system can be expressed by the simple equation
ri = Tik rk
4.3
i, k = 1, 2, ,
(4.7)
Absolute Position
The absolute position of a point on one of the moving bodies is quite often of major importance
in a design problem. Obviously this can be found by applying Eq. (4.7) to transform the local
coordinates of the point (measured in the coordinate system of the body to which the point is
attached). However, to which coordinate system should the position vector be transformed?
Which xyz coordinate system is the absolute frame of reference?
To give ourselves maximum flexibility we choose a coordinate system x0 y0 z0 which we
define to be the absolute coordinate system. The only restriction we place on the choice of this
system is that it be stationary or, more properly, that it be an inertial coordinate system if the
analysis is to include dynamic effects. Otherwise, it is chosen totally arbitrarily to best fit the
problem. This absolute coordinate system, carrying the subscript 0, is the one in which all results
are found. Positions measured in this coordinate system are called absolute positions.
5.
This may not be good mathematical notation. However, the meaning is clear and comfortable to use for hand
computation. For digital computation, a programming language should be chosen which has provision for
hierarchical data structures; body and joint data records may then be organized in linked lists (queues) in the
order of the kinematic loops and paths.
Reviewing Section 3.9 reminds us that we reserved the symbol Ri to stand for the absolute
position vector of a point of the body with label i.
R x0
y0
R
Ri = z
R 0
1
i = 1, 2, , (4.8)
i = 1, 2, ,
(4.9)
Assuming that the stationary (ground) member, if any, of our mechanical system is numbered
body as recommended in Chapter 2, we have already collected data for the transformation
matrix T0 while we were finding the body matrices. If body is stationary, then the T0 matrix
remains constant as the system moves. If not, it is variable but, either way, we have data for it at
the initial position. In either case, we can write
Ri = T0 Ti ri
i = 1, 2, , (4.10)
where Ti can be computed as shown in Eq. (4.5) according to the path found in Chapter 2 from
body i back to the fixed body .
4.4
Since Eq. (4.7) holds for the position of a point on bodies i and k, suppose that we choose to
apply this to a mechanical system containing one or more closed kinematic loops such as those
discovered in the loop matrix of Chapter 2. Suppose also that we choose i to represent a certain
body in the loop, then trace through the bodies and joints in sequence until we meet body k. If
we continue around the loop until it closes on itself, we can write Eq. (4.7) with bodies k and i
being the same body. In this case we have
ri = Tii ri
where the matrix T00 is the product of transformations from ground to the first body of the loop,
then around the loop, then back to ground.
Since we have made no special restrictions on the choice of the point Ri, this equation must
hold for all possible choices of the point. This condition can only be satisfied if
Tii = I
T00 = T0iTiiTi 0 = I
i = 1, 2, , NL
(4.11)
i, k = 0,1, , (4.12)
Before continuing, it should be pointed out that, because of the special properties of rigid
body transformations, the inverse of such a transformation matrix is extremely simple to form. If
we choose the following notation to identify the translation and rotation submatrices,
ik
Tik =
0
POk
then, because of the orthogonality of the rotation submatrix, it is easily verified that the inverse
matrix is of the form6
1
ik
6.
ikt
=
0
ikt POk
(4.13)
This special form of the inverse is very easily found, even by hand computation. It is also easily programmed
for digital computation, and operates much more economically than a general matrix inversion technique.
4.5
According to the above discussion we see that, in order to solve for the values of the joint
variables of a mechanical system, we must first specify the generalized coordinates , the values of the f independent joint variables. We may also be required to specify certain additional
information if it becomes necessary to distinguish between multiple possible closures of the
system.
Those with experience in applying graphical techniques may consider determining the
position of a system a trivial problem since, once a layout drawing is completed, any of the joint
variables can be determined directly from the drawing.7 On the contrary, as we shall come to
appreciate in the remainder of this chapter, the determination of the values of the dependent joint
variables for a given input position is usually the most difficult problem of kinematic analysis.
Once these are known, the remaining problems of kinematics are relatively easily solved. This
observation holds true for most analytical methods and comes about primarily as a result of the
nature of the constraints. The rigid body restriction, that two points of a body remain a constant
distance apart, as well as the rotational motions found in many types of joints, invariably leads to
either trigonometric or quadratic equations. Since there must be at least as many of these
equations as unknown joint variables, their simultaneous solution can be quite tedious.
However, there are some systems -- usually zero- or single-loop systems, where the numbers
of bodies and joints are small -- for which it is possible to obtain closed-form solutions. We
shall present a few examples here to illustrate the approach. In general the procedure is always
the same; the necessary simultaneous equations are found by performing the matrix multiplications indicated in the loop-closure equation, Eq. (4.11), and these are solved by whatever
algebraic techniques the analyst is able to muster.
The matrix loop-closure equation produces all of the simultaneous equations necessary for
the solution of any given problem and the method of formulation or the number of equations is
not left to chance. None of the essential equations will be overlooked, as might happen if a given
problem were formulated intuitively. However, there is no guarantee that their solution by hand
calculation is feasible.
For example, see J. E. Shigley, Kinematic Analysis of Mechanisms, 2nd ed., McGraw-Hill Book Co., New York,
1969; see especially the first paragraph of Section 3.7, p.52.
8.
This system is also referred to as a Cardan coupling. An Italian, Girolamo Cardano (1501-1576) was the first to
describe this joint. The Englishman, Robert Hooke (1635-1703) first applied it to the transmission of rotary
motion.
10
that three of the four fixed angles at these intersections are right angles.
It is assumed here that the shaft carrying joint D is the input shaft, body 3, and its rotation
= D is a known function of time. The output shaft, body 1, has rotation A , whose functional
relationship to must be determined. We also note that the dependent joint variables and,
although not of primary concern, might also be useful for predicting wear or choosing proper
bearings.
JOINT B
BODY 1
JOINT C
BODY 2
JOINT D
BODY 3
JOINT A
BODY 1
h
BODY 3
JOINT B
BODY 4
Figure 4.4
Example 4.1: Hooke universal shaft coupling. Note revolute joints, joint B and
joint C, each have two contacts creating a single joint B and a single joint C
respectively. Also, the inertial coordinate frame x0 y0 z0 is placed to coincide with
the Ground Body 4 coordinate frame x4 y4 z4 .
11
(a)
(b)
(c)
Figure 4.5
Example 4.1: Placement of body and joint coordinate systems for (a) body 1, (b)
body 2, (c) body 3.
12
directly by inspection of the figures or by the methods of Section 3.9. The topological path
direction chosen for this analysis, as reflected by the selection of the unprimed and primed
coordinate frames in Figure 4.5, is:
BODY
4
JOINT A
BODY
1
BODY
2
JOINT B
BODY
3
JOINT C
JOINT D
Figure 4.6
T04 = I
x4
uA
0
y
v
1
4
A
= S4 A ; S4 A =
0
z4
wA
1
1
0
x1
u A
0 0
y
v
0 1
1
A
= S1 A ; S1 A =
1 0
z1
wA
1
1
0 0
1 d1
0 0
0 0
0 1
0 1 d1
0 0 h
1 0 0
0 0 1
x1
uB
0
y
v
0
1
B
= S1B ; S1B =
1
z1
wB
1
1
0
1 0 0
0 1 0
0 0 0
0 0 1
x2
u B
y
v
2
B
= S2 B ; S2 B = I
z2
wB
1
1
x2
uC
0 1 0 0
y
v
0 0 1 0
2
C
= S2C ; S2C =
z
w
1
0
0
0
2
C
1
1
0 0 0 1
x3
uD
1 0 0 0
y
v
0 1 0 0
3
D
=
S
;
S
=
3D
3D
z
w
0
0
1
d
2
3
D
1
1
0
0
0
1
x3
uC
0 0
y
v
0 1
3
C
= S 3C ; S 3 C =
1 0
z3
wC
1
1
0 0
1 0
0 0
0 0
0 1
13
x4
u D
0 sin
y
v
1
0
4
D
=
S
;
S
=
4D
4D
0 cos
z4
wD
1
1
0
0
cos
0
sin
0
d 2 cos
d 2 sin
Perhaps the transformation matrix S 4 D is not quite as obvious as the other Sij matrices. One
way to establish this matrix is to follow the procedure desribed in Section 3.8 for specifying the
data. In this case, the transformation from the x4 y4 z4 coordinate frame to the u D vD wD coordinate
frame is desired. Data for three points on the u D vD wD coordinate frame relative to the x4 y4 z4
coordinate frame are required:
d 2 cos
Point 2 on the positive side of wD axis, say arbitraily 10 units from the origin Point 1 above
d 2 cos + 10 cos
d sin + 10sin
2
d 2 cos
Now follow the procedure of Section 3.8 to obtain the matrix S 4 D shown above.
Since all four joints are revolutes, the four joint matrices are each of the form given by Eq. (3.37)
cos j
sin j
j ( j ) =
0
sin j
cos j
0
0
0 0
0 0
1 0
0 1
j = A, B, C , D
9.
Notice that joint D is defined here to be oriented from body 3 to body 4. Thus the T34 matrix is formulated,
rather than T43 . See Example 4.2: for contrast.
14
T41 = S 4 A A S1A1
0
1
0 sin
A
=
0 cos A
0
0
sin B
0
=
cos B
T23 = S 2C C S3C1
0 cos C
1
0
=
0 sin C
0
0
T34 = S3 D D S 4D1
sin sin
cos sin
=
cos
cos A
sin A
0
cos B
0
sin B
0
cos
sin
0
0
0
h
0
0 0
1 0
0 0
0 1
sin C
0
cos C
0
0
0
0
sin cos
cos cos
sin
0
h cos
h sin
Based on these four transformations, we could write the loop closure equation from Eq.
(4.11).
T12T23T34T41 = I
However, in this particular problem, it is more convenient to rewrite this in the form
T34T41 = (T12T23 )
since T12 and T23 have no translation terms and, therefore, the matrix inversion can be done quite
easily by Eq. (4.13).
Taking advantage of this, the above equation becomes
15
sin sin
cos sin
cos
cos A sin
sin A sin
cos B
sin cos
B
C
=
sin B sin C
sin B
sin C
cos B cos C
cos C
cos B sin C
0
0
0
0
0
0
Since both sides of this equation must be equal, we may now equate various individual terms
to discover the relationships between the input variable and the remaining dependent joint
variables j . The input-output relationship, for example, is found by equating the elements of
the first row, second column. This gives
cos tan
C = tan1
As discussed earlier we can group these solutions into a single vector which describes the
posture (configuration) of the system as a function of the single generalized coordinate .
tan1 ( tan cos )
A
1
cos ( sin sin )
= B =
1
C tan1
cos tan
Although we may be tempted to stop here, considering this to be a complete solution, we note
that the quadrants of A , B , and C are not yet determined. We conclude, however, since the
Hooke universal joint can only be used in situations where is an obtuse angle, cos is
always negative. Also, we note from Figure 4.4 that sin B always remains negative. Using this
information we can determine from the remaining elements of the above matrix equation that
sin C is always positive and that cos A always carries the same sign as cos . Thus all
quadrants can also be determined.
16
The reason that the quadrants could not be discovered directly from the equations, the reason
that the figure had to be consulted for clues, is that there is more than one way in which this
system could have been assembled. The same equations also describe the other possible closure
(where the cross is rotated 180 about its y2 axis and the output shaft is rotated 180 about y1 ).
In order to remove this ambiguity, to specify which closure is being analyzed, it was necessary to
note that sin B remains negative.
The foregoing analysis applies only to a "perfect" Hooke universal joint, that is, one in which
the joint axes truly intersect and do so in exact right angles. If the angles are not exactly 90, the
situation is not too bad since the only effect on the above equations is small. If, however, the
axes do not truly intersect, the linkage is no longer spherical. Such a case might happen, for
example, if the d1 and d 2 distances used in the shape matrices of the frame were slightly
different than those used in the shape matrices of the output and input shafts. The analysis would
proceed in the same fashion; however, the elements of the fourth column of the matrix products
would not cancel to produce exact identities. At best, they might be equal for only discrete
values of and not for a continuous range of motion input. Also, since real machine parts are
always designed with tolerances because of imperfect manufacture, the real Hooke universal joint
(as manufactured) might not exactly match the dimensions used in the above equations. Yet it
still might be movable, if only because of looseness in the revolute joint bearings and for slight
flexing of the "rigid" parts.
17
Figure 4.7
Again the loops and paths are obvious by inspection. The coordinate systems are chosen as
shown in the figure. The shape matrices, obtained by inspection, are as follows:
T03 = S1 A = S1B = S 2 B = S3 A = I
S 2C
0 1
1 0
=
0 0
0 0
0 0
0 0
1 0
0 1
S 3C
0 1
1 0
=
0 0
0 0
e
0 R0
1 0
0 1
18
( )
u B1
( )
v B1
=
R
0
1
1
R0 + 2 2B sin 2B
L
+
4 2B1 + sin 2B1
2
) sin
1
1
R0 + 2 2B sin 2B
=
R + L 4 2 1 + sin 2 1
B
B
0 2
) cos
) sin
1
B
1
B
1
B
) cos
1
B
(1 cos 2 ) cos
1
B
1
B
(1 cos 2 ) cos
1
B
(1 cos 2 ) sin
1
B
1
B
(1 cos 2 ) sin
1
B
1
B
1
B
0 B1 <
B1 < 2
0 B1 <
B1 < 2
From these, using Eq. (3.72) to model cam joint B as a line tangent to a planar curve joint, we
find (after some effort) that
d
1
d 1 v B
= tan1 B
d u 1
B
dB1
( )
( )
= tan1 tan B1 = B1
and
cos B1
B (B ) = sin B
0
sin B1
cos B1
0
0
0 u B1 B2 cos B1
0 v B1 + B2 sin B1
1
B3
0
1
( )
( )
Joints A and C are modeled by Eq. (3.37) and Eq. (3.39), respectively.
Therefore, since the cam is driven by A = , we can now formulate the following matrix
products:
T31 = S3 A A S1A1
cos
sin
=
0
cos B1
sin B1
=
0
sin B1
cos B1
0
0
sin
cos
0
0
0 0
0 0
1 0
0 1
0 u B1 B2 cos B1
0 v B1 + B2 sin B1
1
B3
0
1
( )
( )
19
1
0
=
0
1 0 ( R0 + C )
0 1
0
0 0
1
0 0
Notice here that joint B is oriented from body 1 to body 2 and the matrix B is used to find
T12 . However, joint C is oriented from body 3 to body 2 and C1 is required in finding T23 . We
might, instead, find T32 using C and invert it. Either way, an inversion is required in one or the
other since the orientations of joints B and C are not both consistent with the loop orientation.
Another approach would be to reorganize the loop equation itself, as was done in Example 4.1:;
here we show the alternative approach.
The loop closure equation, (4.11), gives
T33 = T31T12T23 = I
cos( ) sin( )
sin( B1 ) cos( B1 )
0
0
0
0
1
B
1
B
1
B3
0
1
(
(
1
B
)
)
By equating the elements of column 1, rows 1 and 2, with those of the identity matrix we find
cos B1 = 1
sin -B1 = 0
B1 =
( )
( )
(
u ( ) sin + v ( ) cos ( R
u B1 cos v B1 sin B2 + e = 0
1
B
1
B
+ C ) = 0
B3 = 0
Finally, rearranging and further simplifying, the solutions for the joint variables are
L
1
1 cos 2 ) e
(
= B2 =
0
B L 2 sin 2
<
(
)
C 2
4 2 + sin 2 ) <2
(
2
20
Taking these solutions back to (4.10) we find the transformation matrices which show the
absolute positions of the two moving bodies. These are
cos
sin
T01 = T03T31 =
0
sin
cos
0
0
0 0
0 0
1 0
0 1
and
0
T02 = T03T31T12 =
0 0
R0 + 2 ( 2 sin 2 )
1 0
R + L ( 4 2 + sin 2 )
0 2
0 1
0
0 0
0 <
<2
Figure 4.8
21
The body and joint labels and the coordinate systems chosen for this device are shown in
Figure 4.9.10 The shape matrices, obtained by inspection, are as follows:
Figure 4.9
Placement of body and joint coordinate systems for the SCARA robot of Example 4.3:
1
0
T01 =
0
S2 B
1 0
0 1
=
0 0
0 0
S 4C
0
0
=
1
0 0
1 0
0 1
0 0
0 d2
0 0
1 0
0 1
1 0 0
0 1 0
0 0 0
0 0 1
x0
y0
z0
1
0
S1 A =
0
S3 B
S4 D
1 0
0 1
=
0 0
0 0
1
0
=
0
0
1 0 0
0 1 h1
0 0 1
0 0
0 d3
0 0
1 0
0 1
0
1 0 0
0 1 h4
0 0 1
S2 A = I
S3C
0 0
S5 D
0 1
0 0
=
1 0
0 0
1
0
=
0
0 0
1 0
0 0
0 1
0
1 0 0
0 1 h5
0 0 1
0 0
Recognizing that joint C is prismatic and all others are revolutes, we formulate the matrix
products
10.
Note that this problem has no closed loops and also that, contrary to our usual convention, the fixed body here is
labeled body 1.
22
T12 = S1 A A S 2A1
T23 = S 2 B B S3B1
cos A
sin
A
=
0
cos B
sin
B
=
0
T45 = S 4 D D S5D1
sin A
cos A
0
0
sin B
cos B
0
0
1
0
=
0
cos D
sin
D
=
0
0
0 0
1 h1
0 1
0
0 d 2 + d 3 cos B
0
d3 sin B
1
0
0
1
0
1 0
0
0 1 C
0 0
1
0
sin D
0
0
1 h4 + h5
0
1
0
cos D
0
0
sin A
cos A
0
0
cos ( A + B ) sin ( A + B )
sin ( A + B ) cos ( A + B )
T03 = T02T23 =
0
0
0
0
x0
0
y0
1 z0 + h1
0
1
0
0 x0 + d 2 cos A + d 3 cos ( A + B )
0 y0 + d 2 sin A + d3 sin ( A + B )
1
z0 + h1
0
1
sin ( A + B ) cos ( A + B ) 0
y0 + d 2 sin A + d 3 sin ( A + B )
T04 = T03T34 =
0
0
1
z0 + h1 C
0
0
0
1
23
sin ( A + B D ) cos ( A + B D ) 0
y0 + d 2 sin A + d3 sin ( A + B )
T05 = T04T45 =
0
0
1
z0 + h1 (C + h4 + h5 )
0
0
0
1
This last matrix tells the absolute position, including the orientation with respect to the
x0 y0 z0 coordinate system, of the gripper coordinate system x5 y5 z5 . If, for example, the tip end of
the tool held by the gripper is located at the position,
0
0
r5 =
4.0 in
1
then its absolute position is given by
x0 + d 2 cos A + d3 cos ( A + B )
y + d 2 sin A + d3 sin ( A + B )
R5 = T05 r5 = 0
z0 + h1 (C + h4 + h5 + 4.0 in )
We notice that, in this problem, there is no closed loop and no loop closure equation is
required. All joint variables are independent; that is, the system has mobility four. Once the four
joint motions are all specified as functions of time, then all other position information is found as
shown here. This is the problem which the robotics community refers to as the direct or forward
kinematics problem.
T05 ( t ) =
0 0 1 3 sin t
1
0 0 0
Our task is to find the proper functions of time for each of the joint variables to achieve this
24
motion specification.
Setting the elements of this desired motion specification matrix equal to those of T05 found in
Example 4.3:, we get
cos ( A + B D ) = 1
sin ( A + B D ) = 0
x0 + d 2 cos A + d3 cos ( A + B ) = 5 cos t
y0 + d 2 sin A + d3 sin ( A + B ) = 4 sin t
z0 + h1 (C + h4 + h5 ) = 3 sin t
If we have a robot for whch the dimensions are
d 2 = 12"
x0 = 12"
y0 = 0
z0 = 0
d3 = 10"
h1 = 8"
h4 = 1"
h5 = 1"
A
2
1 28 + 40 cos t + 3 cos t
cos
= B =
80
C
6 3 sin t
D
2
3
4
We see here that, for the requirement that the gripper should follow the specified path
without rotation, it is necessary to specify and solve the "rotation" equations of the T05 ( t ) path;
we find after solution that D must be controlled by the above equation to keep the gripper from
rotating.
Although the physical system of the SCARA robot has no closed loops, in a sense we can say
that the problem specification, the request that the gripper perform the specified motion, forms a
constraint which "closes a loop. The requirement that T05 of the physical robot must equal the
requested T05 ( t ) is equivalent to a loop closure equation.
As with other loop closure problems, the task of finding closed form position solutions can
be tedious as shown by the form of the above solutions. We note also that this must be done
11.
Note that this is the solution for positive A ; there is another solution with negative A .
25
Handle to
rotate
the Planet
Carrier
Planet
Planet
Carrier
Sun
Gear
Sun
Gear
Sun
Gear
James Ferguson (1710-1776), Scottish physicist, instrument maker, astronomer, and fellow of the Royal Society,
first published this device under the title, The Description and Use of a New Machine Called the Mechanical
Paradox, London, 1764.
26
The loops and paths for this problem, found by the methods of Chapter 2, are
1
L = 1
1
A
1
1
B
0
0
P=0
0
0
1
0 0 1 1 0
1 1 0 0 0
C D E F G
0
0
0
Let us assume that the gear teeth are all standard13 full-depth involute spur gear ( j = 0 )
teeth with pressure angle of j = 20 and diametral pitch of P = 20 teeth per inch. The numbers
of teeth on the gears are:
N 2 = 10,
N 3 = 101,
N 4 = 99,
N 5 = 100,
RC = RE = RG = 0.250",
RC = 2.525",
RE = 2.475",
RG = 2.500".
0 0 2.775
1 0
0
0 1
0
0 0
1
S2 A
1
0
=
0
0 0 0
1 0 0
0 1 2
0 0 1
S5 B
1
0
=
0
0 0 0
1 0 0
0 1 3
0 0 1
S 2C
1
0
=
0
0 0 0
1 0 0
0 1 1
0 0 1
13.
American Gear Manufacturers Association (AGMA) and American National Standards Institute (ANSI) have
set standards for interchangeable involute gear tooth forms. Contact American Gear Manufacturers
Association, 1500 King Street, Suite 201, Alexandria, VA 22314.
14.
Standard gear calculations are covered in many texts. See, for example, J. J. Uicker, Jr., G. E. Pennock, and J.
E. Shigley, Theory of Machines and Mechanisms, 3rd.ed., Oxford University Press, New York, 2003, esp.
Chapter 6.
15.
Notice that, in S1A , the center to center distance of pinion 2 from the shaft of gears 3, 4, and 5 are all 2.775".
This produces a correct mesh at G ; however, the meshes at C and E are not mounted at their design distances.
This explains how the three gear meshes, with different pitch radii, all coexist. The actual meshes at C and E are
not mounted properly and are not operating at their nominal 20 pressure angles.
27
S5 D
1
0
=
0
0 0 0
1 0 0
0 1 2
0 0 1
S5 F
1
0
=
0
0 0 0
1 0 0
0 1 1
0 0 1
S 2G
1
0
=
0
0
1 0 0
0 1 1
0 0 1
0 0
From Eq. (3.60) we find the following joint matrices for the gear meshes:16
cos 11.1C1
C (C ) = sin 11.1C
)
)
cos 10.9E1
E (E ) = sin 10.9E
)
)
cos 11.0G1
G (G ) = sin 11.0G
)
)
(
(
(
(
(
(
(
)
cos (11.1 )
0
0
( 2.775 + ) cos
( 2.775 + ) sin
C3
(
)
cos (10.9 )
0
0
( 2.725 + ) cos
( 2.725 + ) sin
E3
(
)
cos (11.0 )
0
0
( 2.750 + ) cos
( 2.750 + ) sin
G3
sin 11.1C1
1
C
sin 10.9E1
1
E
sin 11.0G1
1
G
2
C
1
C
2
C
1
C
2
E
1
E
2
E
1
E
2
G
1
G
2
G
1
G
Having these, we can now evaluate the matrix products for each joint
T12 = S1 A A S 2A1
cos A
sin
A
=
0
T51 = S5 B B S1B1
16.
cos
sin
=
0
sin A
cos A
0
0
sin
cos
0
0
0 2.775
0
0
1
2
0
1
0 0
0 0
1 3
0 1
Here, since we have no information about the direction of rotation or loading, we assume that the sgn ( F ) terms
are negligible.
28
cos 11.1C1
sin 11.1C1
=
(
(
T53 = S5 D D S3D1
T42 = S 4 E E S 2E1
cos 10.9E1
sin 10.9E1
=
(
(
T54 = S5 F F S 4F1
cos 11.0G1
sin 11.0G1
=
(
(
)
)
(
)
cos (11.1 )
( 2.775 + ) cos
( 2.775 + ) sin
C3 1
sin 11.1C1
1
C
cos D
sin
D
=
0
)
)
sin D
cos D
0
0
2
C
1
C
2
C
1
C
( 2.725 + ) cos
( 2.725 + ) sin
E3
1
E
sin F
cos F
0
0
2
E
1
E
2
E
1
E
( 2.750 + ) cos
( 2.750 + ) sin
G3 + 1
1
G
0 0
0 0
1 0
0 1
(
)
cos (11.0 )
sin 11.0G1
0 0
0 0
1 2
0 1
(
)
cos (10.9 )
sin 10.9E1
cos F
sin
F
=
0
)
)
2
G
1
G
2
G
1
G
Guided by the non-zero entries of the L matrix, we now formulate the three loop equations.17
These are
T55 = T51T12T521 = I
cos + A 11G1
sin + A 11G1
=
(
(
17.
)
)
(
cos ( +
)
11 )
sin + A 11G1
A
0
0
1
G
2
1
0 2.775 sin 2.75 + G sin + A 10G
G3
1
0
1
(
(
) (
) (
)
)
By using Eq. (4.12) we see that negative entries in the loop matrix always lead to inverse matrices in the loop
equation products. This is a direct result of the original choice of orientation in defining the joints, and could be
avoided by reversal of those choices. However, reversing the choice of joint orientation also affects the sign
convention of the joint variable(s) found and also the definitions and signs of the force components found in
Chapter 17.
29
T55 = T51T12T321T531 = I
cos +A 11.1C1 D
sin +A 11.1C1 D
=
(
(
)
)
(
cos( + 11.1
)
)
sin +A 11.1C1 D
1
C
0
0
1
C3
0
1
(
(
) (
) (
)
)
T55 = T51T12T421T541 = I
cos + A 10.9E1 F sin +A 10.9E1 F 0 2.775cos 2.725 + E2 cos + A 9.9E1
0
0
1
E3
0
0
0
1
Setting the elements of these loop equation products to those of the identity matrix, we get the
following independent equations:
(
(
)
)
(
(
)
)
(
(
) (
) (
)
)
+ A 11G1 = 0
(
) (
2.775 sin ( 2.75 + ) sin ( +
)
)=0
10G1
G3 = 0
+ A 11.1C1 D = 0
(
) (
2.775 sin ( 2.775 + ) sin ( +
)
)=0
10.1C1
C3 = 0
+ A 10.9E1 F = 0
(
) (
2.775 sin ( 2.775 + ) sin ( +
)
)=0
9.9E1
E3 = 0
and, from these, we can solve for the joint variables
30
10
A
B
C1 (100 101 )
2
0
C
3
0
C
D (1 101 )
= E1 = (100 99 )
E2 0.050
3
0
E
F (1 99 )
1
G
2
0.025
G3
0
G
Finally, guided by the entries of the path matrix, we now express the position of each body as
a function of the independent variable .
T05 = I
cos
sin
T01 = T05T51 =
0
sin
cos
0
0
0
0
0
0
0 0
0 0
1 3
0 1
0 2.775 cos
0 2.775 sin
1
1
0
1
0
0
0
0
cos ( 99 ) sin ( 99 )
sin ( 99 ) cos ( 99 )
T04 = T05T54 =
0
0
0
0
0 0
0 0
1 2
0 1
0 0
0 0
1 1
0 1
In the final analysis we find that a single input crank turns by an angle carrying a thick
31
planet gear 2 around the periphery of fixed sun gear 5. This causes two other similar (almost
identical looking) sun gears, 3 and 4 to also rotate. However, sun gear 3 rotates by (1 101) in
the same direction as the input crank, while sun gear 4 rotates by (1 99 ) in the opposite
direction.
It was pointed out in footnote 15 that the center to center distance of 2.775" is not equal to the
sum of the pitch radii for all three gear meshes. Therefore all three cannot properly mesh
according to their design specifications. A comparison is presented in Table 4.1.
Table 4.1
Example 4.5: Fergusons Paradox
Comparison of Gear Meshes
Joint
C
E
G
Nominal
Center
Distance
2.775"
2.725"
2.750"
Actual
Pressure
Angle
20.000
22.667
21.373
Actual
Contact
Ratio
1.199
0.679
1.132
32
Problems
4.1
4.2
Verify Eq. (4.13) for the inverse transformation matrix shown at the end of Section 4.4.
33
34
Displacement
= ( t1 ) ( t0 )
(5.1)
However, just as we saw with position, this might leave doubt between possible different
closures of a system. Therefore, it is safer to use
= ( t1 ) ( t0 )
(5.2)
(5.3)
and, since a point does not move with respect to the coordinate system of its own body, the
absolute displacement of a point attached to body i is
Ri = Ri ( t1 ) Ri ( t0 ) = T0i ri
i = 1, 2, ,
(5.4)
Notice that displacement depends only on the two bounding positions of the interval; no
information regarding how the later position was achieved is necessary for its determination. If a
linkage mechanism, for example, is operated continuously for several cycles but is finally
stopped in exactly the same position from which it started, it has undergone zero displacement
(even though it may have traversed a great number of cycles) since its initial and final positions
are identical. Similarly, if we fly from Chicago to London and return, we travel a great distance
but our displacement is zero.
Suppose we wish to describe the displacement of a rigid body as it moves from some initial
position to a later position. Suppose that we wish to describe this change in position of the body
starting with data for the displacements of a few points attached to the body. In three dimensions
113
a minimum of three non-collinear points must be measured to define a bodys motion since their
nine coordinates, subject to the three constant distance constraints between them, give enough
data for determining the six degrees of freedom of the moving body.
Suppose that we choose to measure the initial positions of three chosen points with respect to
some stationary coordinate system, and denote these data by Cartesian coordinate position
vectors, P1 ( t0 ) , P2 ( t0 ) , and P3 ( t0 ) . Suppose that we also measure the position coordinates of
the same three points after the body has moved, P1 ( t1 ) , P2 ( t1 ) , and P3 ( t1 ) . From these data, we
wish to describe the displacement of the moving body in such a way that we are able to calculate
the new position of any other point of the same body.
The moving body carries a body coordinate system, x, y, z . Suppose we choose this moving
coordinate system coincident with the global system at the initial time t0 . This choice is convenient since it gives T ( t0 ) = I and, by Eq. (3.32), ri = Ri ( t0 ) identifies the local homogeneous
coordinates of the points.1
Now, to simplify the calculations below, we generate data for an additional fourth point of
the moving body. Suppose we choose this additional point by the equation
P4 ( t0 ) = P1 ( t0 ) + P2 ( t0 ) P1 ( t0 ) P3 ( t0 ) P1 ( t0 )
(5.5)
Since the original three points are assumed distinct and non-collinear, this fourth point is
linearly independent of the first three.
Since all points belong to the same rigid body, the later position of this same point can be
found by a similar calculation
P4 ( t1 ) = P1 ( t1 ) + P2 ( t1 ) P1 ( t1 ) P3 ( t1 ) P1 ( t1 )
According to Eq. (5.4), we can write in homogeneous coordinates that
R ( t1 ) = ( I + T ) R ( t0 )
and, from this, we define a new matrix T which transforms the points to the altered position
coordinates R ( t1 ) from the initial position values, R ( t0 ) .
T = I + T
(5.6)
R ( t1 ) = TR ( t0 )
Writing this equation four times, once for each of our points, we can group these into a single
matrix equation as follows:
R1 ( t1 )
1.
R2 ( t1 ) R3 ( t1 ) R4 ( t1 ) = T R1 ( t0 )
R2 ( t0 ) R3 ( t0 ) R4 ( t0 )
The subscript for body label is not used in this section. Since there is only one moving body, moving with
respect to the absolute frame, this should not cause confusion. Also, the subscripts showing point number or
time state are used in this section only.
114
and, since the matrix of initial point position data is square (44) and non-singular (since the four
points are not coplanar), this equation can be solved to find the T matrix as follows:
T = R1 ( t1 )
R2 ( t1 ) R3 ( t1 ) R4 ( t1 ) R1 ( t0 )
R2 ( t0 ) R3 ( t0 ) R4 ( t0 )
(5.7)
Once this T matrix is known, any chosen point of that same moving body can be specified
by its initial position r = R ( t0 ) , and its displaced position R ( t1 ) can by found by Eq. (5.6). A
numeric example will illustrate.
Example 5.1
Suppose we have measured data for the position coordinates of three points of a moving body
such that:
0
P1 ( t0 ) = 0
0
2
P2 ( t0 ) = 0
0
0
P3 ( t0 ) = 5
0
2.872
P1 ( t1 ) = 4.757
6.469
1.493
P2 ( t1 ) = 3.927
5.281
6.098
P3 ( t1 ) = 1.137
5.251
0
P4 ( t0 ) = 0
10
6.162
P4 ( t1 ) = 10.270
1.197
6.162 0 2 0 0
10.270 0 0 5 0
5.281
5.251
1.197 0 0 0 10
1
1
1
1 1 1 1
0.32904
2.87154
0.68936 0.64538
0.41461
0.72396 0.55134 4.75653
=
0.59404 0.24366 0.7666 8 6.46932
0
0
0
1
1.493
3.927
6.098
1.137
and the displacement matrix for this body over this time interval can now be found from Eq.
(5.6).
115
T = T ( t1 ) I =
0.59404 0.24366 1.76668 6.46932
0
0
0
0
From the T ( t1 ) matrix we can find the displaced position of any additional point(s) of the
body as follows
2
5
R5 ( t0 ) =
0
1
4.720
0.308
R5 ( t1 ) = T ( t1 ) R5 ( t0 ) =
4.063
or, from the displacement matrix T , we can find the displacement of the additional point(s) of
the body.
2 2.720
5 5.308
R5 = T =
0 4.063
1 0
From this example we see that the T ( t1 ) matrix appears similar in many ways to our
transformation matrix of previous sections. We see the characteristic zeroes and unity in the
bottom row and a quick check verifies that the upper-left (33) submatrix is orthogonal with
determinant of positive one, as a rotation submatrix must be. Was this accidental or unique to
this example? No; these properties are true in the general case and proof is shown in the next
section.
We see here that there are two quite different ways in which a transformation can be viewed.
It can be seen as a relationship between one coordinate system and another; Tik of the previous
chapters answers the question, "Where is the coordinate system of body k when measured with
respect to the coordinate system of body i at a chosen moment in time?" On the other hand it can
be seen as a relationship between two different positions of the same moving coordinate system
at two different values of time; the T ( t1 ) matrix of this section answers the question, "What is
the displaced position of this particular coordinate system at time t1 with respect to its initial
position?"
116
5.2
2.
Leonhard Euler (1707-1783), "Formulae generales pro translatione quacumque corporum rigidorum," Novi
Comentarii Academiae Petropolitanae, vol. 20, 1776, pp. 189-207; also in Theoria motus corporum solidorum
seu rigidorum ..., 1765.
3.
Michel Chasles (1793-1880), "Note sur les Proprietes Generales du Systeme de Deux Corps Semblables entreux
et places dune maniere quelconque dans lespace; et sur le deplacement fini ou infiniment petit dun corps
solide libre," Bulletin des Sciences Mathematiques de Ferrussac, vol. 14, Paris, 1830, pp. 321-326.
117
Initial Position
uAt
Initial Position
vAt
Initial
position
of the
moving
body
=
cos ( ) sin ( )
sin ( ) cos ( )
( ) =
0
0
0
0
(5.8a)
0 0
0 0
1
0 1
(5.8b)
118
Realizing that the shape matrices before and after the joint are identical and are both constant,
we can write Eq. (4.3) for this situation
R ( t1 ) = S ( t1 ) S 1r
(5.9)
When we recognize that r = R ( t0 ) we can see that our T ( t1 ) matrix can be expressed as
T ( t1 ) = S ( t1 ) S 1
(5.10)
T ( t1 ) = S ( t1 ) S 1 I
All of these expressions are just different ways of expressing the displacement of a moving
body in its simplest canonical form, the equivalent helical motion of Chasles theorem. The
T ( t1 ) matrix for the displacement of any moving rigid body up to some value of time t1 with
respect to its original position can be written as equivalent to the displacement of a helical joint,
as shown in Figure 5.1.
Our problem now is that, usually, we do not have a real helical joint connecting the moving
body to ground. We usually specify or find the T ( t1 ) matrix by other methods, as were shown in
Chapter 4, for example. Once we know the T ( t1 ) matrix, we may want to discover the
parameters of the "equivalent" screw. Where is the screw axis, what is its pitch, and how much
does it move?
#
We use the notation cos w
, x0 , for example, to denote the direction cosines of the screw
axis w with respect to the global axes, and T ( i, k ) to refer to row i, column k of the matrix
T ( t1 ) . By expanding Eq. (5.10) symbolically, the reader can verify that the direction cosines of
the screw axis can be found by comparing the sizes of the diagonal elements and performing the
corresponding one of the following four sets of calculations:
If T (1,1) = T ( 2, 2 ) = T ( 3,3) = 1 , then we set
( )
#
d cos ( w
, y ) = T ( 2, 4 )
#
d cos ( w
, z ) = T ( 3, 4 )
#
d cos w
, x0 = T (1, 4 )
0
(5.11a)
119
( )
#
d cos ( w
, y ) = T (1, 2 ) + T ( 2,1)
#
d cos ( w
, z ) = T (1, 3) + T ( 3,1)
#
d cos w
, x0 = 1 + T (1,1) T ( 2, 2 ) T ( 3, 3 )
(5.11b)
or if T ( 2, 2 ) is largest we set
( )
#
d cos ( w
, y ) = 1 T (1,1) + T ( 2, 2 ) T ( 3, 3 )
#
d cos ( w
, z ) = T ( 2, 3) + T ( 3, 2 )
#
d cos w
, x0 = T ( 2,1) + T (1, 2 )
(5.11c)
( )
#
d cos ( w
, y ) = T ( 3, 2 ) + T ( 2, 3)
#
d cos ( w
, z ) = 1 T (1,1) T ( 2, 2 ) + T ( 3, 3 )
#
d cos w
, x0 = T ( 3,1) + T (1, 3)
(5.11d)
The vector of direction cosines of the screw axis w can now be normalized to form a unit
vector, thus eliminating the value of d.4
Next we define the following notation for the rotation and translation submatrices of T.
T =
0
P0
1
T (1, 4 )
P0 = T ( 2, 4 )
T ( 3, 4 )
cos
w = cos
cos
, x )
( w#
, y )
( w#
#
w
,
z
( )
0
(5.12)
Recalling Eq. (5.10), we see that the T ( t1 ) matrix is related to the screw matrix ( ) by
a similarity transformation. Using the theory of such transforms, the trace5 of a matrix remains
4.
If T (1,1) = T ( 2, 2 ) = T ( 3, 3 ) = 1 and the direction cosines also become null according to Eq. (5.11a), then the
original T ( t ) was an identity matrix signifying that there was no displacement and thus no unique screw axis.
Note that this conclusion can not be reached without considering the fourth column because of the possibility of
translation with no rotation.
1
5.
The trace of a square matrix is defined as the sum of the terms on the major diagonal.
120
Putting values into both sides of this equation, it can be solved for the rotation of the screw7
= cos1 {T (1,1) + T ( 2, 2 ) + T ( 3, 3) 1}
(5.13)
Recognizing that all points of the moving body have equal displacement components parallel
to the screw axis, we can find the travel of the screw by finding that component of the displacement of the origin of the xyz axes
= wt P0
(5.14)
which may give either a positive a or negative value. A negative value at this point (with
positive ) implies a left-handed screw. Here we choose a convention where the screw is
always right-handed. When translation appears negative from Eq. (5.14) we reverse the
signs of all components of w, , and also , thus making it positive.8 However, since this
changes to negative, we also add 2 to to again make it positive.
Once both the translation and the rotation are found, and both are positive, the pitch
of the screw is found from Eq. (5.8a).9
(5.15)
If we wish to find a point on the screw axis, we recognize that such a point P only
experiences a displacement along the screw axis w. Thus, for such a point,
P0 P
P
w
= +
1 1 1
0
( I ) P = w P0
(5.16)
This equation does not have a unique solution for P since it satisfies any and all points on the
axis. Therefore, it is no surprise that the coefficient matrix has rank two and cannot be inverted.
6.
See, for example, G. A. Korn & T. M. Korn, Mathematical Handbook or Scientists and Engineers, McGrawHill Book Co., New York, 1961, Sec. 14.6.2.
7.
The positive (counter-clockwise) angle 0 is chosen temporarily; this will be adjusted later as
explained following Eq. (5.14). We could also have added any multiple of 2 to this rotation; however,
consistent with Chasles theorem, we are seeking the simplest solution as our canonical form.
8.
Making these sign reversals changes our arbitrary choice of the positive sense of the screw axis w.
9.
If = 0 we have a case of no rotation. Then, if 0 , there is translation only; the pitch for such a case is
= . If both are zero, then there was no displacement, and thus no screw axis and no pitch.
121
However, after choosing one component of P, the other two can be found.10
Another possibility is to find the single point on the screw axis which is closest to the global
origin. This is the point for which the P vector is perpendicular to the screw axis. This condition
provides a fourth equation, gives the set rank three, and makes it solvable for the three
coordinates of P.
I
w P0
wt P =
(5.17)
Example 5.2
Continuing with the same data used inExample 5.1, let us find the screw that corresponds to that
displacement. From Example 5.1 we have
T =
0.59404 0.24366 0.76668 6.46932
0
0
0
1
First we compare the three diagonal values in the rotation submatrix and, since T ( 2, 2 ) is the
largest11, we proceed with Eq. (5.11c)
d cos ( w, x0 ) = 1.05999
d cos ( w, y0 ) = 3.18000
d cos ( w, z0 ) = 0.79500
Normalizing these, we find the unit vector of the screw axis
cos ( w, x0 ) 0.30769
w = cos ( w, y0 ) = 0.92308
cos ( w, z0 ) 0.23077
From Eq. (5.13) we find = 150.00 = 5 / 6 rad . However, Eq. (5.14) gives the travel of
the screw = 5.000 . Since this value is negative, we make the sign reversals described after
Eq. (5.14) above
10.
Again, in the case of = 0 , we are dealing with no rotation. In such a case, the w axis shows the direction of
translation. However, any axis with this direction can serve; thus the matrix ( I ) is null and any choice of P
is valid. We will choose P = 0 (the origin) for our canonical form for such cases and neither Eq. (5.16) nor Eq.
(5.17) need be used.
11.
Notice that T ( 2, 2 ) is identified as largest even though T ( 3, 3 ) is of larger absolute magnitude since
T ( 2, 2 ) > T ( 3, 3 ) .
122
0.30769
w = 0.92308
0.23077
= 5.000 in
= 210 = 7 / 6 rad
30
= 1.364 in/rad
7
Finally, Eq. (5.17) is used to find one point on the screw axis.
y =
0
0.30769 0.92308 0.23077
x = 2.858 in
5.3
y = 0.426 in
z = 2.106 in
A subject which is a continuing source of error in the design analysis of mechanical systems is
that of interpolation. Suppose, for example, that we know the position T ( t0 ) of a parked car
with no load in its trunk and a second position T ( t1 ) of the same car with a load of 50 pounds in
its trunk. Suppose we wish to predict the position of that same parked car with a load of 20
pounds.
Would it be reasonably accurate to predict that this would be about
T = T ( t0 ) + ( 20 50 ) T ( t1 ) T ( t0 ) ? No; this is not necessarily a reasonable prediction.
One problem with this approach is in the notation chosen. We used symbols of T ( t0 ) and
T ( t1 ) as functions of time, and then chose to interpolate as if they were functions of load; we did
not mean that (20/50) of the time had elapsed. This formula may have been more fitting if we
had used symbols such as T ( F0 ) and T ( F1 ) .
Does the position of the car not also depend, for example, on where in the trunk the load is
placed? Will the car pitch and roll, or only change its height? Well, this is told by the change of
the rotation submatrices of the transformation. However, it does imply that the pitch and roll will
progress uniformly as the load increases, and at equivalent fractional rates.
A much more significant error, however, comes from using linear interpolation of a nonlinear functional relationship. We have no right to assume that the load deflection relationship
of the vehicle suspension is linear. This issue of non-linearity is ever present in kinematics and
often forgotten, even by experienced analysts, when interpolating.
As another example, let us suppose that the body of Example 5.1, above is moving at
constant velocity through the two positions given. What would be the positions of the three
123
measured points when the time increment is one third complete? With our stipulation of
constant velocity motion, we might mistakenly assume that linear interpolation is allowable and
write
T = I + T =
0.19801 0.08122 0.41111 2.15644
3
0
0
0
1
But, upon multiplying this by the the positions of the points in question, we find that the
distances between the points change! In addition, it is easily verified that the rotation portion of
this matrix does not fit the orthogonality conditions, 1 t ; thus this cannot be a valid rigid
body transformation matrix!
What went wrong here? Why didnt this work? Again, we inappropriately assumed linearity.
With rotation, the displacements of points are not along straight lines; their equations involve
trigonometric functions and are nonlinear.
Another symptom of this is that we assumed all twelve elements of the T matrix could change
linearly as if all were independent. However, in reality, all twelve elements can not be independent since the body has only six degrees of freedom in 3-D motion. The six constraints, which
we failed to enforce are the orthogonality conditions which are quadratic, not linear.
We might remedy this shortcoming by assuming that the body moves along its screw axis, as
found in Example 5.2, and that the independent variable ( t ) varies linearly; Eq. (5.10) shows
that this is equivalent to
T ( t ) = S ( t ) S 1
This is a valid formula for interpolating the locus of a single moving rigid body. However,
considering Figure 5.1 should convince us that the motion is nonlinear and that points of the
moving body follow helical, not linear, point paths.
As another example, consider the displacement of the connecting rod of the slider-crank
system shown in Figure 5.2. If we were to use the methods of Section 5.2 to find the screw axis
of this displacement, we would find that the "screw" is a revolute ( = 0 ) located at point P.
However, this implies circular point paths with centers at P for the two joint centers marked B
and C, which contradicts the constraints of the overall system. What is wrong now?
124
Careful thought should be given to what is desired and what number and choice of
independent variables should be used.
Interpolation increments, linear or otherwise, should only be chosen for the independent
variable(s).
5.4
Let us now change our point of view and consider a situation which, at first glance, may seem
quite different from that taken heretofore. Let us consider the movement of a helical joint since,
according to Chasles theorem, it is the general parent of all other single degree of freedom
Chapter 5: Displacements and Derivatives
125
motions. Also, different from Section 5.2, let us choose to view the movement from the
preceding bodys joint coordinate system, rather than from the fixed or absolute coordinate
systems as before. With respect to this preceding bodys joint coordinate system, u j v j w j , the
following bodys joint coordinate system, u j vj wj , appears to move with only the helical motion
of the joint itself, and this motion is represented by Eq. (3.42)
cos ( j j ) sin ( j j )
sin
cos ( j j )
j ( j ) = ( j j )
0
0
0
0
0 0
1 j
0 1
0
Taking the arbitrary value of j as our initial reference position, let us consider a
displacement of the joint of size . After such a displacement, the altered joint matrix
becomes
cos ( j + ) j sin ( j + ) j
sin + cos +
(
) j
) j
( j
j ( j + ) = j
0
0
0
0
0
0
1 ( j + )
0
1
But, using trigonometric identities for sine and cosine of sums of angles,
cos ( j ) cos ( j j )
sin ( ) sin ( )
j
j
j
sin cos
(
( j j )
j)
j ( j + ) =
+ cos sin
(
( j j )
j)
0
0
1 ( + j )
0
1
sin ( j ) cos ( j j )
0
cos ( j ) sin ( j j )
cos ( j ) cos ( j j )
sin ( j ) sin ( j j )
0
0
sin j ) cos ( j )
j ( j + ) = (
0
0
0
0
0 cos ( j j ) sin ( j j )
0 0 sin ( j j ) cos ( j j )
0
0
1
0 1
0
0
0
0 0
1 j
0 1
0
This equation says that the total transformation can be viewed as accomplished by two
126
coaxial screws of equal pitch, the first incremented by the change in joint variable and the second
positioned as originally.12
j ( j + ) = j ( ) j ( j )
(5.18)
Suppose we now subtract the original position of this helical joint in order to find its
displacement. Equation (5.3) gives
j ( j ) = j ( j + ) j ( j )
= j ( ) j ( j ) j ( j )
= j ( ) I j ( j )
cos ( j ) 1
sin ( j )
cos ( j ) 1
= sin ( j )
0
0
0
0
0
0
0
0
j( j)
(5.19)
If we now restrict ourselves to small displacements, we can make the usual (first order) small
angle approximations, cos ( j ) 1 and sin ( j ) j , and the above equation
reduces to the form
0
j
j ( j )
0
j
0
0
0
0
0 0
j ( j )
0
0 0
0
1 j
0
0
0
0 0
0 0
0 1
0 0
(5.20)
so that the equation for the small displacement of a helical joint reduces to
j ( j ) Q j j ( j )
12.
(5.21a)
For the helical joint these two matrices are of the same form and commute in multiplication,
( ) ( ) = ( ) ( ) , meaning that the change in joint variable can happen either preceding or following
the original motion. This is not true for all joint types. For the most meaningful interpretation of the derivative
operator matrices to be defined below we put them in the order shown.
127
It is left as an exercise for the reader to verify, by a parallel development, that the same Q j
matrix can be used with the inverse matrix as follows
j1 ( j ) j1 ( j ) Q j
(5.21b)
Looking back to Eq. (5.19) we can now write an equation for the joint matrix after a small
displacement.
j ( j + ) I + Q j j ( j )
j = 1, 2, , n
(5.22a)
j = 1, 2, , n
(5.22b)
j1 ( j + ) j 1 ( j ) I Q j
From the beginning of this section, we have been working in the u j v j w j coordinate system,
aligned with the "preceding" element of the joint. It is frequently more convenient to express
these same equations in the coordinate system of the preceding body. Suppose, for example, that
we identify a point attached to the body labelled i which follows the joint and has coordinates ri
with respect to that body.13 If we now shift our viewpoint and imagine that we stand on the body
labelled j- immediately preceding joint j, from coordinate system x j y j z j the position of our
point is given by Eq. (4.3)
ri ( j ) = S j , j j ( j ) S j +1, j ri
where the symbol ri ( j ) has been chosen to remind us that the point is attached to body i, but, as
seen from coordinate system j-, moves when the joint variable j changes. After a displacement
of the joint variable the position of the point changes to
ri ( j + ) = S j , j j ( j + ) S j +1, j ri
or, if the joint is oriented in the reverse sense, then, as seen from coordinate system j+,
ri ( j + ) = S j + , j j 1 ( j + ) S j 1, j ri
or
ri ( j + ) S j + , j j1 ( j ) I Q j S j 1, j ri
13.
It may appear that i and either j+ or j- are different labels for the same body. In the beginning, this is true. It is
advantageous, however, to carry two labels so that joint orientation differences can be resolved. In addition, we
will see shortly that i can be the label of any body "following" joint j, that is for which joint j is in the path to
body i.
128
and, by insertion of appropriate identity factors after the square brackets, these may be put into
the form
ri ( j + ) I + S j , j Q j S j 1, j ri
(5.23a)
(5.23b)
Continuing to work in the coordinate system preceding joint j on the path to body i, we
recognize the small displacement of our moving point of body i as
ri ( j ) S j , j Q j S j 1, j ri ( j )
or
ri ( j ) S j + , j j 1Q j j S j +1, j ri ( j )
depending on the orientation of joint j.
We should notice here that body i is no longer required to be the body which immediately
follows joint j. These equations are valid for a point attached to any body i which is displaced by
the movement of joint j where we recognize that ri and ri are expressed in the coordinate
system of the body which precedes joint j along the path to body i. If the displacement of joint j
does not move body i, then these equations do not pertain. To keep this clear in the equation
itself and simplify the treatment of joint orientation, we can take advantage of the path matrix P
of Section 2.5 as follows.
ri ( j ) P ( i, j ) S j , j Q j S j 1, j ri ( j )
i = 1, 2, ,
j = 1, 2, , n
(5.24a)
or
ri ( j ) P ( i, j ) S j + , j j1Q j j S j +1, j ri ( j )
i = 1, 2, ,
j = 1, 2, , n
(5.24b)
where P ( i, j ) symbolizes the entry in row i, column j of path matrix P. This modification not
only coalesces the dual equations for different joint orientations, it directly yields zero
displacement when joint j is not on the path to the point.
We can do an exactly parallel development while picturing ourselves using the absolute
coordinate system, x0 y0 z0 . Here the position of the point of body i is expressed by Eq. (4.9)
Ri ( j ) = T0 j S j , j j ( j ) S j +1, jT j + ,i ri = T0 i ( j ) ri
or, if joint j happens to be oriented the other way, by
129
Ri ( j ) = T0 j + S j + , j j1 ( j ) S j 1, jT j ,i ri = T0i ( j ) ri
Since we assume that bodies preceding joint j on the path to body i are (appear to be) not
moving and thus all motion comes from the displacement of helical joint j, a small displacement
of the joint results in
Ri ( j + ) T0 j S j , j I + Q j j ( j ) S j +1, jT j + ,i ri
or
Ri ( j + ) T0 j + S j + , j j1 ( j ) I Q j S j 1, jT j ,i ri
Now, by insertion of appropriate identity factors, these become
1
Ri ( j + ) T0 j S j , j I + Q j (T0 j S j , j ) T0 j S j , j j ( j ) S j +1, jT j + ,i ri
or
1
(5.25)
Ri ( j ) P ( i, j ) (T0 j S j , j ) Q j (T0 j S j , j ) Ri ( j )
i = 1, 2, ,
(5.26)
i = 1, 2, ,
(5.27)
We should notice in all of these equations that the movement is coming entirely from the
small displacement in joint j. The Q j matrix carries the information about the axis and
motion capability of joint j, and is most naturally defined in the joint j coordinate system. We
see in Eqs. (5.23a) and (5.23b) and Eqs. (5.24a) and (5.24b) how this axis and motion information are transformed into the preceding body j- coordinate system or, in Eqs. (5.25), (5.26), and
(5.27), into the absolute coordinate system; in all cases this is done by similarity transformations.
Thus, in all of these equations, the terms in the square brackets of each reflect the same
information, the motion freedom and axis information of Q j and the size of the motion
increment , but each is transformed to a suitable coordinate system for the object being
displaced.
130
We should also notice that body index i is not referenced in the square bracketed operators,
and that joint index j and body index j- are only referenced in the square brackets, not in the
items being displaced. This makes perfect sense; joint index j must appear in each square
bracket operator since that joint is the only item being incremented, and body index j- is sometimes used as the convenient coordinate system for expressing its axis.
The conclusion from these observations is that, when joint j is the only joint being displaced,
the above formulae can be used for movement of an item associated with any body index i which
is displaced as a result of the movement of joint j, that is for any body i for which joint j is in the
path to that body from ground. Of course, when multiple joint variables along such a path are
being displaced simultaneously, the above formulae only predict the displacement of the item
associated with body i coming from the single joint j; combinations with other simultaneous joint
displacements will be discussed later.
5.5
Let us continue the same line of thinking to infinitesimally small displacements. If, for example,
we consider the small displacement of joint j, we have Eqs. (5.21a) and (5.21b). If we seek the
absolute displacement of a point of body i resulting from the small displacement of joint j, we
have Eq. (5.26).
If we look for the rate of change of the position of body j+ with respect to body j- resulting
from the change in the variable of joint j, then we are looking for the derivative of j ( j ) with
respect to j . Using Eq. (5.21a) this can be found directly from its definition as follows:
j ( j )
j ( j ) = lim
0
j
j = 1, 2, , n
(5.28)
= Q j j ( j )
If we seek the rate of change of the absolute position of a point attached to body i with
respect to the change in position of joint j, then we are looking for the derivative of Ri ( j ) with
respect to j . Using Eq. (5.26), this becomes
1
Ri ( j ) = P ( i, j ) (T0 j S j , j ) Q j (T0 j S j , j ) Ri ( j )
and, similarly for the rate of change of the absolute position of body i itself with respect to the
change in position of joint j, we have from Eq. (5.27),
1
131
j = 1, 2, , n
(5.29)
Ri ( j ) = P ( i, j ) D j Ri ( j )
j
i = 1, 2, ,
j = 1, 2, , n
(5.30)
and
T0i ( j ) = P ( i, j ) D jT0i ( j )
j
i = 1, 2, ,
j = 1, 2, , n
(5.31)
Of Eqs. (5.28) through (5.31), Eq. (5.28) is considered the most fundamental since the others
are a direct consequence of this one and the definition of Eq. (5.29). If, for example, Eq. (5.28)
is used to differentiate Eq. (4.9) with respect to joint variable j , and Eq. (5.29) is then used to
simplify the notation, Eq. (5.30) is a direct result.
It should be pointed out that partial differentiation symbolism is used in these equations to
remind us that they account only for displacements resulting from changes in the single joint
variable j , and do not include possible additional simultaneous displacements resulting from
other joint variable changes along the path to body i. Similarly, the factor P ( i, j ) reminds us
that joint j must be on the path from ground to body i; if joint j is not on this path, then T0i , for
example, is not a function of j and Eq. (5.31) yields zero.
We also stress here that Eqs. (5.28), (5.30) and (5.31) are not approximations; they yield
exact values for the derivatives! The approximation of small displacement used in Eqs. (5.21a)
and (5.21b) and in Eq. (5.27) become exact when we pass to the limit of 0 . This
observation is extremely important and will be raised again in evaluating numerical accuracy in
coming chapters. This ability to differentiate precisely is a unique advantage of the matrix
methods presented here over other numerical methods where derivatives are often replaced by
approximate finite differences and can lead to numerical error.
Reviewing this section reminds us that we started from the assumption of the previous
sections that our displacement is that of a helical joint. However, the same concepts can be
applied to any single joint freedom, j . Returning to Eq. (5.28), let us generalize the idea. Let
us simply define a derivative operator matrix, Q j , as follows:15
14.
We must be careful in interpreting the notation of this definition. Here the body j- is the body immediately
preceding joint j as originally defined, irrespective of its orientation in the path to body i.
15.
If joint j has more than one joint variable, then we define a derivative operator matrix Q defined for
differentiation with respect to each of the joint variables .
132
Qj =
j ( j ) j 1
j
j = 1, 2, , n
(5.32)
Once we define Q j in this way, Eq. (5.28) must hold true for any joint type or any joint
variable, helical or not. Also, Eqs. (5.29), (5.30), and (5.31) must hold true as well.
As usual, there is an attendant penalty; we must work out and program the appropriate form
of the Q j matrix for each type of joint and for each variable of each type of joint. However,
these are not hard to find by using Eq. (5.32) and they are listed here for all of the joint types of
Section 3.10.
5.5.1
Revolute Joint:
0 1
1 0
Qj =
0 0
0 0
5.5.2
0 0 1
0 0 0
0 0 0
0 0 0
(5.34)
Helical Joint:
0
1
Qj = j
0
5.5.4
(5.33)
Prismatic Joint:
0
0
Qj =
0
5.5.3
0 0
0 0
0 0
0 0
1 j
0
0
0
0 0
0 0
0 1
0 0
(5.35)
Cylindric Joint:
0 1
1 0
Q1j =
0 0
0 0
0 0
0 0
0 0
0 0
0
0
Q 2j =
0
0 0 0
0 0 0
0 0 1
0 0 0
(5.36)
133
5.5.5
Spheric Joint:
2 1j
2 j2
1
Qj =
2 3j
2 3j
4
2
3
Q j = j1
2 j
2 2j
2 1j
2 4j
0
2 3j
2 j4
2 1j
0
0
0
2 j2
1
2
2
Qj = j4
2 j
2 1j
2 j2
2 3j
0
2 j4
2 3j
2 j2
0
2 1j
2 j2
2 3j
0
0
0
2 j4
2 3
4
Q j = 2j
2 j
2 3j
2 j4
2 1j
0
2 j4
2 3j
2 j2
0
0
0
2 j2
2 1j
2 j4
0
0
0
(5.37)
with the additional constraint equation among the first-order displacements that
2 1j 1j + 2 j2 j2 + 2 3j 3j + 2 j4 4j = 0
5.5.6
Flat Joint:
0
0
Q1j =
0
5.5.7
0 0 1
0 0 0
0 0 0
0 0 0
0
0
Q 2j =
0
0 0 0
0 0 1
0 0 0
0 0 0
0 1
1 0
Q 3j =
0 0
0 0
0 j2
0 1j
0 0
0 0
(5.38)
Rigid Joint:
The rigid joint has no joint variables. Therefore no derivative operator matrices are defined for it.
5.5.8
Open Joint:
0
0
1
Qj =
0
0 0 1
0 0 0
0 0 0
0 0 0
0
0
2
Qj =
0
0 0 0
0 0 1
0 0 0
0 0 0
0
0
3
Qj =
0
0 0 0
0 0 0
0 0 1
0 0 0
Qj =
Q =
(5.39)
26j 27j 2j4 21j6j 22j 7j 23j j4 j 27j 26j 25j 21jj7 + 2j2j6 23j 5j
0
0
0
0
0
0
0
134
2j 26j 25j 21jj7 2j2j6 + 23j5j 7 26j 27j 24j 21j 6j 22j 7j 23j 4j
6
Qj = 4
Q =
2j 25j 2j6 21jj4 2j25j 23j j6 j 25j 24j 27j 21j 5j + 22j4j 23j7j
0
0
0
0
0
0
0
with the additional constraint equation among the first-order displacements that
2 j4 j4 + 2 5j 5j + 2 j6 j6 + 2 j7 j7 = 0
5.5.9
0 1
R j + Rj
1
Qj =
1 0
Rj
0 0
0 0
Q 2j =
0
0
0
j2
R j 1 +
sin 1j
R j + Rj
j2
1
R j 1 +
cos j
R
+
R
j
j
0 1
2
sgn ( F ) R j + Rj + j
1 0
2
2
R j + Rj + 2j ( R j + Rj ) cos j 0 0
0 0
0 1
tan
0
j 1
Q 3j =
Rj 0 0
0 0
0
0
sin 1j
0 cos 1j
0
0
0
0
0
(5.40)
( R + R + ) sin
( R + R + ) cos
2
j
2
j
1
j
1
j
1 1 0
1
Qj =
Rj 0 0
0 0
0 j2
0 1j
0 0
0 0
135
0
0
Q 2j =
0
0
0
0
0
0
0
0
0
0
1 sgn ( F ) tan j
0
Rj
0 1
tan j 1 0
3
Qj =
Rj 0 0
0 0
0 1
1 0
0 0
0 0
0 Rj + j2
0
1 1j
0
0
0
0
(5.41)
0 Rj + j2
0
1j
0
1
0
0
1
0
0
0
0
0
0
0
0
0
0 tan j cos
+
0 tan j cos 1j sin
0
0
0
0
Q 2j =
1
1
sin j cos j
0
0
cos
cos 1j sin
sin 1j sin
sin 1j sin
sin 1j
cos 1j
0
0
0
0
0
0
(5.42)
0
0
Q1j =
0
0 0 u
0 0 v
0 0 0
0 0 0
u 1j
1j
v =
0 1
1 0
Q 2j =
0 0
0 0
v ( 1j )
1
0 u ( j )
0
0
0
0
( )
v 1j
1j
( )
0
0
Q 3j =
0
0 0 0
0 0 0
0 0 1
0 0 0
(5.43)
u 1j
1
j
( )
v =
v 1j
1
j
( )
u =
u
1j
v =
v
1j
136
0
0
Q1j =
0
0
0
0
5.6
= tan1
0 u + v
0 v u
0
0
0
0
0
0
Q 2j =
0
u v vu
2
( u ) ( v )
(5.44)
0 0 cos
0 0 sin
0 0
0
0 0
0
0
0
Q 3j =
0
0 0 0
0 0 0
0 0 1
0 0 0
Looking over the different forms which the derivative operator matrices, Q j , take on for different
joints and joint variables, we notice an interesting pattern. We see that the bottom row is always
zero and the upper-left (33) submatrix is always anti-symmetric (skew-symmetric); that is, each
has the form16
0 f
f
0
Q=
e d
0
0
e
d
0
0
a
b
c
(5.45)
The reason that our Q j matrices share this pattern can be thought of as a consequence of
Chasles theorem. Although each of these matrices was found for a different joint type or joint
variable, each came from the differential displacement of a moving coordinate system as the
result of the displacement of a single joint variable. Thus, by Chasles theorem, each is
equivalent to a differential displacement of some screw. The pattern shown above identifies this
screw.
To understand the geometric significance of this pattern we refer back to Section 5.4 and Eq.
(5.21a). If we consider the small displacement, u , v, w , of an arbitrary point, u , v, w ,
attached to the body following a certain joint as the joint variable undergoes a small displacement, , then we can write from Eq. (5.21a) that
r = ( ) r = [Q ] ( ) r = [Q ] r
Writing this out explicitly, we get
16.
This seems to be contradicted by Qj operators for the spheric joint, Eqs. (5.37), and the open joint, Eqs. (5.39),
which employ Euler parameters to describe rotation. However, the statement is still true under the conditions
imposed by the additional contraint for each.
137
u a
0 f
v = b + f
0
w c
e d
e u
d v
0 w
Next we divide all entries of our Q matrix by a constant, normalizing it such that
d 2 + e 2 + f 2 = 1 , and we absorb the normalizing constant into such that the above equation
becomes
u a
0 f
v = b + f
0
w c
e d
e u
d v
0 w
a
= b
c
d
%
= e
f
(5.46)
we see that the second term of the above equation for r is in the form of a vector cross product,
% r , where r is the vector of Cartesian coordinates of the chosen moving point.
Let us now find the components of the above equation in the direction of the unit vector % .
[d
u
f ] v = [ d
w
a
f ] b + [ d
c
0 f
f ] f
0
e d
e u
d v = [ d
0 w
a
f ] b
c
% t r = % t
But this equation says that the component of the small displacement dr in the direction of %
is independent of the choice of the point. This is to say that all points of the body have equal
displacements in the % direction. Remembering that we expect the pattern to have the
properties of a screw, we can now identify that the % unit vector shows the orientation of the
screw axis. We can also recognize the pitch of the screw as the rate of displacement in the axis
direction per unit rotation of the screw.17
r
= %
= [d e
a
f ] b = % t
c
(5.47)
Let us now find the location of a point p which is on the screw axis, thus uniquely locating
17.
This is the instantaneous pitch of the screw. Since we are dealing with the displacement of an arbitrary joint
type, not necessarily an helical joint, the pitch may change as the joint moves.
138
the axis. Remembering that a point on the screw axis experiences only the displacement along
the axis, we write
p
= + % p = %
Let us now take the vector cross product of % with all terms of this equation.
p %
= + % ( % p ) = % % = 0
% ( % p ) = ( % p ) % ( % % ) p
our equation for point p on the screw axis becomes
( % p ) % ( % % ) p + % = 0
This equation, of course, fits all points on the screw axis and does not have an unique
solution. Since we only seek one point to locate the axis, let us choose the particular point p on
the screw axis for which % p = 0 . This is the point p for which the vector p is perpendicular
to the screw axis. The solution for this point p is
p=
%
( % % )
(5.48a)
0 f
1
f
p= 2 2
0
2
d +e + f
e d
e a
d b
0 c
(5.48b)
Thus, overall, we have shown that the Q j differentiation operator matrices carry the full
information of the screw axis for the corresponding small displacement of one joint variable.
The screw can now be identified since Eq. (5.46) gives its direction, Eq. (5.47) gives its pitch,
and Eqs. (5.48a) and (5.48b) give a point on its axis.
We notice that the (44) matrix form of Q j is convenient for use as a differentiation operator.
However, there are only six independent parameters in the operator and these can equally well be
kept in the form of the two 3-D Cartesian vectors and % of Eq. (5.46). These vectors are
perhaps more convenient for geometric identification of the instantaneous screw axis. They are
called the Ball vectors of the screw.18
18.
Sir Robert Stawell Ball (1840-1913), Lowndeen Professor of Astronomy and Geometry, Cambridge University,
A Treatise on the Theory of Screws, 1900, Cambridge University Press, Cambridge, 544 pp., reprinted in 1998.
139
The same information can also be stored as a single six-dimensional vector, called screw
coordinates
a
b
c
=
d
e
f
(5.49)
This format may be best for computer storage, and will appear in later chapters. No matter
which format is chosen, the six parameters identify the same information, the instantaneous
screw axis and the pitch of the differential motion.
Throughout this section we have treated the Q j differentiation operator matrices as expressed
in the uvw coordinate system of a joint. However, we have already seen similar forms such as
S j j Q j S j 1 j , which are expressed in the coordinate system of body j-, immediately preceding joint
j, and
1
D j = (T0 j S j j ) Q j (T0 j S j j )
which are expressed in the absolute coordinate system. Each of these is related to Q j by a
similarity transformation. Therefore, each is of the form
TQT 1 =
0
P0 % t
1 0
0 0
t
t
t P0 % % P0
=
1
0
0
Here we see that these other forms of differentiation operator matrices also have a bottom
row of zeroes. The upper-left (33) rotation
submatrix is of the form % t and, since
t
t
% = % , we find that % t = % t . Therefore, the rotation submatrix
remains anti-symmetric after the similarity transformation. Therefore, these transformed
differentiation operator matrices are of the same characteristic form assumed in Eq. (5.45), and
any of these can be used as the basis for finding an instantaneous screw axis or a set of Ball
vectors or screw coordinates. Equations (5.46), (5.47), (5.48a), and (5.48b) apply equally to all
of these differentiation operators, no matter in which coordinate system they happen to be
expressed. The resulting screw axis is found in coordinates corresponding to the form which is
used.
The Ball vectors or screw coordinates discussed in this section uniquely identify the axis and
pitch of a screw along and about which a moving body is displaced to a new position with
respect to a reference body. Thus they identify a unique screw. It will be noticed, however, that
they do not, in general, identify the magnitude of the displacement taken on this screw. The six
parameters a, b, c, d , e, f form a homogeneous set in the sense that the set can be multiplied by
140
any non-zero constant and will still identify the same screw. Thus they identify the screw, not its
displacement. Also, since the set can be scaled by an arbitrary constant, only five are
independent.
Sometimes we may wish to specify the magnitude of the displacement of the screw, a sixth
independent value; we may choose to scale the screw coordinates to express this magnitude.
They will then identify the same screw and also the same displacement experienced, all within
the same vector, which is no longer homogeneous. Such a helical displacement of a given
magnitude is called a twist, and a twist can be identified by properly scaled Ball vectors or screw
coordinates. The differential twist associated with our operator matrix Q j , for example, had
scaled Ball vectors of % d and d .
Example 5.3
As an illustrative example, let us find the Ball vectors and the screw coordinates and the screw
parameters for the differential displacement of the first joint variable of a parallel-axis gear joint
as defined by Eq. (5.40). Assuming proper mounting such that j2 = 3j = 0 we have
0 1
R j + Rj ) 1 0
(
1
Qj =
Rj
0 0
0 0
R j sin 1j
0 R j cos 1j
0
0
0
0
0
From Eqs. (5.46) and (5.49) we can immediately write the Ball vectors and the screw
coordinates for this joint variable:
R j sin 1j
j = R j cos 1j
0
%
= 0
1
R j sin 1j
1
R j cos j
Equation (5.47) gives = 0 for the pitch, which makes sense since 1j allows only simple
rotation. Equation (5.48b) gives one point on the screw axis
R j cos 1j
p = R j sin 1j
141
and we recognize that the locus of this point as 1j chages is the pitch circle, specified in
u j , v j , w j coordinates, while the orientation of the screw axis is parallel to wj as specified by % j .
5.7
Another branch of algebraic geometry which is closely related to homogeneous coordinates and
to screw coordinates is that of line coordinates, first elucidated by Plcker. 19
We recall from Section 3.2 that the homogeneous coordinates of a point require four
coordinates,
x
y
R=
z
w
We also recall that a plane can be described by a homogeneous vector of four coefficients,
A
B
P=
C
D
These two representations, working together, can be used to express the equation of the
plane.
P t R = Ax + By + Cz + Dw = 0
and both P and R are homogeneous in the sense that either or both can be scaled by arbitrary
(non-zero) multipliers without changing their geometric meaning or the validity of the plane
equation.
A homogeneous representation of a straight line is provided by a set of Plcker vectors or by
a 6-D vector of line coordinates. The Plcker vectors of a line are defined as two vectors with
Cartesian coordinates
d
% = e
f
a
= p % = b
c
(5.50)
where % is a vector directed along the line, and p is the Cartesian position vector of a point on
the line. The vector % is often normalized to become a unit vector but need not be so. The
19.
Julius Plcker (1801-1868), J., Neue Geometrie des Raumes gegrndet auf die Betrachtung der Geraden Linie
als Raumelement, Leipzig (B.G.Tebner, 1868-69), pp. 1-374.
142
vector is the moment which the % vector makes about the origin of coordinates. Thus the
first Plcker vector, % , defines the orientation of the line while the second, , defines its
location in space and distinguishes that particular line from all other lines parallel to it.
The Plcker vectors of a line can be found from the homogeneous coordinates of two points
located on the line, or from the homogeneous coefficients of two planes which intersect in the
line, as follows:
d = x1w2 w1 x2
d = A1 D2 D1 A2
e = y1w2 w1 y2
e = B1 D2 D1 B2
f = z1w2 w1 z2
f = C1 D2 D1C2
a = y1 z2 z1 y2
a = B1C2 C1 B2
b = z1 x2 x1 z2
b = C1 A2 A1C2
c = x1 y2 y1 x2
c = A1 B2 B1 A2
(5.51)
The Plcker vectors of this section are not the same as the Ball vectors of Section 5.6 unless
the screw axis in question happens to be of zero pitch. In that special case they are identical.
When the pitch is not zero, the Plcker vectors of a screw axis are found from the entries of the
derivative operator matrix by
d
%
= e
f
a d
%
= p = b e
c f
(5.52)
In either case the pitch computed from Eq. (5.47) gives = 0 and the Plcker vectors % and
are perpendicular to each other.
= % t = 0
(5.53)
Equation (5.48a) can be used to compute the position of a point p to locate the line.
p=
%
( % % )
0 f
1
f
p=
0
2
2
2
d +e + f
e d
e a d
d b e
0 c f
(5.54)
Except for this adjustment for pitch, the Ball vectors of a screw and the Plcker vectors of a
line are identical. The Ball vectors were also listed in a single vector called the screw
coordinates in Eq. (5.49). The same can be done for the Plcker vectors of a line, and these are
called line coordinates.
143
a
b
c
=
d
e
f
(5.55)
To review, the six component vector of a twist has six independent parameters, and defines
the size of the displacement as well as the properties of the screw. The Ball vectors and screw
coordinates have only five independent parameters; they are homogeneous and can be scaled by
any non-zero multiplier. They do not define the size of the displacement, only the screw. The
Plcker vectors and line coordinates have only four independent parameters; they are
homogeneous and can be scaled arbitrarily, and they must fit Eq. (5.53). They do not define the
size of the displacement or the parameters of the screw; they only define the line along which the
screw axis is located.
The primary assets of Plcker vectors and line coordinates in the context of this text are:
that they were developed before Ball vectors and screw coordinates and, therefore, are of
historic interest;
that they may be known to a wide set of readers who may be comfortable with them;
that the mental picture of as the moment of % about the origin of coordinates may add an
144
Problems
5-1
Continue from the results of Problems 3.1 and 4.1 to find the following:
a) Form the Qj derivative operator matrix for each joint.
b) Form the Dj derivative operator matrix for each joint as a function of .
5-2
Prove Eq. (5.21b) for the derivative of the inverse transformation matrix shown in
Section 5.4.
145
Introduction
In Chapter 4 we studied how the position of some mechanical systems can be found analytically
using hand calculations to find closed form solutions. Typically this requires forming the
necessary transformation matrices, and ensuring that all dependent position variables are made
consistent with the constraints expressed by the loop closure equations. We solved several
example problems, in both 2-D and 3-D, to illustrate the process, but we also found that the
calculations quickly became burdensome, even for problems with only a few unknown joint
variables. In principle the methods look powerful, but in practice they quickly reach a limit on
practicality.
Does this mean that the methods are not adequate? Not exactly. Rather it means that we are
in need of a better means of calculating. Perhaps these tedious computations should be automated for solution by numerical methods using a computer.
Let us reflect on the nature of the problem of position analysis of a mechanical system. In
general, the number of bodies ( l ) is usually reasonably small, typically limited by cost and the
desire for simplicity and reliability to tens of moving parts or less. The number of joints (n) is of
the same order. The number of closed loops () is usually much smaller. The number of joint
variables ( j ) is of the same order as the number of joints. However, the number of independent
variables ( k ) is almost always very low. After all, the whole point of our mechanical system is
to control the movements of the parts to only those which are required for proper function of the
system; this is very often only one, and is rarely more than ten.
Let us say, for example, that a complex industrial machine is made as a single assembly and
that it has a mobility of f = 8 ; let us also say that it contains only revolute and prismatic joints
and has = 10 closed kinematic loops. With these given, the topological formulae of Chapter
2 show that the number of bodies is l = 59 and the number of joints is n = 68 . These are fair
estimates for a reasonably complex mechanical system.
Now let us consider the nature of the constraint equations for such a system. They are
products of transformation matrices containing trigonometric functions of ten or so joint variables each. Thus each constraint equation is a polynomial of approximately tenth degree in sines
and cosines of unknown joint angles, and there are 6 = 60 such equations. However, once we
use trigonometric identities to reduce all sines and cosines to tangents of half-angles, we have 60
equations of degree 20 in our 60 unknown joint half-angles. Eliminating one unknown from this
set of equations doubles the degree of those remaining; thus we have only 59 equations in 59
unknowns, but of degree 40; then 58 equations of degree 80; 57 equations of degree 160; etc.
Are we getting a message here?
When (and if) we finally get our long sought single equation in one unknown, its degree is
horrendous; what will we do with it to solve for that one unknown? Since it is a polynomial of
extremely high degree, we will take it to the computer to find its many, many roots; wont we?
Then we will take each of these roots and return to the previous equation to solve for the second
last unknown; again doing root finding of a very high degree polynomial, collecting even more
combinations of roots found; etc. ... Sure we will! What else can we do? After all, there is
proof that a general polynomial of degree higher than four can not be solved in closed form.1
Fortunately, there is a better way! In this chapter we start by agreeing that the nature of the
problem requires a numeric solution, and formulate our method to enhance this approach.
6.2
Initial Configuration
Once the problem has been modeled on a computer, a structural analysis is performed in
accordance with Chapter 2 to identify the complete topology, including numbers of bodies,
joints, joint types and joint variables, number of assemblies, and identifying any kinematic loops
and all kinematic paths. A data structure is formulated in computer memory which reflects the
topology of the system modeled.
Numeric data is entered next to specify the exact shapes, sizes, and initial locations and
orientations of all components. Of course, this data entry stage requires many modeling
decisions of the user. Not the least of these is the choice of an initial configuration, a single
modeling position of the system which is used for the specification of numeric data. If a layout
drawing of the design exists, the position shown in that drawing serves very nicely. If not, it
may be worthwhile to create one, either on paper or in a CAD system. An actual hardware
system or a 3-D physical scale model will also serve here as long as we choose a specific
position for each generalized coordinate. The important thing is to insure that there is a source
of accurate geometric data, all captured at one consistent configuration of the system and known
to fit together into a real machine, at least at the initial configuration.
Choices on locations of coordinate systems are also made at this stage. Not only must there
be an agreed upon global coordinate system x0 y0 z0 , but also a body coordinate system ( xi yi zi )
must be chosen for each machine part, two joint coordinate systems, ( u j v j w j ) and ( uj vj wj ), must
be identified for each joint, and other auxiliary coordinate systems may also be specified.
Next, the locations and orientations of all coordinate systems are entered and transformation
matrices are formulated numerically, perhaps by the methods of Section 3.8. All required shape
matrices S j , j and S j + , j are found and stored for later usage. Simultaneously, initial joint
matrices j are formulated numerically for each joint at this initial position. From these the
methods of Section 3.10 are used to extract initial numeric position values of all joint variables
j , each depending on its own joint type. Some of these are, of course, the initial position
values of the generalized coordinates k . As all of this numeric data is being collected,
1.
See, for example, G. A. Korn and T. M. Korn, Mathematical Handbook for Scientists and Engineers, McGrawHill Book Company, Inc., New York, 1961, esp. Section 1.6.3.
pertinent tests are made to insure that the numeric values of each joint matrix j are consistent
with the assumptions made in Section 3.10 with respect to the placement and orientation of joint
coordinate systems for the corresponding joint types. When discrepancies are discovered
between modeling assumptions and the numeric values received, the computer software can
warn the user with an appropriate message and allow the interactive correction of the model until
all data are consistent with assumptions.
Finally, when the data entry phase of analysis is completed, the computer memory contains a
validated model of the mechanical system at the initial modeling position. This computer model
may or may not match the real mechanical system intended by the user. It may or may not be
movable or, if it is, the motion may or may not represent the true motion of the real machine.
However, in any case, it will be a model of a possible mechanical system.
6.3
Once all data are entered and consistency with assumptions is verified, accurate numeric values
are known for all joint variables j at the initial position. Suppose, however, that we wish to
move the model to another nearby position. Suppose that the new desired position is specified
by the user by changing some or all of the independent joint variables k to new position values
which we assume are "close" to their initial position values. The problem which we wish to
solve now is to find a way to update the other joint variable values to be consistent with the new
generalized coordinates, thus moving the system model to this new position.
Since we assume that the new position is close to the previously known position, we now
assume that the new unknown values of the dependent joint variables are also close to their
known preceding values. That is, we assume that the new unknown values are of the form3
j = j + j
j = 1, 2,K , n
(6.1)
The original research for this and subsequent sections, before the many extensions shown here, was first
published as: J. J. Uicker, Jr., J. Denavit, and R. S. Hartenberg, "An Iterative Method for the Displacement
Analysis of Spatial Mechanisms," Journal of Applied Mechanics, ASME Transactions, June 1964, pp.309-314.
3.
For joints with more than one variable there will be as many jk and jk as there are variables in each joint.
As we calculate new products of transformation matrices along the paths of the model and
products of transformation matrices around the kinematic loops, we find that the T00 products
around the loops are no longer equal to the identity transformation since some joint variables
have been changed to new position values and others have not. Because of this, the loop closure
equations are not satisfied. Instead of the identity transformation, the products T00 are in error
by small amounts which we represent by the matrix E.
T00 = I + E
Of course, if we knew the small changes j of Eq. (6.1), all calculations could be redone
and the errors E would not exist. Our problem, therefore, is to find the j corrections necessary to eliminate the errors E in the loop closure constraint equations.
Let us expand the loop closure equation in Taylor series in the neighborhood close to the
known values of j . To first order this gives
T00
j + L = I
j =1 j
n
T00 +
where there is one term in this summation for each joint variable j which appears in the loop
being considered.
If we take advantage of the D j differentiation operator matrices, then by Eq. (5.31) our
Taylor series becomes
n
T00 + L ( i, j ) D jT00 j + L = I
j =1
where L ( i, j ) symbolizes the entry of row i, column j of the loop matrix and is used to provide
sign information consistent with the existence and orientation of each joint j in each loop i.
Rearranging this equation slightly, it becomes
n
L ( i, j ) D
j =1
T001 I = Ei
i = 1, 2,K , NL
(6.2)
D j (1, 4 )
D j ( 2, 4 )
D j ( 3, 4 )
D j =
D j ( 3, 2 )
D (1,3)
j
D j ( 2,1)
Ei (1, 4 )
Ei ( 2, 4 )
E ( 3, 4 )
E i = i
Ei ( 3, 2 )
E (1,3)
i
Ei ( 2,1)
j = 1, 2,K , n
(6.3)
i = 1, 2,K , NL
L ( i, j ) D
j
j =1
E i
i = 1, 2,K , NL
(6.4)
where 6-D screw coordinate vectors have replaced the (4 x 4) matrices. There is an equation of
this form for each of the loops of the system, and they relate the n error correction unknowns,
j .
In addition to these equations, we must include an additional equation for each joint which
employs Euler parameters for its joint variables. From a first-order Taylor series expansion of
Eq. (3.48) we will have an additional constraint equation of the form
( ) ( ) ( ) ( )
2 1j 1j + 2 j2 j2 + 2 3j 3j + 2 j4 j4 = 1 1j
2
j
3
j
4
j
(6.5)
for each spheric joint and, from a similar expansion of Eq. (3.55), we will have an additional
constraint equation of the form
( ) ( ) ( ) ( )
2 j4 j4 + 2 5j 5j + 2 j6 j6 + 2 j7 j7 = 1 j4
5
j
6
j
7
j
(6.6)
D E
0 0 -1
-1 -1 0
1 -1 -1 0 0 0
1 0
1 0
0
0
Developing the explicit form of Eq. (6.4) for this example we find that it is
D A
D A
DA
D B
D
B
D B
0
D
0
D
0
D
0
D
A
B
D G C E1
0 D = E 2
0 E E 3
F
G
The procedure shown by this example can be generalized for any rigid body mechanical
system. It always results in a set of linear equations of the form
J = E
(6.7)
For a system with loops and n joint variables, the coefficient matrix J of this set of
equations has ( 6NL + NC ) rows and n columns, where is the number of constraint equations
for the Euler parameters of spheric and open joints in the system. The coefficient matrix of Eq.
(6.7) is called the Jacobian.4 It is always of the same form as the loop matrix L found in Chapter
2 for the same problem, except that each non-zero entry of L which had a value of 1 is now
replaced by a screw coordinate vector of D j in the column of J corresponding to the joint
variable for joint j. The zero entries of L are replaced by columns of six zeroes. When a joint j
has more than one joint variable, then the corresponding screw vectors D kj for each joint
variable are entered into successive columns of J . The coefficients of the constraint equations
of the form of Eqs. (6.5) and (6.6) relating the Euler parameters of each spheric and open joint
are entered as additional rows of J using these same columns. The column vector E is
filled with the screw coordinate vectors of Eq. (6.3) showing the errors in closure for each of the
loops, with additional entries from the right-hand sides of Eqs. (6.5) and (6.6) for the
additional constraint equations. The unknowns of this set of equations (6.7) are the error
corrections j (or jk ) for the joint variables, taken in the same order as the columns of J .
Of course, we started this section by assuming that one or more of the joint variables had
intentionally been changed to a nearby position; that or those joint variable(s) already have new
values and do not need "corrections". We may as well delete these columns from J , and the
corresponding "corrections" from the column of unknowns. Although we will later show a better
procedure, for now let us consider these eliminated.
If the J matrix is square and non-singular then Eq. (6.7) can be solved directly by matrix
inversion
= J 1 E
4.
The determinant of this matrix was studied in depth by Carl Gustav Jacob Jacobi (1804-1851), and was
presented in "De Determinantibus Functionalibus," Crelle, vol. 22, 1841.
More will be said later about problems in which J is either singular or is not square.
Once the j error corrections are found, they are added to the previous values of the joint
variables according to Eq. (6.1) giving improved values for the dependent joint variables.
However, since our equations were linearized by dropping higher-order terms of the Taylor
series, these may still not be of sufficient accuracy; if not, then the process is repeated iteratively
until the accuracy is acceptable.
To repeat the process means accepting the improved joint variables to replace the previous
values of j , recomputing the joint matrices j using these improved values, finding new
transformation matrices and products T0i and derivative operator matrices D j , new coefficient
and error matrices J and E, and then new corrections j .
With each iteration of this process, the values of the joint variables improve to better fit the
loop closure constraints and the T00 matrix products more closely approximate the identity
matrix. Therefore the Ei matrix entries, showing errors in loop closure, become smaller and the
corresponding columns of constants also become smaller, leading to smaller error corrections
j . Ultimately, when all Ei matrix entries and j corrections become smaller than an agreed
upon tolerance value, the process is declared finished. Much more will be said on this iteration
process and its convergence in the sections to follow. However, after convergence, the new
updated values of all joint variables and all transformation matrices and derivative operator
matrices are in conformance with the loop closure constraints at the new position of the system.
6.4
Once the iteration process of the previous section converges to the specified tolerance level, are
we assured that this numeric solution represents a valid position for the real mechanical system?
Unfortunately, there are conditions when this may not be the case. Let us look more closely at
what our numerical procedure has and has not assured.
We have continued to monitor and are assured that the column of constants E has become
zero (within our agreed tolerance). Comparing this with Eqs. (6.4) and (6.3) and remembering
from Section 5.5 that the bottom row of each D j matrix is always zero assures us that all offdiagonal terms of each Ei have become zero in Eq. (6.2). Thus, remembering the orthogonality
conditions of all transformation matrices, we have assured for each loop that
1 0 0
0 1 0
T00 =
0 0 1
0 0 0
0
0
0
But our iteration equation does nothing to insure that the three diagonal elements of the rotation
submatrices have converged to positive unit values to match the identity matrix.
Chapter 6: Position Analysis (Numeric)
We do know, in addition, from the properties of our transformations that the determinant of
each T00 matrix is always positive unity. However, it is still conceivable that our iteration
process could converge with a T00 matrix having two negative unit values on its main diagonal.
Geometrically, this would mean a rotation error of 180 in a loop about one of the major global
axes without correction by our iteration process. Worse yet, experience has proven that this can
and has sometimes happened in practice, even for very simple systems moving through small
displacements.
Fortunately, once this problem was discovered, a very simple correction was found. The
definition of Ei in Eq. (6.3) is, therefore, modified as follows
Ei (1, 4 )
Ei ( 2, 4 )
E
3,
4
(
)
i
E i =
Ei ( 3, 2 ) + Ei ( 3,3) + Ei ( 2, 2 )
E (1,3) + E (1,1) + E ( 3,3)
i
i
i
2,1
+
2,
2
+
E
E
E
(
)
(
)
i
i (1,1)
i
i = 1, 2,K , NL
(6.8)
This modification is equivalent to adding two of the diagonal terms to each of the offdiagonal rotation terms of Eq. (6.2) before the screw coordinates are extracted. However, since
all D j matrices had zeroes on their diagonals, this causes no changes in the vectors or the J
matrix. This change in definition of Ei has no effect on the convergence or accuracy of the
iteration process when converging toward a valid solution since the changes are in the quadratic
and higher terms of the Taylor series.5 However, if the process comes even remotely close to
one of the false solutions, a very large correction is made which avoids convergence toward such
a solution. This heuristic modification has been tested in software, has totally eliminated the
problem, and has shown no further problems in many years of usage.
6.5
In Section 6.3, Eq. (6.7) was solved by inversion of the J matrix of coefficients on the
assumption that it was square and non-singular. This strategy was used to simplify the
explanation and avoid confusion for the reader; however, it is not the full story.
Let us now consider, for example, the simulation of a simple four-bar linkage when the input
crank angle has been set to a new position. We discover that there are only three joint variables
for which corrections j need to be found. Yet there are six equations. In that case, as for all
planar linkages, the out of plane components of the screw coordinate vectors are zero, thus
leaving only three nontrivial equations in the three unknowns. Similarly, if we consider a
5.
The diagonal terms of a helical transformation matrix are unity and cos where, hopefully, is a small angle.
However, the Taylor series of cos for small angles has no first order term.
spherical linkage, such as the universal shaft coupling of Example 4.1, only the three rotational
components of the screw coordinates carry values and all translation equations are null. Therefore, only three unknowns can be found per loop for planar or spherical problems.
From these and many other situations with special geometry we can see that there are not
always six useful equations per loop. Often, some of the equations become simple identities and
cannot yield solutions for unknowns. The J matrix may carry more rows than columns, yet still
be meaningful. Still it is not clear at the time the software is being developed which equations
carry meaningful information for a given problem, and which may be null or trivial identities.
Another circumstance which can lead to difficulty is when special geometric situations, such
as parallelism or intersection of multiple joint axes, lead to some screw coordinates which are
linear combinations of others. Again, this gives a J matrix which has no inverse, either because
it is not square or because some of its rows are linear combinations of others. The J matrix of
Eq. (6.7) results from an algorithm which assures that it always has ( 6NL + NC ) equations, but
there is no guarantee that these equations are independent and non-trivial. Similarly, there is no
guarantee that there are ( 6NL + NC ) joint variables which need corrections.
We can say with certainty that the ( 6NL + NC ) equations contained in J represent all of the
constraints which must be enforced between the unknown joint variables. There are no other
kinematic constraints. No more than ( 6NL + NC ) joint variables can be found from the
constraint equations. However, this does not assure that ( 6NL + NC ) joint variable corrections
can always be found since some equations may be either trivial or redundant.
It is also possible that a mechanical problem can be posed wherein the J matrix has more
than ( 6NL + NC ) unknown joint variables. This happens, for example, in problems of higher
mobility if less than the full set of generalized coordinates are identified and given values by the
user. In such a case, the additional joint variables of the undiscovered degrees of freedom cannot
be found from the loop closure constraints. The positions of those joint variables must be found
some other way. They cannot be found from Eqs. (6.7).
In the general case, therefore, the J matrix may not be square and also it may be singular in
the sense that it may have rank less than ( 6NL + NC ) . How then are we to solve Eq. (6.7) for its
unknown joint variable corrections, j , if standard matrix inversion software cannot be used?
Historically, the earliest solution to this dilemma was put forward for the case where J has
more rows than columns; that is, where there are more equations than unknowns.6 The argument
was made that, since the process is iterative, the best root-mean-squared (rms) approximation to
all ( 6NL + NC ) equations could be accepted, and would then be corrected again, if needed, in
later iterations. Therefore, Eq. (6.7) was approximated by
( J J ) = J
tt
6.
tt
Uicker, op.cit.
and, since the coefficient matrix was now square, the solution
= ( J tt J
J tt E
was accepted. In general, this approach did give acceptable solutions for many cases. However,
later study showed that it sometimes converged more slowly to a solution, thus requiring more
iterations. Much worse, however, was the robustness of this approach when the system moved
into or near positions of poor mechanical advantage. Near such a position, the determinant of J
(if it is square) becomes small and the determinant of ( J tt J ) becomes quadratically even
smaller. Thus the accuracy of joint variable corrections become poor near such a position and
convergence to a solution was sometimes in doubt.
Fortunately, a much more robust algorithm has been found for the solution of Eq. (6.7).7 It is
the Gauss-Jordan method of elimination8 with a special variation of complete pivoting.9 This
algorithm starts by assuming that the joint variables are arranged such that those which represent
known generalized coordinates i carry the largest identification numbers and, therefore, are
represented in the rightmost columns of the J matrix. Next the J matrix is filled with screw
coordinate vectors as explained in Section 6.3 and then augmented on the right by a
( 6NL + NC ) ( 6NL + NC ) identity matrix (where we wish to develop the "inverse" of J ).
Subdividing the columns of J into those for the unknown joint variables and those associated
with the generalized coordinates, we have
[J 1
J3
I]
Now we proceed with Gauss-Jordan elimination algorithm except for one small but
important variation. We seek the largest possible pivot element, but searching only the J 1
submatrix. That is, we search only in those columns which are not known to represent
generalized coordinates. Finding the pivot element, we switch this row to the top and switch this
column to the left. Then we divide all elements of the pivot row by that element, thus making
the pivot element unity. Then, by adding or subtracting correct multiples of that modified pivot
row to each of the other rows in succession, we zero all other elements in the pivot column, thus
eliminating that variable from all equations except the first.
We then identify the largest remaining pivot element, again searching only the remaining
portion of the modified J 1 submatrix. Switching that row and that column to second, we also
place it on the main diagonal. We then normalize that row and eliminate that variable from all
other equations by subtracting proper multiples from each of the others. We continue in this
7.
P. N. Sheth, "Improved Iterative Techniques for the (4x4) Matrix Method of Kinematic Analysis," MS Thesis,
University of Wisconsin - Madison, Madison, 1968.
8.
See, for example, K. S. Kaiser, Numerical Analysis, McGraw-Hill Book Company, Inc., 1957, Section 10.4.
9.
Other methods could be similarly adapted if the modified pivoting is adapted. Choleskys method or Crouts
method of lower-upper matrix factorization would be good alternative choices.
10
1
J
J 22 J 23 0 I 0 J 22 J 21J 111J 12 J 23 J 21J 111J 13 J 21J 111 I
J 21J 11 I 21
(6.9)
Here the different submatrices of the original augmented J matrix are shown separated by
horizontal and vertical lines. A second row of symbols has been added to distinguish rows
above and below the current pivot element; also, the original J 1 columns have been separated
into columns to the left ( J i1 ) and to the right ( J i 2 ) of the current pivot element.
Thus, as we continue to the next elimination step, we search out a new pivot element in the
submatrix containing J 22 J 21J 111J 12 , then switch this pivot element to the top left of this
submatrix by changing rows and columns. When we eliminate multiples of this row from all
other rows, we again reach the state shown, except that the identity matrix at the top left has
increased size by one, and the area to be searched for the next pivot has decreased by one row
and column.
As we continue, we finally reach a state where, either (a) we run out of rows of the original
J matrix, or (b) the largest pivot element found in the ever-shrinking J 22 J 21J 111J 12 submatrix is either zero or essentially zero (less than a given tolerance).10 When this state is reached,
the J matrix stored in computer memory has, within this tolerance, reached the form
I J 111J 12
0
0
J 111J 13
0
J 111
0
J 21J 111 I
Notice that the entries in the rows below J 111J 13 are also shown as zeroes. These remainders
should be checked by the software. If they are not small, if non-negligible size elements still
remain in this area, it is a signal that the user has set as an independent input the position of a
joint variable which could (and should) be determined from others; such a situation should be
treated as an error in the input data.
Once the Gauss-Jordan elimination process finishes, the form of Eq. (6.7)
J = E
10.
The tolerance used here may be set to the round-off tolerance of the computer system used, but need not be
smaller than the strictest dimensional tolerance of the manufactured part dimensions. The IMP software uses a
default tolerance of 10-10.
11
0
0
1
J 111J 13 J 111
0 E1
2 =
0
J 21J 111 I E 2
(6.10)
where E1 and E 2 refer to portions of the original E vector, but shown subdivided to fit the
subdivision of the preceding matrix. 1 refers to the corrections just found. 3 are
"corrections" whose labels refer to the generalized coordinates i and, since these are already
set to "correct" positions, 3 is now set to zero. 2 is a set of "corrections" recommended for
variables not yet found, but which cannot be solved from the loop closure constraints. Lacking
further information, these are also set to zero. With this, the set of equations becomes
1
1 J 11 E1
= 0
2
3 0
(6.11)
This condition may not be satisfied exactly, particularly in early iterations; however, when
the iteration process converges, both E1 and E 2 approach zero, and the condition is satisfied
automatically.
In applying Eq. (6.11) we must remember that multiple row and column changes take place
during the pivoting steps of the Gauss-Jordan algorithm. While this is happening the original
row and column identification labels must be tracked so that, when Eq. (6.11) is applied, the
modified ordering of the original J column numbers can be used to tell which joint variables
are to be corrected by which elements of 1 .
The astute reader might legitimately ask why the J matrix was augmented with a full
identity matrix, rather than just augmenting J with the single column E matrix. Similarly, why
were the columns of J 3 kept, if they are multiplied by 3 = 0 at the end? The answers to these
questions will become clear in the next and later chapters where we will see that the information
found in these columns at the end of the process is extremely useful and meaningful, and comes
as a "free" by- product of the iteration process.
6.6
Probably the most valuable by-product of the iterative solution process described in Section 6.5
is that it automatically discovers the mobility of our mechanical system and selects an
Chapter 6: Position Analysis (Numeric)
12
(6.12)
Also, the generalized coordinates for the system come in two groups. Some of these, which
we call specified generalized coordinates (SGC), are given specified positions by the user. We
give the symbol to the number of SGC joint variables. Others, called free generalized
coordinates (FGC), numbering joint variables, are discovered by the system during the
above iteration process.
Note also that the number of free generalized coordinates, and the choice of joint
variables representing them, are discovered anew each time our system reaches a new position.
There is no assurance that either the number or the choice of variables for them will be the
same from one position to another. As a system moves through a "dead-center" or other special
Chapter 6: Position Analysis (Numeric)
13
geometry position, for example, it is very possible that the mobility may change (since a screw
axis may become linearly dependent on others), and there may result an additional
(instantaneous) degree of freedom (an FGC) at such a position which did not exist at the
previous position and which may not exist at the next. We must be watchful for this possibility
in later phases of the analysis where it can complicate our techniques. However, this is the
physical nature of such a system; such complications can not be avoided.
6.7
So far in this text no mention has been made of units for the various physical quantities. This is
fitting since the laws of science must hold true in spite of the choice of units used as long as the
units chosen form a consistent set. Thus there has been no mention of whether distance units are
to be measured in inches or millimeters or miles or even light years; it should not matter as long
as we are consistent for all distance measurements.
Yet experience shows that our choice of distance unit can have a major impact on the
convergence rate and numerical accuracy of the iterative solution to the loop closure equations.
Perhaps this is most easily understood by considering the tolerance used in testing for
convergence. Suppose, as an example, that an automotive suspension system is being simulated
and that, in view of manufacturing tolerances, we hope to achieve solutions accurate to 0.05
mm. Length and distance data are entered in millimeters and range from quite small to perhaps
5000 mm. Thus we already see five orders of magnitude difference between what we consider
"large" and "small" distances for such a problem.
However, far more insidious, suppose that the same suspension problem contains a rotating
arm of length 500 mm. To what accuracy must we calculate the arms orientation to insure our
required distance accuracy of 0.05 mm? This implies an accuracy of approximately 0.0001
radians for calculation of angular quantities;11 if the arm were longer, the angular accuracy
requirement would be even more strict. Recalling that our iterative solution of the loop closure
equations is used to solve for a combination of both distance and angular unknowns in , what
accuracy should be chosen in testing for convergence?
We see that there can easily be about five orders of magnitude difference between the
magnitude of distance and angular parameters even in a very reasonable problem. Yet a typical
digital computer with 32-bit accuracy in single precision calculations can only carry accuracy to
about six significant figures. Does this mean that we must, or even that we should, use double
precision calculations? No! The real problem here is the difference in magnitude of distance
and angular numeric values and the fact that they mix together in the position equations. This is
a problem of scaling, and should be treated as such.12
11.
Remember that angular quantities are always treated in radians in all higher level programming languages; the
programmer has no choice.
12.
It is the opinion of these authors that most double precision software is not required, but is the result of lack of
care by the analyst in the problem formulation. Usually, in simulating problems of the real world, numerical illconditioning comes from poor problem formulation, not from the laws of nature.
14
If, when all data are first entered, we seek out the minimum and maximum values of all
position coordinates in the problem, we can discover the limiting dimensions of the rectangular
volume in which the problem is defined. Suppose that we take the diagonal distance across this
volume, and define this distance to be one internal length unit. Then, using this distance as a
scale factor, all distance units for other data are scaled to this distance as an internal unit of
length. This insures that all distance values in the computer are fractional, as are typical angular
values which are always in radians. All numeric values are now of the same general magnitude.
All calculations are now carried out to precision of about six significant figures of meaningful
accuracy with respect to each other. When results are printed the internal distance units are
converted back to the users preferred units by the inverse of the same scale factor.
With this scaling procedure in place, experience shows that position solutions can be iterated
to an accuracy tolerance of about 0.00001 internal units with only a few iterations for a typical
problem. For our car suspension example this is equivalent to accuracy of approximately
0.00057 for angular values and 0.05 mm for distances. With this scaling procedure, the
accuracy is suited to the problem at hand without the penalties on speed and memory caused by
double precision calculations.13
6.8
Quality Index
In Section 6.6 we discussed how the mobility of a particular problem may change if it
reaches a position where some of its screw coordinates become linearly dependent on others.
We noted that a new FGC may appear as we pass through such a position, and then disappear
again once the dependency no longer exists. Such phenomena do happen in real mechanical
equipment design. Such a position might be called a "dead-center" position in some
applications. In others, the problem might be said to have a poor "pressure angle". In others, we
may have reached the "end of stroke", and cannot move the input any further. In yet others, we
may say that the system has reached a "toggle" position. In many different applications we may
hear that a machine has either good or poor mechanical advantage. We are not yet in a position
to give a precise definition to the term mechanical advantage. This will come with our study of
force analysis. Even now, however, we can define a general measure of how well a system is
likely to serve its intended purpose.
Reviewing the Gauss-Jordan elimination method of Section 6.5 we see that, as each pivot
element is identified, these can be multiplied together and, at the end, this product gives the
determinant of the J 11 portion of the J matrix, the submatrix that was actually inverted. We
define the absolute value of this determinant as , which we call the quality index of the
mechanical system being simulated.
Q =| det ( J 111 ) |
13.
(6.13)
J. Angeles, "Is There a Characteristic Length of a Rigid-Body Displacement?", Mechanism and Machine
Theory, vol. 41, no. 8, August, 2006, pp. 884-896. This paper has an extensive review of many authors'
attempts to find a "characteristic length", and then proves that such a length is not possible for the general case
since it must approach zero. A problem dependent engineering definition must be used instead.
15
As the name implies, this value is a general indicator of how well the system is suited to
performing its function. Its definition allows the quality index to be found for any kinematic
system, and it describes a qualitative measure of performance similar to many of the application
specific terms named above, (dead-center, pressure angle, etc.).
As a system moves from one position to another, the quality index changes. When its value
is high, that is good; when it becomes small, that is an indication that the system is approaching a
special geometry (singularity) position where the mobility ( and f) may increase. By itself,
the value of the quality index means nothing. However, if this value is monitored as the
system moves, it is a very good indicator of increasing or decreasing functionality of the system
for the task simulated.
We will see in coming chapters that calculation of any derivatives for our mechanical system
is done by inverting the same J matrix. When its determinant becomes small, this implies that
all derivative equations become more nearly ill-conditioned. When the quality index becomes
very small, all derivatives of the system become doubtful together. Thus, all aspects of the
systems performance, (velocity ratios, force transmission, influnce of friction, positioning
accuracy, effects of manufacturing tolerances, etc.) deteriorate. When one of these degenerates,
they all decay together; this is the meaning of a dramatically decreasing value of the quality
index.
6.9
The iteration procedure described in this chapter was first proposed in 1963 and has been
discussed in depth by many for a wide variety of applications.14 The originator, this author, has
been party to many discussions and inquiries; this author has also supported the use of this
algorithm in commercial software since 1970 and has shared the experiences of literally
hundreds of real-world applications. Still there is little agreement on the merits and
disadvantages of the approach. In fact, there is so much dis-information based on opinions of
those with no first-hand experience, that this forms one primary motivation for this text. The
primary concerns of critics are on issues of computational speed, rate of convergence, robustness
of the algorithm, and on the size of the largest displacement for which it will converge.
The first of these questions, that of computational speed and rate of convergence, is always
raised by a critic who assumes that any "iterative" technique must take "a large number" of
iterations to converge to an acceptable precision and will therefore be slow and impractical.
That criticism simply doesnt apply in this case. Numerical analysis texts show that the NewtonRaphson iteration technique (which is the technique used here15) has quadratic convergence, and
14.
Uicker, op.cit.
15.
This root finding procedure was first published by Joseph Raphson (1648-1715) in his Analysis aequationum
universalis, London, 1690. However, historians have shown that he had become aware of private notes of Sir
Isaac Newton (1643-1727) which were written in 1671 but were not published until almost fifty years later as
part of I. Newton, De methodis fluxionum et serierum in finitorum, London, 1736.
16
is often the method of choice for solution of non-linear equations in multiple variables because
of its rapid convergence.16 The original publication on the application of this method to
mechanisms reports an example set of calculations for a single-loop 3-D linkage with six
dependent joint variables. The rate of convergence, taken from that example, is shown in Table
6.1.17
Table 6.1
Convergence Rate for an Iteration Process Example
Joint\Iteration
2 (deg)
3 (in)
4 (deg)
5 (in)
6 (deg)
7 (in)
-5.150
0.0012
0.302
-0.863
-5.560
-0.0615
-0.163
-0.112
0.255
0.170
-0.236
-0.151
0.000596
0.000740
-0.000569
-0.000748
0.000537
0.000796
0.0000016
0.0000001
0.0000005
0.0000002
0.0000001
0.0000001
The convergence rate shown by this example is not a fluke; it is very typical of the authors'
forty plus years of experience, even for problems with many loops and many more unknown
variables. The first iteration corrects all variables so that errors are all of the same general
magnitude. Later iterations improve the accuracy of all variables simultaneously at a rate of two
or three orders of magnitude with each iteration. Typical problems require three or four or
sometimes (rarely) five iterations to converge to accuracy close enough for engineering
applications.
Experience shows that no problem ever iterates more than six times and still reaches a
solution. Either it converges in fewer iterations, or it fails to converge at all. If it fails to
converge, then either (a) it reaches the limit of the computers accuracy without achieving the
requested tolerance (which was probably unnecessarily small), or (b) it diverges quickly and
dramatically, giving huge correction terms that become larger rather than smaller with each
iteration.
The first problem, decreasing size corrections which do not reach the requested tolerance,
indicate that the requested tolerance limit is too strict for the accuracy of the computer. The only
choices under these conditions are to relax the requested tolerance, or to change the software to
use double-precision calculations.
The second problem, divergence of the iteration process, indicates that (a) the position
sought cannot be reached, perhaps because it is past the limit of travel which the input crank can
achieve, or that (b) the new position is not "nearby" to the position from which the iteration
16.
See, for example, M. L. James, G. M. Smith, and J. C. Wolford, Applied Numerical Methods for Digital
Computation with FORTRAN and CSMP, 2nd ed., IEP-A Dun-Donnelley Publisher, New York, 1977, pp.100102.
17.
Uicker, op.cit.
17
process was started, thus defying the assumption of our Taylor series expansion. When this is
the case an intermediate position can be chosen and two (or more) increments can be used with
success.
This, of course, raises the question of how close is "nearby". How large a change in position
can be found with success? How near to the final position do the initial estimates have to be to
assure convergence? This question is not easy to answer with a simply applied criterion.
Once a problem is modeled at some original position, it is probably unwise to try to turn an
input crank by 180 or more in a single step; however, it is surprising how often this may be
successful. It is the authors experience that it is much more likely that a solution will be found
than that the iteration process will diverge. However, when a large displacement is taken in a
single step, it is also possible that a valid solution may be found, but not necessarily the solution
that the user intended. We must remember that multiple real solutions may exist for the
nonlinear loop-closure equations. There may be other configurations in which the same machine
parts can be assembled for the requested crank angle. However, even if the process converges to
one of these alternate solutions, this does not assure that the real system can move continuously
from one solution to the other. If the iteration process were to converge to a different closure,
then it may be necessary to take the physical system apart and reassemble it to reach the later
position. This other closure may be a clearly valid solution to the loop closure equations, but not
what the user expected or intended.
Fortunately, the iteration process, as presented, does not switch from one closure to another
as long as the new position is in the neighborhood of the starting position. This still does not
answer the question, however, of "how close is nearby?" The author has no clear answer for
this. It is amazingly "far" when the system is in a "nice" position with a good-sized value for the
quality index. However, as the quality index drops, it is wise to reduce to smaller displacement
increments if simulated motion is to continue.
Probably the most comforting advice the authors can offer from experience is that, if a real
machine -- one that functions well in hardware -- is being simulated, then the increment size at
which the user wishes to see the output reported will not cause a problem. This is not very
scientific, but it is an honest report of many years of experience.
The most extensive study of convergence and robustness of this iteration process was done in
1993 by Olsen in his study of its applicability to the control of a six degree of freedom manipulator.18 His purpose was to test the validity of the following premise expressed in different ways in
different texts on robotics:
"We will split all proposed manipulator solution strategies into two broad
classes: closed-form solutions and numerical solutions. Because of their iterative
nature, numerical solutions generally are much slower than the corresponding
closed-form solution; in fact, so much so that for most uses, we are not interested
18.
W. J. Olsen, "On the Real Time Inverse Kinematics Solution for the General Six Degree of Freedom
Manipulator," MS Thesis, University of Wisconsin - Madison, Madison WI, 1994.
18
Figure 6.1
The figure shows the expected scatter that comes from experimental work. It also shows
scatter coming from the differences in the quality index (conditioning of the equations) in
different parts of the workspace. However, it shows amazing consistency in spite of very large
differences in the displacement distances requested.
Figure 6.2, also taken from Olsen, shows the same information as Figure 6.1, but with the
data curve-fit to reduce the scatter and make the graph easier to interpret. The three shaded
boundaries show limitations coming from the application itself. The vertical shaded boundary
19.
J. J. Craig, Introduction to Robotics Mechanics and Control, 2nd. ed., Addison-Wesley Publishing Company,
Inc., Cambridge MA, 1989.
19
on the right shows the full reach of the robot workspace. The robot physically cannot move further than this boundary. The horizontal shaded boundary near the bottom of the figure shows the
smallest errors discernible by the sensors on the robot. This boundary represents the positioning
accuracy limit of the robot actuators. The third (slanted) boundary shows an accuracy limit
which comes from the design of the controller on that robot and the fact that it interpolates
instructions in joint coordinates rather than in Cartesian coordinates. This boundary was
established experimentally and the shaded boundary shows the best case data; the dashed line
represents the worst case data for this type of error. Overall, these boundaries set some limits on
what accuracy can reasonably be expected or is meaningful for this application.
Figure 6.2
Overall, the conclusion strongly suggested by Figure 6.2 is that, even though the algorithm is
iterative, the application limitations are such that it seldom (if ever) makes sense to iterate!
When we consider the larger context in which the algorithm will be used, we dont usually need
(or even want) an algorithm which takes 30-inch displacement increments. In analysis
applications, we usually want results printed at much smaller intervals. In a control system, the
controller and its algorithm usually requires much smaller increments. Thus, in general, our
"iterative" algorithm will usually not need to iterate to achieve an appropriate accuracy for the
situation.
Olsen also addressed the question of computational speed, and whether this provides a real
Chapter 6: Position Analysis (Numeric)
20
limitation on the use of the numerical solution algorithm. He quotes Craig as follows:
"In many path control schemes ... it is necessary to calculate the inverse
kinematics of a manipulator at fairly high rates, for example 30 Hz or faster.
Therefore, computational efficiency is an issue. These speed requirements rule
out the use of numerical solution techniques which are iterative in nature, and for
this reason, we have not considered them here."20
Using Craigs figure of 30 Hz as a guide, Olsen timed his own (iterative) software running on
different microprocessors with different clock speeds. Using a computer based on the Intel 386
chip with a clock speed of 20 MHz, his algorithm ran at 67 Hz for a single iteration per position,
or 34 Hz if two iterations per position were used. Using the same code on a computer with an
Intel 486 chip and a clock speed of 66 MHz, these rates became 620 Hz for a single iteration per
position, and 310 Hz for two iterations per position. We note that these were all done on
computer chips of the early 1990s and all are faster than the rate cited by Craig at that time;
some are more than an order of magnitude faster.
Though Olsens experiments and conclusions are all based on a specific application, the
control of a specific manipulator through the performance of a specific task, his arguments and
his conclusions are applicable to an amazing range of problems. Critics of the iterative approach
to kinematic analysis have claimed for many years that such a method suffers from problems in
convergence and is too inefficient for effective engineering usage. Yet criticisms always come
from those who have no first-hand experience and no counter-examples are offered with data
comparable to Olsens study. Software operating on desktop microprocessor systems today
show that iteration can be a very effective method, and operates far faster than the analyst can
read or digest the results.
20.
Ibid.
21
Problems
6.1
22
Introduction
In Chapter 4 we defined position as the term which tells "where" an item is. Depending on what
the "item" is, we found it convenient to use a Cartesian coordinate system as a global reference
and homogeneous coordinates to define the position of a point, and the (44) transformation
matrix T0i to represent the position of a rigid body. The position of a mechanical system may be
described by a vector of generalized coordinates equal in number to the mobility of the
system. However, since it is sometimes possible that the bodies can be assembled in more than
one way for identical positions of the generalized coordinates, we chose to represent the position
of a system by a vector which explicitly includes all of the joint variables.
In Chapter 5 we defined displacement as the change in position of a point, rigid body, joint
variable, or system. We then showed how the concept of small displacement led naturally to the
derivative of position. We also found very powerful derivative operator matrices, Q j and D j , to
make the process of numerical differentiation both easy and precise. However, a quick review
shows that derivatives were always taken with respect to a changing joint variable value since
those are the variables on which the joint transformation matrices explicitly depend. Little was
said about the fact that, in most mechanical systems, many joint variables change simultaneously.
If we are to study motion, however, perhaps we should first identify what is meant by the
word, motion. A motion is not just any haphazard set of positions; a motion is a systematic or
orderly sequence of positions of a point, body, or system which results in nature in accordance
with the laws of physics.
From the beginning we have recognized this simultaneous change of many variables and we
carefully identified the mobility, f, of our system as its number of independent degrees of
freedom. We even chose a particular subset of the n joint variables j , the generalized
coordinates , which we agreed are to represent these independent variables. Still, we said little
about the ordering or about the relative sizes of changes in these generalized coordinates.
Ultimately, we must also ask where time enters into our problem or, for that matter, what is
the definition and meaning of time? This is a deep question which has challenged philosophers
throughout history. However, for the purposes of this text, we say that time is defined by the
symbol t and is the ultimate independent variable by which the ordering of events in nature is
enumerated. It is a continuous scalar variable which is always positive and increases as events
occur. Time is physically measured by a clock and, in mechanical system dynamics, usually has
units of seconds.
7.2
Definition of Velocity
The term velocity is defined as the time rate of change of position. Just as the positions of
different items have different sets of coordinates, so too do their velocities.
The velocity of a point, for example, is the time rate of change of the position of that point.
Since we find it convenient to use homogeneous coordinates to express the position of a point,
we define the absolute velocity of a point by taking the time derivative of Eq. (4.8)
dR x
dt
y
dR
dR
!
R=
= dt
dt z
dR
dt
(7.1)
(7.2)
which may require the time derivative of its Ball vectors or screw coordinates. More will be said
on this shortly.
The (relative) velocities of joint variables are found from the time derivative of Eq. (4.2)
!1
!
! =
= 2
dt "
!
n
(7.3)
where those of any individual joint are given by the time derivatives of the individual variables of
that joint.
!1j
2
d j !j
!
j =
=
dt "
f
!j j
j = 1, 2, , n
(7.4)
The velocity of a total system is fully defined by its vector of generalized velocities which are
the time derivatives of the vector of generalized coordinates.1 From Eq. (4.1) we find
!1
d ! 2
!
=
=
dt "
! f
(7.5)
Of course, for each of these velocity quantities we will need good operational strategies for
numerically finding the indicated derivatives.2 These are the subject of this chapter. Before
going into details, however, we should recognize that, ultimately, time is the underlying
independent variable for all. The f generalized coordinates, both the NS specified generalized
coordinates and the NF free generalized coordinates, are explicit functions of time. The SGC
motions are specified by the analyst directly, and the FGC motions will be found by the laws of
mathematics and physics; but all are explicit functions of time. Finding these becomes the
primary topic of Chapters 12, 13, and 14.
= (t )
(7.6)
Once these are known, the motions of the dependent joint variables are dictated by the
motions of the generalized coordinates.
= ( )
(7.7)
They are explicit functions of the generalized coordinates and, through these, they become
implicit functions of time. Similarly, the motions of bodies and points are explicit functions of
the generalized coordinates and only implicitly, through them, become functions of time. It is
important to understand this hierarchy as we proceed.
7.3
Owing to this hierarchy of dependency, let us first find derivatives of the dependent joint
variables with respect to the generalized coordinates, on which they depend explicitly. We call
these first kinematic derivatives, and we use a prime notation with subscripts as the symbolism.3
j ,k =
j = 1, 2, , n
k = 1, 2, , f
(7.8)
1.
It is true that ! of Eq. (7.3) also fully defines the velocity of the system, and may better fit as the system
velocity definition since we chose to represent the system position. This is not necessary, however, since
there is usually no ambiguity in velocities coming from multiple closures. We will have need for both.
2.
The methods of subsequent sections were first published in: J.Denavit, R.S.Hartenberg, R.Razi, and
J.J.Uicker,Jr., "Velocity, Acceleration, and Static-Force Analysis of Spatial Linkages," Journal of Applied
Mechanics, ASME Transactions, 1965, pp. 903-910.
3.
For a joint which has more than a single joint variable, a superscript may also be required.
How will we find these first kinematic derivatives? Well, if we differentiate the kinematic
loop equations with respect to generalized coordinate number k , we recognize that the loops
depend directly on the joint variables and we write
n
T00
T
= 00 j ,k = 0
k j =1 j
Next, using Eq. (5.31), we introduce the D j derivative operator matrices to get4
i = 1, 2, , NL
k = 1, 2, , f
L ( i, j ) D T
j ,k = 0
j 00
j =1
Next, we recognize that T00 = I and we eliminate redundancy by replacing each D j matrix by
its equivalent screw coordinates
i = 1, 2, , NL
k = 1, 2, , f
L ( i, j ) D
j
j ,k
=0
j =1
k = 1, 2, , f
(7.9)
k = 1, 2, , f
(7.10)
for each open joint in the system, a total of NC constraint equations, which come from taking
derivatives of Eqs. (3.48) and (3.55) with respect to generalized coordinate k .
Since these equations are of the same form as Eqs. (6.4), from Eq. (6.7) we can now write
that
J = 0
(7.11)
where J is the same [(6NL+NC)xn] matrix which resulted from the numeric iteration process of
Section 6.5, and is the (nxf) matrix of first kinematic derivatives j ,k defined in Eq. (7.8).
Reviewing the numerical iteration process of Section 6.5, we recall that the modified pivoting
scheme used has reordered the joint variables so that all dependent joint variables are numbered
first, followed next by the FGC variables, and finally by the SGC variables. Recognizing that
both the FGC and the SGC variables have been accepted as the generalized coordinates , we
4.
In the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for example,
then
D j j , k = D j j, k + D j j, k + D j j, k + D j j, k
1
see that they are independent of each other by definition. Therefore the matrix must be of the
form
1
1
2
n f
1
=
"
1
2
2
2
n f
"
f
2
n f
f dep
=
I
"
(7.12)
Once we see this form for we return to Eq. (7.11) and subdivide it into compatible size
submatrices.
J dep
dep
J ind = 0
I
But, remembering Eq. (6.10), we see that this is the same subdivision which resulted from the
modified Gauss-Jordan elimination process of Section 6.5. Reverting to the notation of Eq.
(6.10) we have
J 11
J
21
J 12 J 13 dep
I =0
J 22 J 23
and, after the elimination process is complete, these equations have been reduced to the form
I J 111J 12
0
0
J 111J 13 dep
0
I =0
(7.13)
Thus we see that there is absolutely no calculation left to be done. Once the numerical
iteration process of Section 6.5 has converged to a solution, the matrix of first kinematic
derivatives of Eq. (7.12) can be copied directly from the top right corner of the Gauss-Jordan row
reduced form of the J matrix, requiring only negation and augmentation by an (fxf) identity
matrix. This is a very useful and "free" by-product of our numerical iteration.
These kinematic derivatives are not velocities, even though they are sometimes referred to in
this manner. They are rates of change of other (dependent) joint variables with respect to
changes of the generalized coordinates. Time is not included in them and they typically have
units such as radians per radian. They represent totally kinematic information and are functions
of alone. They are very important, however, and will arise frequently in our coming work.
Example 7.1
To illustrate the process, let us continue the analysis of the Hooke universal joint started in
Example 4.1. From that example we have already found solutions for the positions of all joint
variables and the transformation matrices of the various bodies. From those we find the
derivative operator matrices for each of the four joints. After a bit of algebra, these are5
0
0
DA =
0
cos
DB = 1 sin2 sin2
cos sin
1 sin2 sin2
cos sin
DC =
cos
5.
0
0 1 0
1 0 h
0 0 0
0
cos
cos sin
1 sin sin
1 sin sin
cos sin
0
sin sin
0
cos
sin sin
0
0
h cos
1 sin sin
h cos sin
h sin sin
Here, entries are converted to functions of the generalized coordinates alone by use of the position solutions.
0
sin
DD =
0
sin
cos
cos
0
0
0
h sin
h cos
h
1
h cos
1 sin2 sin2
h cos sin
0
0
h sin sin
sin sin
cos sin
1 sin2 sin2
cos
1 sin2 sin2
cos
cos sin
h sin
0
A ,1
h cos
B ,1
cos = 0
C ,1
0
D ,1
sin
Recognizing that the first and third rows of coefficients are simply h multiples of the sixth
and negative fourth rows, respectively, and that, since = 1 = D , we have D ,1 = 1 . Therefore,
the first three equations can be dropped and those remaining can be rearranged into the form
0
cos sin
1 sin2 sin2
cos
1 sin2 sin2
sin sin
A ,1 cos
= 0
cos
B,1
C ,1 sin
cos sin
cos
1 sin2 sin2
A ,1
sin cos
B,1 = 1 sin2 sin2
C ,1
sin cos sin
It can also be noted that the quality index, from Section 6.8, is
7.4
The (relative) velocities of the joint variables, as shown by Eq. (7.3) can be found in any of three
ways. If we wish to do hand calculations, the expressions found for the positions of the joint
variables can be directly differentiated analytically. This approach, however, is highly
susceptible to human error and is not easily adapted to computer solution. The second approach
is to differentiate the loop closure equations with respect to time, as we will see later. The third
approach is to take advantage of the first kinematic derivatives. Remembering the hierarchy of
dependencies, we write
!j =
d j
dt
f
j d k
= j ,k! k
k =1 k dt
k =1
f
j = 1, 2, , n (7.14)
! = !
(7.15)
Here we see that all dependent joint velocities vary linearly with the generalized velocities.
They are nonlinear functions of , however, through the kinematic derivatives.
As said before, we can differentiate the loop closure equations with respect to time. From
Eq. (5.31) we get
n
L ( i, j ) D T
!j = 0
j 00
i = 1, 2, , NL
j =1
After recognizing that T00 = I , we eliminate redundancy by replacing each D j matrix by its
equivalent screw coordinates6
6.
Again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
1 1
2 2
3 3
4 4
D j !j = D j !j + D j !j + D j !j + D j !j
L ( i, j ) D !
j
=0
i = 1, 2, , NL
(7.16)
j =1
J ! = 0
(7.17)
Recognizing that the highest numbered f of these joint variable velocities are the generalized
coordinate velocities, these equations can be written as
J 11
J
21
J 12 J 13 !dep
=0
J 22 J 23 !
(7.18)
However, this is identical with Eq. (7.15) and shows no new advantages.
Example 7.2
Let us continue the Hooke universal joint of Example 7.1. If the input shaft is driven at a rate of
! = ! , then let us find the relative velocities of the other joint variables. These are given
D
directly by Eq. (7.15) and the first kinematic derivatives found in Example 7.1.
cos
1 sin2 sin2 !
!A
sin
cos
!
!
B
2
2
! = ! = 1 sin sin
C
! sin cos sin
D 1 sin2 sin2 !
7.5
As with the joint variables, before we find the time derivative of the position of a body, it is wise
to consider the hierarchy of dependencies involved. We recall that the position of body number i
with respect to ground is described by its transformation matrix T0i . Since this is made up of a
series of products shape matrices and the joint matrices j ( j ) , the only variables in the T0i
matrix are the joint variables j . These joint variables are functions of the generalized coordinates k which, in turn, are functions of time, t.
Therefore, let us take derivatives with respect to each level of the hierarchy in turn. From Eq.
(5.31), we have
i = 1, 2, ,
T0i
= P ( i, j ) D jT0 i
j
j = 1, 2, , n
Next, let us find the derivative of T0i with respect to a generalized coordinate k . Since
there may be several joints on the path from ground to body i,
i = 1, 2, ,
n
T0i
T j
= 0i
k j =1 j k
k = 1, 2, , f
However, in view of the previous equation and Eq. (7.8), this becomes
i = 1, 2, ,
n
T0i
= P ( i, j ) D jT0i j ,k
k j =1
k = 1, 2, , f
This particular form arises so often in coming developments that we find it convenient to
define another symbol as follows:7
i = 1, 2, ,
Wi ,k = P ( i, j ) D j j ,k
k = 1, 2, , f
j =1
(7.19)
T0i
= Wi ,k T0i
k
k = 1, 2, , f
(7.20)
Studying the form of Eq. (7.19), we see that it is a weighted sum of D j operator matrices,
weighted by the relative rates of change of each joint variable along the path to body i with
respect to the change of generalized coordinate k . One immediate conclusion is that, since
7.
In the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for example,
then
D j j, k = D j j, k + D j j, k + D j j, k + D j j, k
1
10
P ( i, j ) and j ,k are both scalars, the screw coordinate pattern of the D j matrices is also preserved in the Wi ,k operator matrix.
The six independent elements of Wi ,k define the instantaneous helical motion of body i with
respect to change of one generalized coordinate, k . Note that the six elements can be interpreted geometrically as an instantaneous screw axis, uniquely oriented and located in the global
coordinate system as discussed in Section 5.6, and scaled in size to show the rate of the helical
movement of body i with respect to change in generalized coordinate k .
Note how, in Eq. (7.19), Wi ,k is found by summing the contributions of all the relative rates
of change of the joint variables along the path from ground to body i. However, once these are
summed, we have the absolute rate of change of the position of body i with respect to ground.
Note also that Eq. (7.19) answers our earlier question of how several joint variables, which are
changing simultaneously, combine to give the full motion of a particular body.
Example 7.3
Let us now continue the analysis of the Hooke universal joint of Example 4.1 and Example
7.1, and find the kinematic derivative operator matrices Wi ,k for each of its bodies. From
Example 7.1 we have
cos
DB = 1 sin2 sin2
cos sin
1 sin2 sin2
cos sin
DC =
cos
0 0 0 0
0 0 1 0
DA =
0 1 0 h
0 0 0 0
cos
cos sin
1 sin2 sin2
1 sin2 sin2
cos sin
cos
sin sin
sin sin
h cos
1 sin2 sin2
h cos sin
h sin sin
11
0
sin
DD =
0
sin
cos
cos
h sin
h cos
and
cos
1 sin2 sin2
A ,1
sin cos
B,1 = 1 sin2 sin2
C ,1
sin cos sin
0
0
W11, = DA A ,1 =
cos
0
1 sin2 sin2
0
0
h cos
1 sin2 sin2
cos
1 sin2 sin2
0
0
sin cos2
sin cos sin cos hsin cos2
0
1 sin2 sin2
1 sin2 sin2
1 sin2 sin2
sin cos2
cos
0
0
cos
hcos
0
2
2
2
2
2
2
1 sin sin
1 sin sin
1 sin sin
0
0
0
0
0
sin
W3,1 = W2,1 + DCC ,1 =
0
sin
cos
cos
h sin
0
h cos
W4,1 = W3,1 + DD D ,1 = 0
12
Note that W4,1 becoming zero confirms that no point of the frame, body 4, moves as the input
shaft is turned.
7.6
Velocities of Bodies
In Eq. (7.2) we defined the velocity of a body to be the time derivative of its transformation
matrix with respect to the global frame.
dT
T!0i = 0 i
dt
i = 1, 2, ,
= P ( i, j ) D jT0i ( j )
i = 1, 2, ,
j = 1, 2, , n
i = 1, 2, , (7.21)
= P ( i, j ) D jT0i!j
j =1
Following the lead of the last section, we now define yet another derivative operator matrix8
n
i = P ( i, j ) D j!j
i = 1, 2, , (7.22)
T!0i = iT0i
i = 1, 2, , (7.23)
j =1
j =1
k =1
i = P ( i, j ) D j j ,k! k
i = 1, 2, ,
8.
Again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
1 1
2 2
3 3
4 4
D j !j , k = D j !j , k + D j !j , k + D j !j , k + D j !j , k
13
i = P ( i, j ) D j j , k! k
i = 1, 2, ,
j =1 k =1
i = Wi ,k! k
i = 1, 2, , (7.24)
k =1
This latest formula is simply another way of computing the i matrices for the various
bodies. Whether Eq. (7.22) or (7.24) should be used depends totally on convenience.
Example 7.4
Continuing Example 7.3, the i matrices for each of the bodies of a Hooke universal shaft
coupling are easily found by Eq. (7.24)
0
0
0
0
1 = W11, ! =
cos
0
!
1 sin2 sin2
0
0
0
cos
!
1 sin2 sin2
0
0
h cos
1 sin2 sin2
sin cos2
sin cos sin cos
h sin cos2
!
!
0
2
2
2
2
2
2
1
sin
sin
sin
sin
sin
sin
sin cos
cos
!
0
!
0
2
2
2
2
2 = W21, ! = 1 sin sin
1 sin sin
cos
hcos
!
!
0
!
2
2
2
2
2
2
1 sin sin
1 sin sin
1 sin sin
0
0
0
0
0
sin !
0
h sin !
sin !
0
cos !
0
3 = W3,1! =
0
cos !
0
h cos !
0
0
0
0
4 = W4,1! = 0
14
7.7
We recall from Eq. (4.9) that the global position of a point attached to body i is given by
Ri = T0i ri
i = 1, 2, ,
Now, since the point is attached to body i, its local coordinates ri are constants (assuming
that body i remains rigid). The transformation matrix T0i for body i, however, is a function of the
joint variables j along its path and these are functions of the generalized coordinates k which,
in turn, are functions of time.
Derivatives of our point position with respect to a single joint variable of its path are found
by Eq. (5.31). In this section we wish to find the derivative of the global position of our point
with respect to the generalized coordinate k . Using Eq. (7.20) to differentiate the above
position equation and remembering that ri is constant, we get
Ri,k =
7.8
Ri
= Wi ,k T0i ri = Wi , k Ri
k
i = 1, 2, ,
k = 1, 2, , f
(7.25)
Velocities of Points
Equation (7.1) defines the velocity of a point as the time derivative of its global position. Using
chain rule differentiation we get
f
f
dR
R d k
R!i = i = i
= Ri,k! k
dt
k =1 k dt
k =1
i = 1, 2, ,
R!i = Wi ,k Ri! k
i = 1, 2, , (7.26)
R!i = i Ri
i = 1, 2, , (7.27)
k =1
Thus we see that the same derivative operator matrices found for taking either kinematic or
time derivatives of body positions are also used for differentiating point positions.
15
Problems
7-1
a)
b)
c)
d)
16
Definition of Acceleration
The term acceleration is defined as the time rate of change of velocity. The acceleration of a
point, for example, is the time rate of change of the velocity of that point. Since we find it
convenient to use homogeneous coordinates to express the position and velocity of a point, we
define the absolute acceleration of a point by taking the time derivative of its velocity from Eq.
(7.1).
d 2Rx
dt 2
2 y
d R
2
d R 2
!!
R = 2 = dt
2 z
dt
d R
dt 2
(8.1)
i = 1, 2, ,
(8.2)
which may require the second time derivative of its screw coordinates. More will be said on this
shortly.
The (relative) accelerations of joint variables are the time derivatives of their velocities.
From Eq. (7.3) we have
!!1
d 2 !!2
!!
= 2 =
$
dt
!!
n
(8.3)
where the accelerations within any individual joint are given by the second time derivatives of
the individual motion variables of that joint. That is
!!1j
2
d 2 j !!j
!!
j = 2 =
$
dt
f
!!j j
(8.4)
!!1
d !!2
!!
= 2 =
$
dt
!! f
2
(8.5)
8.2
Since we will choose to use chain rule differentiation, we first seek the derivatives of our Q j
derivative operator matrices. Reviewing Section 5.4, we recall that several of the Q j matrices
contain only zeroes and ones since their instantaneous screw axes and Ball vectors remain
constant in the coordinate system of the body preceding the joint. However, for some of the
multi-freedom joints the instantaneous screw axes or Ball vectors are not constant, but vary with
change of the joint variables. Thus we need to seek out formulae for derivatives of each of the
Qj operators with respect to each of the joint variables on which they depend. In general,
remembering that a joint j may have more than one joint variable, these are of the form
1.
It is true that !! of Eq. (8.3) also fully defines the accelerations of a mechanical system, and may be better fit as
the system acceleration definition since we defined to represent the system position. This is not necessary,
however, since there is no ambiguity in accelerations coming from multiple closures. We will have need for
both.
2.
The methods of subsequent Sections were first published as: J. Denavit, R. S. Hartenberg, R. Razi, and J. J.
Uicker, Jr., "Velocity, Acceleration, and Static-Force Analysis of Spatial Linkages," Journal of Applied
Mechanics, ASME Transactions, 1965, pp. 903-910.
Qij
j = 1, 2, , n
= Qji ,h
jh
i, h = 1, 2, , f j
(8.6)
Q ij
fj
= Qj
i ,h
h
j ,k
h =1
i = 1, 2, , f j
j = 1, 2, , n
(8.7)
k = 1, 2, , f
However, as we have done above, we will often write this with the reduced symbolism
Q ij
k
i = 1, 2, , f j
i
= Qj j ,k
j = 1, 2, , n
k = 1, 2, , f
dQ ij
dt
fj
i = 1, 2, , f j
h =1
j = 1, 2, , n
= Qji ,h!hj
(8.8)
Again, in the interest of brevity we will often write this in the reduced symbolism
dQ ij
dt
= Qji!j
i = 1, 2, , f j
j = 1, 2, , n
Since the form of Qji ,h depends on the type of joint in question, we must seek these out
separately for each of the joint types.
8.2.1
Revolute Joint:
A revolute joint has only one joint variable and its Q j consists entirely of zeroes and ones. Thus,
Qj = 0
8.2.2
(8.9)
Prismatic Joint:
A prismatic joint also has only one joint variable and its Q j consists entirely of zeroes and ones.
Thus,
Qj = 0
(8.10)
8.2.3
A helical joint also has only one joint variable and its Q j also consists entirely of constants.
Thus,
Qj = 0
8.2.4
(8.11)
Cylindric Joint:
A cylindric joint has two joint variables, and both of its Q ij operator matrices consist entirely of
zeroes and ones. Thus,
8.2.5
(8.12)
Spheric Joint:
A spheric joint has its four Euler parameters as joint variables and the forms of the four Q ij
operator matrices are given in Eqs. (5.37). Differentiating these we find
2
0
1,1
Qj =
0
0
0
2
2,1
Qj =
0
0
0
0
3,1
Qj =
2
0
0
0
4,1
Qj =
0
0 0 0
0
2
2 0 0
1,2
Qj =
0
0 2 0
0 0 0
0
2 0 0
2
0
0 0 0
2,2
Qj =
0
0 0 0
0 0 0
0
0 2 0
0
0
0 0 0
3,2
Qj =
0
0 0 0
0 0 0
0
0 0 0
0
0
0 2 0
4,2
Qj =
2
2 0 0
0 0 0
0
2 0 0
0 0 2 0
0 0 0 0
0 2 0
0 0 0
0 0 0 0
1,3
1,4 0
Qj =
Qj =
2 0 0 0
0 2 0 0
0 0 0
0 0 0
0 0 0 0
0 0 0 0
0 0 0
0 0 0 0
0 0 2 0
0 0 0
2 0 0
0 0 2 0
2,3
2,4 0
Qj =
Qj =
0 2 0 0
2 0 0 0
0 2 0
0 0 0
0 0 0 0
0 0 0 0
0 0 0
2 0 0 0
0 2 0 0
0 2 0
0 2 0 0
0 0 0
3,3
3,4 2
Qj =
Qj =
0 0 2 0
0 0 0 0
2 0 0
0 0 0
0 0 0 0
0 0 0 0
0 2 0
0 2 0 0
2 0 0 0
2 0 0
0 0 0
2 0 0 0
4,3
4,4 0
Qj =
Qj =
0 0 0 0
0 0 2 0
0 0 0
0 0 0
0 0 0 0
0 0 0 0
(8.13)
In addition, each spheric joint has a constraint equation relating the kinematic derivatives of
its Euler parameters with respect to generalized coordinates h and k .
2 1j j,1h,k + 2 j2 j,2h,k + 2 3j j,3h,k + 2 j4 j,4h,k = 2 j1,h j1,k 2 j,2h j,2k 2 j,3h j,3k 2 j,4h j,4k
(8.14)
8.2.6
Flat Joint:
A flat joint has three joint variables and the forms of the three Q ij operator matrices are given in
Eqs. (5.38). Differentiating these gives
8.2.7
0
0 0 1
0 0 0
0 0 0
0 0
Qj3,2
0
0
=
0
0 0 1
0 0 0
0 0 0
0 0 0
Qj3,3 = 0
(8.15)
Rigid Joint:
A rigid joint has no joint variables and no Q j operator matrices. Therefore, there are no Qj
matrices.
8.2.8
Open Joint:
An open joint has seven joint variables and the forms of the seven Q ij operator matrices are given
in Eqs. (5.39). Differentiating these gives
Qj 4,4
2
0
=
0
0 0 0
2 0 0
0 2 0
0 0 0
Qj5,4
0 2
2 0
=
0 0
0 0
0 0
0 0
0 0
0 0
Qj 4,5
0
2
=
0
Qj5,6
2
0
=
0
2 0 0
0
0
0 0 0
4,6
Qj =
2
0 0 0
0 0 0
0
5,1
5,2
5,3
Qj = Qj = Qj = 0
0 0 0
2 0 0
0 2 0
0 0 0
Qj5,7
0 2 0
0 0 0
0 0 0
0 0 0
0 0
0 0
=
0 2
0 0
0 0
2 0
0 0
0 0
0
0
4,7
Qj =
0
0
0 2 0
2 0 0
0 0 0
0
0
Qj5,8 =
2
0 2 0
0 0 0
0 0 0
0 0 0
Qj6,4
0
0
=
2
0 2 0
0 0 0
0 0 0
0 0 0
Qj7,4
0 0
0 0
=
0 2
0 0
0 0
2 0
0 0
0 0
Qj6,5
0
0
=
0
0
2
0
0 2 0
6,6
Qj =
0
2 0 0
0 0 0
0
Qj7,1 = Qj7,2 = Qj7,3 = 0
Qj7,5
0
0
=
2
0 2 0
0 0 0
0 0 0
0 0 0
0 0 0
2 0 0
0 2 0
0 0 0
0
2
=
0
Qj7,6
2 0 0
0 0 0
0 0 0
0 0 0
0 2
2 0
6,7
Qj =
0 0
0 0
2
0
Qj7,7 =
0
0 0
0 0
0 0
0 0
0 0 0
2 0 0
0 2 0
0 0 0
(8.16)
In addition, each open joint has a constraint equation relating the kinematic derivatives of its
Euler parameters with respect to generalized coordinates h and k .
2 j4 j,h4,k + 2 5j j,5h,k + 2 6j j ,h6,k + 2 j7 j ,h7,k = 2 j ,4h j,4k 2 j ,5h j ,5k 2 j,6h j ,6k 2 j ,7h j ,7k
8.2.9
(8.17)
A parallel-axis gear joint has three joint variables and the forms of the three Q ij operator matrices
are given in Eqs. (5.40). Differentiating these we find
11
,
j
Q =
R j R j + Rj + j2
Rj
0
0
0 0 cos 1j
0 0 sin 1j
0 0
0
0 0
0
Qj1,2
R j 0
=
Rj 0
2
sgn ( F ) R j + Rj + j
0
2
2
R j + Rj + j2 ( R j + R ) cos j 0
0
2
Qj 2,1 =
Qj
2,2
sin 1j
0 0 cos 1j
0 0
0
0 0
0
0 0
0 0 cos 1j
0 0 sin 1j
0 0
0
0 0
0
sgn ( F ) R j + Rj + 2j 2 R j + Rj + 2j ( R j + R ) cos j
3
R j + Rj + j2 ( R j + R ) cos j
Qj 2,3 = 0
Qj1,3 = 0
2 3/ 2
0
0
sin 1j
0 0 cos 1j
0 0
0
0 0
0
0 0
(8.18)
1 0
Qj1,1 =
Rj 0
Qj 2,1
0 0 0
0 0 1
0 0 0
0 0 0
0
sgn ( F ) tan j 0
=
0
Rj
0
tan j 0
Qj3,1 =
Rj 0
Qj1,2
0 0 0
0 0 1
0 0 0
0 0 0
0
0 0 1
0 0 0
0 0 0
0 0
Qj3,2
1 0
=
Rj 0
Qj 2,2
0 0 1
0 0 0
0 0 0
0 0 0
Qj1,3 = 0
0
sgn ( F ) tan j 0
=
0
Rj
0
tan j 0
=
Rj 0
0 0 1
0 0 0
0 0 0
0 0 0
0 0 1
0 0 0
0 0 0
0 0 0
Qj3,3 = 0
Qj 2,3 = 0
(8.19)
0
tan
Qj11, =
tan sin 1j sin
Qj1,2
tan sin
=
tan cos 1j cos
sin 1j sin
cos 1j sin
cos 1j sin
sin
cos 1j cos
sin 1j cos
sin 1j cos
0
0
0
0
0
Qj 2,1
0
=
1
cos j
0
0
0
sin 1j
0
cos 1j 0
sin 1j
0
0
0
0
0
Qj2,2 = 0
(8.20)
0 0 u
0 0 v
0 0 0
0 0 0
0
0
2,1
Qj =
0
u =
u
1j
v
v = 1
j
v
0 0 u
0 0 0
0 0 0
Qj1,2 = Qj1,3 = 0
0 0
Qj 2,2 = Qj 2,3 = 0
(8.21)
0
0
0 u + v + v
0 v u u
0
0
0
0
2
2
[u v u v] ( u ) + ( v ) 2 [uu vv]
( u ) 2 ( v ) 2
Qj1,2 = Qj1,3 = 0
u =
u
1j
v =
v
1j
Qj 2,1
0
0
=
0
sin
0 0 cos
0 0
0 0
0 0
Qj 2,2 = Qj 2,3 = 0
8.3
(8.22)
Remembering that we will use chain rule differentiation for finding accelerations, we seek the
derivative of the D j operator matrix, defined in Eq. (5.29),
D j = (T0 j S j , j ) Q j (T0 j S j , j )
where we recall that j- is the label of the body which precedes joint j according to its defined
orientation. Suppose that we seek the derivative of this operator matrix with respect to one of the
joint variables, h .
We start by finding the derivative of the inverse transformation matrix T0j1 . We differentiate
the identity
T0j1T0 j = I
as follows:
T0j1
h
T0 j + T0j1
T0 j
h
=0
T0j1
h
= T0j1
T0 j
h
T0j1
T0j1
h
= T0j1 P ( j , h ) Dh
h = 1, 2, , n
j = 1, 2, ,
(8.23)
Next we find the derivative of the D j operator matrix with respect to the joint variable h
D j
h
(T0 j S j , j )
h
Q j (T0 j S j , j ) + (T0 j S j , j )
Q j
h
(T
0 j
S j , j ) + (T0 j S j , j ) Q j
(T0 j S j , j )
D j
h
(T0 j S j , j ) Q j (T0 j S j , j ) P ( j , h ) Dh
where j ,h is the Kronecker delta, signifying that the second term does not appear unless j and
h refer to variables of the same joint.
Comparing the first and third terms of this equation with Eq. (5.29), however, and
recognizing that P ( j , h ) and j ,h are scalars, the above equation simplifies to the form
D j
1
= P ( j , h ) Dh D j D j Dh + j , h (T0 j S j , j ) Qj (T0 j S j , j )
h, j = 1, 2, , n (8.24)
D j
k
D j
h =1
h,k
D j
1
= P ( j , h ) ( Dh D j D j Dh ) h,k + (T0 j S j , j ) Qj j ,k (T0 j S j , j )
k h =1
D j
k
= W j ,k D j D jW j ,k + (T0 j S j , j ) Qj j , k (T0 j S j , j )
j = 1, 2, , n
k = 1, 2, , f
(8.25)
3.
Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
D j
h
h, k =
D j
1
h1, k +
D j
2
h,2k +
D j
3
h,3k +
D j
h4
h,4k
10
dD j
dt
D j
k =1
! k
dD j
1
= W j ,k D j D jW j ,k + (T0 j S j , j ) Qj j ,k (T0 j S j , j ) ! k
dt
k =1
dD j
dt
8.4
1
= j D j D j j + (T0 j S j , j ) Qj!j (T0 j S j , j )
j = 1, 2, , n (8.26)
Remembering the hierarchy of dependency explained in Section 7.2, let us now find the second
derivatives of the joint variables with respect to the generalized coordinates, on which they
depend explicitly. We call these second kinematic derivatives and, as in Section 7.3, we use a
prime notation with subscripts as the symbolism.4
j ,h ,k =
k h
j ,h
=
k
j = 1, 2, , n
h, k = 1, 2, , f
(8.27)
How will we find these derivatives? Well, in Section 7.3 we differentiated the loop equations
with respect to generalized coordinate j and found that
i = 1, 2, , NL
h = 1, 2, , f
L ( i, j ) D
j
j ,h
=0
j =1
is a set of mandatory constraint equations among the first kinematic derivatives which ensures
that their values change compatibly with the requirements of geometric loop closure. But, a
similar requirement also holds among the values of the second kinematic derivatives. Therefore,
we differentiate again with respect to generalized coordinate k .
n
L ( i, j ) D
j =1
j ,h,k
D j
k
i = 1, 2, , NL
h, k = 1, 2, , f
j , h = 0
L ( i, j ) {D
n
j =1
4.
j ,h, k
1
+ W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h = 0
Recall that, for a joint which has more than a single joint variable, superscripts may also be required.
11
j =1
j =1
1
( i, j ) D j j ,h,k = L ( i, j ) W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h
(8.28)
We now define a new (4x4) matrix Ci,h , k for each loop as follows
n
1
Ci,h ,k = L ( i, j ) W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h
j =1
i = 1, 2, , NL
h, k = 1, 2, , f
(8.29)
L ( i, j ) D
j
j ,h ,k
= Ci,h ,k
j =1
i = 1, 2, , NL
h, k = 1, 2, , f
(8.30)
We will see the individual terms of the sum included in Ci,h , k again. They will appear in
Section 8.6 where we seek second kinematic derivatives of body positions. We will see that Eq.
(8.28) is the specific case which states that the second kinematic derivative of the position of the
fixed body is zero. Compare this with the definition of the Ai , h ,k operator matrices in Eq.(8.47).
Some economy can be gained by calculating, summing, and storing the terms of Ai , h ,k in the
order in which joints are met as the loop is traced along the paths to each successive body. Once
each loop is completely traced, the Ci,h , k matrix results.
It is left as an exercise to verify that the upper-left (3x3) submatrix of Ci,h , k in Eq. (8.29) is
anti-symmetric as were the Q j , D j , and W j , k operator matrices. We can also see that this must
be true for compatibility with the left-hand side of Eq. (8.30). Once this is recognized, we
eliminate the redundancy of Eq. (8.30) by putting it into screw coordinate form
n
L ( i, j ) D
j
j ,h ,k
= C i,h ,k
j =1
i = 1, 2, , NL
h, k = 1, 2, , f
(8.31)
Ci,h ,k
Ci, h ,k (1, 4 )
Ci ,h ,k ( 2, 4 )
Ci,h ,k ( 3, 4 )
=
Ci,h ,k ( 3, 2 )
C (1,3)
i ,h,k
Ci, h ,k ( 2,1)
i = 1, 2, , NL
h, k = 1, 2, , f
(8.32)
Since, for any particular choice of h and k, Eq. (8.31) is now of the same form as Eq. (6.4)
we can write, from Eq. (6.5), that
12
J h,k = C h,k
h, k = 1, 2, , f (8.33)
where J is the same [(6NL+NC)xn] Jacobian matrix which resulted from the numerical iteration
process of Section 6.5, and h,k , for a given choice of h and k, is an (nx1) vector of second
kinematic derivatives which are yet to be determined. The [(6NL+NC)x1] column C h, k is
composed of the NL vectors from the right-hand sides of Eq. (8.31) for each loop, augmented by
the NC right-hand sides of Eq. (8.14) for each spheric joint and Eq. (8.17) for each open joint.
Reviewing the numerical iteration process of Section 6.5, we recall that the modified pivoting
scheme used in the Gauss-Jordan process reordered the joint variables so that all dependent joint
variables are numbered first, followed next by the NF joint variables of the FGCs and finally by
the NS joint variables of the SGCs. Recognizing that both the FGC and the SGC joint variables
have been accepted as generalized coordinates , we see that, by definition, they are independent
of each other. Therefore, for a particular choice of h and k, the h,k matrix must be of the form
1,h ,k
2,h ,k
$
, h ,k
dep
h, k = n f ,h,k =
0
$
0
h, k = 1, 2, , f (8.34)
,h ,k
dep
J ind
= C h, k
0
But, remembering Eq. (6.10), we see that this is the same subdivision which resulted from the
modified Gauss-Jordan elimination process. Reverting to the notation of Eq. (6.7) we have
J 11
J 21
J 12 J 13 dep ,h,k
0 =
J 22 J 23
0
(C )
(C )
h,k
h ,k
and, after the Gauss-Jordan process is complete, these equations are reduced to the form of Eq.
(6.8)
13
I J 111J 12
0
0
1
0
J 21J 11 I C h,k
( )
( )
( )
,h ,k = J 111 C h,k
dep
h, k = 1, 2, , f (8.35)
(C )
h,k
( )
1
J 21J 11
Ch,k
=0
h, k = 1, 2, , f (8.36)
Thus the calculations for finding the set of all second kinematic derivatives of the joint
variables can proceed in a set of nested loops, each incrementing counters h and k from one to f.
Of course, it notably reduces the computational load to notice from Eq. (8.27) that
j ,k ,h = j ,h ,k
j = 1, 2, , n
h, k = 1, 2, , f
(8.37)
For each choice of h and k the corresponding Ci,h , k matrix is formed by Eq. (8.29) for all loops i
and, from them, the Ci,h , k vectors are formed by Eq. (8.32). These are augmented by the NC
right-hand sides of Eq. (8.14) for each spheric joint and Eq. (8.17) for each open joint. Finally,
,h ,k for Eq. (8.34).
Eq. (8.35) is used to provide values of dep
For each combination of h and k it is also wise to check that Eq. (8.36) is satisfied within a
satisfactory numerical tolerance.5 However, after the authors' forty years of experience, with a
properly formulated problem having physically realizable input data this test has never been
found to fail.
The second kinematic derivatives just found are not accelerations, even though they are
sometimes referred to as such. They are second rates of change of dependent joint variables with
respect to changes of the generalized coordinates. Time is not included in them and they
typically have units such as radians per radian squared. They represent totally kinematic
information and are functions of the generalized coordinates alone. They are very important,
however, and will arise frequently in our coming work.
Example 8.1
To illustrate the methods explained above, let us continue the analysis of the Hooke universal
joint studied in previous examples. In Example 4.1 we found solutions for the positions of all
joint variables and the various transformation matrices. In Example 7.1 we found the D j
5.
The IMP software system uses a default tolerance of 10-6 for this test.
14
derivative operator matrices, the Jacobian, and the first kinematic derivatives for each of the
joints. These are
0
0
DA =
0
cos
DB = 1 sin2 sin2
cos sin
1 sin2 sin2
0
0 1 0
1 0 h
0 0 0
0
cos
cos sin
1 sin2 sin2
1 sin2 sin2
0
cos sin
cos
hcos sin
0
cos sin
0
sin sin
0
D = sin
DC =
D
cos
0
sin sin
0
hsin sin
0
0
0
0
h
J = 1
h cos
1 sin sin
2
h cos sin
0
0
h sin sin
sin sin
cos sin
cos
1 sin2 sin2
cos
1 sin2 sin2
cos sin
h sin
h cos
cos
sin
hcos
1 sin2 sin2
sin
cos
cos
0
0
0
h sin
h cos
cos
1 sin2 sin2
A ,1
sin cos
B,1 = 1 sin2 sin2
C ,1
sin cos sin
0
0
W11, =
cos
0
1 sin2 sin2
0
0
0
cos
1 sin2 sin2
0
0
h cos
1 sin2 sin2
15
sin cos 2
W2,1 =
1 sin2 sin2
sin cos sin cos
1 sin2 sin2
0
0
sin
W3,1 =
0
sin cos2
1 sin2 sin2
cos
1 sin2 sin2
cos
1 sin2 sin2
0
sin
cos
cos
0
0
h sin cos2
1 sin2 sin2
h cos
1 sin2 sin2
h sin
0
h cos
W4,1 = 0
Recognizing, for this example, all joints are revolutes and, therefore, that all Qj matrices are
zero, we now formulate the following matrices
(W
4,1
DA DAW4,1 ) A ,1 = 0
cos sin
cos
(W11, DB DBW11, )B ,1 = sin cos
2
1 sin2 sin2 cos
cos sin
0
0
0
0
cos cos
cos cos
0
sin
(W2,1DC DCW2,1 )C ,1 = sin cos
2
2
sin
sin cos
1 sin sin
0
0
(W
3,1
cos
h cos sin
0
0
0
0
0
0
sin
h cos cos
sin cos
0
0
0
0
0
DD DDW3,1 ) D ,1 = 0
From these, we now form the Ci,1,1 matrix of Eq. (8.29). Noting that there is only one loop
and one degree of freedom the result is
16
2
3
2
3
sin cos sin cos
h sin cos sin cos
2
2
0
1 + sin sin
(1 sin2 sin2 )
(1 sin2 sin2 )
2
3
sin
cos
C1,1,1 =
(1 sin2 sin2 ) (1 sin2 sin2 )
2
2
sin sin cos
0
h sin sin cos
(1 + sin sin )
0
0
0
0
h
1
h cos
1 sin sin
2
h cos sin
h sin sin
sin sin
cos sin
1 sin2 sin2
cos
1 sin2 sin2
cos
cos sin
h sin
h sin2 cos sin3 cos
1 sin2 sin2
A,11,
0
h cos
h
sin
sin
cos
sin cos
B,11
,
cos
=
2
2
C,11, (1 sin sin )
sin sin cos
2
2
0 D,11,
1
+
sin
sin
2
3
sin cos sin cos
sin
1 sin2 sin2
As in Example 7.3, we recognize that the second row of the right-hand column is zero and
the first and third rows are h multiples of the sixth and negative fourth rows, respectively, and
that, since = 1 = D , we have D,1,1 = 0 . Therefore, these can be reduced to the form
1
0
sin sin
A,1,1
cos sin
sin cos
cos
1 + sin2 sin 2
B,1,1 = (1 sin 2 sin 2 )
2
2
1 sin sin
sin 2 cos sin3 cos
C,1,1
cos
1 sin2 sin2
cos sin
0
2
2
1 sin sin
A,11,
sin cos
B,11, =
C,11, (1 sin2 sin2 )2
D,11,
2
2
1 sin sin cos sin
17
8.5
The (relative) accelerations of the joint variables, as shown by Eq. (8.3) can be found in any of
three ways. For hand calculations, the expressions found for the positions of the joint variables
can be directly differentiated analytically. This approach, however, is highly susceptible to
human error and is not easily adapted to computer solution. The second approach is to
differentiate the loop closure equations with respect to time, as was done in the last section to
find second kinematic derivatives. The third approach is to take advantage of the second
kinematic derivatives. Remembering the hierarchy of dependencies, we can differentiate Eq.
(7.12) as follows
f
f
f
d 2 j
!!
j = 2 = j ,h!!h + j ,h,k! h! k
dt
h =1
k =1 h =1
j = 1, 2, , n (8.38)
Here we see that all dependent joint accelerations vary linearly with the generalized
accelerations and quadratically with the generalized velocities. They are nonlinear functions of
, however, through the kinematic derivatives. The double summation cannot be expressed in
matrix form since j ,h , k is a three-dimensional array.
As discussed earlier, we can differentiate the loop closure equation with respect to time.
From Section 7.4 we have
n
L ( i, j ) D !
j
=0
i = 1, 2,, NL
j =1
L ( i, j ) D !! +
j =1
dD j !
j = 0
dt
i = 1, 2, , NL
6.
Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
18
1
L ( i, j ) D j!!j = L ( i, j ) j D j D j j + (T0 j S j , j ) Qj!j (T0 j S j , j ) !j
j =1
j =1
(8.39)
1
C!!i = L ( i, j ) j D j D j j + (T0 j S j , j ) Qj!hj (T0 j S j , j ) !j
j =1
i = 1, 2, , NL (8.40)
Ci ( 2, 4 )
!!
C ( 3, 4 )
C!!i = i
!!
Ci ( 3, 2 )
C!! (1, 3)
i
C!!i ( 2,1)
i = 1, 2, , NL (8.41)
J !! = C!!
(8.42)
$
!!
f
(8.43)
J 12 J 13 !!dep C!!1
=
J 22 J 23 !! C!!
2
and can be solved in the same manner as for the second kinematic derivatives. In its reduced
form
19
I J 111J 12
0
0
(8.44)
(8.45)
Example 8.2
Let us continue the Hooke universal joint of Example 8.1. If the input shaft is driven at a rate of
!D = ! , and, if this rate is constant, !!D = !! = 0 , then let us find the accelerations of the other
joint variables. These are given directly by Eq. (8.39) and the second kinematic derivatives
found in Example 8.1.
!!A
!!
sin cos ! 2
!!
= !!B =
C
2
2
!! 1 sin sin
D
8.6
2
2
1 sin sin cos sin
Before we find the acceleration of a body or point, let us first find the next kinematic derivative
of the Wi ,h operator matrices. From Eq. (7.19), we have
n
Wi ,h = P ( i, j ) D j j ,h
j =1
i = 1, 2, ,
h = 1, 2, , f
Differentiating this with respect to generalized coordinate k gives the new, second
kinematic derivative operator matrix Ai , h ,k , defined by
Ai ,h ,k =
Wi ,h
i = 1,2,,
h, k = 1,2,, f
(8.46)
20
1
Ai ,h,k = P ( i, j ) D j j ,h,k + W j ,k D j D jW j ,k + (T0 j S j , j ) Qj (T0 j S j , j ) j ,h
j =1
,
} h, ki ==1,2,
1,2,, f
(8.47)
Now, to find the second kinematic derivative of the position of a body, we start with Eq.
(7.18)
i = 1, 2, ,
T0i
= Wi ,hT0i
h
h = 1, 2, , f
and differentiate again, with respect to the generalized coordinate k . Using Eqs. (8.45) and
(7.18) we find
T0i
= ( Ai ,h , k + Wi , hWi ,k ) T0i
k h
i = 1, 2, ,
h, k = 1, 2, , f
(8.48)
We note here that, in general, Ai ,k ,h Ai ,h ,k in spite of the fact that the order of the subscripts
implies an order of taking derivatives. Similarly, in general,
Wi ,k
h
Wi , h
k
i = 1, 2, ,
h, k = 1, 2, , f
(8.49)
Example 8.3
Let us now continue the analysis of the Hooke universal joint of Example 8.1 and Example 8.2,
and find the second kinematic derivative operator matrices for each of its bodies. From the
previous examples we have
0
0
DA =
0
7.
0
0 1 0
1 0 h
0 0 0
0
Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
D j j, h = D j j, h + D j j, h + D j j, h + D j j, h
1
21
cos
cos
DB = 1 sin2 sin2
cos sin
1 sin2 sin2
cos sin
DC =
cos
cos sin
1 sin sin
1 sin sin
cos sin
cos
sin sin
sin sin
0
sin
DD =
0
A ,1
B,1
C ,1
D ,1
sin
cos
cos
h cos
1 sin sin
h cos sin
h sin sin
h sin
h cos
cos
1 sin2 sin2
sin cos
2
2
1 sin sin
sin cos sin
1 sin2 sin2
0
0
0
0
W11, =
cos
0
1 sin2 sin2
0
0
cos
1 sin2 sin2
0
0
h cos
1 sin2 sin2
22
sin cos2
W2,1 =
1 sin2 sin2
sin cos sin cos
1 sin2 sin2
0
sin
W3,1 =
0
sin cos2
1 sin2 sin2
cos
1 sin2 sin2
cos
1 sin2 sin2
0
sin
cos
cos
0
0
h sin cos2
1 sin2 sin2
h cos
2
2
1 sin sin
0
h sin
0
h cos
W4,1 = 0
2 sin sin cos
A,11,
2
2
cos sin 1 sin sin
sin cos
B,11, =
C,11, (1 sin2 sin2 )
1 + sin2 sin2 cos
0
D,11,
Next we calculate
1
, + W4,1 DA DAW4,1 + (T04 S 4 A ) QA A ,1 (T04 S 4 A ) A ,1
A111
, , = DA A,11
0 0 0 0
2
sin cos cos 2 0 0 1 0
=
2
1 sin2 sin2 0 1 0 h
0 0 0 0
W D D W + (T S ) Q (T S )1
B 11
,
01 1B
B B,1
01 1B
1,1 B
B,1
0
cos sin
cos sin
0
sin cos cos
=
2
0
1 sin2 sin2 cos
0
0
cos
0
0
0
h cos sin
23
1
, + W11, DB DBW11, + (T01S1B ) QBB,1 (T01S1B ) B,1
A211
, , = A111
, , + DBB,11
0
cos sin 2 cos 2 + sin2 sin2
sin cos
cos sin 2
0
0
=
2
2
2
2
2
0
0
1 sin sin cos 2 + sin sin
0
0
0
W D D W + (T S ) Q (T S )1
C 2,1
02 2 C
C C ,1
02 2 C
2,1 C
C ,1
0
cos cos
cos cos
0
sin cos sin
=
2
2
sin
sin cos
1 sin sin
0
0
sin
sin cos
0
0
h cos sin 2
h sin sin2
h cos cos
h sin cos
1
A3,1,1 = A2,1,1 + DCC,1,1 + W2,1 DC DCW2,1 + (T02 S2C ) QC C ,1 (T02 S 2C ) C ,1 = 0
1
A4,1,1 = A3,1,1 + DDD ,1,1 + W3,1 DD DDW3,1 + ( T03 S3 D ) QD D ,1 (T03 S3 D ) D ,1 = 0
Note the order of the calculations performed in this example; here we see how the
calculations of the portions of C in Example 8.1 is done in parallel with building the Ai , h ,k
matrices. It may be instructive to compare the form of Eq. (8.28) to that of Eq. (8.47). Since
each row of the loop matrix L is a possible path through the system back to the frame, body 4, it
should be expected that A4,1,1 = 0 .
8.7
To find the second kinematic derivative of the position of a point, we start with Eq. (7.25)
Ri,h =
Ri
Wi ,hT0i ri
h
i = 1, 2, ,
h = 1, 2, , f
and differentiate again, with respect to the generalized coordinate k . Using Eqs. (8.46), (7.20),
and (7.25) we find
Ri,h ,k =
Ri
= ( Ai ,h , k + Wi , hWi ,k ) Ri
k h
i = 1, 2, ,
h, k = 1, 2, , f
(8.50)
24
8.8
Accelerations of Bodies
i = P ( i, j ) D j!j
i = 1, 2, ,
j =1
Before finding the acceleration of a body, let us first define the new acceleration operator i
i =
d i
dt
i = 1, 2, , (8.51)
j =1
i = P ( i, j ) D j!!j +
dD j !
j
dt
i = 1, 2, ,
1
i = P ( i, j ) D j!!j + j D j D j j + (T0 j S j , j ) Qj!j (T0 j S j , j ) !j
j =1
i = 1, 2, , (8.52)
for evaluation.
As another alternative, we might have started with Eq. (7.24)
f
i = Wi , h! j
i = 1, 2, ,
h =1
i = Wi , h!! j + Ai ,h ,k! k! h
h =1
i = 1, 2, , (8.53)
h =1 k =1
This is an entirely separate but equivalent formula for I from the one above. Whether Eq.
(8.52) or Eq. (8.53) is preferable depends on the particular situation; we will have future needs
for both.
Next, we recall that in Eq. (8.2) we defined the acceleration of a body to be the second
derivative with respect to time of its transformation matrix with respect to the global frame.
8.
Here, again, in the case of a multi-variable joint j, multiple terms will be required. If joint j is a spheric joint, for
example, then
25
d 2T0 i
!!
T0i =
dt 2
i = 1, 2, ,
dT
T!0i = 0i = iT0 i
dt
i = 1, 2, ,
i = 1, 2, ,
T!!0i = ( i + ii ) T0i
i = 1, 2, , (8.54)
i = 1, 2, , (8.55)
Example 8.4
Continuing , the i matrices for each of the bodies of a Hooke universal shaft coupling are easily
found by Eq. (8.53)
!2
1 = W11, !! + A111
, ,
0 0
cos
sin cos cos 2 2 0 0
=
!! +
!
2
2
1 sin2 sin2
1 sin sin
0 1
0 0
2
0 0
1 0
0 h
0 0
26
!2
2 = W21, !! + A211
, ,
sin cos2
sin cos sin cos h sin cos2
0
1 sin2 sin2
1 sin2 sin2
1 sin2 sin2
sin cos2
cos
0
0
2
2
2
2
= !!
1 sin sin
1 sin sin
cos
h cos
0
1 sin2 sin2
1 sin2 sin2
1 sin2 sin2
0
0
0
0
0
cos sin 2 cos 2 + sin2 sin2 h cos sin 2
sin cos ! 2
cos
sin
2
0
0
0
+
2
2
2
2
2
0
0
h sin sin 2
1 sin sin cos 2 + sin sin
0
0
0
0
3 = W3,1!! + A3,1,1! 2
0
sin
= !!
0
sin
0
cos
0
0
cos
0
0
h sin
h cos
cos cos
sin cos sin !
+
1 sin 2 sin 2
sin
cos cos
0
sin cos
0
sin
sin cos
0
0
h cos cos
h sin cos
4 = W4,1!! + A4,1,1! 2 = 0
8.9
Accelerations of Points
Next, we recall that in Eq. (8.1) we defined the acceleration of a point to be the second derivative
with respect to time of its global position vector.
2
!! = d Ri
R
i
dt 2
i = 1, 2, ,
R!i = i Ri
i = 1, 2, ,
i = 1, 2, ,
27
!! = ( + ) R
R
i
i
i i
i
i = 1, 2, , (8.56)
!! = W !! +
R
i
i ,h h ( Ai ,h ,k + Wi , hWi ,k )! h! k Ri
k =1 h =1
h =1
i = 1, 2, , (8.57)
Thus we see that the same derivative operator matrices found for taking either second
kinematic or second time derivatives of body positions are also used for finding second
derivatives of point positions.
28
Problems
8.1
8.2
Verify that the upper-left (3x3) submatrix of Ci,h , k in Eq. (8.29) is anti-symmetric.
29
In the very beginning of this text, Section 1.1, we observed that the science of mechanics is
usually divided into two parts called statics and dynamics. We observed that dynamics is also
made up of two major disciplines, first distinguished by Euler in 1775.1 The quotation is,
perhaps worth repeating here:2
"The investigation of the motion of a rigid body may be conveniently separated
into two parts, the one geometrical, the other mechanical. In the first part, the
transference of the body from a given position to any other position must be
investigated without respect to the causes of the motion, and must be represented
by analytical formulae which will define the position of each point of the body.
This investigation will therefore be referable solely to geometry, or rather to
stereotomy.
"It is clear that by the separation of this part of the question from the other,
which belongs properly to Mechanics, the determination of the motion from
dynamical principles will be made much easier than if the two parts were
undertaken conjointly."
These two aspects of dynamics were later recognized as the distinct sciences of kinematics
and kinetics, which treat the motion and the forces producing it, respectively.3
As should be evident from the preceding chapters, one predominate challenge in the analysis
of many multibody systems, particularly those with closed loop topology, is that of kinematics,
and one major emphasis of this book has been on that topic. As Euler advised, the methods of
the preceding chapters have been totally derived from geometry. The units of all parameters
defined or used up to here have been solely those of length and time.
Statics and kinetics, however, are also extremely important parts of a complete design
analysis. The engineer or designer is vitally concerned with the forces transmitted betweeen
parts of a system so that they can be designed to withstand the stresses induced. The work and
energy which the system produces or requires are also of primary interest. Therefore these topics
and units, including those of force and energy, will also be covered in depth in the coming
1.
2.
Ibid.
3.
Kinematics was first defined as a separate study in 1834 by Andre Marie Ampere (1775-1836).
chapters.
Of course every student, from their first introduction to Newtons laws, has been taught that
the first requirement when analysing a system to find forces is to draw a free body diagram of
the system being studied. This is excellent advice for hand calculation methods. However, such
approaches do not lend themselves to computer evaluation. Computers gain no guidance about
the solution of such problems from viewing a hand-drawn sketch. The techniques which we seek
here should not depend on such an approach.
Therefore, instead of looking toward Newtons laws for our study of dynamics, we very much
prefer methods using energy and virtual work. Specifically, in the next chapter we will use
Lagranges equation to provide the dynamic equations of motion of our multibody system.
9.2
In order to use an energy approach we will require the formulation of an expression for the
kinetic energy of our multibody system. To derive such an equation let us start with a single
differential particle of mass dm as shown in Figure 9.1. In terms of the global components of the
velocity of that moving particle, its kinetic energy is
2
2
2
dH = ( R! X ) + ( R! Y ) + ( R! Z ) dm
= R! X
R! Y
R! Z
R! X
!Y
R
0 Z dm
R!
0
!
= R! t Rdm
"!
R
dm
"
R
X
Z
Figure 9.1 Differential particle of mass
Let us now assume that this is only one particle of moving rigid body number a, and, from
Eq. (7.27), substitute our matrix formulation for its absolute velocity,
dH a =ratT0taat aT0 a ra dm
{(
dH = R! X
) + ( R! ) + ( R! ) } dm
2
R! X R! X R! X R! Y R! X R! Z 0
!Y ! X
! Y R! Y R! Y R! Z 0
R
R
R
dm
=trace Z X
Z !Y
Z !Z
R! R!
!
!
R R
R R
0
0
0
0
0
R! X
!Y
R
=trace Z R! X R! Y R! Z 0 dm
R!
t
! ! dm
=trace RR
The huge advantage of this seemingly small change does not become apparent until we
substitute Eq. (7.27) for the velocity of the differential particle. This now gives
dH a =trace (aT0 a ra ratT0taat ) dm
a = 1, 2, ,
When we recognize that a and T0a are invariant for every particle of body a, the integration
can now be written
a = 1, 2, ,
(9.1)
The integration over all particles of the body no longer depends either on the position of the
body ( T0a ) or on its velocity ( a ). It is now an integral over the local body coordinates of the
particles. It is now possible to perform this integration once, for all positions and all velocities of
the body, as will be shown in the next section.
9.3
a = 1, 2, ,
(9.2)
Ja =
( r x )2
a
x y
ra ra
x z
ra ra
x
ra
rax ray
y 2
a
(r )
rax raz
ray raz
z 2
a
ray raz
(r )
ray
raz
rax
y
ra
dm
z
ra
a = 1, 2, ,
However, since integration is a process of repetitive summation, and since matrix sums are
performed by summing individual terms, this integral can be performed on a term by term basis.
Therefore,
( r x )2 dm
a
x y
ra ra dm
Ja =
x z
ra ra dm
x
ra dm
r r dm r r dm
( r ) dm r r dm
r r dm ( r ) dm
r dm
r dm
x y
a a
x z
a a
y 2
a
y z
a a
y z
a a
z 2
a
y
a
z
a
r dm
r dm
r
dm
dm
x
a
y
a
a = 1, 2, ,
z
a
Checking with any of a number of texts on mechanics reminds us that many of these integrals
are known from the definitions of the mass distribution properties of a rigid body.4 For example,
if we denote the total mass of body a by the symbol ma and the location of its center of mass,
measured with respect to the local body coordinate system, by the vector ra , then the integrals in
the fourth row and column are
( r x )2 dm
a
x y
r r dm
Ja = a a
x z
ra ra dm
x
ma ra
r r dm
( r ) dm
r r dm
r r dm
r r dm
( r ) dm
ma ra y
ma ra z
x y
a a
y 2
a
y z
a a
x z
a a
y z
a a
z 2
a
ma ra x
ma ra y
ma ra z
ma
Checking further with mechanics texts reminds us that the remaining off-diagonal integrals
are known as the mass products of inertia. They usually carry symbols such as5
I axy = rax ray dm ,
(9.3)
4.
See, for example, R. C. Hibbeler, Engineering Mechanics, 8th ed., Prentice-Hall Inc., 1998, Chapters 9 & 10.
5.
There seems to be little agreement between different texts on whether these products of inertia should include a
minus sign as a part of their definition. No minus sign is shown here; however, the reader is advised to use care
when comparing with different texts.
However, using our notation, the mass moments of inertia are usually defined as follows:6
(9.4)
Once we express the above J a matrix in terms of these definitions for the mass moments and
products of inertia we obtain the inertia matrix for each body
( I axx + I ayy + I azz )
I axy
I axz
ma rax
xy
xx
yy
zz
yz
y
Ia
( I a I a + I a )
Ia
ma ra
Ja =
xz
yz
xx
yy
zz
z
Ia
Ia
( I a + I a I a ) ma ra
x
y
ma ra
ma ra
ma raz
ma
a = 1, 2, ,
(9.5)
Since these are values which designers may already know about the mass distributions of the
individual parts of their device, or which they might find convenient to obtain through their
favorite CAD system or through experiment, these values form a very reasonable model in which
the user can be requested to supply the mass distribution information for each moving body.7
It is noted here, as might have been expected, that each J a inertia matrix is symmetric. This
becomes important later in Section 10.3, when finding the equations of motion.
We note that the data for the mass distribution of a body is collected totally in the local
coordinate system of the moving body. Thus the J a matrix is, by its very definition, expressed in
that coordinate system. However, when we substitute Eq. (9.2) into Eq. (9.1),
H a =trace (aT0 a J aT0taat )
a = 1, 2, ,
we see the matrix product T0 a J aT0ta . After review of the above derivation, we recognize that this
product, called a similarity transformation, yields the transformation of the inertia matrix to the
global coordinate system where it combines with the global coordinate velocity matrix a of the
same body. This matrix product is of size (44) and all entries have the same arrangement and
the same physical interpretation as those of Eq. (9.5) except that they are transformed to the
global coordinate system.
Of course, the total kinetic energy of the sytem is found by summing the kinetic energies of
all individual bodies.
a =1
a =1
(9.6)
6.
These are sometimes called polar moments of inertia and the definition of Ixx, for example, integrates the
square of the distance of each mass particle from the x axis.
7.
See, for example, J. J. Uicker, Jr., G. R. Pennock, and J. E. Shigley, Theory of Machines and Mechanisms, 3rd
ed., Oxford University Press, 2003, Section 16.2.
9.4
Systems of Units
When the data record for storage of a body is formed in computer memory, the software may
require each body data record to contain storage locations for the elements of the inertia matrix,
preferably expressed in the local coordinate system of the body. These storage locations can be
initialized to zeroes. When data is supplied by the user for the mass of the body, this value can
be stored in row four, column four, thus simulating a point mass located at the origin of the body
coordinate system. When the body coordinates of the center of mass are given, the elements of
the fourth row and column can be formed; the mass then still represents a point mass, but at the
newly specified location on the body. Finally, when mass moments and products of inertia are
supplied by the user, the remainder of the matrix is formed and the inertia matrix no longer
represents a point mass, but a distributed mass. Any body for which mass data is not supplied is
considered to have negligible (zero) mass when compared to those which have nonzero mass
data.
The units of the data in the J a inertia matrix are also of great importance. As is usual in
engineering design analysis, it is probable that time is measured in seconds. Up to here it has
been assumed that all data for lengths or distances are entered in one self-consistent set of
distance units, but no particular system of units has yet been specified. Lengths might be
measured in inches, feet, meters, or millimeters, depending on the application and the preference
of the user. Any of these or other length units can be chosen as long as all lengths are specified
in the same units, and the user must also be satisfied with these same units for all output values
computed involving distances.
As we progress in our study of dynamics, we will also choose a standard unit for force,
almost certainly the pound if the inch or the foot is chosen as the unit for length, or the Newton if
the meter or the millimeter is chosen for length.
Once these choices are made, then consistency demands that mass data must be given in units
of force seconds squared per unit length.8 For example, use of Newtons and meters requires that
mass data be given in Newton seconds squared per meter ( N s 2 / m ) which are named
kilograms. However, use of Newtons and millimeters requires mass data in Newton seconds
squared per millimeter ( N s 2 / mm ) which are megagrams (Mg). Similarly, use of pounds for
force and feet for distances requires mass data in pound seconds squared per foot.9 Use of
pounds for force and inches for distances requires mass data in pound seconds squared per inch
which have no other name. For user friendliness it may be preferable to allow the user to supply
inertia data in terms of weight units and to have the software convert to mass units by dividing by
the standard gravitational constant. However, it is strongly recommended that all data for a
particular problem be stored in one consistent system of units as just discussed.
8.
This is called a gravitational system of units. See, for example, Uicker, op. cit., Section 14.3.
9.
Pound seconds squared per foot are named slugs in some texts. However, to the authors knowledge, this term is
not used anywhere outside of academia and, therefore, it is avoided in this text.
9.5
The mass distributions described by the J a inertia matrices can also be used for modeling the
effects of gravitional loads on our multibody system. If we define a homogeneous coordinate
vector for the local position of the origin of a body coordinate system,
0
0
r0 =
0
1
(9.7)
ma ra x
ma ra y
J a r0 =
= ma ra
ma ra z
ma
a = 1, 2, ,
Transforming this homogeneous coordinate vector from its current body coordinates to global
coordinates, we get
ma ra x
m ry
T0 a J a r0 = Toa a a z = maT0 a ra = ma Ra
ma ra
ma
a = 1, 2, ,
(9.8)
and, since it is easily verified that T0ta r0 = r0 , the above equation can be written in the form
T0 a J a r0 = (T0 a J aT0ta ) r0
a = 1, 2, ,
(9.9)
g X
Y
g
g= Z
g
0
(9.10)
Note that there is no stipulation that the g vector need have the magnitude of standard gravity,
though it often will and can conveniently default this way in the software. Still, without this
constraint, it occassionally becomes possible to use the g vector to model a distributed force field
that is not the result of gravity. For example, if a vehicle is rounding a curve of known radius at
a known speed, it may be advantageous to model the centrifugal force field by specifying that g
includes an appropriate sized component in the outward radial direction in addition to the vertical
gravitational component. In this manner, the vehicle is subjected to a centrigugal force field on
all parts having mass even though the simulation is done in quasistatic mode, thus avoiding the
time needed to integrate the dynamic equations of motion.
With the gravitational g vector known, it is now possible to write an expression for
gravitational potential energy. Assuming a zero reference (datum) position where the center of
mass of body a coincides with the global origin, the gravitational potential energy of body a is
a = 1, 2, ,
Va = ma g t Ra
The negative sign recognizes the convention used here that positive represents energy
contained in the system and signifies that, in order to move the body opposite to the direction of
the gravity vector, work must be done and the potential energy of the system must be increased.
Using Eqs. (9.8) and (9.9), the gravitational potential energy of body a becomes
Va = g t (T0 a J aT0ta ) r0
a = 1, 2, ,
V = g t (T0 a J aT0ta ) r0
(9.11)
a =1
9.6
Sometimes, a real spring is designed to act directly with a joint variable, as is the case with the
struts of many automotive front suspensions, or the coil spring of a wind-up toy or a clock. In
other situations, the analyst may wish to simulate the stiffness of a motor or control system which
acts within a joint. We assume that our computer model may include a stiffness value ka acting
directly with the movement of joint variable a which provides a linear restoring force of
magnitude ka (a a 0 ) , where a 0 represents the free position of the joint variable, at which
position the restoring force of the spring is zero. Of course, when the movement of joint a is
rotation, then ka is a torsional stiffness, a 0 is an angle, and ka (a a 0 ) is the magnitude of a
restoring torque.
The potentional energy stored in such a spring is
Va =ka (a a 0 )
a = 1, 2, , n
and the total potential energy stored in all such springs of the model is
V = k a ( a a 0 )
(9.12)
a =1
As explained above for mass data, the record created in computer memory to store each joint
variable can include memory locations for storage of values of stiffness and a free position
associated with each joint variable. These can be initialized to have stiffness values of zero. At a
later point in the creation of the system model, data may (or may not) be supplied for one or more
of these to represent the existence of nonzero spring rates or stiffnesses for those joint variables.
9.7
Just as joints can display stiffness as modeled in the previous section, so too they can show
energy dissipation through damping. Here we assume that this energy dissipation can be
modeled as viscous friction, that is, that there can be a resisting force or torque acting against the
motion of the joint variable that is of magnitude ca!a , proportional in size but opposite in sense
to the velocity of the joint variable. Here ca is the viscous damping coefficient.
During an infinitesmally small virtual displacement a of this joint, the energy loss from the
system from such damping is
U a = ca!aa
a = 1, 2, , n
If we express this virtual displacement and velocity of the joint variable in terms of the
virtual displacement and velocity of the independent generalized coordinates
f
a = ai i
a = 1, 2, , n
i =1
and
f
!a = aj ! j
a = 1, 2, , n
j=1
then the infinitesmally small energy loss from this joint variable is
f
U a = (ai caaj ! j ) i
a = 1, 2, , n
i =1 j =1
The total energy loss from all joint damping during this small virtual displacement is
f
U = (ai caaj ! j ) i
(9.13)
i =1 j =1 a =1
Again, the data record created in computer memory to store each joint variable can include a
memory location for storage of a value for a viscous damping coefficient associated with that
10
joint variable. These can be initialized to have coefficient values of zero. At a later point in the
creation of the system model, data may (or may not) be supplied for one or more of these to
represent the existence of nonzero viscous damping coefficients for particular joint variables.
Many other types of energy dissipation are proposed in the literature beyond the viscous
damping model shown here. Coulomb damping, hysteretic damping, proportional damping,
quadratic damping, strain rate damping, and others are covered in various texts.10 Arguments
abound over which is the more appropriate model in a given situation. However, these are not
the purpose of this text, and only viscous damping is presented here. Others can be implemented
in matrix notation by similar methods if the reader wishes to do so.
9.8
Many multibody systems include one or more springs connected between points of the moving
bodies. If we assume that the endpoints of such a spring are the points Ra and Rb of two different
bodies numbered a and b, then we can define the symbol Rab to be the vector between the two
points.11
Rab = Ra Rb = T0 a ra T0b rb
a, b = 1, 2, , (9.14)
a, b = 1, 2, , (9.15)
and the unit vector showing the orientation of the line between the two points is defined by the
symbol
uab = Rab ab
a, b = 1, 2, , (9.16)
such that
Rab = ab uab
a, b = 1, 2, ,
We now assume that our computer model may include a linear spring with rate kab and free
length ab 0 acting between two such moving points, which provides a spring force of value
kab ( ab ab 0 ) uab directed toward point a from point b and having an equal and opposite reaction
force on point b. The potentional energy stored in such a spring is
Vab =kab ( ab ab 0 )
10.
See, for example, D. J. Inman, Engineering Vibration, Prentice Hall, Englewood Cliffs, NJ, 1994.
11.
Note that the digraph ab, used as a subscript, signifies only a single spring, yet includes a pair of points, the
endpoints of the spring; and two integers are referenced. These are the body numbers containing the two
endpoints. Still, there is only a single spring, a single point pair, for each such digraph.
11
and the total potential energy stored in all such springs of the system is12
V = kab ( ab ab 0 )
(9.17)
ab
9.9
Many multibody systems may also include one or more viscous dampers in the form of dashpots
connected between points of the moving bodies. As with point to point springs, we assume that
the two endpoints of such a damper are the points Ra and Rb of two different bodies numbered a
and b. We also assume that the energy dissipation can be modeled as viscous friction, that is,
that there is a resisting force which is proportional to the relative velocity, cab ! abuab , acting
along the line between the two points. During an infinitesmally small virtual displacement
between the two points, Rab , the energy lost to the system is
t
U ab = cab ! abuab
Rab
(9.18)
Next we express this virtual displacement and the relative velocity across the damper in terms
of the virtual displacement of the independent generalized coordinates
f
and we define
= Rai
Rbi
= Wai Ra Wbi Rb
Rabi
a, b = 1, 2, ,
i = 1, 2, , f
(9.19)
so that
f
i
Rab = Rabi
a, b = 1, 2, , (9.20)
i =1
12.
Notice that no symbol has been defined for the total number of such springs in the model and no numbering
convention or order has been chosen for their identification. In the actual software, the records for these springs
will, almost certainly, be implemented in a linked list or queue, and the summation will be accomplished by
incrementing through this list.
12
t
2ab = Rab
Rab
t
t !
t !
2 ab ! ab = R! ab Rab + Rab
Rab = 2 Rab
Rab
t
! = u R!
ab
ab
= u
t
ab
ab
(a Ra b Rb )
t
= uab
(Waj Ra Wbj Rb )! j
j =1
t
! j
! ab = uab
Rabj
a, b = 1, 2, , (9.21)
j =1
Therefore, substituting Eqs. (9.21) and (9.20) into Eq. (9.18), the amount of energy dissipated
by such a damper is
f
t
t uab cab uab
! j i
U ab = Rabi
Rabj
i =1 j =1
and the total energy dissipated by all such point to point dampers during such a virtual
displacement is13
f
t
t uab cab uab
! j i
U = Rabi
Rabj
(9.22)
i =1 j =1 ab
As previously explained, the record created in computer memory to store data for each point
to point damper can include a memory location for storage of a value for the viscous damping
coefficient associated with that damper. Also, as stated above, many other types of energy
dissipation are possible beyond the simple viscous damping model shown here. Coulomb
damping, hysteretic damping, proportional damping, quadratic damping, strain rate damping, and
others are covered in various texts.14 Others can be implemented by similar methods using
matrix notation if the reader wishes to do so.
13.
Notice again that no symbol has been defined for the total number of such dampers in the model and no
numbering convention or order has been chosen for their identification. In the actual software, the collection of
records for such dampers will almost certainly be implemented in a linked list or queue, and the summation will
be accomplished by incrementing through this list.
14.
Again, for example, see D. J. Inman, Engineering Vibration, Prentice Hall, Englewood Cliffs, NJ, 1994.
13
U a = f a ( , t ) a = ai f a ( , t ) i
a = 1, 2, , n
i =1
The total virtual work done by all such applied joint forces during this small virtual
displacement is
f
U = ai f a ( , t ) i
(9.23)
i =1 a =1
In the IMP software there is an extensive library of functions which can be combined by mathematical operators
to describe most situations. One function in this library allows a table of numeric data, possibly empirical, and
the software performs a Fourier transform when the data is read to produce a differentiable periodic function.
14
bc = Rbct Rbc
and, as in Eq. (9.16), we define the unit vector showing the orientation of the line between the
two points as
ubc = Rbc bc
We assume that the functional description of the magnitude of the external force acting at the
point on body a is known and is described by a given function of system geometry and time
f abc ( , t ) . We assume that the force is positive when pointed toward the point of body b from
the point of body c. Therefore the force vector is
(9.24)
Next, for the point of body a where the external force is applied, we express a small virtual
displacement in terms of virtual displacements of the generalized coordinates
f
i =1
i =1
Ra = Wai Ra i = Rai i
The virtual work done onto the system by such an external force during a small virtual
displacement, then, is the vector dot product of the force and the virtual displacement. Therefore,
f
The total virtual work done by all such externally applied forces during this small virtual
displacement is16
f
(9.25)
i =1 abc
16.
Again, no symbol has been defined for the total number of such forces in the model and no numbering
convention has been chosen for their identification or order. In the actual software, the records for these forces
will almost certainly be implemented in a linked list or queue, and the summation will be accomplished by
incrementing through this list.
15
(9.26)
Next, for an arbitrary location on body a where the external torque is applied, we wish to
express a small virtual displacement in terms of virtual displacements of the generalized
coordinates
f
Ra = Wai Ra i
i =1
After reviewing the material of Section 5.6, however, and recalling that there is no particular
point of application for a torque, we see that this small virtual displacement (virtual twist) is
expressed by the form
Z
a
f
f
ai
i
i
i =1
i =1
Y
a
i
aZ
i
0
aY
i
aX
i
aX
i
RaX0
i
RaY0
i i
RaZ0
i
If we arrange this in the form of the second of the two Ball vectors of Eq. (5.46), we find that
the small virtual angular displacement of body a is
aX
X
a f Yi
%a = aY = a
Z i =1 i
a
Z
a
i
Wai ( 3, 2 )
f
f
Wai ( 2,1)
{ }
a = 1, 2, , (9.27)
16
where W(j,k) symbolizes the element of matrix W from row j, column k, and where we are now
using braces to signify that the information contained within them has been reformatted from a
(44) matrix form into a (31) column matrix in the order defined for the second Ball vector.17
The work done onto the system by such an externally applied torque during a small virtual
displacement, then, is the vector dot product of the torque and the virtual twist as expressed by
this second Ball vector. Therefore,
f
i =1
The total work done by all such externally applied torques during this small virtual
displacement is18
f
(9.28)
i =1 abc
17.
See Section 5.6. Throughout the IMP software the Wai matrices and also the Aaij Da , and Qa matrices from
which they are formed are all calculated and stored in Ball vector form, thus saving time and redundant storage.
18.
Again, no symbol has been defined for the total number of such torques in the model and no numbering
convention or order has been chosen for their identification. In the actual software, the records for these torques
will almost certainly be implemented in a linked list or queue, and the summation will be accomplished by
incrementing through this list.
17
Aristrotle (384-322 BC), The Works of Aristotle, translated by W. D. Ross, Oxford, 1928.
Jean le Rond d'Alembert (1717-1783), Trait de Dynamique, David 'Ame, Paris, 1743,.(reprinted by GauthierVillars, Paris, 1921).
Pierre Louis Moreau de Maupertuis' (1698-1759), principle of least action was announced in a public session of
the Academy of France on April 15, 1744, and published in Essai de cosmologie, Amsterdam, 1746.
Joseph Louis Lagrange (1736-1813), Mchanique Analytique, Imprimeur-Libraire pour les Mathematiques,
Paris, 1788, (reprinted by Gauthier-Villars, Paris, 1888).
beginning and ending states for which action (the difference between the system's kinetic energy
H and potential energy V is a stationary value. Through his ingenious first use of the calculus of
variations, Lagrange developed this principle into what is now called Lagrange's equation.8 The
particular form of this equation which fits our situation is as follows9
d H
dt ! i
H
V
+
= Fi
i i
i = 1, 2, , f
(10.1)
where Fi are generalized forces applied at each of the f generalized coordinates i to account for
effects that are not modeled by the energy functions. Consistent with our energy approach, this
form of Lagrange's equation requires that these generalized forces be found by modeling the
virtual work done during a small virtual displacement of the system.
f
U = Fi i
(10.2)
i =1
Once the virtual work is expressed in this form, the generalized forces Fi can be identified for
use with Eq. (10.1).
pi =
H
! i
i = 1, 2, , f
(10.3)
Using our model in Eq. (9.6) for the kinetic energy of the system, we write
pi =
! i
t t
trace aT0 a J aT0aa
a =1
i = 1, 2, , f
(10.4)
Next, recognizing that a are functions of the generalized velocities, we refer to Eq. (7.24),
to see that
J. L. Lagrange, "Essai d'une nouvelle methode pour determiner les maxima et minima des formales integrales
indefinies", Miscellanea Taurinensio ou Mlanges de Turin, vol. 1, Turin Mathematical Society, 1759.
See, for example, McCuskey, S. W., An Introduction to Advanced Dynamics, Addison-Wesley, 1959, Chap. 2.
a
f
=
Wak! k = Wai
! i ! i k =1
(10.5)
Using this in Eq. (10.4), and noticing that all other factors are independent of velocity, we find
a =1
However, since the trace function produces a scalar result (which is identical to its own
transpose), we can transpose the second term here to show that
a =1
i = 1, 2, , f
(10.6)
This equation gives the components of the generalized momentum of our system. These
show the components of momentum (or angular momentum) of the system as experienced at each
of the generalized coordinates.
Gidyn =
d
H
( pi )
dt
i
i = 1, 2, , f
Gidyn =
d
t t
t t
trace WaiT0a J aT0 aa
trace aT0a J aT0aa
dt a =1
i a =1
Next we use Eq. (7.24) to expand the forms for the angular velocity operator matrices so that
the generalized velocities appear explicitly in the expressions
G idyn
f
d
t
=
trace W ai T0 a J a T0 a W ak! k
dt a =1
k =1
f
f
j =1
We now perform the time derivative required in the first term by use of the chain rule
f
dyn
Gi = trace WaiT0a J aT0ta Wak!!k
a =1
k =1
f
f
t
+
trace WaiT0 a J aT0a Wak! k ! j
j =1 j a =1
k =1
f
f
j =1
and we use the derivative operator matrices of Eqs. (8.48) and (7.20) to perform the remaining
derivatives indicated
f
t r a c e W a i T 0 a J a T 0t a W a k !! k
a =1
k =1
f
f
+ t r a c e A a i j T 0 a J a T 0t a W
j=1 a =1
k =1
G id y n =
a k ! k
! j
t
t r a c e W a i W a j T 0 a J a T 0 a W a k ! k
j=1 a =1
k =1
j=1
+
j=1
t r a c e W a i T 0 a J a T 0t a W at j W a k ! k
a =1
k =1
t r a c e W a i T 0 a J a T 0t a A a k j ! k
a =1
k =1
t r a c e A a k i ! k T 0 a J a T 0t a
k =1
a =1
! j
! j
! j
W a j ! j
j=1
t r a c e W a k ! k W a i T 0 a J a T 0t a W a j ! j
j=1
k =1
a =1
t r a c e W a k ! k T 0 a J a T 0t a W at i W a j ! j
j=1
k =1
a =1
t r a c e W a k ! k T 0 a J a T 0t a
a
=
1
k
=
1
A a j i! j
j= 1
Gidyn
f
t
= trace WaiT0 a J aT0a Wak!!k
a =1
k =1
t
f
t
+ trace Aaij + WaiWaj ! j T0a J aT0a Wak! k
a =1
k =1
j =1
f f
t
+ trace WaiT0 a J aT0a Aakj + WakWaj ! k! j
a =1
j =1 k =1
t
f
f
t
trace ( Aaki + WakWai )! k T0a J aT0 a Waj! j
j =1
a =1
k =1
t
f
f
t
trace Wak! k T0a J aT0a Aaji + WajWai ! j
a =1
k =1
j =1
Gidyn
f
t
a =1
k =1
t
f
t
+ trace Aaij + WaiWaj ! j T0a J aT0a Wak! k
a =1
k =1
j =1
t
f f
t
+ trace WaiT0 a J aT0a Aakj + WakWaj ! k! j
a =1
j =1 k =1
t
f
t
trace ( Aaki + WakWai )! k T0a J aT0 a Waj! j
j =1
a =1
k =1
t
f
t
trace Aaji + WajWai ! j T0a J aT0a Wak! k
a =1
k =1
j =1
and, by switching the labels of the indices j and k in the fourth term, it combines directly with the
fifth term to yield
f
dyn
t
Gi = trace WaiT0a J aT0a Wak!!k
a =1
k =1
t
f
t
+ trace Aaij + WaiWaj ! j T0a J aT0a Wak! k
a =1
k =1
j =1
f f
t
+ trace WaiT0a J aT0a Aakj + WakWaj ! k! j
a =1
j =1 k =1
t
f
t
trace Aaji + WajWai ! j T0a J aT0 a Wak! k
a =1
k =1
j =1
But, according to the identity expressed in Eq. (8.49), we see that the second and fourth terms
of the above equation nullify each other. This leaves
Gidyn
f
t
= trace WaiT0 a J aT0a Waj!! j
j =1
a =1
f f
t
+ trace WaiT0a J aT0 a Aajk + WajWak ! k! j
a =1
j =1 k =1
i = 1, 2, , f
(10.7)
i = 1, 2, , f
(10.8)
Also, using Eqs. (8.53) and (7.24) this can be written in the form
t
Gidyn = trace WaiT0 a J aT0ta ( i + ii )
a =1
Gist =
V
i
i = 1, 2, , f
(10.9)
Reviewing the different sections of Chapter 9 we can expect to find restoring forces from the
effects of gravity, joint stiffnesses, and point to point springs. Adding the contributions of Eqs.
(9.13), (9.14), and (9.16), we find that the total potential energy from these three effects is
a =1
a =1
(10.10)
ab
Before taking the derivative of this expression, let us first recall Eq. (9.15)
t
2ab = Rab
Rab
a, b = 1, 2, ,
and, defining the new symbol abi = ab / i , we take the derivative of this equation with
respect to the generalized coordinate i , which gives
t
t
t Rab + Rab
2 ab abi = Rabi
Rabi = 2 Rab
Rabi
abi = ab / i = uab
Rabi
a, b = 1, 2, ,
i = 1, 2, , f
(10.11)
Finally we are prepared to evaluate Eq. (10.9) by taking the derivative of Eq. (10.10).
a =1
It is easily verified from the definition of r0 that Wait r0 = 0 ; therefore, the second term of this
equation is null. Using Eq. (10.11) to express the final term, we obtain
a =1
a =1
ka (a a 0 )
Gist = g tWaiT0a J aT0ta r0 + ai
t uab kab ab
+ Rabi
ab
i = 1, 2, , f (10.12)
ab0 )
This is an expression for the restoring force experienced at each generalized coordinate as the
results of gravity, joint stiffnesses, and point to point springs.
all point to point dampers, from Eq. (9.22), all forces applied at joint variables, from Eq. (9.23),
all forces applied at moving points, from Eq. (9.25), and all torques applied on moving bodies,
from Eq. (9.28). In one expression the overall virtual work is as follows
f
U =
i =1
[ ( c ! ) R u
f
ai a aj
! j
c u Rabj
t
t
abi ab ab ab
j =1 a =1
j =1 ab
t
+ ai f a ( , t ) + Rait ubc f abc ( , t ) + W$ai ubc abc ( , t ) i
{ }
a =1
abc
abc
Consistent with Eq. (10.2), we can now identify from this virtual work expression the
generalized forces acting on each of the generalized coordinates during the virtual displacement.
f
t
t uabcabuab
! j
Fi = ai caaj ! j Rabi
Rabj
j =1 a =1
j =1 ab
+ai f a ( , t ) + R u f
t
ai bc abc
a =1
abc
i = 1, 2, , f (10.13)
abc
t
tra c e W a i T 0 a J a T 0 a
a =1
f
W a j!! j
j =1
f
f
+ tra c e W a i T 0 a J a T 0t a A a jk + W a j W a k ! k !
a =1
j = 1 k = 1
g t W a i T 0 a J a T 0t a r0 + a i k a ( a a 0 )
a =1
a =1
+ R a tb i u a b k a b ( a b a b 0 )
ab
( a i c a a j! j )
j =1 a =1
t
t
R a b i u a b c a b u a b R a b j! j
j =1 a b
+ a i f a ( , t ) + R a ti u b c f a b c ( , t ) +
a =1
abc
abc
{W$ a i }
u b c a b c ( , t )
i = 1, 2, , f (10.14)
Since it is usual to show the effects of gravity as applied forces and the effects of damping as
restoring forces, in spite of how we derived their expressions, we may wish to rearrange these
final equations into the following form
t
f
t
a =1
j =1
f f
t
+ trace WaiT0a J aT0 a Aajk + WajWak ! k! j
a =1
j =1 k =1
caaj
! j
+ ai
j =1 a =1
f
t
t uab cabuab
! j
+ Rabi
Rabj
j =1 ab
n
ka (a a 0 )
+ ai
a =1
t uab kab ( ab ab 0 )
+ Rabi
ab
= g tWaiT0a J aT0ta r0
a =1
n
f a ( , t )
+ ai
a =1
t ubc f abc
+ Rai
abc
i = 1, 2, , f (10.15)
( , t )
t
+ W$ai ubc abc ( , t )
abc
{ }
These are the complete dynamic equations of motion of our system. They are a coupled set of
second order (!!k ), highly nonlinear (! k! j ) differential equations with variable coefficients.
The solution of these equations is not a trivial task. This will require numerical integration.
Worse yet, although it does not show explicitly, numerical iteration may be required throughout
the motion to insure that the kinematic loops remain closed. Yet the solution to these differential
equations does represent how the motion of our system develops from some set of initial
conditions. It is from the solution of these differential equations that the values of the generalized
coordinates, and their velocities and accelerations are determined.
Problems
10.1
Continue from the results of Problem 3.1 through 8.1 to write the non-linear dynamic
equations of motion of that system under the following assumptions:
a) Only body 3 has mass; its mass is symbolized by m.
b) There is no damping.
c) The only spring acts within joint D; it has a stiffness of k with a free position of D0 .
d) Gravity of magnitude g acts in the negative global Y direction.
e) A vertical load of weight W is applied at the free (left) end of body 2.
10.2
10
i (t * + t ) = i* + xi (t )
! i (t * + t ) = ! i* + vi (t )
i = 1, 2, , f
(11.1)
!!i (t * + t ) = v!i (t )
where we have defined the new variable t for time continuing after this moment, and xi ( t ) and
vi ( t ) to represent the continuing position and velocity values of the generalized coordinates. The
requirement that the velocities be equal to the derivatives of the positions is not included in their
definitions, but will be included as separate differential equations.1
x!i ( t ) = ! i* + vi ( t
i = 1, 2, , f
(11.2)
At t = 0 all xi (t ) = vi (t ) = 0 and, at least for a short time interval t, the motion persists in
such a way that all xi (t ) and vi ( t ) are small. Indeed we assert that we can place an upper
bound on t which ensures that all xi (t ) and vi ( t ) are small for that interval. By small is
2
2
meant, for example, that xi ( t ) xi ( t ) and vi ( t ) vi ( t ) so that all quadratic forms of
xi (t ) and vi ( t ) can be ignored in comparison with xi (t ) and vi ( t ) .
11.3 Linearization
Therefore, for the general dynamic equations of motion, as found in Eqs. (10.15) and repeated
here,
t
t
trace WaiT0 a J a T0 aWaj !! j
j =1 a =1
f
f
t
j =1 k =1 a =1
ca aj
! j
+ ai
j =1 a =1
f
t
t uab cab u ab
! j
+ Rabi
Rabj
j =1 ab
n
k a ( a a 0 )
+ ai
a =1
t uab k ab ( ab ab 0 )
+ Rabi
ab
= g tWaiT0 a J a T0ta r0
a =1
n
f a ( , t )
+ ai
a =1
t ubc f abc ( , t )
+ Rai
i = 1, 2, , f
(11.3)
abc
t
+ W% ai ubc abc ( , t )
abc
{ }
Note that the treatment of position and velocity as independent of each other is also an essential assumption in
the calculus of variations derivation of the Lagrange equation.
we can make the substitutions indicated by Eqs. (11.1), expand all the coefficients in Taylor
series about their current positions and velocities, and discard all terms which are of quadratic or
higher degree in the variables xi (t ) and vi ( t ) .
f
t
t *
trace W ai T0 a J a T0 a W aj v! j
j =1 a = 1
f
f
j =1 k =1 a =1
f
f
j =1 k =1 a =1
f
f
n
n
c a aj
! j * + ai
c a aj
+ ai
j =1 a =1
j =1 a =1
) *vj
f
f
t
t
*
t u ab c ab u ab
! j * + R abi
t u ab c ab u ab
+ R abi
R abj
R abj
vj
j = 1 ab
j = 1 ab
k a ( a a 0 ) + aij
k a ( a a 0 ) x j + ai
k a aj
+ ai
a =1
j =1 a =1
t u ab k ab ( ab ab 0 )
+ R abi
j = 1 a =1
t u ab k ab ( ab ab 0 ) x j + R abi
t u ab k ab R abj
+ R abij
j = 1 ab
j = 1 ab
xj
ab
f
xj
t
t I u ab u ab
k ab ( ab ab 0 ) / ab x j
+ R abi
R abj
j = 1 ab
= g t W ai T0 a J a T0t a r0
a =1
n
f a ( , t ) + aij
f a ( , t ) x j + ai
f ad
( , t ) dj
+ ai
a =1
j =1 a =1
*
j = 1 a = 1 d =1
xj
abc
f
t
t I ubc ubc
f abc ( , t ) / bc
+ R ai
Rbcj
j = 1 abc
+
j = 1 abc d = 1
t ubc f abcd
R ai
abc
xj
( , t ) dj
xj
*
f
t
+ W% ai ubc abc ( , t ) +
{ A% aij }
j = 1 abc
ubc abc ( , t ) x j
i = 1, 2, , f
(11.4)
*
f
t
t
abc ( , t ) / bc x j
+ W% ai
I ubc ubc
Rbcj
j = 1 abc
f
n
t
+ W% ai ubc abcd
( , t ) dj
j = 1 abc d = 1
xj
(11.5)
a bcd ( , t ) = a b c ( , t ) / d
All coefficients in Eqs. (11.4) and (11.5) are evaluated numerically at time t * and the only
variables remaining in these equations are t , xi (t ) , vi (t ) and their time derivatives.
If we rearrange Eqs. (11.4) into standard form, in decreasing order of the derivatives, we see
t
t
*
t r a c e W a i T 0 a J a T 0 a W a j v! j
j =1 a =1
t
2 tr a c e W a iT 0 a J a T 0 a
j =1 k =1 a =1
f
( a i c a a j )* v j
j =1 a =1
f
( A a jk
ab
*
a i j k a ( a a 0 ) x j +
j =1 a =1
+ R a tb i j u a b k a b
j =1 ab
f
+ R a tb i
j =1 ab
t
g
j =1 a =1
f
( a b
a b 0 )* x j + R a tb i u a b k a b u at b R a b j* x j
j =1 ab
( I u a b u at b ) R a b j k a b ( a b a b 0 ) / a b* x j
( Aa ij
+ W a i W a j T 0 a J a T 0t a r0* x j
*
a i j f a ( , t ) x j
j =1 a =1
f
*
a i k a a j x j
j =1 a =1
! *
k v j
+ R a tb i u a b c a b u at b R a b j* v j
+ W a jW a k
( , t ) d j* x j
a i f a d
j =1 a =1 d =1
t
*
R a i j u b c f a b c ( , t ) x j
j =1 abc
f
t
R a i
j =1 abc
f
( I u b c u bt c ) R b c j f a b c ( , t ) / b c* x j
t
R a i u b c f a b c d
j =1 abc d =1
f
j =1 abc
f
{W% a i }
n
j =1 abc d =1
( , t ) d j* x j
{W% a i }
u b c a b c d
j =1 a =1
u b c a b c ( , t )* x j
( , t ) d j* x j
( Aa jk
+ W a jW a k
*
! k ! j
i = 1, 2, , f (11.6)
( a i c a a j )! j* ab R a tb i u a b c a b u at b R a b j! j*
a i k a ( a a 0 )* R a tb i u a b k a b
a =1
n
ab
( a b
a b 0 )* + g t W a i T 0 a J a T 0t a r0*
+ a i f a ( , t )* + R a ti u b c f a b c ( , t )* +
a =1
{ A% a i j }
j =1 abc
( I u b c u bt c ) R b c j a b c ( , t ) / b c* x j
t
tr a c e W a iT 0 a J a T 0 a
j =1 k =1 a =1
f
abc
abc
a =1
{W% a i }
u b c a b c ( , t )*
j = 1, 2, , f
(11.7)
Dij =
t
caaj
+ Rabi
t uab cabuab
Rabj
ai
a =1
ab
i = 1, 2, , f
k =1 a =1
i = 1, 2, , f
) ! k*
t
j = 1, 2, , f
(11.8)
ka (a a0 ) + ai
kaaj
Kij = aij
a =1
a =1
t
t uab kab ( ab ab0 ) + Rabi
t uab kabuab
+ Rabij
Rabj
ab
ab
t
t I uabuab
kab ( ab ab0 ) / ab *
+ Rabi
Rabj
ab
f a ( , t ) + ai
f ad
( , t ) dj
aij
a =1
a =1 d =1
t ubc f abc ( , t )
Raij
abc
t
t I ubcubc
f abc ( , t ) / bc
Rai
Rbcj
abc
t ubc f abcd
( , t ) dj
Rai
abc d =1
t
*
A%aij ubc abc ( , t )
abc
{ }
abc ( , t ) / bc *
{ } ( I ubcubct ) Rbcj
W%ai
abc
i = 1, 2, , f
j = 1, 2, , f
(11.9)
n
*
t
{ }
abc d =1
f f
j =1k =1a=1
( )
*
f n
t * *
*
!
!
caaj
! *j
ai
k j
j =1a=1
t
t uabcabuab
ka (a a0 ) Rabi
t uabkab ( ab ab0 )
Rabi
Rabj ! *j ai
a=1
ab
ab
( )
i = 1, 2, , f (11.10)
( )
* fa *,t + Rai
t ubc fabc *,t
+ gtWaiT0a JaT0ta r0 + ai
a=1
a=1
abc
t
*
+ W%ai u bc abc *,t
abc
{ }
( )
( )
( )
( )
where the notation f a * , t , f abc * , t , and abc * , t signify that the applied forces and
torques f a ( , t ) , f abc ( , t ) , and abc ( , t ) are evaluated for the current geometry, but may
still be variable functions of time.
With these definitions of the coefficient matrices in Eqs. (11.7), (11.8), and (11.9) and the
column matrix of applied forces in Eq. (11.10), we are now able to express the linearized
equations of motion, from Eq. (11.6), in the very compact form
( )
Mv! + Dv + Kx = F * , t
(11.11)
where x is a column matrix of the changes xi ( t ) which are experienced by the f generalized
coordinates i* after time t * and v is a column matrix of the changes in velocity over and above
their values of ! i* at time t * as expressed in Eqs. (11.2). This set of differential must be solved
subject to the initial conditions that, at time t * where t = 0 , we have x = v = 0 . It must be
emphasized again that the coefficient matrices and the column vector of generalized forces have
all been evaluated numerically at time t * and, for a short time interval t , are treated in Eq.
(11.11) as independent of changes in geometry.2
By reviewing the Eqs. (11.7), (11.8), and (11.9) we see that these coefficient values can not
change unless or until the system moves to a new position, or the velocities ! * change.
Experience also shows that, even for complex mechanical systems, these values are usually weak
functions of system geometry and do not change in surprising or dramatic fashion. Unless the
system geometry changes, say by changes in x of a 0.25 radian (or length unit) or more, it is not
likely that these coefficient values will change noticeably, even if they are reevaluated. The same
holds true for the geometric factors in Eq. (11.10). However, depending on the application to
which the system is subjected, the applied forces and torques, f a * , t , f abc * , t , and
( )
( )
Remember that the variation of f a ( * , t ) , f abc ( * , t ) , and abc ( * , t ) with changes of geometry are
( * , t * ) , and
approximated to first order and included in the stiffness matrix through values of f ad ( * , t * ) , f abcd
* *
( , t ) as defined in Eqs. (11.5).
abcd
( )
abc * , t may be large and/or quickly changing, perhaps even impulsive, functions of time.
M FF
M
SF
M FS v!F DFF
+
M SS v!S DSF
DFS vF K FF
+
DSS vS K SF
K FS xF FF
=
K SS xS FS
(11.12)
The top submatrices describe the NF equations necessary to solve for the motions of the
FGCs; the bottom submatrices represent the NS equations for the SGCs. If we expand the top
equations and rearrange them into the usual form, putting known information on the right of the
equal sign, we have
M FF v!F + DFF vF + K FF xF = FF M FS v!S DFS vS K FS xS = GF
(11.13)
for the FGCs. Once these are solved for xF , vF and their derivatives, the remaining equations
FS = M SF v!F + M SS v!S + DSF vF + DSS vS + K SF xF + K SS xS
(11.14)
can be evaluated to find FS ; these give the driving forces and torques that must be applied at the
SGC joint variables in order to actually achieve the SGC motions which are specified. Thus all
the equations are useful, but only those in Eqs. (11.13) need to be solved as differential
equations. That is, only these need to be integrated. Those in Eqs. (11.14) need only to be
evaluated numerically. However, this last set is still important in the sense of its engineering
significance.
Problems
11.1
Continue from the results of Problem 3.1 through 8.1, using the assumptions of Problem
10.1 and the following numeric data: l = 5 in, m = 9.6522 lb, k = 15 lb/in, D 0 = 20 in.
Find the linearized equation of motion about the position where = 30 .
11.2
Continue Problem 11.1 and find the equation relating W and such that ! = !! = 0 . Plot
a graph of W versus for the range 85 0
ka (a a 0 ) + Rabi
t uab kab ( ab ab0 )
ai
a =1
ab
f a ( )
= g tWaiT0a J aT0ta r0 + ai
a =1
i = 1, 2, , f
a =1
t
t ubc f abc ( ) + W"ai ubc abc ( )
+ Rai
abc
abc
{ }
Here we assume that applied loads are not time-varying. However, they may still be functions of system
geometry. Therefore, until the final position is found, their final values may not be known.
unbalanced loads. From these equations we hope to seek out a position for the generalized
coordinates of our system for which these generalized forces Fi become zero.
n
ka (a a 0 ) Rabi
t uab kab ( ab ab0 )
Fi = ai
a =1
ab
n
f a ( )
+ g tWaiT0 a J aT0ta r0 + ai
a =1
i = 1, 2, , f
(12.1)
a =1
t
t ubc f abc ( ) W"ai ubc abc ( )
Rai
abc
abc
{ }
Let us now assert the hope that the true position of static equilibrium is reasonably close to
the current geometry or, said in another way, there may be multiple solutions and we will be
satisfied with finding the equilibrium position that is closest to the current geometry. With this
in mind, we expand Eqs. (12.1) in Taylor series to first order, dropping all quadratic and higher
order terms, just as we did in Chapter 11. This gives us a new formula for the generalized forces
Fi at a new position, hopefully near the current position. We then set these generalized forces at
the new position to zero with the hope that this position will more nearly describe an equilibrium
position.
f
Fi *
j 0
j =1 j
Fi +
f
n
= a i k a ( a a 0 )*
a =1
f
n
*
aij k a ( a a 0 ) j
j =1 a =1
*
a i k a a j j
j =1 a =1
R a tb i u a b k a b ( a b a b 0 )* R a tb ij u a b k a b ( a b a b 0 )* j
j =1 a b
ab
f
R a tb i u a b k a b u at b R a b j* j R a tb i I u a b u at b R a b j k a b ( a b a b 0 ) / a b * j
j =1 a b
j =1 a b
+ g t W a i T 0 a J a T 0t a r0* +
a =1
a =1
t
t
*
g A a ij + W a i W a j T 0 a J a T 0 a r0 j
j =1 a =1
f
n
+ a i f a ( )* +
f
n
*
aij f a ( ) j +
j =1 a =1
*
a i f a d ( ) d j j
j =1 a =1 d =1
+ R a ti u b c f a b c ( )* +
t
*
R a ij u b c f a b c ( ) j
j =1 a b c
abc
f
t
t
*
t
*
R a i I u b c u b c R b c j f a b c ( ) / b c j + R a i u b c f a b c d ( ) d j j
j =1 a b c
j =1 a b c d =1
+
+
abc
f
{W" a i }
f
u b c a b c ( )* +
{ A" a ij }
j =1 a b c
u b c a b c ( )* j
f
n
t
t
I u b c u bt c R b c j a b c ( ) / b c * j + W" a i u b c a b c d ( ) d j* j
W" a i
j =1 a b c
j =1 a b c d =1
From this expansion we collect all zero order terms; this gives an expression for Fi identical
Fi
j
j =1 j
f
ka (a a 0 ) j ai kaaj j
= aij
*
j =1 a =1
j =1 a =1
t
t uab kab ( ab ab 0 ) j Rabi
t uab kabuab
j
Rabij
Rabj
*
j =1 ab
j =1 ab
t
t ( I uabuab
Rabi
) Rabjt kab ( ab ab0 ) ab j
j =1 ab
f
j =1 a =1
f
f a ( ) j + ai f ad ( ) dj j
+ aij
*
j =1 a =1
j =1 a =1 d =1
j =1 abc
j =1 abc
f
( ) dj j
+ Rait ubc f abcd
*
j =1 abc d =1
f
t
+ A"aij ubc abc ( ) j + W"ai
j =1 abc
j =1 abc
f
{ }
n
t
bc ubc ) Rbcj abc ( ) bc j
{ } ( I u
t
( ) dj j
+ W"ai ubc abcd
j =1 abc d =1
{ }
2.
Note the sign reversal; this is required since, when we performed the Tayler series expansion, we brought all
terms to the right side of the equation while K is usually on the left.
ka (a a 0 ) + ai kaaj
K ij = aij
a =1
+ R u k
t
abij ab ab
ab
a =1
t
t uab kab uab
Rabj
( ab ab 0 ) + Rabi
ab
t
t ( I uab uab
+ Rabi
) Rabjt kab ( ab ab0 ) ab
ab
f a ( ) ai f ad ( ) dj
aij
a =1
a =1 d =1
R u f
t
abij bc abc
abc
f abc ( ) bc
( ) dj
Rait ubc f abcd
abc d =1
t
A" aij ubc abc ( ) W"ai
abc
abc
{ }
n
{ } ( I u
t
bc bc
t
( ) dj
W"ai ubc abcd
{ }
) R
bcj
abc ( ) bc
i = 1, 2, , f
j = 1, 2, , f
abc d =1
(12.2)
and we note with satisfaction that this matches our previous definition in Eqs. (11.9).
Fitting the pieces back together, these definitions allow us to write our Taylor series
expansion of Eqs. (12.1) in the form
K F
(12.3)
which, of course, we only expect to be approximately equal since we have dropped the higher
order terms of the Taylor series. We can, however, proceed to solve Eq. (12.3) as follows
K 1F
(12.4)
and then use these corrections to modify the generalized coordinate position values
i i* + i
i = 1, 2, , f
(12.5)
Once the generalized coordinate positions are modified, we must apply the numerical
technique discussed in Chapter 6 to update the dependent joint variables, the transformation
matrices, and all other geometric data. When this is done the system should be at a new position
which is closer to equilibrium than the previous position, but probably still not exact.
How closely we have achieved equilibrium can now be determined by reevaluating the
unbalanced generalized forces of Eq. (12.1). From the magnitudes of these forces and the
position changes of Eq. (12.4) we can evaluate whether we have achieved an equilibrium
position within desired accuracy. If not, we can recursively apply Eqs. (12.2), (12.4), (12.5), and
the position solution of Chapter 6 until the desired accuracy is achieved.3 We then declare that
an equilibrium position has been found.
Of course, the process just described is a traditional Newton-Raphson numerical iteration
process looking for a zero of the function Fi. As with all Newton-Raphson processes, it has an
excellent (quadratic) convergence rate once in the vicinity of a solution. However, it also
sometimes experiences difficulties as will be discussed below.
3.
The IMP software uses a default accuracy of i 105 . The user can override this limit if desired.
vector and scale its components proportionally smaller if it is beyond a chosen limiting size.
This may slow convergence to equilibrium, but it dramatically reduces the chance of failure of
the iterative position solution.
(a)
P
(b)
4.
The IMP software uses a default limit of 1.0 (radian or length unit) for this test. The user may override
this limit if desired.
V =V* +
i =1
V
i + $
i
(12.6)
and, from the Lagrange equations, Eqs. (10.1), we know that V / i = Fi . Therefore, Eq.
(12.6) can be written as
V = V V * = F t 0
(12.7)
Therefore, the dot product of the vector of generalized unbalanced forces and the vector of
generalized position increments found from Eq. (12.4) tell us whether the system potential
energy increases or decreases during a change of position. Thus, we have found a very
convenient test to tell whether our search is progressing toward or away from a position of lesser
potential energy. However, this test does not tell us how to cure the problem when the test shows
that potential energy will increase.
But, looking again at Eq. (12.6), we see that the generalized unbalanced force vector F is
equal to the gradient of the potential energy function, of which we hope to find a minimum.
Also, a plethora of numerical methods exist in the literature which can generally be categorized
as steepest descent methods.5 All of these, in one way or another, require that, from some
starting point, the search for the minimum of a function should proceed in the direction of the
negative gradient of the function. For our situation, this gives
i = i* Fi
i = 1, 2, , f
(12.8)
where controls the size of the vector increment of the generalized positions.
The increment size may be chosen in a variety of ways depending on which search method
is chosen, and much has been written about the advantages and tradeoffs of the many methods
available, and their rates of convergence toward a solution. However, in our specific application,
we already know that, once we find the neighborhood of a valid solution, the Newton-Raphson
method of Eqs. (12.4) and (12.5) exhibits quadratic convergence and none of the steepest descent
methods improve on this. Therefore, we only need Eq. (12.8) to avoid searching toward false
solutions, that is, solutions with unstable equilibrium, as indicated by failure of the test of the
inequality (12.7).
Our newly modified algorithm starts each search increment by forming Eq. (12.4). Next the
inequality (12.7) is tested and, if the test is passed, the generalized coordinates are incremented
according to Eq. (12.5). For those situations where the test fails, however, Eq. (12.8) is applied
instead with an appropriate value of . The IMP software uses a default step size of = 1.0 / F .
This gives the system a noticeable change in position (particularly since the rotational
5.
See, for example, W. H. Press, et. al., Numerical Recipes: The Art of Scientific Computing, Cambridge
University Press, 1986, Chapter 10.
generalized coordinates are measured in radians) and, hopefully, the search will then continue
toward a position of stable equilibrium by Eq. (12.4).
[ K ]{ } = { F }
Let us suppose that we apply a Gauss-Jordan row reduction process with full pivoting for the
solution. As we proceed, the augmented K matrix develops as follows
K111
1
K 21 K11
0 K11
I K 21
K12
K 22
F1 I
K111 K12
=
F2 0 K 22 K 21 K111 K12
K111 F1
1
F2 K 21 K11 F1
At each step, we seek out another pivot element from the lower-right portion of the matrix,
the portion which contains K 22 K 21 K111 K12 and attempt to continue the reduction. If at some
step we find that all elements of K 22 K 21 K111 K12 are too small to consider, then the reduction
process must cease.6 At that time the equations have been reduced to the form
I K111 K12 1
K111 F1
1
2 F2 K 21 K11 F1
0
That subset of the FGCs which, as the result of pivoting, has ended in the subgroup { 2 } can
now be treated in either of two ways: We can set these { 2 } to zero in the hope that they may
be corrected in the next step, or we can use the corresponding unbalanced generalized forces
{F2 K 21 K111 F1} and Eq. (12.8) for that subgroup and then use the solution of the upper equations,
that is { 1} = { K111 F1 K111 K12 2 } for the others.
Once the search for equilibrium concludes, any generalized coordinates that remain in the
subsgroup { 2 } of the FGCs is said to be in neutral equilibrium. If Eq. (12.8) is used as the
basis for its increment, it is important that such steps be counted and that an upper limit be set.
As an example, suppose that our vehicle with the load in its luggage compartment is positioned
on a smooth horizontal road and suppose that, as the result of numerical truncation error, a very
small unbalanced load is calculated in the forward direction while there is no fore and aft
6.
The IMP software uses 10 5 for this test. The user can override this limit if desired.
stiffness for the vehicle; then Eq. (12.8) will produce a small forward movement of the vehicle.
Next, the same unbalanced load is found again, and another small movement results. When this
happens repeatedly, no progress is made which can relieve the deadly embrace and an endless
loop is the result. Thus an increment counter with an upper limit is of critical importance.7
7.
A default upper limit of 25 steps is used by the IMP software for this test. The user can override this limit if
desired.
10
(13.1)
and these must be solved along with Eq. (11.2), to ensure that
vF = x! F ! F*
(13.2)
1.
L. Euler, Nova Acta Academiae Scientiarum Petropropolitanae, vol. 5, 1754-1755, pp. 164-204.
2.
J. L. Lagrange, Miscellanea Taurinensio ou Mlanges de Turin, vol. 1, Turin Mathematical Society, 1759.
3.
Daniel Bernoulli (1700-1782), son of Johann Bernoulli, "Reflexions et eclaricissement sur les nouvelles
vibrations des corde," Memories de l'Academie Royale des Sciences et Belles Letters, Berlin, 1753.
4.
5.
Baron Jean Baptiste Joseph Fourier (1768-1830), Thorie analitique de la chaleur, Euvres, vol. 1, Paris, 1822.
Here we consider only the equations dealing with the NF free generalized coordinates (FGCs)
since the motions of the specified generalized coordinates (SGCs) are known a priori.
Since we believe that our system exhibits periodic motion for its transient response to a
disturbance, we attempt to use a harmonic form for a trial solution
xF = { } e t
(13.3)
vF = { } e t ! F*
(13.4)
Substituting these into the homogeneous form of Eq. (13.1) and dividing by the common factor
of et leaves
2 M FF + DFF + K FF = 0
(13.5)
However, for this equation to have a nontrivial solution, the coefficient matrix must be singular
det 2 M FF + DFF + K FF = 0
(13.6)
Since this determinant is of size (NFNF) with elements which are each quadratic functions of
, it produces a polynomial of degree (2NF) in . Assumedly, the (2NF) values of which satisfy
as roots of this equation could be found by a numerical search procedure.6 However there is a
better way.
Instead, we return to Eq. (11.13), including the applied forces. Augmenting these with Eq.
(13.2), in the form of the identity M FF x! F M FF vF = M FF! F* , this set of differential equations can
be written in the form
0
M
FF
M FF v!F M FF
0 x!F DFF
0 vF M FF! F*
=
K FF xF GF
However, by adding the identity DFF x!F DFF vF = DFF! F* to the second set of equations, they
become7
0
M
FF
M FF v!F M FF
DFF x!F 0
0 vF M FF! F*
=
K FF xF DFF! F* + GF
(13.7)
6.
This equation could have been studied in depth but, historically, this was not to be. Instead, the parallel linear
form shown in Eq. (13.12) below has received much more attention.
Notice that, even though vF is small, x!F may be large. This modification is important, however, since it makes
the coefficient matrices symmetric, but still follows the linearization assumptions of Chapter 11.
0
A=
M FF
M FF
DFF
and
M
B = FF
0
0
K FF
(13.8)
v
y= F
xF
(13.9)
of size (2NF), our system can be described by the first-order set of differential equations8
M FF! F*
Ay! By =
*
DFF! F + GF
(13.10)
y = {} e t
(13.11)
Substituting this into the homogeneous form of Eq. (13.10) and dividing by the common factor
of et leaves
[ A B ] = 0
(13.12)
In the form shown, where the coefficients are linear expressions in , Eq. (13.12) is called the
generalized eigenvalue problem. Alternatively, if it is premultiplied by A1 , it can be put into
the form
1
M FF
DFF
I
I
1
M FF
K FF
{} = 0
0
(13.13)
which is called simply the eigenvalue problem. This form of equation has been studied
extensively over many years and software for its solution exists in almost all numerical software
8.
The vector space for this form, which treats vF and xF as independent, is referred to as "state space".
libraries.9
For either equation to have a nontrivial solution the coefficient matrix must be singular; that
is, starting from Eq. (13.12),
det [ A B ] = 0
(13.14)
The expansion of this determinant yields a polynomial of degree (2NF) in which is called the
characteristic or secular equation of the system. This equation can be solved for (2NF) values i
which are called characteristic values or eigenvalues of the system. Since the A and B matrices
are real and symmetric, it has been proven that the eigenvalues must either be real or must occur
in complex conjugate pairs.10
Assuming, as we now do (temporarily), that all eigenvalues are distinct, they can be arranged
to form a diagonal matrix11
0
1 0
= 0 " 0
0 0 2 NF
Each of the eigenvalues i can, in turn, be back-substituted into either Eq. (13.12) or Eq.
(13.13) as appropriate and solved for a column vector i called an eigenvector. However,
recalling Eq. (13.14), the coefficient matrix of Eq. (13.12) is singular; therefore, each eigenvector
may only be determined to the nearest arbitrary multiplying constant. However, these
eigenvectors can be arranged in the same order as the diagonal elements of to form columns
of another (2NF 2NF) matrix
= [1 # i # 2 NF ]
which is called the modal matrix.
When we reconstruct the general form of Eq. (13.11) so that all eigenvalues and eigenvectors
are included, we get the full solution of the homogeneous linearized equations of motion
9.
For theoretical background, see for example J. H. Wilkinson, The Algebraic Eigenvalue Problem, Oxford
University Press, New York, 1965. As one example of software, EISPACK is a public domain collection of
FORTRAN subroutines for computing the eigenvalues and/or eigenvectors of various types of matrices. It
includes software for both Eq. (13.12) and Eq. (13.13). EISPACK was developed with the support of the
National Science Foundation in the mid-1960s and was one of the first completely systematized collections of
linear algebra software. Since that time, however, much has changed in computer architectures and
mathematical algorithms, and a newer linear algebra package, LAPACK, has been developed to supercede
EISPACK. For further information, see http://www.netlib.org/lapack/
10.
See, for example, F. B. Hildebrand, Methods of Applied Mathematics, Prentice-Hall, Inc., 2nd ed., 1965.
11.
y = exp ( t ) C
(13.15)
where exp ( t ) is a diagonal matrix with values of ei t in the diagonal entries, t is time, and C
is a column of 2NF yet unknown constants which depend on the initial conditions.12
Even though we have manipulated Eq. (13.12) into the form called the generalized
eigenvalue problem, so that we can take advantage of available software for solution, we should
understand that the eigenvalues i which are found must be the same as if we had continued with
the solution of Eq. (13.6) since the same physical system is described in both cases.
(13.16)
Although this might seem like a reverse manner of making a definition, recalling Eq. (13.15)
shows that this gives
z = exp ( t ) C
(13.17)
This means that, if only one of the constants Ci is nonzero, then only that single modal
coordinate, zi, becomes active and it operates with frequency and damping defined by the ith
eigenvalue i. All other modal coordinates remain motionless.13 But even more, if we now
return to Eq. (13.16) we see that each of the y coordinates (the NF FGC displacements and
velocities) respond at this same characteristic normal mode frequency and damping rate, but with
different amplitudes defined by the elements of i, the ith eigenvector. When this happens, the
system is said to be operating in one of its principal or normal modes.
Next let us consider two copies of Eq. (13.12), one corresponding to the jth eigenvalue and
the other corresponding to the kth eigenvalue.
12.
Note that these constants compensate for the limited ability to determine each eigenvector to only an arbitrary
multiplying constant.
13.
Since eigenvalues occur in complex conjugate pairs, the ideas here must be understood as referring to a single
real eigenvalue or a single complex conjugate pair.
j A B j = 0
[ k A B ]k = 0
Let us premultiply the first of these by kt and the second by tj .
kt j A B j = 0
tj [ k A B ]k = 0
If we now subtract the second equation from the transpose of the first, remembering that A and B
are symmetric, we obtain
k ) tj A k = 0
(13.18)
This equation says that, for j k , since we have assumed that j k , we must have
A k = 0 .14 Furthermore, if we consider the form
t
j
t [ A B ] = 0
(13.19)
This matrix must be square and diagonal. If we define two new matrices
A = t A
and
B = t B
(13.20)
then, Eq. (13.18) shows that A must be a diagonal matrix since it has zeroes for all off diagonal
elements, where j k . Also, from Eq. (13.19), B must be diagonal as well. Therefore, Eq.
(13.19) are called the orthogonality conditions. We see here that the modal matrix is not
orthogonal in the usual sense, since 1 t , but it is said to be orthogonal with respect to both A
and B. It diagonalizes both A and B.
Recalling that each of the eigenvectors is only determined to the nearest multiplying constant.
It can now be scaled by an arbitrary constant. Therefore, we are free to divide each eigenvector
i by it Ai , thus scaling them so that A becomes an identity matrix.15 Then Eq. (13.19) shows
that we will have B =. If we then premultiply Eq. (13.10) by t and recall Eq. (13.16), we find
that the equations of motion, in modal coordinates, become
*
M FF! F
z! z = t
*
DFF! F + GF
(13.21)
14.
15.
If we consider Eq. (13.8) we see that the only way in which this scale factor can be zero is if mass has been
ignored for enough bodies that [MFF] is singular. That is, such that it is possible to find a set of non-zero
velocities for the FGCs for which the system has no kinetic energy. This is considered a modeling error. The
user should be notified and requested to modify the model with appropriate mass values.
Here we see that we have a set of (2NF) equations. However, they are now uncoupled and can
be considered either together or separately.
*
M FF! F
z!i i zi = it
*
DFF! F + GF
i = 1, 2,# , 2NF
(13.22)
MFF! F*
s
t
sz ( s ) z0 z ( s ) = 1
D ! * + F ( s ) M s2 x ( s ) sx x! D sx ( s ) x K x ( s )
FF F
F
FS
S
S0
S0
FS S
S0
FS S
s
where s represents the Laplace transform variable, xS 0 and x!S 0 are the initial positions and
velocities of the SGCs, z0 are the initial values of the modal coordinates, and z(s), FF ( s ) , and
xS(s) are the Laplace transforms of the modal coordinates, of the generalized forces, and of the
SGC positions, respectively.
Remembering that the initial conditions require that xS 0 = 0 and x!S 0 = ! S* , this equation can
be rearranged to read
MFF!F*
s
[ sI ] z ( s) = z0 +t
1 D ! * + M ! * + F ( s) s2M + sD + K x ( s)
FS S
F
FS
FS S
FS
s FF F
(13.23)
However, for what is usually called frequency response, we are only interested in the
sustained response of our system after the transients have been damped to zero. Therefore, we
eliminate the initial condition terms of the above equation.
M FF! F*
s
[ sI ] z ( s ) = t
1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FS S
F
FS
FS
FS S
s FF F
(13.24)
M FF! F*
s
z ( s ) = [ sI ] t
1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FF F
FS S
F
FS
FS
FS S
(13.25)
M FF! F*
s
y ( s ) = [ sI ] t
1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FF F
FS S
F
FS
FS
FS S
M FF! F*
vF ( s )
1 t
= [ sI ]
xF ( s )
1 D ! * + M ! * + F ( s ) s 2 M + sD + K x ( s )
FF F
FS S
F
FS
FS
FS S
(13.26)
Remembering that the matrix [ sI ] is diagonal and can be inverted term by term, we find that,
in index notation, Eq. (13.26) becomes
f
NF + j,k NF
NF +i,k NF jk NF
f
*
*
*
!
!
D
F
s
jh
h
NF
+
j
,
k
jh
h
NF
+
j
,
k
j
s h=1
k =1 ( s k ) j =1 s h=1
h=NF +1
h=NF +1
2NF
xi ( s) =
i = 1,2,#, NF (13.27)
2 NF
NF jk
s
j =1
( sNF )
k =1
+ i ,k
k
NF
M
h =1
! h* +
jh
NF + j , k
s
NF
! h* + NF + j , k
jh
h =1
NF
h=
i = 1,2,#, NF
M jh! h* + NF + , k F ( s ) = 1,2,#, f
+1
But, if the excitation comes from the motion of SGC x alone, then the response of the FGC xi is
f
NF + j ,k NF
NF +i,k NF jk NF
*
Djh! h* +NF + j ,k M jh! h* NF + j ,k s2 M j + sDj + K j x ( s )
M jh! h +
s h=1
k =1 ( s k ) j =1
h=NF +1
s h=1
2NF
xi, ( s ) =
i = 1,2,#, NF ; = NF +1,#, f
*
Djh!h* +NF + j,k M jh!h* +NF + j ,k Fj ( s) ( s2M jh + sDjh + K jh )xh ( s)
M jh!h +
s h=1
k =1 ( s k ) j =1 s h=1
h=NF +1
h=NF +1
2NF
xi ( s) =
i = 1, 2," , NF
(14.1)
We must now consider how we will invert this Laplace transform and thereby return our
solution to the time domain. By definition, the inverse Laplace transform can be written as
follows
xi ( t ) =
+ j
2 j
xi ( s ) e st ds
i = 1, 2," , NF
(14.2)
which is called the Bromwich integral1 or, sometimes, the Fourier-Mellin integral.2
For a function such as xi(s) which is defined over the complex s plane, a location where the
denominator becomes zero produces an infinite value and is called a pole of the function. As
shown in Figure 14.1a, Eq. (14.2) is a line integral in the complex s plane taken along a line
parallel to the imaginary axis and to the right of all poles of the integrand.
It is possible to evaluate an approximate value for this integral by numeric integration;
however, there is a better way which computes more quickly and avoids approximation. The line
1.
Thomas John l'Anson Bromwich (1875-1929), Saint John's College, Cambridge, England.
2.
Robert Hjalmar Mellin (1854-1933), first professor of mathematics, Technical University of Finland.
integral of Eq. (14.2) can be extended along a curve at infinity surrounding the left half-plane as
shown in Figure 14.1b, thus forming a simple-closed curve, called a Jordan curve, which
encloses all of the poles.3 It has been shown that the value of the portion of the integral of Eq.
(14.2) along this arc at infinity is zero and does not change the value of the total integral.4
Therefore, the integral sought is equal to the integral around the closed curve shown,
xi ( t ) =
x (s)e
2 j #
i
st
i = 1, 2," , NF
ds
NF + j,k NF
st
NF +i,k NF jk NF
f
*
*
!
!
!*
M
+
D
jh h
jh h
NF + j ,k M jh h +NF + j ,k Gj ( s ) e ds
#
2 j k =1 ( s k ) j =1 s h=1
s h=1
h=NF +1
i = 1, 2," , NF (14.3)
1
2NF
Imag(s)
Imag(s)
Poles
R=
Real(s)
Real((s)
Figure 14.1 (a) Integration path for Bromwich integral; (b) Jordan curve.
3.
Marie Ennemond Camille Jordan (1838-1922), Cours d'Analyse de l'cole Polytechnique, 1887. Jordan of the
Jordan curve is the same as for the Jordan normal form of Section 14.3.
4.
See, for example, Ruel V. Churchill, Complex Variables and Applications, McGraw-Hill Book Company, Inc.,
1960.
G j (s) =
=1
g j ( s )
j = 1, 2," , NF
( s 2NF + )
(14.4)
where NP represents the number of additional values of which are identified as zeroes of the
denominators of Eq. (14.4) and, through these, of Eq. (14.3). Let us also require that these
additional poles be numbered consecutively to follow the numbering of the eigenvalues. In
keeping with our current assumption that the eigenvalues of our system are distinct, we assume,
temporarily, that the additional poles of the forcing functions are distinct from each other, from
the origin, and from the eigenvalues.6 Thus all (2NF+NP+1) poles of the response function are,
for now, simple poles.
If a function f(s) has an isolated singular point at the location s = m then the value defined
by
Res f (m ) = ( s m ) f ( s )
(14.5)
s = m
is called the residue of the function at that location. With this definition, Cauchy's7 residue
theorem8 states that the integral around a closed curve of a complex function is equal to 2j times
the sum of the residues of the funtion at all poles surrounded by the curve.9 Where there are only
simple poles, this says that
# f ( s ) ds = 2 j {( s ) f ( s )}
m
s = m
(14.6)
Starting from Eq. (14.3), for our case the residue theorem can be used to replace the integral
with a summation
5.
See, for example, G. D. Korn and T. M. Korn, Mathematical Handbok for Scientists and Engineers, McGrawHill Book Company, Inc., 1961, Section 1.7-4, pp. 21-22.
6.
7.
Augustin Louis Cauchy (1789-1857), Sur un nouveau genre de calcul analogue au calcul infinitsimal, 1826.
8.
There is a (bad) joke about a mathematician who named his dog Cauchy because it left a residue at every pole.
xi ( t ) =
2 j 2NF NF NF NF +i,k
(j,kMjh +NF +j,kDjh )!h*
2 j k=1 j=1 h=1 k
s=m
(14.7)
where the first line results from the pole at the origin.
Careful evaluation shows that, when the m limit is taken for s in the terms of the second
line, the numerator produces zero for ( s m ) for every term of the summation over m except
when m = k or when m = 2NF + h . For those terms the ( s m ) factor in the numerator,
which evaluates to zero for most terms, cancels one of the factors in the denominator. Also the
first line combines with the first portion of the second line, leaving
xi ( t ) =
2 NF
NF NF
2 NF
NF
k =1
j =1
NF +i ,k
k
k =1
( j ,k M jh + NF + j ,k D jh )! h* ( e t 1) + NF +i ,k NF + j ,k
2 NF
NF
NP
g jh (k )
k =1
j =1
h =1
( k 2NF +h )
j =1 h =1
+ NF +i ,k NF + j ,k
2 NF
NF
NP
k =1
j =1
h =1
ek t + NF +i , k NF + j , k
NF
h=
M jh! h*ek t
+1
g jh (2 NF + h )
( 2NF +h k )
e2 NF +ht
i = 1, 2," , NF
2 NF
( e t 1)
k
k =1
NF +i ,k
k
2 NF
NF
k =1
j =1
NF NF
+ NF +i ,k NF + j , k
j ,k
M jh + NF + j ,k D jh )! h*
j =1 h =1
2 NF + h t
NP g ( ) e k t g (
f
jh
k
jh
2 NF + h ) e
* k t
!
M jh h e +
( k 2 NF + h )
h =1
h =NF +1
i = 1, 2," , NF
(14.8)
A little reflection shows what powerful advantages we have achieved by use of the residue
theorem for performing the integral of Eq. (14.2). We note that the integration required for the
inversion of the Laplace transform has become a summation over a discrete set of terms, and no
approximation has been required. Also, this formula includes terms resulting from response of
the system to frequencies introduced by the forcing functions.
Although the formula may look a little foreboding, it is really quite straightforward.
Typically, the several terms of the nested summations combine numerically into damped
sinusoidal oscillations at NF frequencies defined by the complex conjugate pairs of eigenvalues,
and NP more response terms with frequencies and damping values defined by the applied forcing
functions. Although finding the eigenvalues is thought by some to be a time-consuming
calculation, it must be remembered that even a complex mechanical system of rigid bodies
usually has NF of less than ten. Therefore, the computation is quite rapid.
(14.9)
s = m
in the inverse transform of Eq. (14.7). These must be replaced with n terms of the form
d
= 0 ds
n 1
2 j
{( s m )
f (s)
t ( n 1)
!
e st
(14.10)
s = m
However, further expansion of this case is left to the reader as an exercise. Instead, we will
extend the modal solutions of Chapter 13 to include the case of repeated eigenvalues.
For the class of systems considered in this text, we found in Eq. (11.12), that the linearized
equations of motion for the free generalized coordinates are
M FF v!F + DFF vF + K FF xF = FF M FS v!S DFS x!S K FS xS = GF
and, in Eq. (13.7), we wrote this in first-order form
0
M
FF
M FF v!F M FF
DFF x!F 0
0 vF M FF! F*
=
K FF xF DFF! F* + GF
v
y= F
xF
and, multiplying these equations by the inverse of the lead matrix, we can put them into the form
1
M FF
DFF
y!
I
1
1
M FF
GF
M FF
K FF
y
=
*
0
! F
(14.11)
From the values at the linearization set point, the initial conditions for this system are that, when
t = 0 , then vF = xF = y = 0 .
As we pointed out in Eq. (13.13), the homogeneous form of this equation gives an eigenvalue
problem, and has the same eigenvalues and eigenvectors as previously found from Eq. (13.12).
However, in this Section, we are no longer willing to assume that the eigenvalues are distinct.
Nevertheless, we can still define a modal matrix , as we did in Eq. (13.16), and define a set of
modal coordiantes z
y =z
(14.12)
z!
1
1
M FF
GF
M FF
K FF
z
=
*
0
! F
1
1
M FF
K FF
1 M FF GF
z
=
*
0
! F
= 1
1
M FF
K FF
and
1
M FF
GF
*
! F
= 1
(14.13)
z! z =
(14.14)
In previous Sections, where we assumed that all eigenvalues are distinct, the matrix formed
in Eq. (14.13) was of size ( 2 f 2 f ) and became diagonalized with values equal to the
eigenvalues on its diagonal. Now, however, where we consider that some of the eigenvalues may
be repeated, this diagonalization may not be possible. In such a case, the system is said to be
defective. Still, even with a defective system, it is always possible to find a matrix which
reduces the matrix to what is called Jordan normal form.10,11,12 Such a form is block diagonal
10
Marie Ennemond Camille Jordan (1838-1922), Trait des substitutions et des quations algebraique, Paris,
1870, pp. 114-125. This is the same Jordan as for the Jordan curve of Section 14.1.
11
B. Kgstrm and A. Ruhe, "An Algorithm for Numerical Computation of the Jordan Normal Form of a Complex
Matrix," ACM Transactions on Mathematical Software, vol. 6, no.3, September 1980.
12
B. Sridhar and D. Jordan, "An Algorithm for Calculation of the Jordan Canonical Form of a Matrix," Computers
and Electrical Engineering, vol. 1, no. 2, 1973, pp. 239-254.
M DFF
I
= 1
1
FF
1
0
M K FF
=
%
0
0
1
FF
2
%
0
0
" 0
& %
" m
"
(14.15)
k
0
k =
%
0
k & %
& & 1
" 0 k
1
"
k = 1, 2," , m (14.16)
Each k block is of size ( mk mk ) to match the number of times that each distinct eigenvalue is
repeated, and m1 + m2 + " + mm = 2 f . Each Jordan block has mk values of the eigenvalue k on
its diagonal and, for blocks where mk > 1, the block has unit values on its first superdiagonal. All
other entries of the block are zeroes.
Usually each k block is of size mk = 1 ; in this, the usual case, k becomes an eigenvector,
and k contains one distinct eigenvalue on the diagonal as dealt with above. However, with a
defective system, the Jordan normal form is the simplest form possible for the equations of
motion of Eq. (14.14).
There are now mk equations of motion corresponding to each Jordan block, and each set is of
the form
z!k k zk = k
k = 1, 2," , m (14.17)
As long as the value of k for a particular Jordan block is non-zero, the homogeneous
equations are
z!k k zk = 0
and, since k may be repeated, the form of the homogeous solution is
{ zk } H
= ek t Z k** ( t ) Ck
1 t "
% & &
0 " 0
( m 1) !
k
t
1
t
( mk 1 )
(14.18)
where
k
0
1
[ k ] =
%
k2
"
( 1)
mk 1
km
&
&
&
2
k
"
(14.19)
Therefore, combining the homogeneous and particular solutions, the complete solution for a
Jordan block with k 0 is
1
zk = ek t Z k** ( t ) Ck [ k ] k
With the initial conditions that, at t = 0 , zk = 0, Eq. (14.18) shows that Z k** ( 0 ) = I and this
1
equation gives Ck = [ k ] k . Therefore, the complete solution for the response of a Jordan
block with k 0 is
zk = ek t Z k** ( t ) I [ k ] k
1
(14.20)
The remaining case is when the value of k for a particular Jordan block is k = 0 . In this
case, the Jordan block of Eq. (14.16) takes the form
0 1 " 0
0 0 & %
k =
% & & 1
0 " 0 0
Equations (14.17) for such a block has a solution of the form
zk = ek t Z k** ( t ) Ck + Z k* ( t ) k
(14.21)
t2
t
t
"
2
mk !
0 & & %
*
Z k ( t ) =
2
t
% & t
t
0 " 0
(14.22)
where
k
With the initial conditions that, at t = 0 , zk = 0, Eq. (14.18) shows that Z k** ( 0 ) = I and Eq.
(14.22) gives Z k* ( 0 ) = 0 . Therefore, Eq. (14.21) shows that Ck = 0 , and the complete solution
for the response of a Jordan block with k = 0 is
zk = Z k* ( t ) k
(14.23)
To summarize the total solution process, we must first reduce our total set of first-order
equations of motion for the system FGCs to the Jordan normal form as shown by Eqs. (14.14),
(14.15), and (14.16). Once the Jordan blocks are identified, we can form the overall modal
response matrix
Z1 ( t )
0
0
Z2 ( t )
Z ( t ) =
%
%
0
0
"
0
&
%
" Z m ( t )
"
(14.24)
where the Z k ( t ) blocks are of size ( mk mk ) as found from the Jordan blocks, and have
values of
ek t Z k** ( t ) I [ k ]1 for k 0
Z k ( t ) =
*
for k = 0
Z k ( t )
k = 1, 2," , m (14.25)
(14.26)
for the total system. From z, Eq. (14.12) gives the state space response vector y which includes
values for both the changes in position x and the changes in velocity v from those at the
linearization set point.
v
x = y = z = Z ( t )
(14.27)
For purposes which will become clear in the next Section, we also have need to find the time
derivative of these, in order to compute the accelerations of the system FGCs.
v!
!
x! = y = z! = Z ( t )
(14.28)
where
Z!1 ( t )
0
0
Z! 2 ( t )
Z! ( t ) =
%
%
0
0
"
0
&
%
" Z! m ( t )
"
(14.29)
!
Z k ( t ) =
Z k** ( t )
for k = 0
k = 1, 2," , m (14.30)
( m 2)
t
0
1
t
"
( m 2)!
0
0
1
&
%
Z k*** ( t ) =
t
% & & &
0 & 0 0
1
0
0 0 " 0
k = 1, 2," , m (14.31)
and
k
10
and the methods of Chapters 6, 7, and 8, the full kinematics of any part of our system becomes
known.
Well, that has been our intention. However, as usual, things are never quite so simple.
Instead of this original goal, we found it necessary to linearize the equations around some set
point, which we did in Chapter 11, and then to solve this linearized set to find Eqs. (14.27). The
intention has been that this set of solutions could be applied repetitively in an incremental time
integration algorithm. However, a major question remains. How large can our time increment
be? If the increment is too large, errors coming from the linearization approximation will
accumulate and the solution will be inaccurate. If the time increment is too small, the algorithm
will operate unacceptably slowly.
The solutions which we found in Eqs. (14.27) are only good as long as our linearization
assumptions hold. The primary assumption has been that the M, D, K, and G matrices remain
essentially constant during each time step. Well, experience shows that this assumption remains
valid as long as (a) the chages in system geometry remain reasonably small, and (b) the time
variation of the forces contained in G are reasonably approximated. However, as the time
increment increases, these assumptions fall more and more into question. Ultimately, there will
be a limit on the time increment for which they hold. The solution to this dilemma, of course, is
to keep the time increment small enough to assure compliance with the assumptions.
Let us declare that we are starting the simulation of our dynamic multi-body system at a
known value of time t=t0, from a known set of FGC positions F ( t0 ) , and with a known set of
FGC velocities ! F ( t0 ) . We can also choose a value for the desired time interval t between
printing or displaying results, and an estimated value for a time interval t t to be used for the
calculation time increment. Then we can apply the following recursive procedure:
1. Evaluate the current values of the SGC positions S ( t ) , velocities ! S ( t ) , and
accelerations !!S ( t ) .
2. Apply the numeric methods of Chapter 6 to insure that all dependent position information
of the system is known precisely at the current time.
3. Evaluate the M, D, and K, coefficient matrices of the system equations of motion using
Eqs. (11.6), (11.7), and (11.8), and the applied forces F from Eq. (11.9), and GF from Eq.
(11.13).
1
1
1
4. Form the coefficient matrices M FF
DFF , M FF
K FF , and M FF
GF of Eq. (14.11).
5. Find the Jordan blocks and the generalized eigenvectors of Eq. (14.15).
6. Form the forcing functions of Eq. (14.13).
7. Find a predicted set of FGC position increments x ( t ) from Eq. (14.27). If any are large,
11
Find all
Find all
16. Test whether t has reached the proper value for the next print and/or output display; if so,
process and output all data as necessary.
17. Test whether time t has reached the proper value for ending the simulation; if not, recurse
to step 4 to continue.
Before finishing this Section it is extremely important that we review the class of problems
being considered in this text and contrast the time integration method presented here with others
which might have been considered. Let us first remember that the number of degrees of freedom
being considered is, perhaps, between ten and twenty in a complex problem. Therefore it is very
feasible to consider solving the iterative loop closure computation of Chapter 6 at every time
step, particularly with the extremely quick convergence reported in that Chapter. For the same
reason, solving for the Jordan normal form, as in step 5, or for eigenvalues and eigenvectors is
not unreasonable at every time step.
However, the very fact that the numeric algorithm of Chapter 6 is being used does imply that
this algorithm makes a new decision at each time step as to which and even how many FGC
variables will exist in each new time step, and there is no assurance that these will be the same
from one time step to the next. These considerations do not totally prevent use of some of the
12
better known numerical integration algorithms, but they do provide additional complications not
present in other applications.
It must be understood that the software being considered here is for simulating multi-body
dynamic systems. This is an extremely different class of problems than the class addressed by
finite element analysis (FEA). In that class: (a) The bodies being simulated may be of high
stiffness, but they are not rigid. Indeed, in that class, the strain (change of geometry) variables
are among the fundamental unknowns being sought. (b) The number of degrees of freedom is
often in the thousands or tens of thousands. (c) The solution of FEA problems is not expected to
operate quickly enough for real-time animation of dynamic simulations. Much slower solution
methods are usually acceptable.
Traditional wisdom in numerical analysis texts advises that the time step in the numeric
solution of an initial value problem should not be greater than about one-tenth of one cycle of the
highest frequency of the problem being simulaed. The natural frequencies of typical problems
being considered here often range from a single Herz or less for the low to tens of MegaHerz for
the high frequency. Therefore, the above advice may suggest a typical time step size of
8
t (10 ) seconds, or one hundred million integration steps per second simulated. It must be
understood that this advice is based on the recognition that almost all well-known methods of
numeric integration are based on a power series in the independendent variable t . Here we have
used a harmonic series (recall ei t in Eq. (14.30)) and have found the complete and exact
theoretical solution to the linearized differential equations during the time increment being
integrated. Our approxiamtion has been in assuming that the linearized equations are a good
approximation throughout the time step. This assumption is limited only by the size of the step
and the change in geometry, not by the natural frequencies invloved.
In relatively recent times, numeric methods have been developed for integrating the class of
problems known as stiff differential equations.13 This is the class in which the spectrum of
natural frequencies range over several orders of magnitude and, therefore, traditional methods
have called for thousands or millions of time steps per cycle of progress in the overall simulation.
This is precisely the class usually represented in multi-body dynamic systems. However, as just
explained, the method developed above is such a method. Particularly with the improvements of
the next Section, it can and often will pass over hundreds, thousands, or even millions of cycles
of high frequencies during a single time step, particularly when their amplitudes within the actual
response are small because those modes are not excited.
By far the best known algorithm of this type is due to William C. Gear, Numerical Initial Value Problems in
Ordinary Differential Equations, Prentice-Hall, Englewood Cliffs, New Jersey, 1971.
13
Section. As shown in steps 7 and 10, for example, there may be situations where the algorithm
predicts egregiously large increments for the FGCs and it becomes necessary to reduce the time
step size, if only to keep the numerical process under control.
However, even if extremes are avoided successfully, this does not ensure that the algorithm
will produce reliable accuracy. How can we tell if the time step might still be too large? Well,
one way to test this might be to perform the simulation again with a smaller time increment, and
to compare results to see if they agree within acceptable limits. However, this does not seem
reasonable as a continuing requirement. Is there some way to test as the time integration process
evolves? Yes; there is.
Immediately after step 12 in our time integration process explained in the previous Section,
we can predict for time t + t the expected new values of the accelerations v! of the FGCs by
using Eq. (14.28). These are the accelerations which should occur according to the prediction of
the linearized equations of motion. They should be accurate if the time step is within the range
for which the linearized equations are valid.
But then, in step 13, we set the time to t + t and, in step 15, we can recalculate these same
accelerations with new values which are updated for the modified geometry. These values are
accurate in the sense that they fit the Lagrange equations at the new position. By subtracting the
earlier predictions from this later calculation we can find the differences the in FGC accelerations
which result from the inaccuracy of using the linearized equations for our nonlinear system.
If the error in acceleration is found to be larger than some chosen upper limit, then the size of
the time increment should be reduced to, for example, to t t 2 . If the error is well beyond
this limit, then it may be considered necessary to repeat the current step with the smaller time
increment.
Of course, it is to be expected that there will always be some error; this is true for any
numeric solution of differential equations. In fact, if this error in acceleration is smaller than
some chosen lower bound, then the time step is probably too small and the integration is
progressing more slowly than necessary. Under these circumstances, the time increment can be
increased, say to t min ( 2t , t ) . This will insure that the time integration procedes as quickly
as possible, but also that the time step does not exceed the interval between desired output times.
Before finishing this Section, we should recognize that, since step 10 of our integration
algorithm is continuously ensuring that all geometric constraints of our system are enforced to
good accuracy. Therefore, even though forces in various parts of our system may include errors,
the geometry of the system being simulated is always valid. That is, it always represents a
possible position that can realistically be experienced by the modeled system. We should also
recognize that error in acceleration is a very sensitive test. It is a convenient technique for
sensing linearization error because we predict with the linearized equations and then recalculate
with the nonlinear equations. However, numerical errors should be expected to be larger when
14
15
Problems
14.1
Continue from Eq. (14.3), using Eqs. (14.6) and (14.10), to apply the residue theorem to
the inversion of the Laplace transform where there is a single pair of equal eigenvalues;
write the solution out explicitly for the case of f=2, NF=2, NP=1, g j,1 ( s ) = 1 , and
g j,2 ( s ) = 0 , with 3 = 4 .
16
1.
The IMP software uses a half-edge polyhedral BRep data structure similar to that explained in Martti Mntyl,
An Introduction to Solid Modeling, Computer Science Press, Rockville, Maryland, 1988.
values of ra for each body) contact may occur between bodies of the system simulated.
Since testing for collision may be required at every increment of time during a simulation,
and possibly between many combinations of objects, it is extremely important that the algorithm
for collision detection be very efficient. For this reason we limit ourselves to consideration of
only two shapes coming into contact at a time. If more than two are to make simultaneous
contact, the software will find the contacts in consecutive pairs if necessary.
Conceptually, since we require that solid models of part shapes be available, it is possible to
perform a complete intersection calculation by the algorithms of solid modeling between each
pair of objects considered at every moment in time. Without further simplification, however, this
would be quite inefficient. We also find that those algorithms known to date which offer
efficiency advantages, do so partly by restricting their consideration to pairs of convex polyhedra.
The assumption of convexity is not a large constraint since more than one convex subshape may
be simultaneously attached to the same body coordinate system. The assumption of polyhedral
geometry implies that object shapes are bounded solely by flat surfaces. Curved surfaces may be
approximated by flat facets, but as the number of facets becomes large the efficiency again
decreases; a reasonable compromise between accuracy and efficiency must be sought.
In order to avoid monitoring an unnecessarily large number of object pairs, thus causing slow
performance, we can require that the user explicitly identify those pairs of shapes (or subshapes)
to be monitored. However, it is advised that two shapes of the same body, or two which are
directly connected by a joint, as defined in Chapter 2, not be acceptable for collision monitoring
since they would be in continual contact.
[ Ab
Bb
Cb
Xa
Y
Db ] a = Pbt Ra = 0
Za
1
(15.1)
Remembering Eq. (4.9), we know how the local coordinates of the vertex ra relate to their
global values Ra, and thus we can also find the relation which must hold for the local coordinate
(15.2)
By differentiating the identity matrix with respect to time we get another useful formula
T0b1T0b = I
T!0b1T0b + T0b1T!0 b = 0
T!0b1 = T0b1T!0bT0b1 = T0b1bT0 bT0b1
T! 1 = T 1
0b
0b
Now, with this, let us rewrite Eq. (15.2). Assuming that the contact does not begin until a
short time increment after the current time t
pbt T0b1 ( t + ) T0 a ( t + ) ra = 0
pbt T0b1 [ I b ][ I + a ] T0 a ra = 0
Pbt I (b a ) ba 2 Ra = 0
Pbtba Ra 2 + Pbt (b a ) Ra Pbt Ra = 0
If we now assume that is small enough to ignore the very small 2 term, we can solve for
the time increment until this contact begins
pbt T0b1T0 a ra
Pbt Ra
= t
=
Pb (b a ) Ra pbt T0b1 (b a ) T0 a ra
(15.3)
Notice that the factors in square brackets in both the numerator and the denominator of this
equation can be computed at each time increment as soon as bodies a and b are identified. This
is usually worthwhile since many vertices and faces from these bodies may require testing.
If the found from this equation is negative, then the time of contact is either fictitious or has
already passed. However, having a positive time increment does not assure that contact actually
occurs; it only verifies that the vertex ra reaches the plane of the facet pb at a future time. We
must also find the implied point of contact on the planar surface of body b at the indicated time
( I + b ) T0b rb = ( I + a ) T0 a ra
1
rb = T0b1 ( I + b ) ( I + a ) T0 a ra
(15.4)
and we must verify that this point rb falls within the boundary of the actual face of body b
contained in the plane pb . If this is true then, and only then, we have verified that represents a
time increment when contact may actually begin between the vertex ra and the flat facet pb .
p1tT0a1 ( I a ) X
t 1
p2T0 a ( I a ) Y = ER = 0
p3t T0b1 ( I b ) Z
t 1
p4T0b ( I b ) 1
(15.5)
where the matrix of coefficients E is of size ( 4 4 ) and every element is a linear exporession in
the unknown time .
However, for this set of homogeneous equations to have a nontrivial solution the matrix of
coefficients must have a zero determinant, det ( E ) = 0 , from which we get a quartic equation in
. We are interested in finding the smallest non-negative value of which satisfies this equation,
if such a root exists; if not, then such a future edge-edge contact does not occur. Once such a
value of is found, then any three of the four Eqs. (15.5) become solvable for R. This solution,
however, must still be tested to insure that it falls between the two limiting vertices on each of
the two edges. This may best be done by solving any one component of the conditions
1.
velocities or other motion parameters. For this reason it is extremely important that the moment
of contact be met precisely so that high stiffnesses not produce strain or introduce energy.
As the simulation develops, the size of the time increment t of the integration process is
already controlled as explained in Sections 14.4 and 14.5. As described here, the user may have
requested that possible contact be monitored for certain pairs of bodies. For each possible
contact pair we will know that we are to monitor the motion of body number b with respect to
body number a. What we wish to do next is to predict the time increment from the current
moment t to the onset of that contact. What we wish to know is whether we anticipate the
initiation of a contact within the coming time interval t . If so, by how much is it necessary to
reduce this time step to exactly match the time of first contact.
In Section 15.2 we have discussed the contact of some vertex ra of body a with some flat
facet pb of body b and, in Section 15.3, between two edges of these bodies. The choice of the
two bodies was requested by the user, but we have not yet spoken of how this particular vertex
and this particular facet or how these two edges will be identified. The question of collision
detection has seen much research over the past several years. The algorithm presented here is a
variation of one of the fastest and best known algorithms, called the GJK minimum distance
algorithm,2 with subsequent extensions by Cameron.3
As a start, a single face is chosen arbitrarily for each body a and b. Let us label these pa and
pb . We also choose an arbitrary vertex rb on face pb to start the following recursive procedure:
1. Test each vertex ra of face pa using Eq. (15.3) to find the minimum non-negative time
increment for contact of ra with face pb . If none is found choose a different face pb
and repeat.
2. Test each vertex ra connected by an edge to vertex ra , using Eq. (15.3), seeking a vertex
with smaller non-negative time increment '. If found, change ra and to ra and ' and, if
necessary, change pa to a new face which includes the new vertex ra .
3. If ra was changed by step 1 or step 2, repeat from step 1 until no further change is found.
4. Test each face pa connected to vertex ra for the contact time with vertex rb , using Eq.
(15.3), seeking a smaller non-negative time increment ', and updating the face pa and
time increment to this new minimum.
2.
E. G. Gilbert, D. W. Johnson, and S. S. Keerthi, "A Fast Procedure for Computing the Distance Between
Complex Objects in Three-Dimensional Space," IEEE Journal of Robotics and Automation, vol. 4, no. 2, April,
1988, pp. 193-203.
3.
S. Cameron, "Enhancing GJK: Computing Minimum and Penetration Distances between Convex Polyhedra,"
International Conference on Robotics and Automation, April, 1997.
d H H
V
+
= Fi
dt ! i i i
i = 1, 2, , f
where H and V are the kinetic and potential energy of the system and Fi is the generalized force
acting at generalized coordinate i .
If we integrate this equation over a short interval of time from t to t+t we obtain
t + t
d H
dt ! i
t + t
t + t
t + t
H
V
dt
dt
+
dt
=
Fi dt
i
i
t
t
t
i = 1, 2, , f
Since the time interval for an impact is very short, there is no time for changes in geometry,
even though velocities can change under the impulsive accelerations. Therefore, the second and
third terms of this equation are very small and the equations reduce to
! i
H
H
=
t + t ! i t
! i
t + t
=
Fi dt
i = 1, 2, , f
(16.1)
From Eq. (10.3) we recognize that this set of equations shows the changes in the generalized
components of the system momentum and, from Eq. (10.6), we have
pi =
1.
H
= trace WaiT0a J aT0taat
! i a =1
i = 1, 2, , f
Much of the material of this chapter follows the work of W. Wisutmethangoon, "Collision Detection and
Dynamic Impact Simulation of Mechanisms," PhD Dissertation, University of Wisconsin, Madison, WI, 1998.
pi =
f
H
= trace WaiT0a J aT0taWajt ! j
! i j =1 a =1
i = 1, 2, , f
Again recognizing that the time interval is too short for the system geometry to change, but
that velocities can change, Eq. (16.1) becomes
f
t
t
trace WaiT0 a J aT0aWaj ! j =
j =1 a =1
t + t
Fi dt
i = 1, 2, , f
and, from Eq. (11.7), we recognize here the elements of the system mass matrix. Therefore, this
reduces to
f
M ij ! j =
j =1
t + t
Fi dt
i = 1, 2, , f
(16.2)
In Section 9.10 we defined a model for a force f a ( , t ) applied within a joint with
identifying joint label a. This force was modeled as a function of time t and of system geometry
. Here, we take the same approach with the exception that we take the time variation of the
force to be an impulsive load acting within joint a, and we give this impulse the symbol i a ( , t ) .
i a ( , t ) =
t + t
f a ( , t ) dt
a = 1, 2, , n
In Eq. (9.23) and (10.13) the generalized force resulting from a force applied within a joint is
f a ( , t )
Fi = ai
a = 1, 2, , n
i = 1, 2, , f
and, when such a force is impulsive in nature, the generalized impulse becomes
t + t
i a ( , t )
Fi dt = ai
a = 1, 2, , n
i = 1, 2, , f
(16.3)
Similarly, in Section 9.11, we defined a model for a force f abc ( , t ) applied at a point on
body a with direction defined by points on bodies b and c. Here, we define a similar impulsive
force i abc ( , t ) applied on body a with direction defined by points b and c.
i abc ( , t ) =
t + t
f abc ( , t ) dt
a, b, c = 1, 2, ,
In Eq. (9.25) and (10.13), we found the generalized force resulting from such an applied force
to be
a, b, c = 1, 2, ,
i = 1, 2, , f
t + t
a, b, c = 1, 2, ,
t ubc i abc ( , t )
Fi dt = Rai
i = 1, 2, , f
(16.4)
Then, in Section 9.12, we defined a model for a torque abc ( , t ) applied on body a with
direction defined by a line through points on bodies b and c. Here, we define a similar impulsive
torque t abc ( , t ) applied on body a with direction defined by a line through points on bodies b
and c.
t abc ( , t ) =
t + t
abc ( , t ) dt
a, b, c = 1, 2, ,
In Eq. (9.28) and (10.13), we found the generalized force from such an applied torque to be
a, b, c = 1, 2, ,
t
Fi = W$ai ubc abc ( , t )
{ }
where W$ai
{ }
i = 1, 2, , f
is defined in Eq. (9.27). When the applied torque is impulsive, its generalized
impulse is
t + t
a, b, c = 1, 2, ,
t
Fi dt = W$ai ubc t abc ( , t )
{ }
i = 1, 2, , f
(16.5)
Finally, when we allow multiple impulses and collect the pieces from Eqs. (16.3), (16.4), and
(16.5), then Eq. (16.2) expands to
f
n
t
ia ( , t ) + Rai
t ubc i abc ( , t ) + W$ai ubc t abc ( , t ) = I i ( , t )
M ij ! j = ai
j =1
a =1
abc
abc
{ }
i = 1, 2, , f
(16.6)
As the time integration process of Section 14.4 advances, it must be continually monitored to
ensure that it comes to incrementing a time step at the precise time of occurance of an impulse.
At that time, the right-hand side of Eq. (16.6) is evaluated and yields a vector of length f of
applied impulses I ( ,t ) . Also, if we assume that the SGC coordinates do not change velocities
under impulsive loading, the subset of Eq. (16.6) referring to the NF velocities of the FGCs is of
the form
M FF ! F = I F
Since MFF is positive definite, it cannot be singular and these equations can be solved for the
changes in the FGC velocities at that time.
1
! F = M FF
IF
(16.7)
These changes are added to the FGC velocities before continuing with the next step in the time
integration process.
Let us define h to be the unit vector normal to the plane of contact pointing in the direction
from body a toward body b as shown in Figure 16.1. For a vertex-face contact, we find h from
the data for the face. For an edge-edge contact, we find h from the cross product of vectors
along the two contacting edges. Next, we take h to be the unit vector in the plane of contact
pointing in the direction of the in-plane component of the relative velocity ( R! a R!b ) between
the points of contact. Finally, we take h to be the unit vector orthogonal to both h and h
such that h = h h . The global coordinates of these unit vectors can be determined from
the geometry of the contacting shapes and their locations T0a and T0b and velocities a and b
at the moment of contact.
and, from this, the Lagrange impulse equations for this contact can be written as shown in Eq.
(16.6)
f
t
n
M ij ! j = h (Wai Wbi ) Rh i h
i = 1, 2, , f
(16.8)
j =1
However, since the magnitude of the impulse i hn is still unknown, this is a set of f equations
with ( f + 1) unknowns. Another equation is needed to make the set solvable. This additional
equation can be obtained from the definition of the normal coefficient of restitution, ehn , which is
the negative of the ratio of the relative normal velocity between the contacting points after the
impact to those before it. That is
ehn
ht ( R!a R!b )
ht ( R!a R!b )
where the primes indicate values after the impact. The coefficient of restitution is a value
representive of the properties of the materials making contact and varies from unity for
completely elastic impact to zero for plastic impact. The value can be determined
experimentally and must be supplied by the user as data for this model of impact.
Once this coefficient is supplied, the equation expressing its definition can be rewritten as
t
n
t
h Waj Wbj Rh! j = eh h Waj Wbj Rh! j
j =1
j =1
(16.9)
The set of Eqs. (16.8) and (16.9) can now be brought together into a single set, and written in
the form
M ij
M ij
ht (Wai Wbi ) Rh ! j
=
!
t W W R
i n ent W W R j
0
bj
h
bj h
h aj
h h h aj
{ }
These equations are solvable for the modified velocities of the generalized coordinates which
result after the impact and for the size of the impulse which results. Typically, this model suits
well for simulating the collision of two objects with smooth, hard surfaces.
2.
R. M. Brach, Mechanical Impact Dynamics, John Wiley & Sons, New York, 1991.
M ij
ht (Wai Wbi ) Rh ht (Wai Wbi ) Rh ! j
t W W R
in
0
0
bj h
h aj
h
it
0
h
1
h
M ij
(16.10)
{ }
This model, with an appropriate value of h , fits quite well for collisions with high relative
tangential velocity.
In another model, the definition of a tangential coefficient of restitution is introduced. The
definition is similar to that in the normal direction; that is,
ht R!a R!b
t
eh =
ht R!a R!b
(
(
)
)
M ij
ht (Wai Wbi ) Rh ht (Wai Wbi ) Rh ! j
t W W R
in
0
0
bj h
h aj
h
t
it
W
R
0
0
bj
h
h aj
h
(
(
)
)
M ij
n t
t t
e W Wbj Rh
h h aj
(
(
)
)
(16.11)
{ }
This model is more appropriate with small relative tangential velocity of the contact points or
for objects with high shear elastic surfaces.
Figure 16.2 shows a typical graph of experimental data obtained from impact between a steel
speciman with a stationary steel block.3 A plot of relative tangential velocity before and after
impact typically follows the solid lines. This graph shows that for lower relative tangential
3.
N. Maw, "The Role of Elastic Tangential Compliance in Oblique Impact," ASME Transactions, vol. 103, Jan.
1981, pp. 74-80.
velocity, the tangential coefficient of restitution model better fits experimental evidence, while
the frictional tangential impulse model is more suitable for higher relative tangential velocity.
eh =
ht $!a $!b
{
{!$
t
h
}
!$ }
b
where $!a , for example, is the angular velocity vector of body a which is given by
{ }
4.
R. M. Brach, ibid.
Waj ( 3, 2 )
Waj ( 2,1)
{ }
This extra equation can be used for the case of small relative angular velocity about the
normal axis. However, another model based on the coefficient of friction, which is more suitable
with higher relative angular velocity, is
( {
t hn = s gn ht $!a $!b
}) r i
n
h p h
Here, the use of the sgn function accounts for the direction of the torsional impulse due to
friction, which must be in the direction opposite to the relative angular velocity about the normal
to the surface. The symbol rp denotes a characteristic distance called the pitch radius, which
relates the torsional impulse to the normal force impulse. This pitch radius is assumed constant
and must be given by the user as data. It may be evaluated from different theories. For example,
with a uniform pressure distribution over a circular contact region, rp =r where r is the radius
of the contact area.
As with the tangential impulse case, the two models can be combined and used as a bilinear
model.
eh =
ht $!a !$b
{
{$!
t
h
}
$! }
b
5.
R. M. Brach, ibid.
eh =
ht $!a $!b
{
{!$
t
h
}
!$ }
b
M ij
ht (Wai
t W W R
bj
h
h aj
t
h Waj Wbj Rh
t
$bj
h $ aj
ht $ aj
$bj
t $ $
bj
h aj
(
(
)
)
{
{
{
}
}
}
Wbi ) Rh
$bi
} ht {$ ai
$bi
} ht {$ ai
$bi
}
ht (Wai Wbi ) Rh ht {$ ai
! j
i hn
i ht
n
th
t
th
b
th
M ij
et t W W R
h
h
aj
bj
h
=
! j
t $
$
eh h aj bj
t
$bj
ehh $ aj
eh ht $ aj
$bj
(
(
)
)
{
{
{
}
}
}
{ }
(16.12)
or
10
M ij
t W W R
bj
h
h aj
t
$bj
h $ aj
ht $ aj
$bj
{
{
}
}
$bi
} ht {$ ai
$bi
} ht {$ ai
$bi
}
ht (Wai Wbi ) Rh ht {$ ai
! j
ht (Wai Wbi ) Rh
0
( {
sgn ht $! a $!b
}) r
h p
i hn
t
ih
n
th
t
th
b
th
M ij
n
t
ehh Waj Wbj Rh
=
! j
0
e t $ $
h
h
aj
bj
t $
$
eh h aj bj
{ }
{
{
}
}
(16.13)
Equations (16.12) use the tangential and torsional coefficients of restitution for the tangential and
torsional impulses, respectively. Equations (16.13), on the other hand, implement the tangential
and torsional coefficient of friction models. The bilinear combination model can be used in place
of either or both if the user prefers.
The impact equations, as presented in this and the previous Sections, show only the effects of
a single collision of a single contact pair of moving bodies. If more than one collision is to
happen in a simulation, they are treated in succession. Only one collision happens at a particular
instant. This collision causes changes in the generalized coordinate velocities. The time
integration is then continued with the modified velocities, and another collision may then take
place. In fact several collisions may take place before another printing or output display time
comes to pass.
11
M FF
M FS
ht (WaF
M SF
M SS
ht (WaS
t
t
h (WaF WbF ) Rh h (WaS WbS ) Rh
t
t
h (WaF WbF ) Rh h (WaS WbS ) Rh
t $ $
$bS
ht $aS
bF
h aF
t $
t
$
$
$
bF
bS
h aS
h aF
t $
t
$
$
$
bF
bS
h aS
h aF
{
{
{
}
}
}
{
{
{
}
}
}
$bF
$bF
} ht {$aF
$bF
}
ht {$aF
ht (WaS WbS ) Rh
{
}
t $
}
h { aS $bS
WbS ) Rh
M FF
M SF
ent (W W ) R
bF
h
h h aF
et t (W W ) R
h
h
aF
bF
h
=
ehht $aF
$bF
e t $ $
h h
aF
bF
t $
$
eh h aF bF
{
{
{
$bS
}
ht {$aS
! F
$bS
} ! S
ht {$aS
in
h
it
h
t hn
t ht
b
t h
n t
ehh (WaS WbS ) Rh
ehht $aS
$bS
ehht $aS
$bS
eh ht $aS
M FS
M SS
}
}
}
{
{
{
}
}
}
where the subscripts F and S refer to the subsets of free and specified generalized coordinates,
respectively. If we assume that the velocities of the SGCs are not modified by the impact, that is
that ! S = ! S , as is required for the motions specified to actually be achieved, then these
equations reduce to
M FF
ht (WaF
t W W
bF ) Rh
h ( aF
t
(W W ) R
bF
h
h aF
t $ $
bF
h aF
t
$ $
bF
h aF
t $
$
h aF bF
{
{
{
}
}
}
$bF
$bF
} ht {$aF
$bF
} !
ht {$aF
F
M FF
n t
ehh (WaF WbF ) Rh
et t (W W ) R
bF
h
h h aF
=
t
$bF
ehh $ aF
e t $ $
h h
aF
bF
t
$bF
eh h $aF
{
{
{
}
}
}
n
ih
it
h
tn
h
tt
h
t hb
+1
(WaS WbS ) Rh
t $
$
eh + 1 h aS bS
! S
$bS
eh + 1 ht $ aS
t $
$
eh + 1 h aS bS
(
(
ehn
(
(
(
)
)
ht
)
)
)
{
{
{
}
}
}
(16.14)
12
T
C
A
P
D
W = PD T A = 0
where the negative sign shows that the output torque T is in a direction opposite to the
displacement A .
Also, we know that these increments are related by the closure constraint of the kinematic
loop. Therefore, since this is a single degree of freedom system, we know that, while the
independent variable moves by 1 , the other joints move by
1 1
D = D
and
A = A 1 1
Substituting these into the virtual work equation, we can solve for the torque T
1 1 T A 1 1 = 0
PD
1 A 1 ) P
T = ( D
This is the style of solution which we hope to generalize to find the constraint forces of any
mechanical system fitting the conditions of the preceding chapters.
vj
j
uu j
The methods shown here were first published in: J.Denavit, R.S.Hartenberg, R.Razi, and J.J.Uicker,Jr.,
"Velocity, Acceleration, and Static-Force Analysis of Spatial Linkages," Journal of Applied Mechanics, ASME
Transactions, 1965, pp. 903-910.
Recall the uvw coordinate system preceding a joint. Each joint, no matter what type, has such
a coordinate system. In Chapter 3, we modeled each type of joint so that the transformation from
the xyz coordinate system on the body preceding the joint, to the uvw coordinate system
preceding the joint, then to the u'v'w' coordinate system following the joint, and then to the xyz
coordinate system on the body following the joint is represented by Eq. (4.3) which reads
j = 1,2,, n
rj = S j , j j S j +1, j rj +
Suppose, as an example, that we wish to find the component in the uj direction of the force
transmitted through the pin joint shown in Figure 17.2. Then we choose to make a virtual
deformation in that chosen direction as shown in Figure 17.3. It is true that this deformation
is not a physical possibility, but that is why it is called a virtual deformation. Let us note
carefully, however, that, even though this one constraint (the one for which we seek the force) is
violated by the virtual deformation, all other constraints, such as loop closure conditions,
continue without violation.
w
v
w'
v'
u'
r = S , ( I + Q ) S1+ , r +
(17.1)
where the symbol is used in several ways. First, refers to the identification label of the joint
where the deformation is made, and where the force is sought. Second, and + refer to the
two body identifiers for the bodies before and after joint . Third, implies the particular
component of the force or torque sought and, therefore, the axis along or about which the
deformation is made. Fourth, the symbol after the Q matrix denotes the magnitude of the
virtual deformation. For a deformation in the u direction, as is our first case, we set the Q
matrix to
0
u 0
Q =
0
0
0
0
0
0
0
0
0
1
0
0
If, on the other hand, we wish to find the component of force in the v direction, then Eq. (17.1)
still holds, but we set the Q matrix to
0
0
v
Q =
0
0
0
0
0
0
0
0
0
0
1
0
and, to find the component of force in the w direction, we set the Q matrix to
0
w 0
Q =
0
0
0
0
0
0
0
0
0
0
0
1
If we seek the component of torque exerted through this joint about the u axis, then we need a
virtual twist of magnitude about the u axis. We can still represent such a virtual deformation
with Eq. (17.1) by setting the Q matrix to
0
u 0
Q =
0
0 0
0 1
1 0
0 0
0
0
0
For the component of torque about the v axis, the virtual twist is defined by setting the Q
matrix to
0
v 0
Q =
1
0
0
0
0
1
0
0
0
0
0
0
and, finally, for the component of torque about the w axis, we define the virtual twist by setting
the Q matrix to
0 1
w 1 0
Q =
0 0
0 0
0
0
0
0
0
0
0
This covers all possible cases, all six components of force and torque which can be
transmitted through the chosen joint . Once these forces and torques are found, we can then
switch to a different joint and use these same six virtual deformations again.
j , =
j = 1, 2, , n (17.8)
Of course, we must recognize that, while traversing the kinematic loops, we may or may not
come across the deformation itself, depending on whether joint is included in the particular
loop being traced. That is, the loop closure conditions, including the deformation, are of the
form
T0 S , I + L ( i, ) Q S + , T +,0 = I
i = 1, 2, , NL (17.9)
Now, if we define
) (
D = T0, S , Q T0, S ,
(17.10)
i = 1, 2, , NL
which we can see is only equal to the original loop closure condition when = 0 .
If we differentiate the loop closure equations, starting from Eqs. (17.9), with respect to the
virtual deformation , then passing to the limit for which = 0 and T00 = I , we can write
n
L ( i, ) D + L ( i, j ) D j j , = 0
i = 1, 2, , NL
j =1
Putting this result into equivalent screw coordinate form, it can be rearranged to read
n
L ( i, j ) D = L ( i, ) D = C
i = 1, 2, , NL (17.11)
D (1, 4 )
D ( 2, 4 )
D ( 3, 4 )
Ci, = L ( i, )
D ( 3, 2 )
D (1,3 )
D ( 2,1)
i = 1, 2, , NL (17.12)
j,
i,
j =1
where we define
(17.13)
(17.14)
for each open joint in the system, a total of NC constraint equations for joints which have been
modeled with Euler parameters.
Therefore, we recognize that Eqs. (17.11), (17.13), and (17.14) finally reduce to the form
J = C
(17.15)
where J is the same [(6NL+NC)xn] Jacobian matrix which resulted from the numerical iteration
process of Section 6.5, and , for a given choice of , is an (nx1) vector of virtual derivatives
which are yet to be determined. The [(6NL+NC)x1] column C is composed of the NL vectors
from the right-hand sides of Eq. (17.11) for each loop, augmented by the NC right-hand sides of
zeroes for Eq. (17.13) for each spheric joint and Eq. (17.14) for each open joint.
Reviewing the numerical iteration process of Section 6.5, we recall that the modified pivoting
scheme used in the modified Gauss-Jordan process reordered the joint variables so that all
dependent joint variables are numbered first, followed next by the NF joint variables of the FGCs
and finally by the NS joint variables of the SGCs. Recognizing that both the FGC and the SGC
joint variables have been accepted as generalized coordinates , we see that, by definition, they
are independent of each other and of . Therefore, for a particular choice of , the matrix
must be of the form
1,
2,
"
,
dep
= n f , =
0
0
"
0
(17.16)
But, remembering Eq. (6.10), we see that this is the same subdivision which resulted from the
Gauss-Jordan elimination process. Reverting to the notation of Eq. (6.7) we have
J 11
J 21
J 12 J 13 dep ,
0 =
J 22 J 23
0
(C )
(C )
and, after the Gauss-Jordan process is complete, these equations are reduced to the form of Eq.
(6.8)
I J 111J 12
0
0
J 111J 13 dep , J 111
0 C 1
0 =
0
J 21J 111 I C
0
2
( )
( )
( )
, = J 111 C
dep
(17.17)
(C )
( )
1
J 21J 11
C
=0
(17.18)
Finally, in Eq. (17.17), we have the solution we have sought for the virtual devivatives with
respect to our chosen virtual deformation, and we find that they are extremely easy to calculate.
All that is required, after choosing the desired deformation, is to form Q and, from it, the D
operator of Eq. (17.10). From this we form C according to Eq. (17.12) and, finally, since the
Gaus-Jordan process of Chapter 6 has been completed, Eq. (17.17) requires only a matrix
multiplication.
However, we must not forget to verify Eq. (17.18). Unlike previous chapters, where this
additional condition was always satisfied, that is not always true with these virtual derivatives.
On the contrary, when Eq. (17.18) is satisfied, it shows that the result of Eq. (17.17) is valid.
However, when Eq. (17.18) is not satisfied, then the result of Eq. (17.17) is not valid. How can
this happen? This happens when it is not possible to make the chosen virtual deformation
without violating another constraint of the system geometry, and this is what happens when we
try to evaluate a force component in an indeterminate direction. The failure of the condition of
Eq. (17.18) is an immediate signal that the virtual deformation chosen corresponds to a statically
indeterminate component of force or torque. No further computation is required and none will
be useful since statically indeterminate forces cannot be determined from a rigid body model.2
It should be noted that, if the force computations had been formulated according to Newton's
laws, we would have formulated a large set of simultaneous equations for all unknown force
components. Failure to solve for one or more because of static indeterminacy would mean
failure to solve for any. In such problems, we would find no force results because some are
indeterminate. With the virtual work approach taken here, each component is solved
independently and only unsolvable component(s) fail to yield a result.
d H
dt #
H V
+
= F
(17.19)
where F is the component of force we seek. Of course, in order to correspond to the physical
system, we must evaluate this equation under the conditions that = # = ## = 0 , that is, under the
conditions that the virtual deformation is not moving.
Now, in order to carefully derive the terms of Eq. (17.19), it is necessary to formulate kinetic
and potential energy formulae which are functions of all f degrees of freedom and , and to take
the derivatives indicated, carefully evaluating each term as indicated. The authors have done this
in full detail.3 However, rather than to show each step here, it should not surprise the reader to
see that the final result reads exactly parallel to Eq. (10.15). This is
2.
The IMP software tests this condition to be zero within a default tolerance of 0.0001; however, this value may
be overridden by the user, if desired.
3.
The extension of these methods to include dynamic forces was first published in J. J. Uicker, Jr., "Dynamic
Force Analysis of Spatial Linkages," Journal of Applied Mechanics, ASME Transactions, vol. 89, June, 1967.
t
t
f
f f
t
t
a =1
j =1 k =1
(
j =1 a =1
t
# j + Rab
t uab cabuab
# j
+ a caaj
Rabj
j =1 ab
a =1
ab
t
a f a (, t ) Rat ubc f abc (, t ) W%a ubc abc (, t )
a =1
abc
abc
(17.20)
where the following additional notation using the virtual derivatives has been defined
n
Wa , = P ( a, j ) D j j ,
a = 1, 2, , (17.21)
j =1
Ra , =
Ra
= Wa ,T0 a ra = Wa , Ra
= Ra Rb = Wa Ra Wb Rb
Rab
a = 1, 2, , (17.22)
a, b = 1, 2, , (17.23)
In order to properly use, Eq. (17.20) it is necessary to understand the sign conventions chosen
in the derivation. The force F is the single component of force or torque acting from body onto body + along or about one of the u, v, or w axes consistent with the choice of Q. The
component F is positive when it acts onto body + in the positive direction of the
corresponding deformation axis. The sign conventions for f a (, t ) , f abc (, t ) , and abc (, t )
are those explained in Sections 9.10, 9.11, and 9.12, respectively.
Example 7.1
To illustrate the process explained above, let us continue the analysis of the Hooke universal
joint started in Example 4.1 and continued in Examples 7.1 and 8.1. Suppose we now wish to
find the six components of force and torque in the input joint D for a given static load torque PA
at output joint A. Since we have no mass distribution data, we seek only the static forces. From
these previous examples we have already found
T04 S4D
=
0 cos sin d2 sin
0
0
1
0
h
J = 1
h cos
h cos sin
1 sin sin
2
0
0
h sin sin
sin sin
cos sin
cos
1 sin2 sin2
cos
cos sin
1 sin2 sin2
h sin
h cos
cos
sin
and we have already noted that the first three rows of J are either trivial or h multiples of other
rows. That is, these three rows form [ J 21 J 22 ] ; the final three rows form [ J 11 J 12 ] .
First we find
(T04 S4 D )
0
sin
=
cos
0 cos
0
0
sin
0
h
0
d 2
and, from Eq. (17.10), using Eqs. (17.2) through (17.7), the six D matrices for joint D are
0
0
=
0
0 0 0
0 0 1
0 0 0
0 0 0
0
0
=
0
0 0 sin
0 0
0
0 0 cos
0 0
0
0
0
=
0
0 0 cos
0 0
0
0 0 sin
0 0
0
10
0 0 1 d 2 sin
0 0 0
0
1
0
0 0 0
cos
0
h cos
0
cos
0
sin
d 2
1
DDv = (T04 S 4 D ) Qv (T04 S 4 D ) =
0
sin
0
h sin
0
0
0
0
0
sin
=
0
sin
cos
cos
0
0
0
h sin
h cos
Now, extracting the negative Ball vectors from each of these, according to Eq. (17.12),
sin
0
1
0
0 cos
C =
0
0
0
0
0
0
cos
d 2 sin
h cos
d2
sin
d 2 cos
h sin
sin
0
cos
h sin
0
h cos
cos
0
sin
However, as we have noted before, for compatibility with the Jacobian matrix, the first row
of each of these should be an h multiple of the sixth row, the second row should be zero, and the
third row should be the negative h multiple of the fourth row. But these conditions are only met
by the sixth column, that is, by the w deformation; all other deformations give contradictory
equations. This implies that only the torque about the wD axis can be found; the other five
components of force and torque are statically indeterminate.
The equations for the virtual derivatives for this one valid virtual deformation are
cos sin
1 sin2 sin2
cos
1 sin2 sin2
sin sin
cos
cos sin
cos A w
w cos
B
0 w = 0
C
w sin
D
sin
11
cos
1 sin2 sin2
Aw
w sin cos
B = 1 sin2 sin2
Cw
w sin cos sin
D 1 sin2 sin2
Finally, with the given conditions and assuming that positive PA represents a torque which is
counterclockwise about the positive wA axis, Eq. (17.20) reduces to
FDw = A w PA
FDw =
cos
1 sin2 sin2
Ans.
PA
This says that, for a couterclockwise load torque PA, the driving torque is also positive and
therefore counterclockwise.
Isn't this contradictory?
No.
This driving torque is
counterclockwise about the wD axis. Careful study of Figure 4.2 shows that, for small angles of
this is directed almost opposite to the wA axis.
4.
It is no surprise that these particular virtual derivatives are identical to the first kinematic derivatives found in
Example 7.1 since this virtual deformation is aligned directly in series with the real generalized coordinate of
joint D. Thus, this particular deformation duplicates the ideas shown in Section 17.1; however, that Section
gave no indication that other components are statically indeterminate.. That is now proven,
12
User
Output
Display
Input Data
Solid Modeler
MBD
FEA
Mesh Generator
Force Data
Solid Models
Mesh Data
Dynamic Data
Figure 18.1
First solid models of each body are formed. These provide the mechanical properties (inertia
matrices Ji) and joint locations (shape matrices Sij) for the MBD system. They are also required
so that a mesh generator can provide the mesh data required for FEA. Next we use an MBD
system, with a simulated environment, to find the loads transmitted through the joints. These
loads are provided, along with the mesh data, for the FEA simulation, which can then suggest
possible design refinement of individual bodies. In this way, each program is doing what it does
best. The MBD system simulates the high speed large changes in geometry, even though it does
so assuming rigid bodies for the individual parts. This simulation system includes proper
dynamic forces caused by the motions and the loads on the attached, articulated bodies. The
motions of and the loads on these bodies are then both known when the FEA simulation is
performed. In fact, the FEA system can now be executed on each body individually, if desired.
Each body can be redisigned as necessary to enforce the assumption that the body geometry stays
constant under the loads predicted. If necessary because of radical changes, further iterations can
be performed through the MBD and then the FEA simulations.
[ I + Q ] r
= 1, 2, ,
(19.1)
where signifies a body number, and also designates which local coordinate value, x , y , or
z , is in error. The Q operator is chosen from Eqs. (17.2), (17.3), or (17.4), appropriately, and
is the magnitude of the small error. If we transform this operator to global coordinates
D = T0 QT01
= 1, 2, ,
(19.2)
= 1, 2, ,
(19.3)
R = [ I + D ] T0 r
1.
Geometric error in shape will, of course, affect the stress pattern within a body and also the mass distribution
and, therefore, the dynamics of the system. Modeling these errors, however, is outside the scope of this text.
This kind of error does not affect the values of the joint variables or other kinematic values.
It may, however, affect the dynamics if, for example, this point is the connection point for a
spring or damper or the point of application of a force.
Next let us consider errors in the location or orientation of a set of joint axes. Let us agree
that the geometry of each body in the system is inspected independently, and that the shape of
each is measured with respect to its own local body coordinate system. If a particular joint
coordinate system, say for joint number , is improperly located or aligned with respect to the
local body axes on body number the body before the joint), this is the same as saying that its
shape matrix S , does not fit design specifications. Even though Eq. (3.34) gives the nominal
specification as
r = S , r
= 1, 2,# , n
on inspection it might be found instead that the final part shape is different. Instead of agreement
with the nominal value, one of its final dimensions might fit the model
r = S , ( I + Q ) r
= 1, 2,# , n
(19.4)
where Q is one of the six matrix forms defined in Eqs. (17.2) through (17.7) and is the
magnitude of the corresponding small dimensional error.
In this situation, the transformation from body to body + deviates from nominal as
follows,
r = S , ( I + Q ) S1+ , r +
= 1, 2,# , n
(19.5)
= 1, 2,# , n
i = 1, 2, , NL
) (
D = T0, S , Q T0, S ,
= 1, 2,# , n
(19.6)
2.
Notice that the superscript distinguishes this operator from the somewhat similar form of Eq. (19.2). Notice also
that subscript now refers to a joint label.
= 1, 2,# , n
I + L ( i, ) D T = I
00
i = 1, 2, , NL
(19.7)
Up to here all of this follows precisely the same as it did for virtual deformations in Chapter 17,
except that now refers to a small but real deviation in shape rather than a virtual deformation.
When modeling manufacturing error, however, we must also consider the possibility that the
error may occur in the location or orientation of the coordinate system following, rather than
preceding, joint , that is, in the shape matrix S + , . In this case, the equivalent to Eq. (19.4)
becomes
r + = S + , ( I + Q ) r
= 1, 2,# , n
(19.8)
However, as the reader can easily verify for each of Eqs. (17.2) through (17.7),
( I + Q )
= ( I Q )
(19.9)
Therefore, when the error occurs in shape matrix S + , , Eq. (19.5) is replaced by
r = S , ( I Q ) S 1+ , r +
= 1, 2,# , n (19.10)
and the modified loop closure equations with this kind of error are
T0 S , I L ( i, ) Q S 1+, T +,0 = I
= 1, 2,# , n
i = 1, 2, , NL
) (
D+ = T0, S , Q T0, S ,
= 1, 2,# , n (19.11)
and the loop closure equations with this kind of error become
I L ( i, ) D + T = I
00
= 1, 2,# , n
i = 1, 2, , NL
(19.12)
the values of joint variables throughout the system, and the magnitudes of these errors vary for
each new position of the system.
For a small error in the shape matrix S , , as modeled by Eq. (19.4), let us expand the loop
closure equation in a first-order Taylor series about the nominal geometry. Expanding Eq. (19.7)
and ignoring higher order terms leaves
n
I + L ( i, ) D T + L ( i, j ) D T = I
00
j 00 j
j =1
For the nominal geometry, we have T00 = I which allows reduction of this equation by
several terms. After we divide what remains by the common factor, rearrange terms, and
eliminate redundency by taking Ball vectors, this equation becomes
n
L ( i, j ) D j j = L ( i, ) D = Ci,
j =1
= 1, 2,# , n
i = 1, 2, , NL
(19.13)
and, of course, these are accompanied by an additional constraint equation of the form
(19.14)
(19.15)
for each open joint in the system. Therefore, we recognize that Eqs. (19.13), (19.14), and (19.15)
reduce to the form
J = C
= 1, 2,# , n (19.16)
where J is the same [(6NL+NC) x n] Jacobian matrix which resulted from the numerical
iteration process of Section 6.5, and, for a given , is an (n x 1) vector of the derivatives
which are being sought. The [(6NL+NC) x 1] column C is composed of the NL vectors from
the right-hand sides of Eq. (19.13) for each loop, augmented by the NC right-hand sides of zeroes
for Eqs. (19.14) for each spheric joint and Eq. (19.15) for each open joint.
If the error is in the shape matrix S +, , as modeled by Eq. (19.8), then a parallel derivation
leads to an equation similar to Eq. (19.13), which reads
n
+
L ( i, j ) D j j = + L ( i, ) D = Ci,
j =1
= 1, 2,# , n
i = 1, 2, , NL
(19.17)
where we notice a difference in sign and also that Eq. (19.11) is now used rather than Eq. (19.6).
Otherwise, all steps are the same and the result is that Eq. (19.16) is still valid, but with this
modification in the form of C .
Example 19.1
Let us illustrate the ideas of this Section by continuing our analysis of the Hooke universal shaft
coupling of Example 4.1. Looking at Figure 4.3, let us investigate the error in the output shaft
rotation angle A which would result from an orientation error of = 0.5 in the
perpendicularity of the revolute axis of joint B, that is for an error in the shape matrix S1B in the
angle of wB about the u B axis. For such an error, the appropriate Q operator matrix is found
from Eq. (17.5)
0
0
Q =
0
0
0 1 0
1 0 0
0 0 0
0
T04 = I ,
1
0
T41 =
0
0
sin A
0
cos A
cos A
0
sin A
0
0
h
,
0
0
0
S1 A =
1
0 1
1 0
0
0
0
0
d1
0
0
1 sin A
DB = (T01S1B ) Q (T01S1B ) =
cos A
sin A
cos A
h sin A
0
0
With this and Example 7.1 we can formulate the terms of Eq. (19.16)
J = C
h
1
h cos
2
1 sin sin
h cos sin
0
0
0
h sin sin
sin sin
cos sin
cos
1 sin 2 sin 2
cos
1 sin 2 sin 2
cos sin
h sin
h sin A
A
0
h cos
0
B
cos =
C
0
cos A
D
sin A
sin
Here we notice, as we had for Examples 7.1 and 8.1, that the second equation has all zeroes and
the first and third equations are h multiples of the sixth and negative fourth. As long as these
= 0 since D is the input (an
consistency checks hold true for the right-hand side, we set D
SGC), and reduce the equations to the form
0
cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2
sin sin
A 0
= cos
cos
A
B
sin
C
A
cos sin
This graph shows that, for a manufacturing error in the shape matrix S1B such that the wB
axis is misoriented by an angular error of about the u B axis, the final output shaft angle A
varies from its theoretical value in a periodic fashion with an error amplitude of 1.0 . If the
manufacturing error is = 0.5 as stated, then the amplitude of the periodic error in output
angle will be 0.5 A 0.5 .
On the other hand, if the error in the orientation of the wB axis results from an error in S2 B ,
then we must form D+ from Eq. (19.11).
sin cos
A
B
DB+ =
cos A cos B
sin A cos B
cos A cos B
sin B
sin B
h sin A cos B
h sin B
J = C
h
1
h cos
2
1 sin sin
h cos sin
h sin sin
sin sin
cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2
cos
cos sin
h sin
h sin A cos B
0
A
0
h cos
B
h
sin
B
cos =
C
sin B
0 D cos A cos B
sin A cos B
sin
Again we note that the second equation has all zeroes and the first and third equations are h
multiples of the sixth and negative fourth. As long as these consistency checks hold true for the
= 0 since D is the independent input variable, and reduce the
right-hand side, we again set D
equations to the form
0
cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2
sin sin
A 0
= cos
cos
A
B
sin
C
A
cos sin
0
0
Q =
0
0 0 0
0 0 1
0 0 0
0 0 0
However, if the error in the location of the wA axis results from an error in the S1 A , then we
must use the form D+ from Eq. (19.11).
0
0
1
D+ = (T04 S 4 A A ) Q (T04 S4 A A ) =
0
0 0 sin A
0 0 cos A
0 0
0
0 0
J = C
h
1
h cos
2
1 sin sin
h cos sin
h sin sin
sin sin
cos sin
1 sin 2 sin 2
cos
1 sin 2 sin 2
cos
cos sin
h sin
0
0
A sin A
h cos
cos
B
A
cos =
C
0
0 D 0
sin
Here, simple inspection of the second row confirms that this set of equations does not have a
consistent solution. What this means in practice is that, with this manufacturing error, proper
assembly of the system will not be possible except for clearance in the fits of the bearings and
strain of the not truly rigid parts. Rigid body analysis cannot be used to predict the final
performance under these conditions.
Problems
19.1
Assuming that 2 0 , verify Eq. (19.9) for each of Eqs. (17.2) through (17.7).
10