Вы находитесь на странице: 1из 12

114 ROBOTICS: CONTROL, SENSING, VISION, AND INTELLIGENCE

pi)

..t

C0)

In summary, the Newton-Euler equations of motion consist of a set of forward


and backward recursive equations. They are Eqs. (3.3-28), (3.3-29), (3.3-35),
(3.3-39), and (3.3-43) to (3.3-45) and are listed in Table 3.2. For the forward
recursive equations, linear velocity and acceleration, angular velocity and acceleration of each individual link, are propagated from the base reference system to the
end-effector. For the backward recursive equations, the torques and forces exerted
on each link are computed recursively from the end-effector to the base reference
system. Hence, the forward equations propagate kinematics information of each
link from the base reference frame to the hand, while the backward equations compute the necessary torques/forces for each joint from the hand to the base refer(1]

ence system.

Table 3.2 Recursive Newton-Euler equations of motion


Forward equations:

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

f6i x pi* + w; X (wi x pi*) + v;_i


z;_14i + thi x p* + 2w; x (zi_14i)
Vi =
L + w; X (wi x pi*) + vi_;

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

ni = ni+ + p* x fi+ i + (pi* + s;) x Fi + Ni


nilzi_i + bi4i

if link i is rotational

fiTz _, + bi4i

if link i is translational

Ti =

where bi is the viscous damping coefficient for joint i.

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.

ROBOT ARM DYNAMICS 115

3.3.5 Recursive Equations of Motion of a Link


About Its Own Coordinate Frame
The above equations of motion of a robot arm indicate that the resulting N-E
m_.

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"'

This is the upper left 3 x 3 submatrix of '- 'Ai.


It has been shown before that

