Sie sind auf Seite 1von 13

Recapitulation: Newton-Euler-Method

The Newton-Euler-Method is a way to determine the dynamics equations that govern the movement
of a robot. The field of analytical dynamics, or more briefly dynamics, is concerned with the rela-
tionship between motion of bodies and its causes, namely the forces acting on the bodies and the
properties of the bodies (particularly mass and moment of inertia) influencing that movement. This
is in contrast to kinematics, where we were not concerned with the physical phenomena causing robot
movement, but only with the movement itself.
Overall, the purpose of the Newton-Euler-Method is determining the joint torques that are
required to achieve a desired motion of the robot. More specifially, if we have a joint trajectory (t)
that describe the positions and velocities for a certain trajectory of the robot, then the Newton-Euler
method will allow us to compute corresponding (t) that will, in an ideal world (no friction or other
disturbances for the moving robot), cause the robot to carry out the desired trajectory.
The fundamental physical relationships that are used for deriving this method are:

F = mv C

N = C I + C I
The first equation is the regular physical rule for forces: Force equals mass times acceleration.
This formula holds for the force that applies to the center of mass of an object. The second equation
is the rotational equivalent of force, the torque. Here, C I is the inertia tensor that is computed with
respect to the center of mass, a 3 3 matrix that describes the distribution of masses in a link. The
equations are named Newtons equation and Eulers equation, hence the name of the method.
The Newton-Euler-Method is composed of two phases: A forward phase and a backwards phase.
In the first phase, the velocities and accelerations (both rotational and linear) are computed for each
joint. The formulas for the rotational velocities and accelerations, in case of a rotational joint i + 1,
are:
i+1
i+1 = i+1 i i+1
i R i + i+1 Z i+1
i+1
i+1 i i+1 i
= R i + R i i+1 i+1 Z i+1 i+1 Z
+
i+1 i i i+1 i+1

And if joint i + 1 is prismatic, the formulas simplify to


i+1
i+1 = i+1 i
i R i
i+1
i+1 = i+1 i
i R i

For linear accelerations, the formulas are: (rotational joint i + 1):


i+1
v i+1 = i+1 i
i R( i i Pi+1 + i i (i i i Pi+1 ) + i v i )

If joint i + 1 is prismatic, the formula becomes substantially more complicated:


i+1
v i+1 = i+1 i
i R( i i Pi+1 + i i (i i i Pi+1 ) + i v i ) + 2 i+1 i+1 di+1 i+1 Z i+1 + di+1 i+1 Z i+1

During the computation, it is necessary to find the linear acceleration of the center of mass of each
link, which can be found using the following relationship:
i
v C i = i i i PCi + i i (i i i PCi ) + i v i
Here, Ci denotes the center of mass of link i. This equation holds for both rotational and prismatic
joint i + 1. In the next step, we can compute the forces and torques that apply to the center of mass
of each link from the accelerations and speeds that we have just computed:
i
Fi = m i v Ci
i
Ni = Ci Ii i i + i i Ci Ii i i

Based on those forces and moments, we can compute f and n for the joints of the robot:
i
fi = ii+1 R i+1 f i+1 + i Fi
i
ni = i Ni + ii+1 R i+1 ni+1 + i P Ci i Fi + i Pi+1 ii+1 R i+1 f i+1

As in the static case, the values of i , compute as i = i nTi i Zi for a rotational joint and i = i fiT i Zi
for a translational joint.
We also need to take into account the effect of gravity on the links of the robot. This can be
done through setting 0 v 0 = G where G is the gravitational acceleration. By doing so, we simulate
the effect of gravity by having the robot move upwards, which exactly simulates the effect of
gravitation.
The equations of movement that have been computed this way can be rearranged into the so-called
state-space equation (or M-V-G-form). This looks as follows:
+ V (, )
= M () + G()

M is a n n matrix, and V as well as G are n 1 vectors. Note that in general, M , V , G are


