114 Robotics: Control, Sensing, Vision, and Intelligence
114 Robotics: Control, Sensing, Vision, and Intelligence
pi)
..t
C0)
ence system.
i = 1 , 2, ... , n
if link i is translational
ooi
_ i + z_ i 4i + w_ i x (z_ i 4i)
if link i is rotational
if link i is translational
if link i is rotational
if link i is translational
a; = wi x si + wi x (w; x -9i) + vi
Backward equations:
i = n, n -1, ... , 1
Fi = mi ai
Ni = Ii w; + wi x (I; wi )
fi = Fi + fi+ i
if link i is rotational
fiTz _, + bi4i
if link i is translational
Ti =
The "usual" initial conditions are wo = cuo = vo = 0 and vo = (gs, gy, gZ)T (to include
gravity), where I g I = 9.8062 m/s2.
dynamic equations, excluding gear friction, are a set of compact forward and backward recursive equations. This set of recursive equations can be applied to the
robot links sequentially. The forward recursion propagates kinematics information
such as angular velocities, angular accelerations, and linear accelerations from the
base reference frame (inertial frame) to the end-effector. The backward recursion
propagates the forces exerted on each link from the end-effector of the manipulator
to the base reference frame, and the applied joint torques are computed from these
forces.
One obvious drawback of the above recursive equations of motion is that all
the inertial matrices I; and the physical geometric parameters (r;, s;, p;-1, p;*)
are referenced to the base coordinate system. As a result, they change as the robot
arm is moving. Luh et al. [1980a] improved the above N-E equations of motion
by referencing all velocities, accelerations, inertial matrices, location of center of
mass of each link, and forces/moments to their own link coordinate systems.
cab
Because of the nature of the formulation and the method of systematically computing the joint torques, computations are much simpler. The most important consequence of this modification is that the computation time of the applied torques is
found linearly proportional to the number of joints of the robot arm and independent of the robot arm configuration. This enables the implementation of a simple
real-time control algorithm for a robot arm in the joint-variable space.
s-.
Let'-1R; be a 3 x 3 rotation matrix which transforms any vector with reference to coordinate frame (x;, y;, z;) to the coordinate system (x;-,, y;-,, z;-,).
E"'
(3.3-47)
where
'-'R. =
and
['-'Rr]-l
cos B;
- cos a; sin B;
sin a; sin 0;
sin 0;
cos a; cos B;
- sin a; cos 0;
sin a;
cos a;
cos 0;
sin 0;
- cos a; sin 0;
cos a; cos 0;
sin a;
sin a; sin 0;
- sin a; cos 0;
cos a;
(3.3-48)
(3.3-49)
Instead of computing w;, ci;, v;, a;, p;*, s;, F;, Ni, f;, n;, and Ti which are referenced to the base coordinate system, we compute 'Row;,'Roui;,'Rov;,'Roa;,'RoF;,
'RoN;, 'Rof;, 'Ron;, and 'Ror; which are referenced to its own link coordinate sys-
tem (xi, yi, zi). Hence, Eqs. (3.3-28), (3.3-29), (3.3-35), (3.3-39), (3.3-36),
(3.3-37), (3.3-43), (3.3-44), and (3.3-45), respectively, become:
W;
'R;-i('-'Row;-i + zoq;)
if link i is rotational
`R;-i(`-'RoW;-i)
(3.3-50)
r) x zo9;l
'RoW;
if link i is
rotational
if link i is
'R;-j('-'RoW;-j)
(3.3-51)
translational
if link i is rotational
(3.3-52)
if link i is translational
(3.3-53)
(3.3-54)
(3.3-55)
(3.3-56)
CIA
'R0F1 = miiRoa;
i+iR f
(`Roni)T(`Ri-Izo) + bigi
if link i is rotational
Ti =
000
and
(3.3-57)
(3.3-58)
(iRofi)T(`Ri-Izo) + bi'1
if link i is translational
where z = (0, 0, 1)T, 'Rosi is the center of mass of link i referred to its own
link coordinate system (xi, yi, zi ), and 1Ropi' is the location, of (xi, yi, zi) from
the origin of (x_1, y; - I, z._1) with respect to the ith coordinate frame and is
found to be
ai
'R0 pi* =
d, sin ai
(3.3-59)
di cos a;
and (`RoIioRi) is the inertia matrix of link i about its center of mass referred to its
own link coordinate system (xi, yi, zi).
Hence, in summary, efficient Newton-Euler equations of motion are a set of
forward and backward recursive equations with the dynamics and kinematics of
each link referenced to its own coordinate system. A list of the recursive equations are found in Table 3.3.
Initial conditions:
Wo=wo=vo=0
vo=g=(gx,By,Sz)T
where
IgI
= 9.8062 m/s2
Forward iterations:
N1. [Set counter for iteration] Set i -- 1.
N2. [Forward iteration for kinematics information] Compute 'Ro wi, iRowi,
'Rovi, and 'Roai using equations in Table 3.3.
.ti
zot,)
if link i is rotational
'Row,
if link i is translational
'Ri i('-'Rowi-I)
'Ri-1['-'RoWi-I +
if link i is rotational
'Roc,
'Ri1('-'R0
if link i is translational
1)
d.,
'Roai = ('R1
Backward equations: i = n, n - 1,
... ,
if link i is rotational
if link i is translational
T, =
conditions are coo = uio = vo = 0 and vo = (gX, g,., g_)T (to include gravity), where
IgI
= 9.8062 m/s2.
Backward iterations:
N4. [Set
and n,,.. ] Set
and
to the required force and moment,
respectively, to carry the load. If no load, they are set to zero.
Table 3.4 Breakdown of mathematical operations of the Newton-Euler equations of-motion for a PUMA robot arm
Newton-Euler
equations of motion
Multiplications
Additions
9nt
7n
9n
9n
'Knit
27n
22n
Roa,
15n
14n
'RoF,
3n
9n-6
'Row;
R0 1
Rof,
9(n-1)
'RoN,
24n
18n
'Ron,
21n - 15
24n - 15
117n - 24
103n - 21
N5. [Compute joint force/torque] Compute `RoF;, 'RoN;, `Rof, , 'R0n,, and T,
with
and
given.
In order to illustrate the use of the N-E equations of motion, the same two-link
manipulator with revolute joints as shown in Fig. 3.2 is worked out in this section.
All the rotation axes at the joints are along the z axis perpendicular to the paper
surface. The physical dimensions, center of mass, and mass of each link and coordinate systems are given in Sec. 3.2.6.
First, we obtain the rotation matrices from Fig. 3.2 using Eqs. (3.3-48) and
(3.3-49):
OR, _
'R0 =
C,
- S1
S,
C,
C,
S,
'R2 =
-S1
C,
2R, _
C2
- S2
S2
C2
C2
S2
-S2
C2
-S,2
R2 =
2R0 -
0I
0
S12
C12
C12
C12
S12
-S12
C12
From the equations in Table 3.3 we assume the following initial conditions:
-Si
C1
r-.
CI
01 =
01
For i = 2, we have:
2ROw2 = 2RI('Rowl + zo02)
C2
S2
- S2
C2
[0
0
02
(81 + 82)
Using Eq. (3.3-51), compute the angular acceleration for revolute joints for
i = 1, 2:
For i = 2, we have:
Z RO62 = 2 R
Using Eq. (3.3-52), compute the linear acceleration for revolute joints for
i = 1, 2:
l
01 x
0
0
For i = 2, we have:
2Rov2 = (2RoW2) X (2Rop2*) + (2RoW2) x [(2RoW2) x (2Rop2*)] +
0
0
C2
S2
01 +02
C2 0
- S2
Using Eq. (3.3-53), compute the linear acceleration at the center of mass for links
1 and 2:
.--I
For i = 1, we have:
!Y,
sl =
1C
- 2lC1
- i s,
'Ross =
Cl
S1
-Si
C1
0
1
i s,
2
Thus,
1ROa1 =
81 x
0
0
0
0
61
'
.-.
SIN
For i = 2, we have:
2Roa2 = (2Row2) x (2Ro92) + (2R0o2) X [(2ROW2) x (2Ro92)] + 2Roiz
where
- ZC
- 1C12
s2 =
2RQS2 =
- 2I
C 12
S 12
-S12
C12
S12
12
S 12
1
Thus,
'SIN
2ROa2 =
8I + 62
61 + 62
01 + 02
l(0 +62+C261+S20?)+gC12
0
III
`..
r'?
's7
For i = 1, we have:
'Rofl = 'R2(2Rof2) + 'R0F1
C2
- S2
LIT
S2
C2
+ m1 'Roar
m2l[01
m21[-01-'h C2(01+62)
2-C20102-' S2(01+02)]-m2$(C12S2-C2S12)-'/zm1101+m1$S1
Using Eq. (3.3-57), compute the moment exerted on link i for i = 2, 1: For
i = 2, with n3 = 0, we have:
2Ronz = (2ROP2* + 2ROS2) x (2ROF2) + 2RON2
where
IC12
1512
1C12
C12 0
1512
S12
-S12
2RO Pz* _
I+1
P2* =
C12
Thus,
1
2Ron2 =
- C201 - 'h01 -
rm21(S201
10
'/12m212
'/12 m212
0, + 02
0
0
For i = 1, we have:
'Ron, = 1R2[2Ron2 + (2ROP1*) x (2Rof2)] + (1Rop1* +'Ros1) x ('ROF1) +'RON1
where
[ lC2 I
1C,
P1* _
is,
2Ro P1* =
1
1
Ro P1* =
0
0
Thus,
-, T
0, 0
x 'ROFI
+ 'RON1
Finally, we obtain the joint torques applied to each of the joint actuators for both
links, using Eq. (3.3-58):
The above equations of motion agree with those obtained from the Lagrange-Euler
formulation in Sec. 3.2.6.
`..
obtain an efficient set of closed-form equations of motion, one can utilize the relative position vector and rotation matrix representation to describe the kinematic
information of each link, obtain the kinetic and potential energies of the robot arm
W, = E 0;
(3.4-1)
Xe
G.,
where zj_1 is the axis of rotation of joint j with reference to the base coordinate
frame. Premultiplying the above angular velocity by the rotation matrix SRo
changes its reference to the coordinate frame of link s; that is,
.,Rows =
EO
.SRozi-1
(3.4-2)
1=1
In Fig. 3.8, let T., be the position vector to the center of mass of link s from
the base coordinate frame. This position vector can be expressed as
s-1
rs = E pl* + cs
(3.4-3)
1='
where cs is the position vector of the center of mass of link s from the (s - 1)th
coordinate frame with reference to the base coordinate frame.
Using Eqs. (3.4-1) to (3.4-3), the linear velocity of link s, vs, with respect to
the base coordinate frame can be computed as a sum of the linear velocities from
the lower links,
a-1
Vs =
k=1
x pk*
E Bjzj-1
J=1
` OiZj-1
rj=1
x c,
(3.4-4)