0% found this document useful (0 votes)
18 views27 pages

Chapter 7

Uploaded by

ibrahimbadway3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views27 pages

Chapter 7

Uploaded by

ibrahimbadway3
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Chapter 7

Velocity and Acceleration

Trajectory planning results in a certain velocity of the manipulator end link and any grasped tool. This
velocity comprised both time-varying positions and orientations. We now focus on how these velocities of
objects and manipulators may be described.
Previously, we considered how object position and orientation may be represented, before we considered
the forward and inverse kinematics for position of manipulators. Similarly, before discussing the velocities
of manipulators, we will consider the linear and angular velocity, as well as acceleration, of rigid bodies.

7.1 Planar Motion of Objects


We begin by describing motion of single objects in the plane. First consider a single link rotating about
origin O0 (Figure 7.1(A)). The position d01 = a1 x1 of the endpoint is
   
a1 cθ1 cθ1
0
d01 = a1 0 x1 =   = a1   (7.1)
a1 sθ1 sθ1

Suppose the link is moving due to joint angle velocity θ̇1 . Then the velocity of the endpoint is found by
differentiating (7.1):  
−a1 θ̇1 sθ1
" #
0 −sθ1
ḋ01 =   = a1 θ̇1 = a1 θ̇1 0 y1 (7.2)
a1 θ̇1 cθ1 cθ 1

The velocity direction is y1 , i.e., tangential to the position vector d 01 which points along the x1 axis. The
one-link motion is just like twirling with rotational velocity ω a ball on a string of radius r, where the
tangential velocity of the ball is v = rω (Figure 7.1(B)).
A more general derivation is based on the use of rotation matrices. Rewrite (7.1) as
0
d01 = 0 R1 a1 1 x1 (7.3)
Differentiating,
0
ḋ01 = 0 Ṙ1 a1 1 x1 + 0 R1 a1 1 ẋ1 = 0 Ṙ1 a1 1 x1 (7.4)
Joint axis 1 x1 = i is constant, so its time derivative is zero. The planar rotation matrix is:
 
cθ1 −sθ1
0
R1 = R(θ1 ) =   (7.5)
sθ1 cθ1
c John M. Hollerbach, October 2000

1
2 CHAPTER 7. VELOCITY AND ACCELERATION

y1

x1
a1 O1

O0
1
7.2. SPHERICAL MOTION OF OBJECTS 3

y1 P R(θ +π /2)p1

y0 p1 x1 y1
y0 p x1
1
p0 θ1
O1
d 01
O0 x0 x0
(A) (B)
Figure 7.2: Motion of frame 1 relative to frame 0.

7.2 Spherical Motion of Objects


Reconsider the one-link manipulator in 3 dimensions, where z 0 is now the explicit rotation axis (Figure 7.3).
The direction y1 of the tangential velocity a1 θ̇1 y1 (7.7) could have been generated by crossing the rotation
axis z0 with with the unit vector x1 pointing from O0 to O1 , since d01 = a1 x1 : y1 = z0 × x1 where
z0 = z1 . Multiplying through by a1 θ̇1 ,
a1 θ̇1 y1 = θ̇1 z0 × a1 x1

ḋ01 = ω 01 × d01 (7.11)


where
ω 01 = θ̇1 z0 (7.12)
is the angular velocity vector of link 1 relative to the base 0. It is the product of the axis of rotation with the
rotational velocity. The time derivative of the interorigin vector is the cross product of the angular velocity
vector with the interorigin vector.
As before, let’s repeat the process using the rotation matrix 0 R1 = Rz (θ1 ) from frame 1 to 0. The result
(7.4) has to be reinterpreted in 3 dimensions:
0
ḋ01 = Ṙz (θ1 )a1 1 x1 (7.13)
and so the question is what is Ṙz (θ1 ). Again using the chain rule,
∂Rz (θ1 ) dθ1
Ṙz (θ1 ) =
∂θ1 dt
 
cθ −sθ1 0
∂  1
= θ̇1  sθ1 cθ1 0 

∂θ1
0 0 1
 
−sθ1 −cθ1 0
= θ̇1  cθ1 −sθ1 0  (7.14)
 
0 0 0
The result is not a rotation matrix because of the 0 in the 33 position. However, factor the result as
  
0 −1 0 cθ1 −sθ1 0
Ṙz (θ1 ) = θ̇1  1 0 0   sθ1 cθ1 0 
  
0 0 0 0 0 1
4 CHAPTER 7. VELOCITY AND ACCELERATION

y1

y0
x1
a1 O1
θ1
O0
z1 x0
z0

Figure 7.3: One-link rotation in 3D.

= θ̇1 S(0 z0 )Rz (θ1 ) (7.15)

where  
0 −1 0
S(0 z0 ) =  1 0 0  (7.16)
 
0 0 0
is the skew-symmetric matrix formed from the components of 0 z0 = (0, 0, 1) (Appendix A). Substituting
into (7.13),
0
ḋ01 = a1 θ̇1 S(0 z0 )Rz (θ1 ) 1 x1 = a1 θ̇1 S(0 z0 ) 0 x1 = S(0 ω 0 ) 0 d01 (7.17)
noindent which agrees with (7.11).

7.2.1 Rotational Motion about an Arbitrary Vector


The previous discussion was for rotation about a coordinate axis z 0 , of a vector perpendicular to the rotation
axis. We generalize this result to rotational motion φ̇ about an arbitrary axis k, of a vector p not necessarily
perpendicular to the rotation axis k. Suppose vector p has its tail fixed at origin O with the unit vector k
(Figure 7.4). That is to say, the tip of p is undergoing circular motion about k. Suppose r is the radial vector
from the center of the tip motion to p. Then

p = k(k · p) + r (7.18)

ṗ = ṙ (7.19)

since the projection of p onto k is fixed. The velocity of the radial vector ṙ is tangent to the circle with
direction k × r, and from the well-known relation ṡ = r φ̇ for circular motion,

ṙ = φ̇k × r (7.20)

