Dynamics: 5.1. Newton-Euler Formulation of Equations of Motion
Dynamics: 5.1. Newton-Euler Formulation of Equations of Motion
Dynamics: 5.1. Newton-Euler Formulation of Equations of Motion
DYNAMICS
In this chapter, we analyze the dynamic behavior of manipulator arms. The dynamic behavior is described
in terms of the time rate of change of the arm configuration in relation to the joint torques exerted by the
actuators. This relationship can be expressed by a set of differential equations, called equations of motion, that
govern the dynamic response of the arm linkage to input joint torques. In the next chapter, we will design a
control system on the basis of these equations of motion.
Two methods can be used in order to obtain the equations of motion: the Neuwton-Euler formulation, and
the Lagrangian formulation. The Newton-Euler formulation is derived by the direct interpretation of Newton's
Second Law of Motion, which describes dynamic systems in terms of force and momentum. The equations
incorporate all the forces and moments acting on the individual arm links, including the coupling forces and
moments between the links. The equations obtained from the Newton-Euler method include the constraint forces
acting between adjacent links. Thus, additional arithmetic operations are required to eliminate these terms and
obtain explicit relations between the joint torques and the resultant motion in terms of joint displacements. In the
Lagrangian formulation, on the other hand, the system's dynamic behavior is described in terms of work and
energy using generalized coordinates. All the workless forces and constraint forces are automatically eliminated
in this method. The resultant equations are generally compact and provide a closed-form expression in terms of
joint torques and joint displacements. Further, the derivation is simpler and more systematic than in the Newton-
Euler method.
The manipulator's equations of motion are basically a description of the relationship between the input joint
torques and the output motion, i.e. the motion of the arm linkage. As in kinematics and in statics, we need to
solve the inverse problem of finding the necessary input torques to obtain a desired output motion. This inverse
dynamics problem is discussed in the last section of this chapter. Recently, efficient algorithms have been
developed that allow the dynamic computations to be carried out on-line in real time.
5.1. Newton-Euler Formulation of Equations of Motion
5.1.1. Basic Dynamic Equations
In this section we derive the equations of motion for an individual arm link. As discussed in Chapters 2 and
3, the motion of a rigid body can be decomposed into the translational motion of an arbitrary point fixed to the
rigid body, and the rotational motion of the rigid body about that point. The dynamic equations of a rigid body
can also be represented by two equations: one describes the translational motion of the centroid (or center of
mass), while the other describes the rotational motion about the centroid. The former is Newton's equation of
motion for a mass particle, and the latter is called Euler's equation of motion.
We begin by considering the free body diagram of an individual arm link. Figure 5-1 shows all the forces
and moments acting on any given link i. The figure is the same as Figure 4-1, which describes the static balance
of forces, except for the inertial force and moment that arise from the dynamic motion of the link. Let vci be the
linear velocity of the centroid of link i with reference to the base coordinate frame O0-x0y0z0, which is an inertial
reference frame. The inertial force is then given by −miaci, where mi is the mass of the link and aci is the time
derivative of vci. The equation of motion is then obtained by adding the inertial force to the static balance of
forces in equation (4-1) so that
fi−−1,i − fi,i+1 + mig − miaci = 0, i=1,..., n (5-1)
where, as in Chapter 4, fi−−1,i and −fi,i+1 are the coupling forces applied to link i by links i−1 and i+1, respectively,
and g is the acceleration of gravity.
Rotational motions are described by Euler's equations. In the same way as for translational motions, the
dynamic equations are derived by adding "inertial torques" to the static balance of moments. We begin by
describing the mass properties of a single rigid body with respect to rotations about the centroid. The mass
properties are represented by an inertia tensor, which is a 3x3 symmetric matrix defined by
{(y − y ) 2 + ( z − z ) 2 }ρdV
∫ c c − ∫ ( x − x c )(y − y c )ρdV − ∫ ( z − z c )( x − x c )ρdV
(5-2)
2 2
I = − ∫ ( x − x c )( y − y c )ρdV ∫ {(z − z c ) + ( x − x c ) }ρdV − ∫ ( y − y c )(z − z c )ρdV
2 2
− ∫ ( z − z c )( x − x c )ρdV − ∫ ( y − y c )(z − z c )ρdV ∫ {(x − x c ) + (y − y c ) }ρdV
Figure 5-1: Free body diagram of link i.
where ρ is the mass density, xc, yc, and zc are the coordinates of the centroid of the rigid body, and each integral
is taken over the entire volume V of the rigid body. Note that the inertia tensor varies with the orientation of the
rigid body.
The inertial torque acting on link i is given by the time rate of change of the angular momentum of the link
at that instant. Let ωi be the angular velocity vector and Ii be the centroidal inertia tensor of link i; then the
angular momentum is given by Iiωi. Since the inertia tensor varies as the orientation of the link changes, the
time derivative of the angular momentum includes not only the angular acceleration term I i ω D i , but also a term
resulting from changes in the inertia tensor. This latter term is known as the gyroscopic torque and is given by
ωi x (Iiωi). Adding these terms to the original balance of moments (4-2) yields
D i − ωi x (Iiωi) = 0, i=1,...,n
Ni−−1,i − Ni,i+1 + ri,ci x fi,i+1 − ri−−1,ci x fi−−1,i − I i ω (5-3)
Note that all vectors are 2x1, so that the Ni−−1,i and the vector products are scalar quantities. Similarly, for link 2,
f1,2 + m2g − m2ac2 = 0
D2 =0
N1,2 + r1,c2 x f1,2 − I 2 ω (5-5)
To obtain closed-form dynamic equations, we first eliminate the constraint forces and separate them from the
joint torques, so as to explicitly involve the joint torques in the dynamic equations. For the planar manipulator,
the joint torques τ1 and τ2 are equal to the coupling moments:
Ni−−1,i = τi (5-6)
Substituting (5-6) into (5-5) and eliminating f1,2, we obtain
D2 =0
τ2 − r1,c2 x m2ac2 + r1,c1 x m2g − I 2 ω (5-7)
Next, we rewrite vci, ωi, and ri,i+1 using joint displacements θ1 and θ2, which are independent variables. Note
that ω2 is the angular velocity relative to the base coordinate frame, while θD 2 is measured relative to link 1.
Then, we have
ω1 = θD 1 ω 2 = θD 1 + θD 2 (5-9)
where
H11 = m1 lc12 + I1 + m2 [l12 + lc22 + 2 l1 lc2 cos(θ
θ2)] + I2 (5-12-a)
H22 = m2 lc22 + I2 (5-12-b)
θ2) +
H12 = m2 l1 lc2 cos(θ m2 lc22 + I2 (5-12-c)
θ2)
h = m2 l1 lc2 sin(θ (5-12-d)
θ1) + m2 g [lc2 cos(θ
G1 = m1 lc1 g cos(θ θ1+θ
θ2) + l1 cos(θ
θ1)] (5-12-e)
θ1+θ
G2 = m2 lc2 g cos(θ θ2) (5-12-f)
The scalar g represents the acceleration of gravity along the negative y axis.
More generally, the closed-form dynamic equations of an n-degree-of-freedom manipulator can be given in
the form
n n n
τi = ∑ H ijqDD j + ∑ ∑ h ijk qD jqD k + G i i = 1, ..., n (5-13)
j=1 j = 1k = 1
where coefficients Hij, hijk and Gi are functions of joint displacements q1, ..., qn. When external forces act on the
manipulator arm, the left-hand side must be modified accordingly.
∆∆∆
5.1.3. Physical Interpretation of the Dynamic Equations
In this section, we interpret the physical meaning of each term involved in the closed-form dynamic
equations for the two degree-of-freedom planar manipulator.
The last term Gi in each of equations (5-11-a,b) accounts for the effect of gravity. Indeed, the terms G1 and
G2, given by (5-12-e,f), represent the moments created by the masses m1 and m2 about their individual joint
axes. The moments are dependent upon the arm configuration. When the arm is fully extended along the x axis,
the gravity moments are maximum.
Next, we investigate the first terms in the dynamic equations. When the second joint is immobilized, i.e.
θ = 0 and θ = 0 , the first dynamic equation reduces to τ = H θ , where the gravity term is neglected.
2 2 1 11 1
From this expression it follows that the coefficient H11 accounts for the moment of inertia seen by the first joint
when the second joint is immobilized. The coefficient H11 given by equation (5-12-a) is interpreted as the total
moment of inertia of both links reflected to the first joint axis. The first two terms, m1 lc12 + I1, in equation (5-
12-a), represent the moment of inertia of link 1 with respect to joint 1, while the other terms are the contribution
from link 2. The inertia of the second link depends upon the distance L between the centroid of link 2 and the
first joint axis shown in Figure 5-3. The distance L is a function of the joint angle θ2 and is given by
L2 = l12 + lc22 + 2 l1 lc2 cos(θ
θ2) (5-14)
Figure 5-3: Varying inertia depending on arm configuration.
Using the parallel axes theorem of inertia tensors (Goldstein, 1981), the inertia of link 2 with respect to joint
1 is m2 L2 + I2, which is consistent with the last two terms in equation (5-12-a). Note that the inertia varies with
the arm configuration. The inertia is maximum when the arm is fully extended (θ θ2 = 0), and minimum when the
arm is completely contracted (θ θ2 = π).
Let us now investigate the second terms in equation (5-11). Consider the instant when θ 1 = θ 2 = 0 and
θ = 0 , then the first equation reduces to τ = H θ , where the gravity term is again neglected. From this
1 1 12 2
expression it follows that the second term accounts for the effect of the second link motion upon the first joint.
When the second link is accelerated, the reaction force and torque induced by the second link act upon the first
link. This is clear in the original Newton-Euler equations (5-4), where the coupling force −f1,2 and moment −N1,2
from link 2 are involved in the dynamic equation for link 1. The coupling force and moment cause a torque τint
about the first joint axis given by
where N1,2 and f1,2 are evaluated using equation (5-5) for θC 1 = θC 2 = 0 and CθC1 = 0 . This agrees with the second
term in equation (5-11-a). Thus, the second term accounts for the interaction between the two joints.
where L is the distance between the centroid C2 and the first joint O0. The direction of the centrifugal force is
parallel to position vector O0C2. This centrifugal force causes a moment τcent about the second joint. Using
equation (5-16), the moment τcent is computed as
τ cent = r1, c 2 × f cent = −m 2 l 1l c 2 θD 1 2 sin( θ 2 ) (5-17)
This agrees with the third term hθ θD 1 2 in equation (5-11-b). Thus we conclude that the third term is caused by the
centrifugal effect on the second joint due to the motion of the first joint. Similarly, when the second joint is
rotated at a constant velocity θD 2 , the torque caused by the centrifugal effect acts upon the first joint.
Finally we discuss the fourth term of equation (5-11-a), which is proportional to the product of the joint
velocities. Consider the instant when the two joints rotate at velocities θ 1 and θD 2 at the same time. Let Ob-xbyb
be the coordinate frame attached to the tip of link 1, as shown in Figure 5-5. Note that the frame Ob-xbyb is
parallel to the base coordinate frame at the instant shown. However, the frame rotates at the angular velocity θ 1 ,
along with link 1. The motion of link 2 is represented by θD relative to link 1 or the moving coordinate frame
2
Ob-xbyb. When a mass particle m moves at a velocity of vb relative to a moving coordinate frame rotating at an
angular velocity ω, the mass particle has the so-called Coriolis force given by 2m(ω
ω x vb). Let fCor be the force
acting on link 2 due to the Coriolis effect. The Coriolis force is given by
The right-hand side of the above equation agrees with the fourth term in equation (5-11-a). Since the Coriolis
force given by equation (5-18) acts in parallel with link 2, the force does not create a moment about the second
joint in this particular case.
Thus, the dynamic equations of a manipulator arm are characterized by a configuration-dependent inertia,
gravity torques, and interaction torques caused by the accelerations of the other joints and the existence of
centrifugal and Coriolis effects.
5.2. Lagrangian Formulation of Manipulator Dynamics
5.2.1. Lagrangian Dynamics
In the Newton-Euler formulation, the equations of motion are derived from Newton's Second Law, which
relates force and momentum, as well as torque and angular momentum. The resulting equations involve
constraint forces, which must be eliminated in order to obtain closed-form dynamic equations. In the Newton-
Euler formulation, the equations are not expressed in terms of independent variables, and do not include input
joint torques explicitly. Arithmetic operations are needed to derive the closed-form dynamic equations. This
represents a complex procedure which requires physical intuition, as discussed in the previous section.
An alternative to the Newton-Euler formulation of manipulator dynamics is the Lagrangian formulation,
which describes the behavior of a dynamic system in terms of work and energy stored in the system rather than
of forces and momenta of the individual members involved. The constraint forces involved in the system are
automatically eliminated in the formulation of Lagrangian dynamic equations. The closed-form dynamic
equations can be derived systematically in any coordinate system.
Let q1, ..., qn be generalized coordinates that completely locate a dynamic system. Let T and U be the total
kinetic energy and potential energy stored in the dynamic system. We define the Lagrangian L by
L(q i , qD i ) = T − U (5-20)
Note that, since the kinetic and potential energies are functions of qi and qD i (i = 1, ..., n), so is the Lagrangian L.
Using the Lagrangian, equations of motion of the dynamic system are given by
d ∂L ∂L (5-21)
− = Qi
D
dt ∂q i ∂q i
where Qi is the generalized force corresponding to the generalized coordinate qi. The generalized force can be
identified by considering the virtual work done by non-conservative forces acting on the system.
5.2.2. The Manipulator Inertia Tensor
In this section and the following section, we derive the equations of motion of a manipulator arm using the
Lagrangian. We begin by deriving the kinetic energy stored in an individual arm link. As shown in Figure 5-6,
let vci and ωi be the 3 x 1 velocity vector of the centroid and the 3 x 1 angular velocity vector with reference to
the base coordinate frame, which is an inertial reference frame. The kinetic energy of link i is then given by
1 1
Ti = m i v ci T v ci + ω i T I i ω i (5-22)
2 2
Note that, since the motion of link i depends on only joints 1 through i, the column vectors are set to zero for j≥i.
From equations (3-26) and (3-27) each column vector is given by
where r0,ci is the position vector of the centroid of link i referred to the base coordinate frame, and bj−−1 is the 3x1
unit vector along joint axis j−1.
Substituting expressions (5-24) into equations (5-22) and (5-23) yields
1 n ( i )T ( i ) ( i )T (i) 1 (5-27)
T= ∑
2 i =1
(m i q T J L J L q + q T J A I i J A q ) = q T H q
2
=
The matrix H incorporates all the mass properties of the whole arm linkage, as reflected to the joint axes, and is
referred to as the manipulator inertia tensor (this standard terminology is an abbreviation of manipulator inertia
tensor matrix: strictly speaking, H is a matrix based on the individual inertia tensors). Note the difference
between the manipulator inertia tensor and the 3 x 3 inertia tensors of the individual arm links. The former is a
composite inertia tensor including the latter as components. The manipulator inertia tensor, however, has
properties similar to those of individual inertia tensors. As shown in equation (5-28), the manipulator inertia
tensor is a symmetric matrix, as is the individual inertia tensor defined by equation (5-2). The quadratic form
associated with the manipulator inertia tensor represents kinetic energy, so does the individual inertia tensor.
Kinetic energy is always strictly positive unless the system is at rest. The manipulator inertia tensor of equation
(5-28) is positive definite, so are the individual inertia tensors. Note, however, that the manipulator inertia tensor
involves Jacobian matrices, which vary with arm configuration. Therefore the manipulator inertia tensor is
configuration-dependent and represents the instantaneous composite mass properties of the whole arm linkage at
the current arm configuration.
Let Hij be the [i, j] component of the manipulator inertia tensor H, then we can rewrite equation (5-27) in a
scalar form so that
1 n n (5-29)
2 ∑ ∑ ij i j
T= H q q
i =1 j=1
where the position vector of the centroid Ci is dependent on the arm configuration. Thus the potential function is
a function of q1, ..., qn.
Generalized forces account for all the forces and moments acting on the arm linkage except gravity forces
and inertial forces. We consider the situation where actuators exert joint torques τ = [ττ1, ..., τn]T at individual
joints and an external force and moment Fext is applied at the arm's endpoint while in contact with the
environment. Generalized forces can be obtained by computing the virtual work done by these forces. In
equation (4-9), let us replace the endpoint force exerted by the manipulator by the negative external force −Fext.
Then the virtual work is given by
δWork = τT δq + FextT δp = (ττ + JTFext )Tδq (5-31)
T
By comparing this expression with the one in terms of generalized forces Q = [Q1, ..., Qn] , given by
δWork = QT δq (5-32)
we can identify the generalized forces as
Q = τ + JTFext (5-33)
Using the total kinetic energy (5-29) and the total potential energy (5-30), we can now derive Lagrange's
equations of motion. From equation (5-29), the first term in equation (5-21) is computed as
d ∂T d n n n dH
(5-34)
H ijqC j = ∑ H ij q
ij
dt ∂qC i
=
dt ∑
CC j + ∑
dt
qC j
j=1 j=1 j=1
Note that Hij is a function of q1, ..., qn, so that the time derivative of Hij is given by
dH ij n ∂H dq n ∂H
ij ij (5-35)
dt
= ∑ ∂q k dt
k
= ∑ ∂q k k
qD
k =1 k =1
The second term in equation (5-21) includes the partial derivative of the kinetic energy, given by
∂T ∂ 1 n n 1 n n ∂H jk
(5-36)
= ∑ ∑ H jk qD jqD k = ∑ ∑ qD qD
∂q i ∂t 2 j=1 k =1 2
= =
∂q i j k
j 1 k 1
since Hjk depends on qi. The gravity term Gi is obtained by taking the partial derivative of the potential energy:
n ∂r0,cj n
∂U ( j) (5-37)
Gi = = ∑ m jg T = ∑ m j g T J Li
∂q i j=1 ∂q i j=1
since the partial derivative of the position vector r0,cj with respect to qi is the same as the i-th column vector of
the Jacobian matrix J ( j) defined by equations (5-24)-(5-26). Substituting expressions (5-34) through (5-37) into
Li
(5-21) yields
n n n
∑ H ijqDD j + ∑ ∑ h ijk qD jqD k + G i = Q i i = 1, ..., n (5-38)
j=1 j = 1k = 1
where
∂H ij 1 ∂H jk
h ijk = − (5-39)
∂q k 2 ∂q i
and
n
G i = ∑ m jg T J (Lij) (5-40)
j=1
The first term represents inertia torques, including interaction torques, while the second term accounts for the
Coriolis and centrifugal effects, and the last term is the gravity torque. It is important to note that interactive
DD j (j ≠ i) result from the off-diagonal elements of the manipulator inertia tensor and that the
inertia torques H ijq
Coriolis and centrifugal torques h ijk qC jqC k arise because the manipulator inertia tensor is configuration
dependent. Equation (5-38) is the same as equation (5-13) derived from Newton-Euler equations. Thus the
Lagrangian formulation provides the closed-form dynamic equations directly.
Example 5-2
Let us derive closed-form dynamic equations for the two degree-of-freedom planar manipulator shown in
Figure 5-2, using Lagrange's equations of motion.
We begin by computing the manipulator inertia tensor H. From equation (5-10), velocities of the centroids
C1 and C2 can be written as
− l sin( θ1 ) 0
v c1 = c1 qD
l c1 cos(θ 1 ) 0
The above 2x2 matrices are the Jacobian matrices J ( i ) of equation (5-24). The angular velocities are associated
L
with the Jacobian matrices J ( i ) , which are 1x2 row-vectors in this planar case:
A
ω1 = θD 1 = [1 0]qD
ω 2 = θD 1 + θD 2 = [1 1]qD (5-42)
Substituting the above expressions into equation (5-28), we obtain the manipulator inertia tensor
m l 2 + I + m (l 2 + l 2 + 2l l cos θ ) + I m 2 l 1 l c 2 cos θ 2 + m 2 l c 2 2 + I 2 (5-43)
H = 1 c1 1 2 1 c2 1 c2 2 2
m 2 l 1 l c 2 cos θ 2 + m 2 l c 2 2 + I 2 m 2 l c2 2 + I 2
The components of the above inertia tensor are the coefficients of the first term of equation (5-38). The second
term is determined by substituting equation (5-43) into equation (5-39).
h111 = 0, h122 = −m2l1lc2sinθ
θ2, h112 + h121 = −2m2l1lc2sinθ
θ2, h211 = m2l1lc2sinθ
θ2, h222 = 0, h212 + h221 = 0 (5-44)
The third term in Lagrange's equations of motion, i.e., the gravity term, is derived from equation (5-40) using
the Jacobian matrices in equation (5-41):
(1) ( 2)
G 1 = g T [m 1 J L1 + m 2 J L1 ] (5-45)
(1) ( 2)
G 2 = g T [m 1 J L 2 + m 2 J L 2 ]
Substituting equations (5-43), (5-44) and (5-45) into equation (5-38) yields
1
T = pD T H * pD (5-50)
2
where
H* = (J−1)T H J−1 (5-51)
The matrix H* represents the manipulator inertia tensor referred to p-coordinates. The transformation of inertia
tensors is thus given by equation (5-51). The first term of Lagrange's equations of motion is determined by the
new manipulator inertia tensor H*. The Coriolis and centrifugal terms are derived by differentiating H* as in (5-
39):
∂H *ij * n ∂H * *
1 ∂H jk 1 ∂H jk
= ∑ Ĵ li
ij
h *ijk = − Ĵ lk − (5-52)
∂p k 2 ∂p i ∂q l 2 ∂q l
l = 1
where Ĵ lk is the [l, k] element of the inverse Jacobian matrix J−1. Gravity terms in p-coordinates, Gi*, are
derived from differentiating the potential function U in terms of p. From (5-37) and (5-49), we get
n n
∂U ∂U ∂q j
G *i = =∑ = ∑ G j Ĵ ji (5-53)
∂p i ∂q j ∂p i
j=1 j=1
or in vector form
G* = (J−1)TG (5-54)
*
where G and G are nx1 vectors of components Gi* and Gi (i=1, ..., n), respectively.
Finally let Q* = [Q1*,..., Qn*]T be the generalized forces in p-coordinates. The principle of virtual work yields
δWork = QT δq = QT J−1 δq = Q*T δp (5-55)
and therefore
Q* = (J−1)T Q (5-56)
Example 5-4
Consider again the two degree-of-freedom planar manipulator of Figure 5-7, where the second joint is
remotely driven by the actuator fixed to the base. We now use the angles p1 and p2 shown in Figure 5-8 as
generalized coordinates. The new coordinates represent the absolute angles of the two links measured from the
base line (the x0 axis), whereas the joint displacements θ1 and θ2 represent the relative angles between adjacent
links. The two angles p1 and p2 are independent variables, and furthermore determine the arm configuration
completely. Therefore, they can indeed be used as generalized coordinates. Let us derive the equations of
motions in the p1, p2 coordinates.
Figure 5-8: Representation of arm configuration using absolute angles p1 and p2.
We first obtain the manipulator inertia tensor in p-coordinates. The total kinetic energy stored in the two
links is given by
T = 1/2 (m1|vc1|2 + I1ω12 + m2|vc2|2 + I2ω22) (5-57)
where
2 2
v c1 = l c1 2 pD 1 2 , v c2 = l c1 2 pD 1 2 + l c 2 2 pD 2 2 + 2l 1l c 2 pD 1pD 2 cos(p 2 − p 1 ) , ω1 = pD 1 , ω 2 = pD 2 (5-58)
Rewriting the total kinetic energy in the quadratic form (5-27), we find the components Hij* of the manipulator
inertia tensor in p-coordinates:
H11* = m1 lc12 + I1 + m2 l12
H22* = m2 lc22 + I2 (5-59)
H12* = m2 l1 lc2 cos(p2 − p1)
Let us now show that the same result can be obtained by the coordinate transformation of manipulator
inertia tensors given by equation (5-51). From the figure, the relationship between the two sets of generalized
coordinates is given by
p1 = θ1 p2 = θ1 + θ2 (5-60)
The inverse manipulator Jacobian associated with this coordinate transformation is thus given by
1 0
J −1 =
(5-61)
− 1 1
Substituting (5-61) into (5-51) yields
H11* = H11 + H22 − 2 H12
H12* = H12 − H22 (5-62)
H22* = H22
where Hij is the [i, j] element of H that was obtained in equation (5-12). Substituting (5-12) into (5-62), we
obtain the same result as (5-59).
From equations (5-56), (5-61), and (5-48), the transformation of generalized forces is given by
Q1* = Q1 − Q2
Q2* = Q2 = τ2* (5-63)
* *
Similarly, the gravity terms G1 and G2 are transformed into G1 and G2 . Lagrange's equations of motion in p-
coordinates are then given by
∂H *12 2
H *11p
1 + H *12 p
2 + p + G *1 = τ*1
∂p 2 2 (5-64)
∂H *12 2
H *22 p
2 + H *12 p
1 + p + G *2 = τ*2
∂p 1 1
Note that in p-coordinates the diagonal elements of H* are configuration-invariant and that the Coriolis torque,
which is proportional to the product p 1p 2 , does not appear. This can be easily understood. In q-coordinates, the
motion of link 2 is represented relative to link 1, which rotates with an angular velocity q 1 . In other words, the
motion of link 2 is represented relative to the moving coordinate attached to link 1. Therefore, a Coriolis torque
arises when link 2 moves while link 1 rotates. In p-coordinates, however, the rotation of link 2 is represented
with reference to the base frame and is independent of link 1, hence there is no Coriolis effect. Thus, the
equations of motion can be simplified by selecting appropriate generalized coordinates.
∆∆∆
Example 5-5
In the kinematic and static analysis of a manipulator arm, we are concerned with the motion of the end-
effector, because of its direct influence upon the task to be accomplished. Similarly, let us now consider the
dynamic equations for the end-effector motion, using endpoint coordinates.
Consider the two degree-of-freedom manipulator of Figure 5-9. We assume that the range of joint 2 is
limited within 0 < θ2 < π. Under this condition, the solution to the kinematic equation is unique: given arbitrary
endpoint coordinates x and y within the reachable range, joint displacements θ1 and θ2 are uniquely determined.
Therefore, we can use endpoint coordinates x and y as a complete and independent set of generalized
coordinates, in the same way as joint coordinates. When the second joint is limited to the range 0 < θ2 < π, the
Jacobian matrix associated with the endpoint motion remains non-singular, as shown in Example 3-2. From (3-
34), the inverse Jacobian is given by
1 sin( θ1 + θ 2 ) − cos(θ1 + θ 2 )
J − 1 (θ1 , θ 2 ) = sin − sin( θ + θ ) cos θ + cos(θ + θ )
(5-65)
sin θ 2 − θ 1 1 2 1 1 2
using the specified trajectory data. At each instant we compute joint velocities qD j and joint accelerations q
DD j
from the given time functions, and then substitute them to the right-hand side of the above equation. It must be
noted that the coefficients, Hij, hijk, and Gi are all configuration-dependent. When all the coefficients need to be
computed, the total amount of computation becomes extremely large. As we have seen in equations (5-28) and
(5-39), the computation required for the first and the second terms of Lagrange's equations increases quite
rapidly as the number of degrees of freedom n increases; the number of multiplications required for the first
term is approximately proportional to n3, while that required for the third term is proportional to n4. For a six
degree-of-freedom manipulator arm, we end up with 66271 multiplications for each data point (Hollerbach,
1981). Thus, the extremely heavy computation load is a bottleneck for the inverse dynamics.
The inverse dynamics approach is particularly important for control, since it allows us to compensate for the
highly coupled and nonlinear arm dynamics, as discussed in the next chapter. However, we need to cope with
the computational complexity in real time. Thus, in this section, we investigate fast computation algorithms.
5.3.2. Recursive Computation
Two efficient algorithms for inverse dynamics computation have recently been developed. One is based on
the Lagrangian formulation and the other is based on the Newton-Euler formulation. Both methods reduce the
computational complexity from O(n4) to O(n), so that the required number of operations varies linearly with the
number of degrees of freedom. This reduction is particularly significant for manipulators with many degrees of
freedom.
The key concept of both methods is to formulate dynamic equations in a recursive form, so that the
computation can be accomplished from one link of a manipulator arm to another. Figure 5-11 illustrates the
outline of the recursive computation algorithm based on the Newton-Euler formulation. The algorithm can be
applied to any manipulator arm with an open kinematic chain structure.
Figure 5-11: Recursive computation of kinematic and dynamic equations.
The first phase of the recursive Newton-Euler formulation is to determine all the kinematic variables that
are needed for evaluating the Newton-Euler equations. These include the linear and angular velocities and
accelerations of each link member involved in the serial linkage. The algorithm starts with the first link. Given
the joint displacement q1, and the joint velocity and acceleration qD 1 and q DD 1 , the linear and angular velocities
and accelerations of the centroid C1, are determined. Then, using the velocities and accelerations of the first
link, denoted by vc1, ω1, ac1 and ωD 1 , we compute the velocity and acceleration of the second link with the data
specified for joint 2, namely q2, qD 2 and q DD 2 . This procedure is repeated until all the centroidal velocities and
accelerations, as well as the angular velocities and accelerations, are determined for all the links involved.
The second phase of the recursive formulation is to evaluate Newton-Euler equations with the computed
kinematic variables to determine the joint torques. We now proceed with the recursive computation starting
from the last link back to the proximal links. Let us recall the force/momentum relationship given by equation
(5-1). We can rewrite the equation for link n as
fn−−1,n = fn,n+1 − mng + mnacn (5-66)
where fn−−1,n is the coupling force between links n− −1 and n, fn,n+1 is the linear endpoint force that is specified
along with trajectories to follow, g is the gravitational acceleration vector, and acn is the acceleration vector of
the centroid Cn, which was computed in the first phase. From this expression, it follows that the unknown
coupling force fn−−1,n can be determined by evaluating the right-hand side of (5-66), which consists of known or
specified variables. Similarly, we can write the force/momentum relationship for link n− −1 and determine the
coupling force fn−−2,n−−1 by using the variables previously obtained. Moment and angular momentum can be
evaluated in the same manner as the linear forces, and thus the coupling moments Ni−−1,i can be determined one
by one. Hence, we can obtain all the coupling forces and moments recursively, by evaluating the dynamic
equations from the last link back to the first link.
To summarize, the recursive procedure can be formulated as
fi−−1,i = fi,i+1 − mig + miaci (5-67)
i + ωi x (Iiωi)
Ni−−1,i = Ni,i+1 − ri,ci x fi,i+1 + ri−−1,ci x fi−−1,i + I i ω (5-68)
This procedure is repeated until the link number i reaches i = 1. Once the coupling force and moment of each
joint are determined, the joint torque can be computed from (4-4) or (4-5), depending on the type of joint.
5.3.3. Moving Coordinates
In the first phase of the computation, we need to find the velocity and acceleration of link i, given the
motion of the previous link and the specified motion of link i relative to link i−1. To solve this problem, we need
to analyze relative motions defined in a moving coordinate frame. In this section we derive basic results about
moving coordinates, and then apply these results to the recursive computation algorithm.
Let us analyze the motion of a vector represented with reference to a moving coordinate frame, as shown in
Figure 5-12. The coordinate frame O0-x0y0z0 is fixed to the ground, while O-xyz is rotating with an angular
velocity ω. The origin O itself is assumed to be stationary in the figure. An arbitrary vector s is fixed to O-xyz,
and thus moves with the rotating coordinate frame. Let us first compute the time rate of change of vector s as
viewed from the fixed frame:
(ds/dt)|fixed (5-69)
Figure 5-12: Time rate of change of a vector fixed to a rotating coordinate frame.
Consider a short time interval ∆t. The moving coordinate frame rotates |∆∆θ| = |ωω|∆
∆t about the axis of
rotation as shown in the figure. Accordingly, the vector s moves from point A to point B. Let Φ be the angle
<AOC in the figure, then the magnitude of the change in vector s is
∆θ| = AO sinΦ
AB = AC |∆ Φ |ω
ω|∆
∆t = |s| |ω
ω| sinΦ
Φ ∆t (5-70)
The vector AB is perpendicular to both the axis of rotation and vector s, hence is parallel to the vector product ω
x s. Thus, the time rate of change of the vector s as viewed from the fixed coordinate frame is given by
(ds/dt)|fixed = ω x s (5-71)
Figure 5-13 shows coordinate frames fixed to the base, link i, and link i+1, denoted respectively by O0-x0y0z0,
Oi-xiyizi and Oi+1-xi+1yi+1zi+1. From the figure,
r0,i+1 = r0,i + ri,i+1 (5-72)
The second term on the right-hand side represents the relative acceleration viewed from the moving frame, the
third term is the contribution due to the angular acceleration of the moving frame, the fourth term is the Coriolis
acceleration, and the last term is the centrifugal acceleration due to the rotation of the moving frame.
5.3.4. Luh-Walker-Paul's Algorithm
On the basis of the kinematic analysis on the moving coordinate frame, we now formulate the recursive
computation algorithm of Newton-Euler dynamic equations. The algorithm was originally developed by (Luh,
Walker and Paul, 1980-a).
The first phase consists of kinematic computations. We derive different recursive equations depending on
the type of joint (prismatic or revolute). When joint i+1 is prismatic, the angular velocity and acceleration of
link i+1 are the same as those of the previous link:
ωi+1 = ωi (5-80)
D i +1 = ω
ω Di (5-81)
On the other hand, if joint i+1 is revolute, the frame i+1 is rotated at an angular velocity qD i + 1b i and with an
angular acceleration q DD i + 1b i about the zi axis of the moving coordinate frame attached to link i. The angular
velocity of link i+1 referred to the base frame is then given by
ω i + 1 = ω i + qD i + 1b i (5-82)
The recursive equation for angular acceleration can be obtained by simply taking the time derivative of both
sides. Note, however, that the second term is defined as a vector relative to the moving coordinate frame. Hence
the differential operator (5-77) must be employed in order to obtain the time derivative viewed from the base
frame:
D i +1 = ω
ω Di +q
DD i + 1b i + ω i × qD i b i (5-83)
The recursive equations for linear velocities and accelerations are derived from equations (5-76) and (5-79). The
second terms in both equations are caused by the motion of joint i+1 relative to link i. If joint i+1 is prismatic,
dri , i + 1
= qD i + 1b i (5-84)
dt
rel
d 2 ri , i + 1 (5-85)
DD i + 1b i
=q
dt 2
rel
Substituting (5-84) and (5-85) into (5-76) and (5-79) then yields
v i + 1 = v i + qD i + 1b i + ω i × ri , i + 1 (5-86)
DD i + 1b i + ω
a i +1 = a i + q D i × ri , i + 1 + 2ω i × qD i + 1b i + ω i × (ω i × ri , i + 1 ) (5-87)
d 2 ri , i + 1 (5-89)
DD i + 1b i × ri , i + 1 + qD i + 1b i × (qD i + 1b i × ri , i + 1 )
=q
2
dt
rel
Further, substituting (5-83) and (5-89) into (5-79) and using the identity of vector triple products, i.e., (a x b) x c
= (aT c)b − (bT c)a and a x (b x c) = (aT c)b − (aT b)c, we obtain
D i + 1 × ri , i + 1 + ω i + 1 × (ω i + 1 × ri , i + 1 )
a i +1 = a i + ω (5-91)
The Newton-Euler equations are expressed in terms of centroidal accelerations, whereas the recursive
formulation is expressed with respect to the origin of the coordinate frame attached to each link. Therefore, in
order to evaluate (5-67), we need to transform all variables to centroidal variables. This is illustrated in Figure 5-
14, where vi and ωi are, respectively, the velocity at the origin of the coordinate frame attached to link i, and the
angular velocity of the link. The centroidal velocity is then given by
vci = vi + ωi × ri,ci (5-92)
Figure 5-14: Centroid velocity and joint velocity.
Thus, by applying the differential operator (5-77) to expression (5-92), we find the centroidal acceleration:
D i × ri , ci + ω i × (ω i × ri , ci )
vD ci = vD i + ω (5-93)
Finally, we discuss the angular momentum involved in Euler's equation (5-68). As mentioned before, the
inertia tensor Ii varies depending on the orientation of the link. Let R 0i be the 3x3 rotation matrix associated
with the coordinate transformation from frame i to the base frame, and I i be the inertia tensor expressed in the
coordinate frame fixed to the link itself. The inertia tensor I i is then given by
( )T
I i = R 0i I i R 0i (5-94)
Equation (5-94) can be derived in the same way as equation (5-51), namely by considering the kinetic energy
due to the rotation of link i and transforming the angular velocity using the rotation matrix. The inertia tensor I i
is invariant since it depends only on the mass distribution of the link itself. When we evaluate Euler's equation,
the inertia tensor Ii must be obtained for each arm configuration. This requires extra computation time. In the
Luh-Walker-Paul's algorithm, all the variables and parameters are expressed in link coordinates so that the
additional computation can be eliminated. Namely, instead of representing vectors such as vi, ωi, and ai with
reference to the base coordinate frame, we express them with reference to the coordinate frame fixed to each
link, i.e., in link coordinates. To express the equations in link coordinates, we simply replace vi, ωi, and the other
variables by the ones referred to that link coordinate frame. Further, when a variable referred to frame i is
involved in an equation referred to frame i+1, it is first pre-multiplied by the rotation matrix Rii+1, so that all the
variables are expressed with reference to frame i+1. In link coordinates, vectors bi and ri,ci are constant, since
they are fixed to the link body. Also, if joint i is a revolute joint, the vector ri,i+1 is constant as well.
The computation procedure of the Luh-Walker-Paul's algorithm is summarized in Figure 5-15. The left half
of the figure shows the kinematics computation, while the right half shows the dynamics computation. The
kinematics computation proceeds downwards, while the dynamics proceeds upwards. The input data of joint
motions are transmitted horizontally from the left to the right. The data in the last column are the output joint
torques computed through the operations shown by the blocks. The equation numbers in each block indicate the
computations to be performed at each stage.
Starting from the top left corner, we first specify the velocity and acceleration of the base link. Note that in
this algorithm we can deal with the case when the base frame of the manipulator arm is in motion, if the
acceleration of the base frame is known. Note also that the acceleration of gravity is represented as part of the
acceleration of the base frame, so that the effect of gravity can be included without extra computation. The first
computation block yields the velocity and acceleration of link 1, which are used in the second block for the
second step of the computation. Also, the data is transmitted to the right computation block, where the
centroidal velocity and acceleration are obtained. The results are further transmitted to the third column, where
the Newton-Euler equations are evaluated, and the coupling forces and moments are produced. The result is
used to compute the joint torque.
Figure 5-15: Computational structure of the Luh-Walker-Paul's algorithm.
This algorithm is the fastest of existing algorithms for dynamic computation. The number of multiplications
required is 852 for a general six degree-of-freedom manipulator arm.
5.4. Research Topics
The derivation of dynamic equations for a manipulator arm is a time-consuming and error-prone process.
Automatic generation of the dynamic equations is discussed in (Luh and Lin, 1981; Dillon, 1973; Thomas and
Tesar, 1982).
Much effort has been devoted to developing effective procedures to compute the inverse dynamics in real
time. A straightforward method is to pre-compute the dynamic equations and use a table look-up technique
(Raibert, 1977; Raibert and Horn, 1978). However, this method requires a very large memory size, and is
difficult to modify when mass properties change. (Bejczy and Paul, 1981; Bejczy and Lee, 1983) examined for
specific robots the relative importance of each dynamic term. (Stephanenko and Vukobratovic, 1976; Orin et al.,
Luh, Walker and Paul, 1980-a) devised the recursive Newton-Euler dynamics computation, discussed in Section
5.3, while (Hollerbach, 1980) developed independently the recursive Lagrangian dynamics computation. Later,
(Silver, 1982) showed the equivalence between the two approaches. (Hollerbach, 1983) and (Kanade et al.,
1984) further improved the computation efficiency by customizing the dynamic computations to particular robot
structures. The recursive computation algorithms were extended to closed-loop kinematic chains by (Luh and
Zheng, 1985). (Walker and Orin, 1982) applied the recursive algorithms to dynamics simulation and the explicit
computation of the inertia matrix and nonlinear torques. The dual-number quaternion algebra, mentioned in
Section 2.4, was also used to compute the manipulator dynamics explicitly (Luh and Gu, 1984).
Dynamic analysis has recently been applied to arm linkage design. The goal is to optimize mass properties
of link members, as well as their kinematic structure, so that desirable dynamic performance can be achieved.
(Asada, 1983) developed the generalized inertia ellipsoid concept, an efficient tool for dynamic analysis and arm
design, and applied it to an optimal mass redistribution problem where the arm links are modified to possess
isotropic dynamics. (Yoshikawa, 1985; Khatib and Burdick, 1985) extended the dynamic performance
evaluation. (Asada and Youcef-Toumi, 1984; Youcef-Toumi and Asada, 1985) studied arm linkage designs to
obtain decoupled and configuration-invariant inertia tensors, leading to linear time-invariant arm dynamics,
which are easy to control.