You are on page 1of 27

Robot Dynamics – Newton- Euler

Recursive Approach
ME 4135 Robotics &
Controls
R. Lindeke, Ph. D.
Physical Basis:
 This method is jointly based on:
– Newton‟s 2
nd
Law of Motion
Equation:



and considering a „rigid‟ link

– Euler‟s Angular Force/ Moment
Equation:
i C
F mv =
i i
moment CM i i CM i
N I I e e e = + ×
Again we will Find A “Torque” Model
 Each Link Individually
 We will move from Base to End to find Velocities
and Accelerations
 We will move from End to Base to compute force
(f) and Moments (n)
 Finally we will find that the Torque is:
( ) ( )
( )
1 1
(1 )
i i i
q
T T
n z f z b
i i i i i i
t ç ç
÷ ÷
= + ÷ +
Gravity is implicitly included in the model by considering
acc
0
= g where g is (0, -g
0
, 0) or (0, 0, -g
0
)
ç
i
is the joint type
parameter (is 1 if
revolute; 0 if
prismatic) like in
Jacobian!
Lets Look at a Link “Model”
X0
Y0
Z0
Zk-1
Xk-1
Yk-1
ZK
XK
YK
dK
dK-1
A sK
We will Build Velocity Equations
 Consider that ç
i
is the joint
type parameter (is 1 if
revolute; 0 if prismatic)

 Angular velocity of a Frame
k relative to the Base:

 NOTE: if joint k is prismatic,
the angular velocity of frame
k is the same as angular
velocity of frame k-1!


1 1 k k k k k
q z e e ç
÷ ÷
= +
Angular Acceleration of a “Frame”
 Taking the Time Derivative of the angular velocity