Hence
ṗ = φ̇k × p = ω × p (7.21)
where ω = φ̇k is the angular velocity vector.
Now let’s repeat the derivation with the angle-axis formulation R k (φ) of a rotation matrix. The rotation
matrix 0 R1 = Rk (φ) describes the evolution of coordinate system 1 relative to coordinate system 0, by
7.2. SPHERICAL MOTION OF OBJECTS 5

k
.
φ
kxp

Figure 7.4: Rotation of vector p about axis k with angular rate φ̇.

a time-dependent rotation φ(t) about the fixed axis k (Figure 7.5). The case where k can vary as well is
implicit in the derivation of the next section. This problem is a generalization of the time derivative of
Rz (θ1 ) from (7.15).
Proceed by using the chain rule:
dRk (φ) dRk (φ)
= φ̇ (7.22)
dt dφ
So the problem is that of finding dRk (φ)/dφ. Because the inverse of a rotation matrix is its transpose,

Rk (φ)Rk (φ)T = I (7.23)

dRk (φ) dRk (φ)T


Rk (φ)T + Rk (φ) = 0 (7.24)
dφ dφ
where (7.24) is the derivative of (7.23) with respect to φ. Define
dRk (φ)
S = Rk (φ)T (7.25)

dRk (φ)T
ST = Rk (φ)

From the definitions above,

S + ST = 0 (7.26)

which is the defining condition for a skew-symmetric matrix. Reworking (7.24) using (7.26),
dRk (φ)
= −ST Rk (φ) = SRk (φ) (7.27)

Now we want to show that S = S(k). From the derivation of the rotational matrix corresponding to an
angle-axis rotation,

Rk (φ) = Icφ + kkT (1 − cφ) + S(k)sφ (7.28)

dRk (φ)
= −Isφ + kkT sφ + S(k)cφ (7.29)

6 CHAPTER 7. VELOCITY AND ACCELERATION

z0
z1
y1
k
y0
φ

x1
x0

Figure 7.5: Frame 1 rotates relative to frame 0 about k with angular velocity φ̇.

Hence the evaluation of (7.25) is


  
S = −Isφ + kkT sφ + S(k)cφ Icφ + kkT (1 − cφ) − S(k)sφ

= −Isφcφ − kkT sφ(1 − cφ) + S(k)sφ2 + kkT sφcφ + kkT kkT sφ(1 − cφ)

−kkT S(k)sφ2 + S(k)cφ2 + S(k)kkT cφ(1 − cφ) − S(k)S(k)sφcφ (7.30)

The terms with S(k)k or kT S(k) are zero, because they involve taking the cross product of k with itself.
The term involving the double cross product can be simplified by seeing the result of applying to an arbitrary
vector v:
S(k)S(k)v = k × (k × v) = k(kT v) − v = (kkT − I)v (7.31)
Substituting into (7.30) and simplifying,

S = −Isφcφ − kkT sφ(1 − cφ) + S(k)(sφ2 + cφ2 ) + kkT sφcφ + kkT sφ(1 − cφ)

−(kkT − I)sφcφ

= S(k) (7.32)

which is the desired result. Hence


dRk (φ)
= S(k)Rk (φ) (7.33)

Ṙk (φ) = φ̇S(k)Rk (φ) = S(ω)Rk (φ) (7.34)

where ω = φ̇k is the angular velocity of coordinate system 1 relative to coordinate system 0.

Example 7.1: R = Rx (φ). Then


   
1 0 0 0 0 0
dRx (φ) 
Rx (φ) =  0 cφ −sφ  , =  0 −sφ −cφ 
  

0 sφ cφ 0 cφ −sφ
7.2. SPHERICAL MOTION OF OBJECTS 7

Consequently,
    
0 0 0 1 0 0 0 0 0
dRx (φ) T 
S= R =  0 −sφ −cφ   0 cφ sφ  =  0 0 −1  = S(x)
   

0 cφ −sφ 0 −sφ cφ 0 1 0

Hence

dRx (φ)
= S(x)Rx (φ)

and the skew-symmetric matrix is formed from the axis of rotation x.

7.2.2 Time Derivative of an Arbitrary 3D Rotation Matrix


In the previous section, the rotational motion was aligned with the angle-axis orientation description. This
will not be true in general: the rotational motion will have no relation to the rotation matrix. We repeat the
process of the previous section with an arbitrary 3D rotation matrice R = R(t) which is a function of time.
Then

RRT = I (7.35)

ṘRT + RṘT = 0 (7.36)

S + ST = 0 (7.37)

where

S = ṘRT

ST = RṘT

and (7.37) shows S is a skew-symmetric matrix. Then from (7.36),

Ṙ = −ST R = SR

Extract a vector ω from the skew-symmetric matrix S = S(ω) (Appendix A), where ω is again the angular
velocity vector of the rotating frame with respect to the fixed frame. Then

Ṙ = S(ω)R (7.38)

Example 7.2: Suppose R(t) = Rx (φ(t)). Then from (7.38) and (7.27),

∂R dφ
Ṙ = = φ̇S(x)R = S(φ̇x)R = S(ω)R
∂φ dt

where ω = φ̇x is the angular velocity vector parallel to the x-axis.


8 CHAPTER 7. VELOCITY AND ACCELERATION

z0
p1
z1
y1

y0

x0 x1

Figure 7.6: Frame 1 rotates relative to frame 0 with angular velocity ω. Vector p 1 is fixed in frame 1.
z0
z1
z2 y2
y1
O0 O1 O2 y0
x0
x1 x2

Figure 7.7: Frame 2 rotates with respect to frame 1, while frame 1 rotates with respted to frame 0. The
origins stay coincident.

Consider two frames 0 and 1 with the same origin, and suppose frame 1 is rotating with respect to frame
0 and is instantaneously located by 0 R1 (t) (Figure 7.6). The time derivative of a vector fixed in frame 1,
1 p , relative to frame 0 is succinctly expressed using the concept of angular velocity vector.
1
0 0
p1 = R1 1 p1 (7.39)
0 0
ṗ1 = Ṙ1 1 p1 (7.40)
since again 1 ṗ1 = 0. Recalling (7.38),
0
ṗ1 = S(ω) 0 R1 1 p1 = S(ω) 0 p1 = ω × 0 p1 (7.41)
Sometimes one formally writes (7.38) as
Ṙ = ω × R (7.42)
where the cross product of a vector with a matrix is interpreted when applied to another vector as (7.41).