('-'Ri)-' = 'Ri-, = ('-,Ri)T

(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-

116 ROBOTICS: CONTROL, SENSING, VISION, AND INTELLIGENCE

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)

if link i is translatio nal

(3.3-50)

R;-i' 'Rotor-i + zo9; + ('

r) x zo9;l

'RoW;

if link i is
rotational

if link i is

'R;-j('-'RoW;-j)

(3.3-51)

translational

('Roc ) x ('Rop;*) + ('RoW; )

x [('Raw;) x ('Rapr')I +'R;-i(' 'Roy';-i)


'Roy; =

if link i is rotational

(3.3-52)

'R;-;(zo9i + ''Roy;-1) + ('Row;) x ('Rop;*)


+ 2('Row;) x ('R;-izoQ;)
+ ('Row;) x [ ('Row;) x ('Rop;*)1

if link i is translational

'Roai = ('RoWr) X ('Rose) + ('Row;) x [ ('Row;) x ('Rosi) ] + `Rovr

(3.3-53)
(3.3-54)

Rohr = ('RDI1R1) ('R0t ,) + ('RoWr) x [ ('ROI, Ri) ('RoW1) l

(3.3-55)

'Rofi = 'Ri+I('+IRof;+I) + 'RoF,

(3.3-56)

'R n, = 'Ri+,[i+'Roni+l + i+iR

CIA

'R0F1 = miiRoa;

i+iR f

+ ('ROPi* + 'Rosi) X ('R0F1) + 'RoN,

(`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

ROBOT ARM DYNAMICS 117

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.

3.3.6 Computational Algorithm


The Newton-Euler equations of motion represent the most efficient set of computational equations running on a uniprocessor computer at the present time. The
computational complexity of the Newton-Euler equations of motion has been tabulated in Table 3.4. The total mathematical operations (multiplications and additions) are proportional to n, the number of degrees of freedom of the robot arm.
Since the equations of motion obtained are recursive in nature, it is advisable
to state an algorithmic approach for computing the input joint torque/force for each
joint actuator. Such an algorithm is given below.

Algorithm 3.1: Newton-Euler approach. Given an n-link manipulator, this


computational procedure generates the nominal joint torque/force for all the
joint actuators. Computations are based on the equations in Table 3.3.

Initial conditions:

n = number of links (n joints)

Wo=wo=vo=0

vo=g=(gx,By,Sz)T

where

IgI

= 9.8062 m/s2

Joint variables are qi, 4r, 4i for i = 1, 2, ... , n


Link variables are i, Fi, fi, ni, Ti

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

N3. [Check i = n?] If i = n, go to step N4; otherwise set i - i + 1 and


return to step N2.

118 ROBOTICS: CONTROL, SENSING, VISION, AND INTELLIGENCE

Table 3.3 Efficient recursive Newton-Euler equations of motion

Forward equations: i = 1 , 2, ... , n


'Ri-1('-'Rowi_, +

zot,)

if link i is rotational

'Row,

if link i is translational

'Ri i('-'Rowi-I)
'Ri-1['-'RoWi-I +

zogr + ('Row,_) x zo9, l

if link i is rotational

'Roc,

'Ri1('-'R0

if link i is translational

1)

d.,

('Row,) x ('Rop,*) + ('Row,) x [ ('Row,) x ('Rop,,) l


+ 'R,_ , ('-'R0 ',_,) if link i is rotational
'Roi, =

'Ri-,(z0gi + '-'Ro',-1) + ('R0 ,) x ('R0pi*)


+ 2('Row,) X ('R,_,zocli)

+ ('Row,) x [ ('Row,) x ('Rop,*) ] if link i is translational


ICE

'Roai = ('R1

) x ('Rosi) + ('Rowi) x [('Row,) x ('Rosi)l + 'Roy',

Backward equations: i = n, n - 1,

... ,

'Rofi = 'Ri+ 1('+ I Rof,+ 1) + mi'Roa,

'Roai = 'Ri+1[,+'Roni+, + ('+1R0pi*) x (i+IRofi+,)l + ('Ropi* + 'R0 ) x ('ROF,)


+ ('RoI,Ri)('Roc,,) + ('Row,) x [('RoilR,)('Row,)l
('Ron,)T('R,-1zo) + bici

if link i is rotational

('Rof,) T('R,-1 zo) + b,9,

if link i is translational

T, =

where z = (0, 0, 1) T and b, is the viscous damping coefficient for joint i.

The usual initial

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.

ROBOT ARM DYNAMICS 119

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

Total mathematical operations

t n = number of degrees of freedom of the robot arm.

N5. [Compute joint force/torque] Compute `RoF;, 'RoN;, `Rof, , 'R0n,, and T,
with

and

given.

N6. [Backward iteration] If.i = 1, then stop; otherwise set i -- i - 1 and


go to step N5.

3.3.7 A Two-Link Manipulator Example


'11

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

120 ROBOTICS: CONTROL, SENSING, VISION, AND INTELLIGENCE

From the equations in Table 3.3 we assume the following initial conditions:

coo = wo = vo = 0 and vo = (0, g, 0)T with g = 9.8062 m/s2


Forward Equations for i = 1, 2. Using Eq. (3.3-50), compute the angular velocity for revolute joint for i = 1, 2. So for i = 1, with coo = 0, we have:

'Row, _ ' Ro(wo + zoo,)


S1

-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 = 1, with wo = wo = 0, we have:


'Bowl = 'Ro(c o + zo01 + woxzo01) = (0, 0, 1) T O1

For i = 2, we have:
Z RO62 = 2 R

[' Rocs 1 + zo02 + ('Row,) x z0021 = (0, 0, I) T (0, + 02 )

Using Eq. (3.3-52), compute the linear acceleration for revolute joints for

i = 1, 2:

For i = 1, with vo = (0, g, 0)T, we have:


' Roi, = (' Roc 1) x (' Rop1*) + ('Row,) x [('Row,) x (' Rop,*) l + ' Rovo
0

l
01 x

0
0

ROBOT ARM DYNAMICS 121

For i = 2, we have:
2Rov2 = (2RoW2) X (2Rop2*) + (2RoW2) x [(2RoW2) x (2Rop2*)] +
0

0
C2

S2

01 +02

C2 0

- S2

1(5201 - C201 - 0 - 02 - 2010,) + 9S12

l(0 + 02 + C20 + S20i) + gC1,


0

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,

' Boa, = ('R01) x (' Ro-s1) + ('Row 1) x [('Row,) x ('R01)] + 'Roil


where

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

122 ROBOTICS. CONTROL, SENSING, VISION, AND INTELLIGENCE

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(5261 -C261 - 01 - 022 - 26162)+9S12

l(0 +62+C261+S20?)+gC12
0

l(5201 - C2O 1 - '/z0 - '/20 - 6162) + gS12


l(C201 + 5261 + '/z01 + '/z02) + gC12
0

III

`..

Backward Equations for i = 2, 1. Assuming no-load conditions, f3 = n3 = 0.


I.o

r'?

We use Eq. (3.3-56) to compute the force exerted on link i for i = 2, 1:

For i = 2, with f3 = 0, we have:


2Rof2 = 2R3(3Rof3) + 2ROF2 = 2ROF2 = m22ROa2

m21(S201 - C201 - /z61 - '/z62 - 6102) + gm2S12 )


m21(C201 + 5261 + ' 01 + '/z02) + gm2C12
0

's7

For i = 1, we have:
'Rofl = 'R2(2Rof2) + 'R0F1
C2

- S2

LIT

m21(S201 - C202-'/201 -'/202 -0102) +gm2S12

S2

C2

m2l(C201 + S20I + '/201 + ' 02) + gm2C12

+ m1 'Roar

ROBOT ARM DYNAMICS 123

m2l[01

,.S2 (62 +02)-520102+/z C2 (01+02)]+m2gC1 +'/zm1101+gm1 C1

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

'h02 - 0102) + gm2S12

m21(C20, + 520 + '201 + '/z02) + gm2C12


0

10

'/12m212

'/12 m212

0, + 02
0
0

'/3m21201 + '/3m21202 + 'hm212(C20, + 5201) + '/zm2glC12

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

124 ROBOTICS: CONTROL, SENSING, VISION, AND INTELLIGENCE

Thus,
-, T

'Ron1 = 1R2(2Ron2) + 'R21 (2Rop1*) x (2Rof2)j +

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):

For i = 2, with b2 = 0, we have:


?2 = (2Ron2)T(2R1zo)

'/3m21201 + '/3m21282 + 'hm212C281 + '/zm2giC12 + 'hm2l2S2BI

For i = 1, with b1 = 0, we have:


Tl = ('Ron1)T('Rozo)
= '/3m1 1281 + 4/3 m21201 + '/3m21202 + m2 C212B1

+ ihm2l2C2B2 - M2 S2126162 - 'hm2S21282 + /2mlgiG1


+ '/zm291C12 + m2glC1

The above equations of motion agree with those obtained from the Lagrange-Euler
formulation in Sec. 3.2.6.

3.4 GENERALIZED d'ALEMBERT EQUATIONS OF MOTION


Computationally, the L-E equations of motion are inefficient due to the 4 x 4
homogeneous matrix manipulations, while the efficiency of the N-E formulation
can be seen from the vector formulation and its recursive nature. In order to
CAD

`..

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

to form the lagrangian function, and apply the Lagrange-Euler formulation to


obtain the equations of motion. In this section, we derive a Lagrange form of
d'Alembert equations of motion or generalized d'Alembert equations of motion
(G-D). We shall only focus on robot arms with rotary joints.
Assuming that the links of the robot arm are rigid bodies, the angular velocity
w, of link s with respect to the base coordinate frame can be expressed as a sum
of the relative angular velocities from the lower joints (see Fig. 3.8),

W, = E 0;

(3.4-1)

ROBOT ARM DYNAMICS 125

Xe

Base coordinate system

Figure 3.8 Vector definition in the generalized d'Alenmbert equations.

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)

Вам также может понравиться