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