7.2.3 Addition of Angular Velocities


Consider 3 frames whose origins are coincident, and suppose frame 2 rotates with respect to frame 1, which
in turn rotates with respect to frame 0 (Figure 7.7). Differentiate the rotational relationship as follows:
0 0
R2 = R1 1 R2 (7.43)
7.2. SPHERICAL MOTION OF OBJECTS 9

0 0
Ṙ2 = Ṙ1 1 R2 + 0 R1 1 Ṙ2 (7.44)

Each of the differentiated rotation matrices can be rewritten as:


1
Ṙ2 = S(1 ω 12 )1 R2
0
Ṙ1 = S(0 ω 01 )0 R1
0
Ṙ2 = S(0 ω 02 )0 R2

where 1 ω 12 is the angular velocity of frame 2 with respect to frame 1, expressed in frame 1, etc. Then

S(0 ω 02 )0 R2 = S(0 ω 01 )0 R1 1 R2 + 0 R1 S(1 ω 12 )1 R2

= S(0 ω 01 )0 R2 + 0 R1 S(1 ω 12 )(0 R1 )T 0 R1 1 R2

= S(0 ω 01 )0 R2 + S(0 ω 12 )0 R2 (7.45)

where

S(0 ω 12 ) = 0 R1 S(1 ω 12 )(0 R1 )T (7.46)

To prove (7.46), we apply each side to an arbitrary vector 0 b and show that the results are the same. Applying
the left side,

S(0 ω 12 ) 0 b = 0 ω 12 × 0 b (7.47)

Applying the right hand side,


0
R1 S(1 ω 12 )(0 R1 )T 0 b = 0
R1 S(1 ω 12 ) 1 b
0
= R1 (1 ω 12 × 1 b)

= (0 R1 1 ω 12 ) × (0 R1 1 b)
0
= ω 12 × 0 b (7.48)

Since (7.47) and (7.48) are the same for all b, then (7.46) is established. From (7.45), we have the final
result:

S(0 ω 02 ) = S(0 ω 01 ) + S(0 ω 12 )


0 0
ω 02 = ω 01 + 0 ω 12 (7.49)

This result holds for any number of coordinate systems:


0
Rn = 0
R1 1 R2 · · · n−1 Rn
0 0
ω 0n = ω 01 + 0 ω 12 + · · · + 0 ω n−1,n
n
X
0
= ω i−1,i (7.50)
i=1
10 CHAPTER 7. VELOCITY AND ACCELERATION

7.2.4 Euler Angle Rates


As mentioned previously, a rotation matrix is a redundant representation of orientation, and other represen-
tations such as Euler angles or quaternions are often employed. It is natural then to formulate motion in
terms of time derivatives of, say, Euler angles, rather than time derivatives of rotation matrices. This section
addresses the relation of Euler angle rates to the angular velocity vector.

φ x0
θ
x2 x1 z2,z3
ψ ψ
x3 z0,z1
φ
y0
θ
y1,y2 y3

Figure 7.8: The ZY Z Euler angles.

Let’s consider the ZYZ Euler angles (Figure 7.8). Then

R = Rz (φ)Ry (θ)Rz (ψ)

where Rz (ψ) transforms from frame 3 to 2,


Ry (θ) transforms from frame 2 to 1, and
Rz (φ) transforms from frame 1 to 0.

Then supposing that the Euler angles are changing with rates φ̇, θ̇, ψ̇ and utilizing the result about summation
of angular velocities (7.50),
0
ω 03 = φ̇ 0 z0 + θ̇ 0 y1 + ψ̇ 0 z2 (7.51)

where
    
cφ −sφ 0 0 −sφ
0 1
y1 = Rz (φ) y1 =  sφ cφ 0   1  =  cφ  (7.52)
    
0 0 1 0 0

     
cφ −sφ 0 cθ 0 sθ 0 cφsθ
0 2
z2 = Rz (φ)Ry (θ) z2 =  sφ cφ 0   0 1 0   0  =  sφsθ  (7.53)
     
0 0 1 −sθ 0 cθ 1 cθ

Substituting into (7.51),


          
0 −sφ cφsθ 0 −sφ cφsθ φ̇ φ̇
0
ω = φ̇  0  + θ̇  cφ  + ψ̇  sφsθ  =  0 cφ sφsθ   θ̇  ≡ Ωzyz  θ̇  (7.54)
          
1 0 cθ 1 0 cθ ψ̇ ψ̇
7.2. SPHERICAL MOTION OF OBJECTS 11

where
 
0 −sφ cφsθ
Ωzyz =  0 cφ sφsθ  (7.55)
 
1 0 cθ

The complication of the relation between the angular velocity vector ω and the Euler angle rates is due to
the non-orthogonality of the Euler angle rotation axes, as reflected in matrix Ω zyz .
The angular velocity vector is a fundamental aspect of object motion, which is explicitly represented in
the dynamics of motion. If object motion is planned in terms of Euler angle rates, then we must be able
to convert from the angular velocity vector to corresponding Euler angle rates. This is done by inverting
(7.54):

 
φ̇
−1 0
 θ̇  = Ωzyz ω (7.56)
 

ψ̇

zyz may not exist. This happens when θ = 0. At such configurations, there are
There is a serious problem: Ω−1
valid angular velocities which cannot be represented by Euler angle rates. This is not a problem of physics,
but of the representation. Hence it is called a representational singularity.
This is a really bad problem. Together with the problem of indeterminate orientation when θ = 0, this
makes Euler angles in practice not that useful. One could switch between different Euler angle representa-
tions to avoid this problem, and this is sometimes done, but this artifice is distasteful.
In dynamic simulation of objects or robots in motion, applied forces or torques result in accelerations,
which are then integrated once to derive velocity and then again to derive position. Although angular velocity
can be found by integrating angular acceleration, there is a problem: what is the integral of angular velocity?
The answer unfortunately is that the integral of ω has no clear meaning. There is no set of Euler angles
that are its integral, because Euler angles represent rotation among nonorthogonal axes. On the other hand,
the components of ω are about orthogonal axes. More generally, there is no representation of orientation
which is the integral of the angular velocity vector.

