overview
The recursive newton euler algorithm solves the inverse dynamics problem for a
kinematic tree of n bodies in O(n) time. This document is intended to act as
a concise reference to the already informed reader. For an introduction to the
topic or a deeper discussion, refer to [1].
history
The recursive newton euler algorithm was first described in
[2]. Classical accerations were replaced with spatial
accerations in [3], with the addition of spatial accelerations.
The version presented in this document is the subsequent reformulation from
[1], which introduces the use of generalized coorderinates and
spatial vector algebra.
formulation
A rigid body system in any configuration is described as
(model,state).
For a kinematic tree, the model is a set of parent body indices
λ, joint types jtype, parent transforms XT, and inertias
I.
The state is a set of generalized positions q, velocities
q˙, and accelerations q¨.
Inverse dynamics is the problem of finding the forces of a rigid body system
given its state.
τ=ID(model,state) The recursive newton euler algorithm solves the inverse dynamic problem by:
- Compute the velocity and acceleration of each body in the tree.
- Compute the forces required to produce these accelerations.
- Compute the forces transmitted across the joints from the forces acting on
the bodies.
Recursive Newton Euler Algorithmv0=0a0=−agfor i=1 to NB do[XJ,Si,vj,cj]=jcalc(jtype(i),qi,qi˙)iXλ(i)=XJXT(i)if λ(i)=0 theniX0=iXλ(i)λ(i)X0endvi=iXλ(i)vλ(i)+vJai=iXλ(i)aλ(i)+Siqi¨+cJ+vi×vJfi=Iiai+vi×∗Iivi−iX0∗fixendfor i=NB to 1 doτi=SiTfiif λ(i)=0 thenfλ(i)=fλ(i)+λ(i)Xi∗fiendend
Joint Model Formulae (jcalc)Joint TyperevoluteprismaticJoint Transform(sXp)Erz(q1)13×3r⎣⎢⎡000⎦⎥⎤⎣⎢⎡00q1⎦⎥⎤Motion SubspaceS⎣⎢⎢⎢⎢⎢⎢⎢⎡000100⎦⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎡000001⎦⎥⎥⎥⎥⎥⎥⎥⎤Constraint Force SubspaceT⎣⎢⎢⎢⎢⎢⎢⎢⎡100000010000000100000010000001⎦⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎡100000010000001000000100000010⎦⎥⎥⎥⎥⎥⎥⎥⎤
references
[1] R. Featherstone. Rigid Body Dynamics Algorithms. Springer, 2008.
[2] J. Luh, et al. Resolved-Acceleration Control of Mechanical Manipulators. IEEE Trans. On Auto. Control, Vol. AC-25, No. 3, pp. 468– 474, June 1980.
[3] M. Brady, et al. Robot Motion: Planning and Control. The MIT Press, 1982.