Dynamics of articulated robots

advertisement
Dynamics of
Articulated Robots
Rigid Body Dynamics


The following can be derived from first principles
using Newton’s laws + rigidity assumption
Parameters
 CM
translation x(t)
 CM velocity v(t)
 Rotation R(t)
 Angular velocity w(t)
 Mass m, local inertia tensor HL
Kinetic energy for rigid body

Rigid body with velocity v, angular velocity
w
 KE

= ½ (m vTv + wT H w)
World-space inertia tensor H = R HL RT
1/2
w
v
T
H 0
0 mI
w
v
Kinetic energy derivatives
KE/v = m v
 Force (@CM) f = d/dt (KE/v) = m v’

KE/w = H w
 d/dt H = [w]H – H[w]
 Torque t = d/dt (KE/w) = [w] H w + H w’

Summary
f = m v’
 t = [w] H w + H w’

Robot Dynamics
Configuration q, velocity q’  Rn
 Generalized forces u  Rm

 Joint
torques/forces
 If m < n we say robot is underactuated

How does u relate to q and q’?
Articulated Robots
Treat each link as a rigid body
 Use Langrangian mechanics to
determine dynamics of q, q’ as a function
of generalized forces u
 (Derivation: principle of virtual work)

Lagrangian Mechanics

L(q,q’) = K(q,q’) – P(q)
Kinetic energy

Potential energy
Lagrangian equations of motion:
d/dt L/q’ - L/q = u
Lagrangian Approach

L(q,q’) = K(q,q’) – P(q)
Kinetic energy
Potential energy

Lagrangian equations of motion:
d/dt L/q’ - L/q = u

L/q’ = K/q’
L/q = K/q - P/q

Kinetic energy for articulated
robot
K(q,q’) = Si Ki(q,q’)
 Velocity of i’th rigid body

 vi

= Jit(q) q’
Angular velocity of i’th rigid body
 wi
= Jir(q) q’
Ki = ½ q’T(miJit(q)TJit(q) + Jir(q)THi(q)Jir(q))q’
 K(q,q’) = ½ q’T B(q) q’

Mass matrix
Derivative of K.E. w.r.t q’
/q’ K(q,q’) = B(q) q’
 d/dt (/q’ K(q,q’)) = B(q) q’’ + d/dt B(q) q’

Derivative of K.E. w.r.t q

/q K(q,q’) = ½
q’T /q1 B(q) q’
…
q’T /qn B(q) q’
Potential energy for articulated
robot in gravity field
P/q = Si Pi/q
 Pi/q = mi (0,0,g)T vi = mi (0,0,g)T Jit(q) q’
 -G(q)

Generalized gravity
Putting it all together


d/dt K/q’ - K/q - P/q = u
B(q) q’’ + d/dt B(q) q’ – ½
q’T /q1 B(q) q’
…
q’T /qn B(q) q’
+ G(q) = u
Putting it all together


d/dt K/q’ - K/q - P/q = u
B(q) q’’ + d/dt B(q) q’ – ½
q’T /q1 B(q) q’
…
q’T /qn B(q) q’
+ G(q) = u
Final canonical form

B(q) q’’ + C(q,q’) + G(q) = u
Mass matrix
Centrifugal/
coriolis forces
Generalized
gravity
Generalized forces
Forward/Inverse Dynamics

Given u, find q’’
 q’’

= M(q)-1 (u - C(q,q’) - G(q) )
Given q,q’,q’’, find u
u
= M(q) q’’ + C(q,q’) + G(q)
Newton-Euler Method
(Featherstone 1984)
Explicitly solves a linear system for joint
constraint forces and accelerations,
related via Newton’s equations
 Faster forward/inverse dynamics for large
chains (O(n) vs O(n3))
 Lagrangian form still mathematically handy

Software

Both Lagrangian dynamics and NewtonEuler methods are implemented in
KrisLibrary
Application: Feedforward control



Joint PID loops do not follow
joint trajectories accurately
Include feedforward torques
to reduce reliance on feedback
Estimate the torques that
would compensate for gravity
and coriolis forces
Application: Feedforward control



Joint PID loops do not follow
joint trajectories accurately
Include feedforward torques
to reduce reliance on feedback
Estimate the torques that
would compensate for gravity
and coriolis forces
Feedforward Torques
Given q,q’,q’’ of trajectory
 1. Estimate M, C, G
 2. Compute u

u

= M(q) q’’ + C(q,q’) + G(q)
3. Add u into joint PID loops
Download