Example 7.3: Consider the following two cases. Coordinate systems 0 and 1 are coincident at t = 0.

Case 1:

  

 π/2

 0  0≤t<1

  


0




0
ω 01 =  




 0
 π/2  1≤t≤2

  




0
12 CHAPTER 7. VELOCITY AND ACCELERATION

z 0 ,z1 z 0 ,y1 z0
Case 1

y0 ,y 1 z1 y0 z1 y0
x0 ,x 1 x0 ,x 1
x0 ,y1
x1
t=0 t=1 t=2
z0 z 0 ,y1
Case 2

y0 ,y 1 y0 ,x 1

x0 ,z 1 x0 ,z 1
x1

Figure 7.9: Integration of angular velocity vector corresponding to cases 1 and 2.

Case 2:
  

 0

 π/2  0≤t<1

  


0




0
ω 01 =  




 π/2
 0  1≤t≤2

  




0

In both cases, the integral is the same.


 
Z 2 π/2
0
ω 01 =  π/2 
 
0
0

Yet the results are different (Figure 7.9). For example, in case 1 the z 1 axis ends up as −y0 , whereas in case
2 it ends up a x0 .
On the other hand, the integral of Euler angle rates is meaningful, except for the representational singu-
larity problem mentioned above. Thus one converts from angular velocity to Euler angle rate, then integrates.

7.2.5 Quaternion Rates


To get around problems with Euler angles, the use of quaternions and quaternion rates is to be recommended.
They are often used in simulation and virtual reality [2], robotics [1], and control [4]. The relationship
7.3. SPATIAL MOTION OF OBJECTS 13

between quaternion rates and the angular velocity vector is stated below:
" # " #
d q0 1 −qT
= ω (7.57)
dt q 2 −S(q) + q0 I

The derivation is complicated, and can be found for example in [3]. In simulation, one converts from ω to q̇
as above, then integrates q̇ to arrive at q. Integration keeps ||q|| constant.

7.3 Spatial Motion of Objects


Next we describe the motion of objects which are translating and rotating with respect to each other at the
same time.

7.3.1 Spatial Motion of Single Objects


Consider a frame 1 that is moving with respect to frame 0, and a point P (located by p 1 relative to O1 and
p0 relative to O0 ) that is fixed with respect to frame 1 (Figure 7.10). Then the spatial transformation is
0
p0 = 0 d01 + 0 R1 1 p1 (7.58)
and its time derivative is
0 0
ṗ0 = Ṙ1 1 p1 + 0 ḋ01

= S(0 ω 01 ) 0 R1 1 p1 + 0 ḋ01
0
= ω 01 × 0 R1 1 p1 + 0 ḋ01 (7.59)
0
= ω 01 × 0 p1 + 0 ḋ01
where 0 ω 01 is the angular velocity of frame 1 with respect to frame 0. Like any other vector, we have to
specify the frame in terms of which ω 01 is expressed, in this case frame 0. The motion of point P is due
both to linear motion of body 1 away from body 0, and rotational motion of body 1.

7.3.2 Spatial Motion of Multiple Objects


In section 7.2.3 the angular motion of multiple objects was described in the circumstance of coincident
origins. If the objects are translating as well as rotating, the relative angular motions are still the same as
derived in that section.
Now let’s describe the linear velocity of point P in Figure 7.11. In addition to the rotational motions,
each origin is moving with respect to its neighbor with a linear velocity i ḋi−1,i . Then
0 0
p0 = d01 + 0 R1 1 d12 + 0 R2 2 p2 (7.60)
Then differentiate (7.60) to get:
0 0
ṗ0 = ḋ01 + 0 Ṙ1 1 d12 + 0 R1 1 ḋ12 + 0 Ṙ2 2 p2
0
= ḋ01 + 0 ω 01 × 0 d12 + 0 R1 1 ḋ12 + 0 ω 02 × 0 p2 (7.61)
The motion of origin O2 is due both to rotation of frame 1 about frame 0, 0 ω 01 × 0 d12 , and linear movement
of O2 away from O1 , 0 R1 1 ḋ12 .
14 CHAPTER 7. VELOCITY AND ACCELERATION

P
z1
p1

z0 p0 y1
O1

d 01 x1

O0 y0
x0

Figure 7.10: Frame 1 is moving with respect to frame 0, and point P is fixed with respect to frame 1.
P
z2 p2 y
2

z1 p1 O2

d12 x2
z0 p0 y
1
O1

d 01 x1

O0 y0
x0

Figure 7.11: Frame 2 is also moving with respect to frame 1, and point P is fixed with respect to frame 2.

7.4 Joint-Constrained Motion


The effect of joint constraints is to make the interorigin velocity 0 ḋi−1,i dependent on joint angle velocities
θ̇j for rotary joints j ≤ i and also on the joint translational velocity d˙i for a prismatic joint i.

7.4.1 Motion at a Single Joint


Consider first that all joints are stationary except joint i. For a rotary joint i (Figure 7.12(A)), the angular
velocity 0 ω i−1,i of link i relative to link i − 1 is:
0
ω i−1,i = θ̇i 0 zi−1 for a rotary joint j (7.62)
That is to say, this is the angular velocity imparted to link i due solely to the rotation of joint i, irrespective
of any other joints. If joint i is prismatic (Figure 7.12(B)), it imparts no rotation to link i, hence
0
ω i−1,i = 0 for a prismatic joint j (7.63)
7.4. JOINT-CONSTRAINED MOTION 15

.
zi θi zi

z i-1 z i-1
Link i Link i
ai ai
z i-2 .
di di z i-2
xi Oi x i-1 xi Oi x i-1
θi Oi-1 Lin θi Oi-1 Lin
k i- k i-
xi 1 xi 1
ai-1 ai-1

