Professional Documents
Culture Documents
Recursive Robot
Dynamics
#1
#1: vel., accn.
1: torque
1 1: rate, accn
#0 +
#0: vel., accn. = 0
Why recursive?
• Efficient, i.e., less computations and CPU time
Compute jt. torque Compute jt. accn.
(Inverse) (Forward)
Equal number of 1-, 2- and 3-DOF joints 4
x 10 1-, 2- and 3-DOF joints
14000 2.5
Proposed
12000 Balafoutis
Featherstone 2
10000 Angeles
Computational Counts
Computational Counts
1.5
8000
6000
1
4000
Proposed
0.5 Mohan and Saha
2000 Lilly and Orin
Fetherstone
0 0
0 5 10 15 20 25 30 0 5 10 15 20 25 30
Total number of joints Total number of joints
Ref. : Shah, S.,V. Saha, S.K., Dutt, J.K, Dynamics of Tree-type Robotic Systems, Springer, 2013
Why recursive? (contd.)
• Numerically stable Simulation is realistic
Recursive Non-recursive
(Forward) (Forward)
Ref. : Mohan, A., and Saha, S.K., A recursive, numerically stable, and efficient simulation
algorithm for serial robots with flexible links, Multibody System Dyn., V. 21, N. 1,pp. 1—35.
Unrealistic: Constraint Violation
θ3
3
#3
#2 #1
θ1
θ2
2 1
#0
Review of Dynamic Formulations
d L L
• Euler-Lagrange (EL) i
dt qi qi
mi v i fi
• Newton-Euler (NE)
I i ωi ωi I i ωi n i
Mi t i WM
i i t i wi
Ii O ω i 1 Ο ω i n i
Mi , Wi Ο , ti , wi
O m i
1 Ο vi fi
Starting point for the Recursive Dynamics
(using the DeNOC matrices)
Newton-Euler to Euler-Lagrange
DeNOC Rate of
Link velocities
t (ω and v) = matrices × Independent
coordinate θ.
,
Newton-Euler Minimal order
× Equations of = Equations of motion
motion (Euler-Lagrange)
Force, f fv
x
f Mass, m
Mi t i WM
i i t i wi
where
Ii O ω i ω i 1 Ο n i
Mi , t i , Wi , wi
O mi 1 vi Ο Ο fi
Uncoupled NE Equations
• Separate the bodies n bodies
Mi t i WM
i t
i i w E
i w C
i
#n
#i
n
i • 6n NE equations
#1
Mt WMt w E wC
1
M diag [M1 M 2 Mn ]
#0
W diag [ W1 W2 Wn ]
Kinematic (Velocity) Constraints
1 O
ei
Bij (r j di ) 1 1
i ei di
p
c ij
• Pre-multiplication by NT
NT (Mt WMt ) NT (w E w C )
• Equations in compact form
n coupled EL equations
T
N w C
0 Iθ Cθ τ
- no partial differentiation
I : nn Generalized inertia matrix (GIM)
C : nn Matrix of convective inertia (MCI) terms
τ : n-dimensional vector of generalized forces due to driving
torques/forces, and those resulting from the gravity,
environment and dissipation.
Generalized Inertia Matrix (GIM)
• Generalized inertia matrix (GIM)
~
I Nd MNd where M NTl MN l
T
15
Vector of Convective Inertia (VCI)
• Vector of Convective Inertia
h Cθ NTd w
~'
• Each element of h
hi pTi w i
where w i w i BTi 1,i w i 1 , and w n w 'n
and w i M i t i Wi M i t i
Generalized Force (Joint Torque)
• Generalized Force
~E
τ NTd w E where w Nl w
T E
s 2 s c 0
ma 2
T
[I]1 Q[I]2 Q s c c 2 0
12
0 0 1
e I O
where p and M M
e d O m1
I ( i11 ) pT Mp Ref: “Introduction to
1 Robotics” by Saha
eT Ie m(e d)T (e d) ma 2
3
Moment of inertia about O
h pT (MW WM)p
eT [I(e e) (e Ie)] 0
n 1
1 N w [e
T
l
E T
(e d) ]
T
1 mgas
f 2
where [n]1 [0 0 ]T ;[f ]1 [mg 0 0]T
1 2 1
Equation of motion: ma mgas
3 2
Recursive Inverse Dynamics
γ n M n β n Wn M n α n
γ n 1 M n 1β n 1 Wn 1M n 1α n 1 BTn, n 1 γ n
n pTn γ n #n
n 1 pTn 1 γ n 1 n
#i
#1 β 2 p 2 2 Ω 2 p 2 2
1
α1 p11 B 21β1 B 21α1
#0
α 2 p 2 2 α1
β n p n n Ω n p n n
α n p n n α n 1 B n , n 1β n 1 B n , n 1α n 1
Lecture 2
Recursive Robot
Dynamics
Equation of motion
(Dynamic Model)
1 2 1
ma mgas
3 2
RoboAnalyzer (Free: www.roboanalyzer.com)
Spanish
(Mexico)
Chinese
(PRC)
Verify the results using MATLAB’s symbolic tool
(MuPAD)
1
I ( i11 ) pT Mp eT Ie m(e d)T (e d) ma 2
3
n 1
1 N w [e
T
l
E T
(e d) ]
T
1 mgas
f 2
where [n]1 [0 0 ]T ;[f ]1 [mg 0 0]T
1 2 1
Equation of motion: ma mgas
3 2
;
1 1
[e2 ]2 [0 0 1]T ; [d2 ]2 [ a2 c2 a2 s2 0]T X3
2 2
c 2 s 2 0
Q 2 s 2 c 2 0
0 0 1 Y3
s 2 s 2 c 2 0
2
2
ma
[I 2 ]2 Q 2 [I 2 ]3 QT2 s 2 c 2 c 2 2 0
12
0 0 1
1 2 1 2 1
i22 m2 a2 m2 a2 m2 a2
2
12 4 3
i21 ( i12 ) pT2 M2B21p1 : Scalar
;
1 O
B21 : 6 6 matrix
(r1 d2 ) 1 1
e1
p1 : 6-dim. vector
e1 d1
c1 s1 0
Q1 s1 c1 0 r1
0 0 1
I1 O
M1 : 6 6 sym. matrix
O m1 1 Y3
~
~ T ~
I1 δ1 1
M1 M1 B 21M 2 B 21 ~
δ1 1 m1 1
I1 I1 I 2 m2 ( r1 d 2 ) δ1 1
~ c12 ( c21 )
δ1 m2 c 21
i11 [e1 ]1T [I1 ]1[e ]1 m1[d1 ]1T [d1 ]1
~ m m
m1 1 2 1
(m1a12 m2 a22 ) m2 a12 m2 a1a2 c2
3
Vector of Convective Inertia
1 1
h2 pT2 w2 m2 a1a2 sθ2θ12 h1 p1T w1 m2 a1a2 sθ2θ2 ( θ2 θ1 )
2 2
Link Joint ai bi i i
(m) (m) (rad) (rad)
1 r 0.3 0 0 JV [0]
2 r 0.25 0 0 JV [0]
Link mi ri,x ri,y ri,z Ii,xx Ii,xy Ii,xz Ii,yy Ii,yz Ii,zz
(kg) (m) (kg-m2)
1 0.5 0.15 0 0 0 0 0 0.00375 0 0.00375
2 0.4 0.125 0 0 0 0 0 0.00208 0 0.00208
Joint Torques
No gravity
(horizontal)
With gravity
(vertical
Forward Dynamics & Simulation
Equation of motion for one-link arm
1 2 1
ma mgas
3 2
3 1
Forward Dynamics: 2
( mgas )
ma 2
34
Observations
• Derivations appear to be complex for the
simpler manipulators
• It was for demonstration only
• The computations will be done algorithmically
• Due to recursive natures, calculations are fast
• The algorithm should be used for complex
robotic systems like 6- or more-DOF robots
Lecture 3
Recursive Robot
Dynamics
f12
3 #2 2 f32
3
a2 2
1
#3 a3 #2
a1 #1
1 f23 r1
4 a0 1 f21 C1
#3 #1
4 Base, #0 d1
f01
Equations of motion: 3 per link f03
f12
3 #2 2 f32
3
a2 2
#3 1
a3 #2
a1 #1
f03 1 f23 r1
a0 1 f21 C1
#3 #1
Base, #0 d1
T C
Nl w
T C
1 B32 w 2 w 2 B32 w 3
C T C
0 ' s 1 wC w C2
3
wC
3
1 (r2 d3 ) 1 n03 n 23 d3 f23 r3 f03
B
T
w
C
32
0' s 1
3
f 03 f 23
66
n32 n12 d 2 f12 r2 f32
n23
w 2 w 2 B32 w 3
C C T C
61 f32 f12
f23
n 03 n 23 d3 f23 r3 f03 (r2 d3 ) (f03 f23 )
+
f 03 f 23
n03 n12 (r2 d3 r3 ) f03 d 2 f12 3 r C 2
w C2
2 2
3
p2 2
r3
d3
p2 1
f03 f12
p1 1
f03
1
n03 n01 p1 f03 d1 f01
w
C
1
f 03 f 01
Constraint Torque
pT 0 ' s w1C
1 ei
NTd w C pT2 w 2
C pi (i 1, 2,3)
ei d i
0 ' s p3 w 3
T C
n 03 n 01 p1 f03 d1 f01
C
p w e
T C T
(e1 d1 )
T
1
Scalar
1 1 1
f 03 f 01
= e1T (n03 n01 p1 f03 d1 f01 )
(e1 d1 )T (f03 f01 ) 3 r C
2 2 2
3
= e (ρ1 f03 ) (e1 ρ1 ) f03
T
1
T
a3 d2 2
1
p1
2C pT2 wC2 eT2 (ρ2 f03 ) (e2 ρ2 )T f03 f03
1 1
1
*
1 1 a1s1 a2 s12 a3 s123 a1c1 a2 c12 a3c123 1
2* 0
a2 s12 a3 s123 a2 c12 a3c123 f 03 x
3* 0 a3 s123 a3c123 f 03 y
A:33 x:31
b:31
#3 #1
f21 ()
Subsystem equations 1
4 123 1
I θ C θ τ (τ )
I I I I I C I
2
a s a s a s a s 3
J 1 1 ; J 3 123 2 12
I II 2 12
21 1 1 22
a c 3 123 2 12
a c a c a2 12
c
I
Aen NlnI N dI II II II
Aen Nln N d
System + Motion
Subsystem II: I θ C θ τ ( τ )
II II II II II C II
T
Solve
[0,0] (J ) λ
II T
Subsystem I: I I I C I I I ( C ) I
( J1 )T λ
0.3
300
250 3
0.1
200
0
150
-0.1
100
-0.2
50 2
-0.3
0 -0.4
0 0.5 1 1.5 0 0.5 1 1.5
Time (s) Time (s)
Lecture 4
I C ( )
I I I I I C I I II θ II CII θ II τ II ( τ C ) II
1 [0,0]T ( J II )T λ
( J1 )T λ
I
0
Velocity constraints: J -J II
I II
θ 0
DAE [Diff. Algeb. Eqn.) formulation: System appr.]
I I O (J I )T I 1 C I I x=A1b
II T II
0 I II -(J ) θ -C θ II II
+
J I -J II O λ -J I I J II θ II (jt. accn.) jt.
vel. & pos.
A:55 x:51 b:51
System-level Lagrange Multiplier Method
Constrained equations of motion: I I I C I I I ( C ) I
1
( J1 )T λ
I II θ II CII θ II τ II ( τ C ) II
I I
O -C (J )
I I I I I T [0,0]T ( J II )T λ
II II
II II II II T
λ
0 I θ τ -C θ (J )
I:33 θ:31 1 JT :32
I JT θ 1
Velocity constraints:
J O λ 2
I
J I -J II -J I I J II θ II
II
1 T 1 1
θ 2
λ ( JI J ) (JI 1 2 )
J
I :22
θ
1
jt. vel. & pos. (jt. accn.) θ I ( JT λ )
1
a1 #1 1 a1 #1 1
1 1
2 1
a0 1 2 a0
Base, #0 Base, #0
Subsystem equations
I I θ I CI θ I τ I ( τ ) I : 2 eqs., 3 (1, x, y)? [2R done]
I II θII CII θII τ II (τ ) II : 2 eqs., 1 (2 )? [2R done]
- 2
2 a2
a2 2
Cut 2
here
a1 #1 1 a1 #1 1
1 2 1
2 a0 1 1
a0
Base, #0 Base, #0
Subsystem equations
I I θ I CI θ I τ I ( τ ) I : 3 eqs., 3 (1, x, y)? [3R done]
I II θII CII θII τ II (τ ) II : 1 eq., 1 (2 )? [1R done]
1 f 1i T 2 t
1 1i [t sin( )]
T 2 T
Inverse Dynamics (w/Gravity)
Two-DOF Parallel Manipulator
P
Kinematic constraints
Cut here
l1 l 2 a0 0
O3
r3 Link bi θi ai αi
r2
(m) (m) (m) (m)
C3
C2 1 0 1 0 /2
l1 #2 #3
l2 2 b2 [JV] 0 0 0
c12 c43
O4
F3 Link mi ri,x, ri,y ri,z Ii,xx, Ii,yy
O2 F
2
C4 (kg) (m) (kg-m2)
C1
d1 #1 d4 1,2 655 0 .625 399
#4 x2
θ1
O1 ao O5 Sliding velocity (constant): 0.1 m/sec.
#0
Two RP serial manipulators; Combined: 4 eqs., 4 (f1, f2, x, y)?
Three-DOF RRR Parallel Robot
Cut joint
O6 O4
r3
Dimensionless #5
links O5
C3
#4
d3 #3
O4
0 e T
1 a 14
c23
T λ
#3 N I (w I w I ) = 0 f I + e 2 a 14 f I
T * g
fI
1 T O3
f I* e3 d23
O3 A1I
f1 A2I C2
#2 Subsystem I (3-DOF) d2
#2
O2 3 eqs.; 4 (x, y, x, f1)?
O2
#1 C1 #1
O1 O1
c 6
n VII xi s1 p fI
s 6 p p6
i 1
p1
c 6
s1 s6 f
f VII y i VI
i 1 J:66
τ:61
h:61
1
τJ h
Ref: Sadana, M., 2009, Dynamic Analysis of 6-DOF Motion
Platform, M. Tech Project Report, IIT Delhi
Using GUI
Trajectory and
actuating force
More Robots using ReDySim
Planar biped
Spatial biped
Spatial
quadruped
Flexible Rope using ReDySim
0 Base
M1
Mi Torsion
spring
Detail of the
module Mi
Ms
Conclusions
• Purpose of Recursive Robot Dynamics
– Efficiency
– Numerical stability
• DeNOC matrices for serial-chain
• NE to EL derivations
• Constrained equations of motion for serial-chain systems
• Schemes for Inverse and Forward Dynamics (Simulation)
• RoboAnalyzer software for robot dynamics
• Parallel robot application
• Four-bar mechanism from FBD
• Cut-open system and subsystem recursion
• ReDySim software
• Five-bar, 3-DOF RRR, Stewart platform dynamics
• Custom-made GUI for Stewart platform
• Simulation of walking robots and rope using ReDySim
Acknowledgements
• Mr. Majid Koul
• Mr. Rajivlochana C.G.
• Dr. Suril V. Shah
• Mr. Mukesh Sadana
• Dr. Himanshu Chaudhary
• Students of IIT Delhi and other institutes who
used the materials mentioned in the lectures
and given feedbacks.
Thank you
For comments/questions:
saha@mech.iitd.ac.in
http://web.iitd.ac.in/~saha