model of Frame k:
( )
1 1 1 1 k k k k k k k k
q z q z e e ç e
÷ ÷ ÷ ÷
( = + + ×
¸ ¸
Same as o (dw/dt) the
angular acceleration in
dynamics
Linear Velocity of Frame k:
 Defining As
k
= d
k
– d
k-1
as a link vector, Then the
linear velocity of link K is:



 Leading to a Linear Acceleration Model of:


( ) ( )
1 1
1
k k k k k k k
v v s q z e ç
÷ ÷
= + ×A + ÷
( )
( ) ( )
1
1 1
1 2
k k k k k k k
k k k k k k
s s
q z q z
v v e e e
ç e
÷
÷ ÷
= + ×A + × ×A
( + ÷ + ×
¸ ¸

Normal component of
acceleration (centrifugal
acceleration)
This completes the Forward Newton-
Euler Equations:
 To evaluate Link velocities & accelerations, start with the BASE (Frame
0
)




 Its Set V & A set (for a fixed or inertial base) is:







 As advertised, setting base linear acceleration propagates gravitational
effects throughout the arm as we recursively move toward the end!

0
0
0
0
0
0
0 v
g
e
e
v
=
=
=
= ÷
Now we define the Backward
(Force/Moment) Equations
 Work Recursively from the End
 We define a term Ar
k
which is the vector from
the end of a link to its center of mass:






k k k
k
r c d
c
A = ÷
is location of center of mass of Link k
Defining f and n Models
( )
1 k k k k k k k k k
f f m r r v e e e
+
( = + + ×A + × ×A
¸ ¸
( )
( )
1 1 k k k k k k k k k
k k k
n n s r f r f D
D
e
e e
+ +
= + A + A × ÷ A × +
+ ×
Inertial Tensor of Link k –
in base space
The term in the brackets represents
the linear acceleration of the center
of mass of Link k
Combine them into Torque Models:
( ) ( )( ) ( )
1 1
1
T T
k k k k k k k k k
n z f z b q t ç ç
÷ ÷
= + ÷ +
NOTE: For a robot moving
freely in its workspace without
carrying a payload, f
tool
= 0
We will begin our recursion by setting f
n+1
= -f
tool
and n
n+1
= -n
tool
Force and moment on the tool
The N-E Algorithm:
 Step 1: set T
0
0
= I; f
n+1
= -f
tool
; n
n+1
= -n
tool
; v
0
= 0;
v
dot
0
= -g; e
0
= 0; e
dot
0
= 0
 Step 2: Compute –
 Z
k-1
‟s

 Angular Velocity & Angular Acceleration of Link k
 Compute As
k

 Compute Linear velocity and Linear acceleration of Link k
 Step 3: set k = k+1, if k<=n back to step 2 else set k = n
and continue
The N-E Algorithm cont.:
 Step 4: Compute –
 Ar
k
(related to center of mass of Link k)
 f
k
(force on link k)




 N
k
(moment on link k)
 t
k
 Step 5: Set k = k-1. If k>=1 go to step 4


( )
0 0
T
k k
k k
D R D R =
So, Lets Try one:
 Keeping it
Extremely Simple
 This 1-axis „robot‟
is called an
Inverted Pendulum
 It rotates about z
0

“in the plane”

Z0
X0
Y0
Z1
X1
Y1
m1
Writing some info about the device:
1
1
2
1 1
1
1 1 1 1
1 1 1 1 1
0 1
2
0
0
1
0 0 0
0 1 0
12
0 0 1
0
0
0 0 1 0
0 0 0 1
a
c
ma
D
C S a C
S C a S
T A
(
÷
(
(
A =
(
(
(
¸ ¸
(
| |
(
=
|
(
\ .
(
¸ ¸
÷
(
(
(
= =
(
(
¸ ¸
“Link” is a thin
cylindrical rod
Continuing and computing:
1 1 1
1 0
1
1 1 1 1
1 1 1 1
1 1
1 1
0
2
1 0 0 0
0
0
0 1 0 0
0 0 1 0
0
0 0 1 0
0 0 0 1
1
2
2
0
c H T c
a
C S a C
S C a S
a C
a S
= A
(
÷
( ÷
(
(
(
(
(
(
= - -
(
(
(
(
(
(
¸ ¸
(
¸ ¸
¸ ¸
(
(
(
=
(
(
(
(
¸ ¸
Inertial Tensor computation:
( )
1 1
1 0 1 0
1 1 1 1
2
1 1
1 1 1 1
2
1 1 1
2
2
1 1
1 1 1
0 0 0 0 0
0 0 1 0 0
12
0 0 1 0 0 1 0 0 1
0
0
12
0 0 1
T
D R D R
C S C S
ma
S C S C
S S C
ma
S C C
=
÷
( ( (
| |
( ( (
= - - ÷
|
( ( (
\ .
( ( (
¸ ¸ ¸ ¸ ¸ ¸
(
÷
| |
(
= ÷
|
(
\ .
(
¸ ¸
Let Do it (Angular Velocity & Accel.)!
1 1 1
1 1 1
1 1
1 1 1
1 0
1 1
1 1
0 0
0 0 0
1 1
0 0
0 0 0
1 1
1 0 0 0
( ) 0 1 0 0
0
0 0 1 0
1
0
o
q q
q q
a C
a S
s H O O
a C
a S
e
e
( (
( (
= + =
( (
( (
¸ ¸ ¸ ¸
( (
( (
= + =
( (
( (
¸ ¸ ¸ ¸
| |
(
(
|
(
(
|
(
A = ÷ = -
(
|
(
(
|
(
¸ ¸
|
¸ ¸
\ .
(
(
=
(
(
¸ ¸
Starting: Base (i=0)
Ang. vel = Ang. acc =
Lin. vel = 0
Lin. Acc = -g (0, -g
0
, 0)
T
ç
1
= 1
Linear Velocity:
( )
( )
1 0 1 1 1 1 0
1
1 1 1 1
1
1 1 1
1
0 0
0 0 1 1 0
1 0 1
0
v v s q z
C
q a S q
S
a q C
e ç = + × A + ÷
( ( | |
| ( (
= + × + ÷
| ( (
|
( (
¸ ¸ ¸ ¸ \ .
÷
(
(
=
(
(
¸ ¸
Linear Acceleration:
( )
1 1 1 1 1 1
1 1
1 1 1 1 1 1 1
1 1
2
1 1 1 1 1 1
1 1
2
1 1 1 1 1 1
0
0
0 1 0
0 0
0 0
g s s
S S
g a q C q a q C
S C
g a q C a q S
S C
g a q C a q S
v e e e = ÷ + × A + × × A
÷ ÷
( ( (
( ( (
= ÷ + + ×
( ( (
( ( (
¸ ¸ ¸ ¸ ¸ ¸
÷ ÷
( (
( (
= ÷ + + ÷
( (
( (
¸ ¸ ¸ ¸
÷
( (
( (
= ÷ + ÷
( (
( (
¸ ¸ ¸ ¸
Note:
g = (0, -g
0
, 0)
T

Thus Forward Activities are done!
 Compute Ar
1
to
begin Backward
Formations:

1 1 1
1 1
1 1
1 1
1 1
1
1
1
2
2
0
0
2
0
r c O
a C
a C
a S
a S
C
a
S
A = ÷
(
(
(
(
(
= ÷
(
(
(
(
¸ ¸
(
(
¸ ¸
(
(
= ÷
(
(
¸ ¸
Finding f
1

Consider:
f
tool
= 0
( )
1 1 1 1 1 1 1
1 1
1 1 1 1
1 1 1 1 1
1
1 1
1 1 1
{ }
0 0 0
{ 0 0 0 }
2 2
1 0 1 1 0
{
2
0
f m r r
C C
a q a q
m S q S
S
a q
m C
v e e e
v
v
= + × A + × × A
| |
| | | |
( ( ( ( (
|
| | | |
( ( ( ( (
= ÷ × + × ÷ ×
| |
| |
( ( ( ( (
\ .
| |
|
( ( ( ( (
¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸
\ . \ .
\ .
÷
(
| |
(
= ÷ ÷
|
(
\ .
(
¸ ¸
1
2
1 1
1
1 1
2
1 1 1 1
1 1 1 1
1 1 1
2
2
1 1 1 1
1 1 1 1 1 1 1 1
0
0 }
2
1 0
{ }
2 2
0 0
2 2
0 0 0
S
a q
C
S C
a q a q
m C S
S C S
a q a q
m g a q C a q S C
v
÷
( (
| |
( (
×
|
( (
\ .
( (
¸ ¸ ¸ ¸
÷
( (
| |
| |
( (
= ÷ +
| |
( (
\ .
\ .
( (
¸ ¸ ¸ ¸
÷ ÷
( ( (
|
| |
( ( (
= ÷ + ÷ ÷ +
|
( ( (
\ .
\
( ( (
¸ ¸ ¸ ¸ ¸ ¸
1
1
0
C
S
| |
(
|
|
(
|
|
(
.
|
(
¸ ¸
\ .
Collapsing the terms
( ) ( )
1 1
2
1 1 1 1
1 1 1 1
2 2
1 1 1 1 1 1 1 1 1 1
1 0
2 2
0 0
0
2 2
T
S C
a q a q
f m g C S
a q S q C a q C q S
m g
| ÷ |
( (
|
( (
= ÷ + ÷
|
( (
|
( (
¸ ¸ ¸ ¸
\ .
(
+ ÷
= ÷ + (
(
¸ ¸
Note f
1
is a Vector!
Computing n
1
:
( ) ( )
( ) ( )
1 1 1 1 1 1 1 1 1
1 1
2 2 2
1 1 1 1 1 1 1
1 1 1 1
2 2 1
1 1 1 1 1 1 1 1 1 1
1
1 1 0
0 0 0
0 0 0
2 12 12
0 0 1 1 1
0
2 2 2
0
n s r f D D
C C
a ma q ma q
a S S f
C
a q S q C a q C q S
a
S m g
e e e = A + A × + + ×
| |
( ( ( ( (
|
( ( ( ( (
= ÷ × + + ×
|
( ( ( ( (
|
( ( ( ( (
¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸ ¸
\ .
(
+ ÷
(
= × ÷ +
(
(
¸ ¸
( ) ( )
2
1 1 1
2 2
2
1 1 1 1 1 1 1 1 1 1
1 1 1
1 1
1 0 1
0
0
12
1
0 0
0 0
2
2 2 12
1 1
T
ma q
a q C q S a q S q C
ma q
a m
C g S
(
| |
(
| +
(
|
\ .
(
¸ ¸
( (
| |
| | | |
÷ +
( (
|
| | = + ÷ ÷ +
( (
| |
|
\ . \ .
\ .
( (
¸ ¸ ¸ ¸
This X-product goes to Zero!
The Link Force Vector
Simplifying:
2
1 0 1 1 1
1 1 1
0
0
3 2
1
m g ma C
n a q
(
(
| |
(
= +
|
(
(
\ .
¸ ¸
(
¸ ¸
Writing our Torque Model
( ) ( )( ) ( )
( )( ) ( )
( )
1 1 1 0 1 1 0 1 1
2
1 0 1 1 1
1 1 1 1
2
1 1 0 1 1 1
1 1 1 1
1
0 0
0 0 0 1 1 0
3 2
1 1
3 2
T T
T
n z f z b q
m g ma C
a q f b q
ma g ma C
q b q
t ç ç
t
= + ÷ +
( (
(
| |
( (
= + + ÷ +
|
(
( (
\ .
¸ ¸
( (
¸ ¸ ¸ ¸
| |
= + +
|
\ .
„Dot‟ (scalar) Products
Homework Assignment:
• Compute L-E solution for “Inverted Pendulum &
Compare torque model to N-E solution
• Compute N-E solution for 2 link articulator (of slide
set: Dynamics, part 2) and compare to our L-E
torque model solution computed there
• Consider Our 4 axis GMF cylindrical robot – if the
links can be simplified to thin cylinders, develop a
generalized torque model for the device.