complex-valued. The matrix M can be determined from the dynamics equations by factorizing all
summands that contain . Similarily, V is determined by factorizing all summands that contain .

Finally, G is determined by factorizing all summands that contain g. V can be further decomposed
into components B and C, yielding the configuration-space equation (or M-B-C-G-form):
+ B()[
= M () ]
+ C()[
2 ] + G()

]
B() is a matrix of dimension n n(n 1)/2, and [ is an abbreviation for the vector

1
( 2,
1
3, . . . ,
n1
n )T

that has length n(n 1)/2. This also explains the dimension of B: n(n 1)/2 is the number of
2 ] in an abbreviation for the
products i j with i 6= j. The matrix C has dimension n n, and [
vector
2,
( 2, . . . ,
2 )T
1 2 n

with length n. The matrices B and C can be determined by finding the coefficients of i j and 2i ,
respectively.

A simple example for robot dynamics


Because the computations for the regular problems are very lengthy, the two methods for computing
robot dynamics are shown here at length for a very simple example robot, shown in Figure 1. The
following values are specified:
The length of the link: l, the mass of the link (including gripper): m, center of mass of the
arm: 1 PC1 = ( 2l , 0, 0)T
Figure 1: Example robot

C1
Inertia tensor for the first arm: I1 = I (Identity matrix)
~ = (0, g, 0)T
Gravity acceleration: G
Rotation matrix 01 R:

c1 s1 0 c1 s1 0
0 s1 c1 0 , 1 s1 c1 0
1R = 0R =
0 0 1 0 0 1
In the following, we will compute the manipulator dynamics using the Newton-Euler method. We
simply need to apply the formulas from the Newton-Euler method summary above. Note that the
acceleration of the base system 0 v 0 is set to the negative gravitational acceleration, as has been
explained there as well. We compute the velocities and accelerations as:
1
1 = 10 R 0 0 + 1 1 Z1

0 0

= 0 + 1 0 = 0

1 1

1 1 1 Z1
1 = 10 R 0 0 + 10 R 0 0 1 1 +

0
=0+0+ 0
1

1
v 1 = 10 R (0 0 0 P1 + 0 0 (0 0 0 P1 ) + 0 v 0 )

s1 g
1 ~
= 0 R (0 + 0 + G) = c1 g
0
l l
0 2
0 0 2
s1 g
1
v C1 = 0 0 + 0 0 0 + c1 g
1
0 1
1
0 0

0 0 0 s1 g
= 1 l + 0 1 l + c1 g
2 2
0 1 0 0
2 l + s1 g

1 2
= 1 l + c1 g
2
0

The next step is the computation of forces and moments on the centers of mass of the links:

1
F1 = m1 1 v C1
1
N1 = C1 I1 1 1 + 1 1 C1 I1 1 1

0
= 0

1

And in the backwards iteration, the forces and moments can be determined:

1
f1 = 0 + 1 F1
2 l gs1 )
l
0 2
m1 ( 1 2
1
n1 = 0 + 0 m1 ( 1 l + gc1 )
2
1
0 0

0
= 0
1 + l m1 (
1 l + gc1 )
2 2

All in all, the result is then:

2
 
1 T 1 1 + m + l m g c1
1 = n1 Z1 = 1 l
4 2

Solution 1
The transformation matrices for this robot are as follows:

c1 s1 0 0 1 0 0 l1
s1 c1 0 0
0
1
0 0 1 d2
1T = 2T =

0 0 1 0 0 1 0 0
0 0 0 1 0 0 0 1

We know that gravity force applies in negative X0 -direction, and we denote the corresponding ac-
celeration with g. Now, we are supposed to apply the Newton-Euler-Method to derive the dynamic
equations of this robot. We start with the forward iteration, determining speeds and accelerations:



0
i = 0 : 1 1 = 10 R 0 0 + 1 1 Z1 = 0
1


0
1 1
1 = 0 + 0 + 1 Z1 = 0
1


g gc1
1
v 1 = 10 R 0 0 0 P1 + 0 = gs1
0 0
2 + gc1
l21

1
1
v C1 = 1 1 1 PC1 1 gs1
+ 1 1 (1 1 1 PC1 ) + 1 v 1 = l21
0

The next joint is a prismatic joint, which means that we have to use slightly different formulas:


0 0
i=1 2
2 = 21 R 1 1 = 12 RT 0 = 1
1 0

1 0 0 0 0
2
2 1
= 21 R 1 1 = 0 0 1 0 =
0 1 0 1 0

2 2
1 1 P2 + 1 1 (1 1 1 P2 ) + 1 v 1 + 2 2 2 d2 2 Z2 + d2 2 Z2
1

v 2 = 1R

0 l1 0 0 l1 gc1
= 12 RT 0 d2 + 0 0 d2 + gs1
1
0 1 1 0 0

0 0 0
+2 1 0 + 0
0 d2 d2
1 2 1 d2

d2 l1 1 gc 1 2
= 12 RT l1 1 + d2 2 + gs1 + 0
1
0 0 0 d2
1 l1 2 + gc1 2 1 d2

d2 1
= 0
1 d2
l1 2 gs1 + d2
1
2 2
v C2 = 2 2 PC2 + 2 2 (2 2 2 P2C ) + 2 v 2

0 0 0 0 0
= 1 0 + 1 1 0
0 l2 0 0 l2
1 + l1
2 + gc1 2 1 d2

d2 1
+ 0
2
l1 1 d2 1 gs1 + d2
1 l1 2 + gc1 2 1 d2

(l2 + d2 ) 1
= 0
(l2 + d2 ) + l1
2 1 gs1 + d2
1

Next, we compute the forces and torques that apply to the centers of mass of the links:

1 + gc1
l1 2
2
1
F1 = m1 1 v C1 1 gs1
= m1 l21
0
1 C1
N1 = I1 1 1 + 1 1 C1 I1 1 1

0 0 0 0
= 0 + 0 0 = 0
1
Izz1 1 1
Izz1 1
Izz1

1 l1 1 d2
2 + gc1 2

(l2 + d2 ) 1
2
F2 = m2 2 v C2 = m2 0
2
(l2 + d2 )1 + l1 1 gs1 + d2
2 C2
N2 = I2 2 2 + 2 2 C2 I2 2 2

0 0 0 0
= Iyy2 1 + 1 Izz1
1 = Iyy2
1
0 0 0 0

To slightly simplify the further computations, we will introduce abbreviations for the components of
2
F2 as follows: 2 F2 = (A, 0, B)T . Now we can start with the backwards iteration:

2 2
i=2: f2 = F2
2 2
n2 = N2 + I 3 n3 + 2 PC2 2 F2 + 0

0 0
= 1 Iyy2 + 0 2 F2
0 l1

0 0
1 Iyy2 m2 l1 (l1 + d2 )
= 21 + m2 l1 gc1 2m2 l1 d2
1 l1 l1 m2 1 =: C
0 0

Thus, we have already determined 2 = 2 f2T 2 Z2 (remember that the second joint is prismatic):

1 gs1 + d2 )
21 + l1
2 = m2 ((l1 + d2 )
Continuing with the backwards iteration:
1 1
i=1: n1 =N1 + 12 R 2 n2 + 1 PC1 1 F1 + 1 P2 12 R 2 f2

0 0 0 l1 A
= 0 + 0 + 0 + d2 B
1 l2 l1
Izz1 C m1 41 1 gm1 2 s1 0 0

0
= 0
l 2
1 C + m1 1
Izz1 1 gm1 l1 s1 + l1 B d2 A
4 2

All in all:
1
1 = nT1 1 Z1
2
1 1 C + m1 l1
= Izz1 1 gm1 l1 s1 + l1 B d2 A
4 2
l2 1 + m2 l1 d2
= (Izz1 + Iyy2 + m2 (d2 + l1 )2 + m1 1 + m2 l12 )
4
1 m1 + m2 gl1 s1 m2 g(l1 + d2 )c1
 
+2m2 (l1 + d2 )d2
2
And we have finally determined formulas for computation of the joint torques/forces. Now we are
supposed to rewrite these in state space form (MVG form). With = (1 , d2 )T , 1 , d2 )T ,
= (
1 , d2 ) , = (1 , 2 ) , this amounts to:
= ( T T

l12
 
2 2
M () = zz1 I + Iyy2 + m (d
2 2 + l 1 ) + m 14 + m l
2 1 m l
2 1
m2 l1 m2
1 d2
 
2m2 (l1 + d2 )
V (, ) = 21
m2 (l1 + d2 )
 m1 
( 2 + m2 )gl1 s1 m2 g(l1 + d2 )c1
G() =
m2 gs1

Recapitulation: Lagrangian Dynamics


The Lagrangian dynamic formulation is another method for determining the dynamics of a robot
which is derived from energy considerations. For each link of the robot, the kinetic energy can be
computed as:
1 1
ki = mi vCT i vCi + i iT Ci Ii i i
2 2
The first term corresponds to the kinetic energy caused by the linear motion of the link, and the
second term corresponds to the kinetic energy caused by the rotational velocity of the link. To
determine these energies, we need to compute the linear and rotational velocities of the joints. The
overall kinetic energy computes then as sum of the kinetic energies of all links:
n
X
k= ki
i=1

Another way to compute kinetic energy is

= 1
k(, ) T M (),

2
where M again is the n n mass matrix from the M-V-G form of the dynamics equations. To
compute all energies that are present in this system, we also need to take into account the potential
energy:
ui = mi 0 g T 0 PCi + uref i
Here, g is the vector of gravity, 0 PCi denotes the center of mass of link i, and uref i is an arbitrary
constant (the constant is added because potential energy depends on height, and a certain base
height can be chosen arbitrarily). In the further computations, this constant will not play a role,
since only the derivatives of the potential energy are considered - and any constant will vanish when
differentiated. The computation of is finally done through the following formula:
d k k u
= +

dt
It is also possible to compute the joint torques i on a per-joint basis, which is more practical in most
cases. The formula then becomes:
d k k u
i = + .

dt i i i

Simple dynamics example: Lagrange Method


Here, we will revisit the simple example for which we have computed the dynamics using the Newton-
Euler method. This time, we will solve the problem using the Lagrangian formulation of dynamics.
The method of Lagrangian dynamics uses a completely different approach, but the results will be
the same as with the Newton-Euler method. To successfully apply the Lagrangian method, we need
to determine some additional values:
c1 2l 1 l

s1
0 d0 2
1 l
PC1 = s1 2l PC 1 = c 1 2
dt
0 0

To compute the kinetic energy, we need to know the velocity of the center of mass. In principle, the
system of reference in which the velocities are determined does not matter. This can be seen easily
from the formula for kinetic energy:
1 1
ki = mi vCT i vCi + i i Ci Ii i i
2 2
The first summand contains only the dot product of the velocity with itself, thus the squared length
of the vector vCi . This means that only the length of that vector is relevant, and the length is
obviously invariant under coordinate transformations. It is usually most convenient to determine the
velocities directly in the base system {0} from geometric considerations. In our case, the position of
the center of mass is described by l
c
2 1
0 l
PC1 = 2 s1 .

0
The velocity is then determined simply by differentiating with respect to time:
1
l
2 s1
d0 1
PC1 = 2l c1
dt
0
The rotational velocity in the first system can be determined as follows: There is only one rotational
joint, and it rotates about the Z0 -axis. This means that

0
1
1 = 0
1

The same result can be obtained using the standard formulas for computing angular and linear
velocities. Now we have already determined all values that we need for applying the formulas. We
substitute the values into the formula and obtain:
2 2
 
1 2 2 l
+c
2
2 l 1 2
k1 = m s1 1 1 1 +
2 4 4 2 1
l2 1
 
2 1
= 1 m +
2 4 2

And the potential energy computes as:


T
c1 2l

0
l
u1 = m g s1 2l = gms1
2
0 0

The reference enery has been ignored here, because, as explained in the recapitulation section, it is
not relevant for further computations. In the next step, we compute some intermediary results for
evaluating the formula for . The overall formula is

d k k u
= + .

dt

We compute:

2
k 1 (m l + 1)
=
1 4
2
d k 1 (m l + 1)
=
1
dt 4
k
=0
1
u l
= m c1 g
1 2

This yields the overall result

2
1 (m l + 1) + m l g c1 ,
1 =
4 2

which is the same as the result obtained using the Newton-Euler method.
Solution 2
We start out by computing the kinetic energies:

0
0 d 0
vC1 = ( PC1 ) = 0
dt
d1

0
1 1 i+1 Z i+1
1 = 10 R 0 0 + = 0
0
T
0 0
1 1 1 T C1 1 1
k1 = m1 vCT 1 vC1 1
+ 1 I1 1 = m1 0
0 + 0 = m1 d21
2 2 2 2
d1 d1
For k2 :
l2
2 2
c
0
PC2 = l22 s2
d1
l22 s2
2
0 d 2
vC2 = (0 PC2 ) = l22 c2
dt
d1

0
2
2 = 0

2

Using these values in the formulas:


T
 2 ! 0 Ixx2 0 0 0
1 l2 1
k2 = m2 2 + d21 + 0 0 Iyy2 0 0
2 2 2 2
2 0 0 Izz2
1 2 + 1 m2 d2 + 1 Izz2
2
= m2 l22 2 1 2
8 2 2
Computation of k3 is done analogously:

l2 c2 + l23 c23

0
PC3 = l2 s2 + l23 s23
d1

l2 s2 2 l3 s23 ( 2+ 3 )
2
0
vC3 = l2 c2 2 + l3 c23 ( 2+ 3)
2
d1

0
3
3 = 32 R 2 2 + 3 1 Z1 = 0
2+ 3
l32
 2
l32 2
    
1 2 2 2 l3 1 2+
3 )2
k3 = m3 d1 + l + + l2 l3 c3 2 + + l2 l3 c3 2 3 + 3 + Izz3 (
2 4 2 4 2
The potential energy computes as:

0
~ 0 PC 1
u1 = m1 G = m1 (0, 0, g) 0 = m1 (d1 l1 )g
d1 l1
~ 0 PC2 = m2 d1 g
u2 = m2 G
~ 0 PC3 = m3 d1 g
u3 = m3 G

Thus, we can formulate the total potential energy:


u = m1 (d1 l1 )g + (m2 + m3 )d1 g
Now we can use the results computed so far in the Lagrangian formulation:
d k k u
= +

dt
Since the terms will become rather large, we are not going to compute everything at once, but we
will rather split the computation into smaller parts. The joint configuration vector is of form
= (d1 ,
(d1 , 2 , 3 )T , so 2,
3 )T etc. For , we have = (1 , 2 , 3 )T . Then, we compute:

k
= m1 d1 + m2 d1 + m3 d1 = (m1 + m2 + m3 )d1
d1
d k
= (m1 + m2 + m3 )d1
dt d1
k
=0
d1
u
= m1 g + (m2 + m3 )g = (m1 + m2 + m3 )g
d1
For 1 , we get the following result:
1 = (m1 + m2 + m3 )d1 + (m1 + m2 + m3 )g
Now on to the second component of . We compute some intermediary results:
l32
    2  
k 1 2 1 2 l3 3 + Izz3 (
2+
3)
= m2 l2 2 + Izz2 2 + m3 2 l2 + + l2 l3 c3 2 + + l2 l3 c3

2 4 2 4 2

What follows is the computation of derivatives of above expressions, which is quite cumbersome and
complicated. In particular, you need to make sure not to overlook abbreviated terms like c3 etc.
Using the product rule for derivatives, we can compute:
d k 1 2 + Izz2 2+
= m2 l22

dt 2 4
l32
   
1 2


m3 2 l2 + + l2 l3 c3 2 + 22 l2 l3 s3 3 +
2 4
 2   
1 l3 
3 + l2 l3 s3
3 3 + Izz3
2 + Izz3
3
m3 + l2 l3 c3
2 2
The other partial derivatives are substantially easier to compute:

k u
= 0, =0
2 2
And overall, after rearranging terms, we end up with:

l32
      2  
1 2 2 2 + 1 l3 3
2 = m2 l2 + Izz2 + m3 l2 + + l2 l3 c3 + Izz3 m3 + l2 l3 c3 + Izz3
4 4 2 2
m3 l2 l3 s3 3 1 m3 l2 l3 s3
2 23
2
Finally, for 3 we compute:

l32 2
  
k 1 l
2+
3

3 + Izz3 2+
3

= m3 + l2 l3 c3
3 2 2 2

Again, we differentiate w.r.t time t, and obtain:


 2
l32

d k 1 l3 2 + Izz3
3
= m3 2 + l2 l3 c3 2 l2 l3 s3 3 2 + 3 + Izz3
3
dt 2 2 2
k 1 2 + l2 l3 s3
2
3)
= m3 (l2 l3 s3 2
3 2
u
=0
3
All in all, 3 is then:
 2
l32
 
1 l3
3 = m3 + l2 l3 c3 2 + 3 l2 l3 s3 2 3
2 2 2
1 
2 + l2 l3 s3
2

3 + Izz3
2 + Izz3
3
+ m3 l2 l3 s3 2
2
Thus, we have finally determined the dynamics equations. One more thing remains to be done:
We are supposed to bring the equations in state space form as well as configuration space form.
Determining the state space form should be straightforward:

+ V (, )
= M () + G()

To compute M (), we look for terms that contain the second derivative of any joint variable (so we
look for d1 ,
2,
3 ), and we determine the corresponding factors. This yields:

m1 + m2 + m3 0 0
l2 l2
M () = 0 ( 41 m2 l22 + Izz2 + m3 (l22 + 43 + l2 l3 c3 ) + Izz3 ) ( 12 m3 ( 23 + l2 l3 c3 ) + Izz3 )

l 2
0 ( 21 m3 ( 23 + l2 l3 c3 ) + Izz3 ) 1
m l2 + Izz3
4 3 3


On to the vector V (, ). It is made up of all terms that contain the first derivative of a joint
variable.
0
2
V = m2 l2 l3 s3 3 1 m2 l2 l3 s3
2
2 3
1
m l l s 2
2 3 2 3 3 2
And finally, the vector G() contains all terms in which the constant g appears:

(m1 + m2 + m3 )g
G() = 0
0

To further decompose the equations into configuration space form, we need to take a closer look at
This vector is decomposed as follows:
V (, ).
= B()[
V (, ) ]
+ C()[
2]

where
0 0 0
B = 0 0 m2 l2 l3 s3
0 0 0
and
0 0 0
C= 0
0 12 m2 l2 l3 s3 .
1
0 mlls
2 3 2 3 3
0
The advantage of the configuration space equation is that M, B, C, G all depend only on . This
is important for applications where the dynamic equations change due to movement of the robot:
For some settings, it might be easier, faster, or more accurate (depending on the robots sensors) to
update the dynamics equations only based on , not on .

Das könnte Ihnen auch gefallen