(A) (B)

Figure 7.12: (A) Rotary-joint motion of link i relative to link i − 1. (B) Prismatic-joint motion of link i
relative to link i − 1.

Linear motion is more complicated. The interorigin vector 0 di−1,i according to the DH parameters is:
0
di−1,i = di 0 zi−1 + ai 0 xi (7.64)

If joint i is rotary, then since only joint i is moving the axis z i−1 is stationary but xi is rotating about zi−1
with joint angle velocity θ̇i . Then the linear velocity 0 ḋi−1,i of origin Oi relative to Oi−1 is
0
ḋi−1,i = θ̇i 0 zi−1 × ai 0 xi (joint i rotary, only joint i is moving) (7.65)

Even though zi−1 is stationary, it is convenient to write formally that


0
ḋi−1,i = θ̇i 0 zi−1 × (di 0 zi−1 + ai 0 xi )
0
= ω i−1,i × 0 di−1,i (joint i rotary, only joint i is moving) (7.66)

where (7.62) and (7.64 have been substituted and the term with z i−1 crossed with itself is zero and doesn’t
change the linear velocity.
If joint i is prismatic, motion is due only to the prismatic variable d i , and so ω i−1,i = 0. Differentiating
(7.64) yields
0
ḋi−1,i = d˙i 0 zi−1 (joint i prismatic, only joint i is moving) (7.67)

7.4.2 Motion at All Joints


Now consider that all joints 1 to i are moving. The relative angular velocity 0 ω i−1,i stays the same according
to (7.62) or (7.63). The total angular velocity 0 ω 0i of link i is from (7.50) the sum of the angular velocity
contributions due to all joints from 1 to i:
i
X
0 0
ω 0i = ω j−1,j (7.68)
j=1

i  θ̇ 0 z for a rotary joint j
X j j−1
= (7.69)
j=1
 0 for a prismatic joint j
16 CHAPTER 7. VELOCITY AND ACCELERATION

It will also be useful to express the angular velocity recursively:


0 0
ω 0i = ω 0,i−1 + 0 ω i−1,i (7.70)

 θ̇i 0 zi−1 for a rotary joint i
0
= ω 0,i−1 + (7.71)
 0 for a prismatic joint i
The interorigin linear velocity is again obtained by differentiating (7.64). If joint i is rotary, then axis x i
is spinning with angular velocity ω 0i while axis zi−1 is spinning with angular velocity ω 0,i−1 . Hence
0 0
ḋi−1,i = ω 0,i−1 × di 0 zi−1 + 0 ω 0i × ai 0 xi (joint i rotary, all joints moving) (7.72)
Again, it is convenient to rework this expression into a different form. From the recursive definition (7.71)
applied to a rotary joint i,
0
ḋi−1,i = (0 ω 0,i−1 + θ̇i 0 zi−1 ) × di 0 zi−1 + 0 ω 0i × ai 0 xi
0
= ω 0i × 0 di−1,i (joint i rotary, all joints moving) (7.73)
where the interorigin vector (7.64) has also been substituted. We can say that z i−1 is also spinning with
angular velocity ω 0i because the last rotational motion is about itself and has no effect on it.
If joint i is prismatic, then joint i does not impart any additional angular velocity to link i. Hence
ω 0i = ω 0,i−1 . Not only is link i rotating with angular velocity 0 ω 0,i−1 but it is translating with velocity d˙i
along zi−1 . Differentiating (7.64),
0
ḋi−1,i = d˙i 0 zi−1 + 0 ω 0,i−1 × di 0 zi−1 + 0 ω 0i × ai 0 xi

= d˙i 0 zi−1 + 0 ω 0i × 0 di−1,i (joint i prismatic, all joints moving) (7.74)

7.4.3 Manipulator Velocity Kinematics


Now consider a manipulator with n links. The angular velocity of the last link is obtained from (7.69):
n
X
0 0
ω 0n = ω i−1,i (7.75)
i=1

n  θ̇ 0 z for a rotary joint i
X i i−1
= (7.76)
i=1
 0 for a prismatic joint i
The position of the last link origin is:
n
X
0 0
d0n = di−1,i (7.77)
i=1
Its linear velocity is
n
X
0 0
ḋ0n = ḋi−1,i (7.78)
i=1

n  0 ω 0i ×
X
0d
i−1,i for a rotary joint i
= (7.79)
i=1
 0ω ×
0i
0d
i−1,i + d˙i 0 zi−1 for a prismatic joint i
where (7.73) and (7.74) have been substituted.
7.4. JOINT-CONSTRAINED MOTION 17
.
θ i z i−1 x di−1,n
On
z i−1 Endpoint

d i−1,n
.
θi
yi−1
Oi−1
x i−1

Figure 7.13: Linear velocity at endpoint due to rotation at joint i.

7.4.4 The Velocity Jacobian Jv


An alternative formulation for the endpoint linear velocity 0 ḋ0n will be useful, where the contributions of
individual joint motions are separated out. In (7.78), a particular joint angle velocity θ̇j will appear as a part
of all 0 ḋi−1,i when i ≥ j, but we want a reformulation where the effect of θ̇j on the endpoint velocity is
only indicated in one term. This could be done by subsituting for 0 ω 0,i = ij=1 0 ω j−1,j and collecting all
P

terms with θ̇j , but a more intuitive derivation is possible.


In Figure 7.13 the vector di−1,n = On − Oi−1 from coordinate origin Oi to the end frame origin On
is formed for each joint i. If joint i is rotary, the effect of the rotation of joint i on linear velocity of the
endpoint is
θ̇i 0 zi−1 × 0 di−1,n (7.80)
If joint i is prismatic, the effect is d˙i zi−1 as before. The total linear velocity of the endpoint sums all of
0

these individual joint contributions:



n  θ̇i 0 zi−1 ×
X 0d
i−1,n for a rotary joint i
0
ḋ0n = (7.81)
 d˙ 0 z for a prismatic joint i
i=1 i i−1

Initially assume that all joints are rotary. Then from (7.76) and (7.81),
n
X
0
ω 0n = θ̇i 0 zi−1 (7.82)
i=1

n
X
0
ḋ0n = θ̇i 0 zi−1 × 0 di−1,n (7.83)
i=1

Rearranging into matrix/vector form,


n
" # " #
0 ḋ 0z × 0 di−1,n
i−1
X
0n
0ω = θ̇i 0z
0n i=1 i−1

 
θ̇1
" #
0z × 0 d0n 0z × 0 d1n · · · 0z 0 θ̇2

0 1 n−1 × dn−1,n  
= 0z 0z 0z
 .. 
0 1 ··· n−1

 .


θ̇n
18 CHAPTER 7. VELOCITY AND ACCELERATION

≡ Jv θ̇ (7.84)
where θ̇ = (θ̇1 , . . . , θ̇n ) is the vector of joint angle velocities and J v is the velocity Jacobian:
" #
0z × 0 d0n 0z × 0 d1n · · · 0z 0
0 1 n−1 × dn−1,n
Jv = 0z 0z 0z (7.85)
0 1 ··· n−1

For a prismatic joint i, column i of J v becomes:


" #
0z
i−1
0

and θ̇i is replaced by d˙i .


x2
y2

O2
y1
z2 a2
y0 x1
Joint 2 θ2
a1 O1
z1
O0 x0
θ1
z0 Joint 1

Figure 7.14: The two-link planar manipulator.

7.4.5 Planar Two-Link Manipulator


Let us derive the velocity kinematics for the planar two-link manipulator as an example (Figure 7.14). The
simplest way is to differentiate the straightforward geometric position equations:
x = a1 cθ1 + a2 c(θ1 + θ2 )
(7.86)
y = a1 sθ1 + a2 s(θ1 + θ2 )

where the tip position 0 d02 = (x, y, 0). Differentiating,


ẋ = −a1 θ̇1 sθ1 − a2 (θ̇1 + θ̇2 )s(θ1 + θ2 )
(7.87)
ẏ = a1 θ̇1 cθ1 + a2 (θ̇1 + θ̇2 )c(θ1 + θ2 )
Rearrange as a matrix-vector operation:
 "
−a1 sθ1 − a2 s(θ1 + θ2 ) −a2 s(θ1 + θ2 )
" # #
ẋ θ̇1
=   (7.88)
ẏ a1 cθ1 + a2 c(θ1 + θ2 ) a2 c(θ1 + θ2 ) θ̇2

= Jθ̇ (7.89)
7.4. JOINT-CONSTRAINED MOTION 19

where θ̇ = (θ̇1 , θ̇2 ) and


 
−a1 sθ1 − a2 s(θ1 + θ2 ) −a2 s(θ1 + θ2 )
J=  (7.90)
a1 cθ1 + a2 c(θ1 + θ2 ) a2 c(θ1 + θ2 )

The Jacobian matrix J is not the complete velocity Jacobian J v because it does not contain information
about the angular velocity or the z-component of position.
Now let’s derive the same result using the more general procedure of this section. The angular velocity
vectors of link 1 and 2 are:
0
ω 01 = θ̇1 0 z0 (7.91)
0
ω 12 = θ̇2 0 z1 (7.92)
0 0
ω 02 = ω 01 + 0 ω 12

= (θ̇1 + θ̇2 ) 0 z0 (7.93)

since z0 = z1 . From (7.78) and (7.79),


0 0
ḋ02 = ḋ01 + 0 ḋ12
0
= ω 01 × 0 d01 +0 ω 02 × 0 d12

= θ̇1 0 z0 × a01 x1 + (θ̇1 + θ̇2 ) 0 z0 × a2 0 x2 (7.94)

= a1 θ̇1 0 y1 + a2 (θ̇1 + θ̇2 ) 0 y2 (7.95)

since z0 = z2 also. It can be verified that


   
−sθ1 −s(θ1 + θ2 )
0
y1 = Rz (θ1 ) 1 y1 =  cθ1  and 0
y2 = Rz (θ1 + θ2 ) 2 y2 =  c(θ1 + θ2 ) 
   
0 0

Substituting into (7.95),


   
−sθ1 −s(θ1 + θ2 )
0
ḋ02 = a1 θ̇1  cθ1  + a2 (θ̇1 + θ̇2 )  c(θ1 + θ2 )  (7.96)
   
0 0

which is the same result as (7.87).


Finally, we utilize the alternative procedure (7.81) to derive the same result. Here
0
d02 = a1 0 x1 + a2 0 x2
0
d12 = a2 0 x2

Consequently,
0 0
ḋ02 = ω 01 × 0 d02 +0 ω 12 × 0 d12 (7.97)

= θ̇1 0 z0 × (a1 0 x1 + a2 0 x2 ) + θ̇2 0 z0 × a2 0 x2


20 CHAPTER 7. VELOCITY AND ACCELERATION

O2
x2

z2
z 1 y0 i ai di αi θi
d2 1 0 0 −π/2 *
2 0 * π/2 0
x0 x 1
O0 O1
z0
(A) (B) (C)

Figure 7.15: Polar robot (A) with DH parameters (C) and zero-angle position (B).

This is just a rearrangement of (7.94). The advantage of the form (7.97) is that it is easily put into a Jacobian
matrix form, like (7.88) but in 3 dimensions:
" #
0
h
0z 0d 0z 0d
i θ̇1
ḋ02 = 0 × 02 1 × 12 = Jp θ̇ (7.98)
θ̇2
where Jp is now a 3-by-2 Jacobian matrix which is just the linear velocity part of the velocity Jacobian J v .
A full description also requires the angular velocity 0 ω 02 of the end link (7.93). Combine with (7.98)
into a single matrix-vector equation:
    
0 ḋ 0z × 0 d02 0z × 0 d12 θ̇1
02 0 1
  =    (7.99)
0ω 0z 0z
02 0 1 θ̇2

= Jv θ̇ (7.100)
where Jv is now the full velocity Jacobian.

7.4.6 Polar Robot


Consider the polar robot of Figure 7.15. Like the two-link planar manipulator, the endpoint can be positioned
anywhere in the plane, but with a rotation about z 0 followed by a linear translation along z 1 . Because angular
motion is due only to joint 1, the angular velocities of links 1 and 2 are:
0
ω 01 = θ̇1 0 z0 (7.101)
0
ω 12 = 0 (7.102)
0 0
ω 02 = ω 01 + 0 ω 12

= θ̇1 0 z0 (7.103)
The interorigin vectors are:
0
d01 = 0 (7.104)
0
d12 = d2 0 z1 (7.105)
7.4. JOINT-CONSTRAINED MOTION 21

z5 z6

y1 x2
x 4 x5 x6
O4 O5 O6 z2 O2
z3 a2
z4 O1 d4 d
d4 z1 26
O6
d16
O1 x1 x 2 x3
z0 x1
a2 O2 O3
z1 z0 d1 z3
z2 d06
d1
O0 y0

O0 x0
x0
(A) (B)

Figure 7.16: (A) Zero position of the elbow robot. (B) Diagram to derive the velocity Jacobian.

The interorigin linear velocities are derived from (7.78) and (7.79).
0
ḋ01 = 0 (7.106)
0
ḋ12 = 0
ω 02 × 0 d12 + d˙2 0 z1

= θ̇1 0 z0 × d2 0 z1 + d˙2 0 z1

= −θ̇1 d2 0 x1 + d˙2 0 z1 (7.107)


0 0
ḋ02 = ḋ01 + 0 ḋ12

= −θ̇1 d2 0 x1 + d˙2 0 z1 (7.108)

7.4.7 The Elbow Robot


As an example, consider the elbow robot where the last link coordinate origin O 6 is located at the wrist O5
(Figure 7.16(A)). The Jacobian matrix then becomes:
 
z0 × d06 z1 × d16 z2 × d26 0 0 0
Jv =   (7.109)
z0 z1 z2 z3 z4 z5
Because of the spherical wrist and the location of O 6 at the wrist, d46 = d56 = 0, d36 is coincident with
z3 , and zeros result in the upper right of the Jacobian matrix. This greatly simplifies the linear velocity
computation.
Extra computational savings are realized by explicit substitution for the moment arms d i6 in terms of
displacements along coordinate axes. In general, d i6 can be computed recursively as follows:
di−1,6 = di zi−1 + ai xi + di6 (7.110)
22 CHAPTER 7. VELOCITY AND ACCELERATION

where d56 = 0 since frame 6 is at the wrist (Figure 7.16(B)), then


d26 = d4 z3 (7.111)
d16 = a2 x2 + d4 z3 (7.112)
d06 = d1 z0 + a2 x2 + d4 z3 (7.113)
Note that z0 × d06 zeros out the first d06 term. The final Jacobian is then:
 
z0 × (a2 x2 + d4 z3 ) z1 × (a2 x2 + d4 z3 ) z2 × d4 z3 0 0 0
Jv =   (7.114)
z0 z1 z2 z3 z4 z5

Link n

d n,tool
Otool
On
ω
d 0n
v
d 0,tool

O0

Figure 7.17: Relating frame n velocity to tool frame velocity.

7.4.8 Tool Frame Considerations


If there are extra frames in the last link beyond frame n of an n-link manipulator, for example to locate a
tool frame, then one may either modify the development above so that the summations extend to the last
frame, or one may refer velocities of the tool frame to frame n. The latter is often the best.
Suppose the tool transform n Ttool is given, and that the linear and angular velocities are specified for
the tool frame (Figure 7.17). Then
ḋ0n = ḋ0,tool − ḋn,tool = ḋ0,tool − ω 0n × dn,tool (7.115)
The angular velocity doesn’t change with this referral.
In the case of the elbow robot or other spherical-wrist arm, referring velocities to frame 6 located at the
wrist rather than the tool frame results in computational savings. This is because the last three joint angles
act through a zero moment arm, and hence do not affect wrist linear velocity.

7.5 Manipulator Jacobian J


Often a trajectory is specified in terms of endpoint position and orientation expressed via ZYZ Euler angles,
say. Let
pn ≡ (x1 , x2 , x3 ) = endpoint position
7.5. MANIPULATOR JACOBIAN J 23

(φ, θ, ψ) ≡ (x4 , x5 , x6 ) = endpoint orientation

Then the vector describing position plus orientation is:

x = (x1 , . . . , x6 )

The forward kinematics for position and orientation can be alternatively specified as:

xi = fi (θ)

x = f (θ)

for a vector function f = (f1 , . . . , f6 ) extracted from 0 Tn = 0 T1 · · · n−1 Tn . This extraction would be
straightforward for the position components, but would be a very complicated function indeed for the Euler
angles. We don’t actually do this extraction, but are representing this operation for formal development.
Next,
n
X ∂fi
ẋi = θ̇j (7.116)
j=1
∂θj

∂f
ẋ = θ̇
∂θ
∂f1 ∂f1
 
··· 
θ̇1

 ∂θ1 ∂θn 
.. .. .. .. 
 

 
. . . . 
  
 
 ∂f6 ∂f6  θ̇n
···
∂θ1 ∂θn

≡ Jθ̇ (7.117)

where the manipulator Jacobian J has elements


∂fi
Jij = (7.118)
∂θj
This manipulator Jacobian J represents the differential relationship between two (nonlinearly) related sets
of variables, x and θ.
Older textbooks in robotics used to advocate computation of this manipulator Jacobian J by direct
evaluation. This extraordinarily tedious procedure is however unnecessary, and we now never compute J
directly. Instead, it can be derived simply from the velocity Jacobian. The key step is to relate ẋ to the linear
and angular velocities:
" # " #
ḋ0n I 0
= ẋ
ω 0n 0 Ωzyz

≡ Cẋ (7.119)

where the matrix


" #
I 0
C= (7.120)
0 Ωzyz
24 CHAPTER 7. VELOCITY AND ACCELERATION

converts between the two end link velocity representations. Equating (7.114), (7.117), and (7.119),

Jv = CJ (7.121)

J = C−1 Jv (7.122)

This method of deriving J is vastly superior. On the other hand, there is a problem again with the invertibility
of C due to Ωzyz . In the literature, one often sees that people have mixed up J v and J and are unaware of
this invertibility problem.

7.6 Acceleration of Objects


Refer again to Figure 7.10. Differentiating (7.59),
0 0
p̈0 = ω̇ 01 × 0 R1 1 p1 + 0 ω 01 × 0 Ṙ1 1 p1 + 0 d̈01
0
= ω̇ 01 × 0 p1 + 0 ω 01 × (0 ω 01 × 0 p1 ) + 0 d̈01 (7.123)

where ω̇ 01 is the angular acceleration vector. The first term on the right is the transverse acceleration and
the second term is the centripetal acceleration.

Example 7.4: Consider motion in the x 0 , y0 plane (Figure 7.18). Although the motion is planar, all
vectors are three-dimensional. Then
0
ω 01 = θ̇1 0 z0
0
ω̇ 01 = θ̈1 0 z0

Hence since 0 ω 01 ⊥ 0 p1 , the centripetal acceleration is


0
ω 01 × (0 ω 01 × 0 p1 ) = 0
ω 01 (0 ω 01 · 0 p1 ) − 0 p1 (0 ω 01 · 0 ω 01 )

= −θ̇12 0 p1

As expected, the centripetal acceleration points inwards towards the center of rotation. Next, the tangential
component of acceleration due to rotation is
0
ω̇ 01 × 0 p1 = θ̈1 0 z0 × 0 p1

= θ̈1 Rz (θ1 + π/2)1 p1

Suppose p1 is moving relative to frame 1, i.e., 1 ṗ1 6= 0. Then the derivative of (7.58) becomes
0 0
ṗ0 = Ṙ1 1 p1 + 0 R1 1 ṗ1 + 0 ḋ01
0
= ω 01 × 0 R1 1 p1 + 0 R1 1 ṗ1 + 0 ḋ01 (7.124)
7.7. MANIPULATOR ACCELERATIONS 25

y1 P

y0 p x1
1

p0 θ1
z1
d 01
z0 x0

Figure 7.18: Motion in the x0 , y0 plane. Axes of rotation z0 and z1 are parallel, and are indicated by circles.

The second derivative is:


0 0
p̈0 = ω̇ 01 × 0 R1 1 p1 + 0 ω 01 × 0 Ṙ1 1 p1 + 0 ω 01 × 0 R1 1 ṗ1 + 0 Ṙ1 1 ṗ1 + 0 R1 1 p̈1 + 0 d̈01
0
= ω̇ 01 × 0 p1 +0 ω 01 × (0 ω 01 × 0 p1 ) + 2 0 ω 01 × 0 R1 1 ṗ1 + 0 R1 1 p̈1 + 0 d̈01 (7.125)

The third term on the right is the coriolis acceleration, which is at right angles with the angular velocity ω
and the velocity 1 ṗ1 .

7.7 Manipulator Accelerations


Differentiating (7.84), the linear acceleration d̈0n and angular acceleration ω̇ 0n of the hand can be related
to the joint angle accelerations (for an all-rotary manipulator):
" #
0 d̈
0n
0 ω̇ = Jv θ̈ + J̇v θ̇ (7.126)
0n

While this acceleration relationship is conceptually straightforward, the form of J̇v is complicated.
To compute the forward kinematic accelerations, the best procedure is to express the velocity relations
(7.76) and (7.79) recursively and differentiate those relations. Then

 θ̇i 0 zi−1 for a rotary joint i
0 0
ω 0i = ω 0,i−1 + (7.127)
 0 for a prismatic joint i

 0 ω 0i × 0d
i−1,i for a rotary joint i
0 0
ḋ0i = ḋ0,i−1 + (7.128)
 0ω ×
0i
0d ˙ 0
i−1,i + di zi−1 for a prismatic joint i

Differentiating,

 θ̈i 0 zi−1 + θ̇i 0 ω 0,i−1 × 0z
i−1 for a rotary joint i
0 0
ω̇ 0i = ω̇ 0,i−1 + (7.129)
 0 for a prismatic joint i
 0 0d

 ω̇ 0i × i−1,i + 0 ω 0i × (0 ω 0i × 0 di−1,i ) for a rotary joint i


0 0 0 ω̇
d̈0i = d̈0,i−1 + 0i × 0 di−1,i + 0 ω 0i × (0 ω 0i × 0 di−1,i ) (7.130)


+d¨i 0 zi−1 + 2d˙i 0 ω 0,i−1 × 0 zi−1

for a prismatic joint i

26 CHAPTER 7. VELOCITY AND ACCELERATION

Suppose that there is a fixed frame -1 in the environment with respect to which the base frame 0 is
referred. If the base is stationary, then the initial conditions for these recursive relations are ḋ−1,0 = 0,
ω −1,0 = 0, d̈−1,0 = 0, and ω̇ −1,0 . If the base is moving, such as for a mobile manipulator, then these initial
conditions must be provided to start the recursion.
Bibliography

[1] Chou, J.C.K., “Quaternion kinematic and dynamic differential equations,” IEEE Trans. Robotics and
Automation, vol. 8, pp. 53-64, 1992.

[2] Cooke, J.M., Zyda, M.J., Pratt, D.R., and McGhee, R.B., “NPSNET: flight simulation dynamic mod-
eling using quaternions,” Presence: Teleoperators and Virtual Environments, vol. 1, pp. 404-420,
1992.

[3] Nikravesh, P.E., Wehage, R.A., and Kwon, O.K., “Euler parameters in computational kinematics and
dynamics. Part 1,” J. Mechanisms, Transmissions, and Automation in Design, vol. 107, pp. 358-365,
1985.

[4] Salcudean, S., “A globally convergent angular velocity observer for rigid body motion,” IEEE
Trans. Automatic Control, vol. 36, pp. 1493-1497, 1991.

27

You might also like