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
Zk1
Xk1
Yk1
ZK
XK
YK
dK
dK1
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 k1!
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
k1
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 NE 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
k1
‟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 NE 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 = k1. 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 1axis „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 Xproduct 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 LE solution for “Inverted Pendulum &
Compare torque model to NE solution
• Compute NE solution for 2 link articulator (of slide
set: Dynamics, part 2) and compare to our LE
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.