# Dynamics

Chapter

## Abstract

The dynamic equations of motion provide the relationships between actuation and contact forces acting on robot mechanisms, and the acceleration and motion trajectories that result. Dynamics is important for mechanical design, control, and simulation. A number of algorithms are important in these applications, and include computation of the following: inverse dynamics, forward dynamics, the joint-space inertia matrix, and the operational-space inertia matrix. This chapter provides efficient algorithms to perform each of these calculations on a rigid-body model of a robot mechanism. The algorithms are presented in their most general form and are applicable to robot mechanisms with general connectivity, geometry, and joint types. Such mechanisms include fixed-base robots, mobile robots, and parallel robot mechanisms.

In addition to the need for computational efficiency, algorithms should be formulated with a compact set of equations for ease of development and implementation. The use of spatial notation has been very effective in this regard, and is used in presenting the dynamics algorithms. Spatial vector algebra is a concise vector notation for describing rigid-body velocity, acceleration, inertia, etc., using six-dimensional (6-D) vectors and

The goal of this chapter is to introduce the reader to the subject of robot dynamics and to provide the reader with a rich set of algorithms, in a compact form, that they may apply to their particular robot mechanism. These algorithms are presented in tables for ready

3-D

three-dimensional

6-D

six-dimensional

ABA

articulated-body algorithm

CRBA

composite-rigid-body algorithm

DOF

degree of freedom

JPL

Jet Propulsion Laboratory

JSIM

joint-space inertia matrix

OSIM

operational-space inertia matrix

RNEA

recursive Newton–Euler algorithm

### References

1. 3.1
R. Featherstone: The calculation of robot dynamics using articulated-body inertias, Int. J. Robotics Res. 2(1), 13–30 (1983)
2. 3.2
J.J. Craig: Introduction to Robotics: Mechanics and Control, 3rd edn. (Prentice Hall, Upper Saddle River 2005)Google Scholar
3. 3.3
R.E. Roberson, R. Schwertassek: Dynamics of Multibody Systems (Springer, Berlin, Heidelberg 1988)
4. 3.4
J.Y.S. Luh, M.W. Walker, R.P.C. Paul: On-line computational scheme for mechanical manipulators, Trans. ASME J. Dyn. Syst. Meas. Control 102(2), 69–76 (1980)
5. 3.5
M.W. Walker, D.E. Orin: Efficient dynamic computer simulation of robotic mechanisms, Trans. ASME J. Dyn. Syst. Meas. Control 104, 205–211 (1982)
6. 3.6
D. Baraff: Linear-time dynamics using lagrange multipliers, Proc. 23rd Annu. Conf. Comp. Graph. Interact. Tech., New Orleans (1996) pp. 137–146Google Scholar
7. 3.7
J. Baumgarte: Stabilization of constraints and integrals of motion in dynamical systems, Comput. Methods Appl. Mech. Eng. 1, 1–16 (1972)
8. 3.8
R. Featherstone: Rigid Body Dynamics Algorithms (Springer, New York 2008)
9. 3.9
R.M. Murray, Z. Li, S.S. Sastry: A Mathematical Introduction to Robotic Manipulation (CRC, Boca Raton 1994)
10. 3.10
J. Angeles: Fundamentals of Robotic Mechanical Systems, 2nd edn. (Springer, New York 2003)
11. 3.11
R.S. Ball: A Treatise on the Theory of Screws (Cambridge Univ. Press, London 1900), Republished (1998)
12. 3.12
J.M. Selig: Geometrical Methods in Robotics (Springer, New York 1996)
13. 3.13
D.T. Greenwood: Principles of Dynamics (Prentice-Hall, Englewood Cliffs 1988)Google Scholar
14. 3.14
F.C. Moon: Applied Dynamics (Wiley, New York 1998)
15. 3.15
R. Featherstone: Robot Dynamics Algorithms (Kluwer, Boston 1987)
16. 3.16
R. Featherstone: Spatial v2, http://royfeatherstone.org/spatial/v2 (2012)
17. 3.17
S. McMillan, D.E. Orin: Efficient computation of articulated-body inertias using successive axial screws, IEEE Trans. Robotics Autom. 11, 606–611 (1995)
18. 3.18
L. Sciavicco, B. Siciliano: Modeling and Control of Robot Manipulators, 2nd edn. (Springer, London 2000)
19. 3.19
J. Slotine, W. Li: On the adaptive control of robot manipulators, Int. J. Robotics Res. 6(3), 49–59 (1987)
20. 3.20
K.S. Chang, O. Khatib: Operational space dynamics: Efficient algorithms for modeling and control of branching mechanisms, Proc. IEEE Int. Conf. Robotics Autom., San Francisco (2000) pp. 850–856Google Scholar
21. 3.21
O. Khatib: A unified approach to motion and force control of robot manipulators: The operational space formulation, IEEE J. Robotics Autom. 3(1), 43–53 (1987)
22. 3.22
Y.F. Zheng, H. Hemami: Mathematical modeling of a robot collision with its environment, J. Robotics Syst. 2(3), 289–307 (1985)
23. 3.23
W. Khalil, E. Dombre: Modeling, Identification and Control of Robots (Kogan Page Sci., London 2002)
24. 3.24
J. Denavit, R.S. Hartenberg: A kinematic notation for lower-pair mechanisms based on matrices, J. Appl. Mech. 22, 215–221 (1955)
25. 3.25
H. Brandl, R. Johanni, M. Otter: A very efficient algorithm for the simulation of robots and similar multibody systems without inversion of the mass matrix, Proc. IFAC/IFIP/IMACS Int. Symp. Theory Robots, Vienna (1986)Google Scholar
26. 3.26
R. Featherstone: Efficient factorization of the joint space inertia matrix for branched kinematic trees, Int. J. Robotics Res. 24(6), 487–500 (2005)
27. 3.27
R. Featherstone: An empirical study of the joint space inertia matrix, Int. J. Robotics Res. 23(9), 859–871 (2004)
28. 3.28
K. Kreutz-Delgado, A. Jain, G. Rodriguez: Recursive formulation of operational space control, Proc. IEEE Int. Conf. Robotics Autom., Sacramento (1991) pp. 1750–1753Google Scholar
29. 3.29
K.W. Lilly: Efficient Dynamic Simulation of Robotic Mechanisms (Kluwer, Boston 1993)
30. 3.30
K.W. Lilly, D.E. Orin: Efficient O(N) recursive computation of the operational space inertia matrix, IEEE Trans. Syst. Man Cybern. 23(5), 1384–1391 (1993)
31. 3.31
G. Rodriguez, A. Jain, K. Kreutz-Delgado: Spatial operator algebra for multibody system dynamics, J. Astronaut. Sci. 40(1), 27–50 (1992)
32. 3.32
R. Featherstone: Exploiting sparsity in operational-space dynamics, Int. J. Robotics Res. 29(10), 1353–1368 (2010)
33. 3.33
P. Wensing, R. Featherstone, D.E. Orin: A reduced-order recursive algorithm for the computation of the operational-space inertia matrix, Proc. IEEE Int. Conf. Robotics Autom., St. Paul (2012) pp. 4911–4917Google Scholar
34. 3.34
R.E. Ellis, S.L. Ricker: Two numerical issues in simulating constrained robot dynamics, IEEE Trans. Syst. Man Cybern. 24(1), 19–27 (1994)
35. 3.35
J. Wittenburg: Dynamics of Systems of Rigid Bodies (Teubner, Stuttgart 1977)
36. 3.36
R. Featherstone, D.E. Orin: Robot dynamics: Equations and algorithms, Proc. IEEE Int. Conf. Robotics Autom., San Francisco (2000) pp. 826–834Google Scholar
37. 3.37
C.A. Balafoutis, R.V. Patel: Dynamic Analysis of Robot Manipulators: A Cartesian Tensor Approach (Kluwer, Boston 1991)
38. 3.38
A. Jain: Robot and Multibody Dynamics: Analysis and Algorithms (Springer, New York 2011)
39. 3.39
L.W. Tsai: Robot Analysis and Design: The Mechanics of Serial and Parallel Manipulators (Wiley, New York 1999)Google Scholar
40. 3.40
K. Yamane: Simulating and Generating Motions of Human Figures (Springer, Berlin, Heidelberg 2004)
41. 3.41
F.M.L. Amirouche: Fundamentals of Multibody Dynamics: Theory and Applications (Birkhäuser, Boston 2006)
42. 3.42
M.G. Coutinho: Dynamic Simulations of Multibody Systems (Springer, New York 2001)
43. 3.43
E.J. Haug: Computer Aided Kinematics and Dynamics of Mechanical Systems (Allyn and Bacon, Boston 1989)Google Scholar
44. 3.44
R.L. Huston: Multibody Dynamics (Butterworths, Boston 1990)
45. 3.45
A.A. Shabana: Computational Dynamics, 2nd edn. (Wiley, New York 2001)
46. 3.46
V. Stejskal, M. Valášek: Kinematics and Dynamics of Machinery (Marcel Dekker, New York 1996)
47. 3.47
L. Brand: Vector and Tensor Analysis, 4th edn. (Wiley/Chapman Hall, New York/London 1953)
48. 3.48
F.C. Park, J.E. Bobrow, S.R. Ploen: A lie group formulation of robot dynamics, Int. J. Robotics Res. 14(6), 609–618 (1995)
49. 3.49
M.E. Kahn, B. Roth: The near minimum-time control of open-loop articulated kinematic chains, J. Dyn. Syst. Meas. Control 93, 164–172 (1971)
50. 3.50
J.J. Uicker: Dynamic force analysis of spatial linkages, Trans. ASME J. Appl. Mech. 34, 418–424 (1967)
51. 3.51
A. Jain: Unified formulation of dynamics for serial rigid multibody systems, J. Guid. Control Dyn. 14(3), 531–542 (1991)
52. 3.52
G. Rodriguez: Kalman filtering, smoothing, and recursive robot arm forward and inverse dynamics, IEEE J. Robotics Autom. RA-3(6), 624–639 (1987)
53. 3.53
G. Rodriguez, A. Jain, K. Kreutz-Delgado: A spatial operator algebra for manipulator modelling and control, Int. J. Robotics Res. 10(4), 371–381 (1991)
54. 3.54
J.M. Hollerbach: A recursive lagrangian formulation of manipulator dynamics and a comparative study of dynamics formulation complexity, IEEE Trans. Syst. Man Cybern. SMC-10(11), 730–736 (1980)
55. 3.55
M.W. Spong, S. Hutchinson, M. Vidyasagar: Robot Modeling and Control (Wiley, Hoboken 2006)Google Scholar
56. 3.56
K.W. Buffinton: Kane's Method in Robotics. In: Robotics and Automation Handbook, ed. by T.R. Kurfess (CRC, Boca Raton 2005), 6-1--6-31Google Scholar
57. 3.57
T.R. Kane, D.A. Levinson: The use of kane's dynamical equations in robotics, Int. J. Robotics Res. 2(3), 3–21 (1983)
58. 3.58
C.A. Balafoutis, R.V. Patel, P. Misra: Efficient modeling and computation of manipulator dynamics using orthogonal cartesian tensors, IEEE J. Robotics Autom. 4, 665–676 (1988)
59. 3.59
X. He, A.A. Goldenberg: An algorithm for efficient computation of dynamics of robotic manipulators, Proc. 4th Int. Conf. Adv. Robotics, Columbus (1989) pp. 175–188Google Scholar
60. 3.60
W. Hu, D.W. Marhefka, D.E. Orin: Hybrid kinematic and dynamic simulation of running machines, IEEE Trans. Robotics 21(3), 490–497 (2005)
61. 3.61
C.A. Balafoutis, R.V. Patel: Efficient computation of manipulator inertia matrices and the direct dynamics problem, IEEE Trans. Syst. Man Cybern. 19, 1313–1321 (1989)
62. 3.62
K.W. Lilly, D.E. Orin: Alternate formulations for the manipulator inertia matrix, Int. J. Robotics Res. 10, 64–74 (1991)
63. 3.63
S. McMillan, D.E. Orin: Forward dynamics of multilegged vehicles using the composite rigid body method, Proc. IEEE Int. Conf. Robotics Autom. (1998) pp. 464–470Google Scholar
64. 3.64
U.M. Ascher, D.K. Pai, B.P. Cloutier: Forward dynamics: Elimination methods, and formulation stiffness in robot simulation, Int. J. Robotics Res. 16(6), 749–758 (1997)
65. 3.65
R. Featherstone: A divide-and-conquer articulated-body algorithm for parallel O(log(n)) calculation of rigid-body dynamics. Part 2: Trees, loops and accuracy, Int. J. Robotics Res. 18(9), 876–892 (1999)
66. 3.66
67. 3.67
T. Kane, D. Levinson: Autolev user's manual (OnLine Dynamics Inc., Sunnyvale 2005)Google Scholar
68. 3.68
Real-Time Physics Simulation: Bullet, http://bulletphysics.org/wordpress (2015)
69. 3.69
Georgia Tech Graphics Lab and Humanoid Robotics Lab: DART, http://dartsim.github.io (2011)
70. 3.70
S. McMillan, D.E. Orin, R.B. McGhee: DynaMechs: An object oriented software package for efficient dynamic simulation of underwater robotic vehicles. In: Underwater Robotic Vehicles: Design and Control, ed. by J. Yuh (TSI Press, Albuquerque 1995) pp. 73–98Google Scholar
71. 3.71
Open Source Robotics Foundation: Gazebo, http://gazebosim.org (2002)
72. 3.72
R. Smith: Open Dynamics Engine User Guide, http://opende.sourceforge.net (2006)
73. 3.73
Microsoft Corporation: Robotics Developer Studio, http://www.microsoft.com/robotics (2010)
74. 3.74
P.I. Corke: A robotics toolbox for MATLAB, IEEE Robotics Autom. Mag. 3(1), 24–32 (1996)
75. 3.75
Robotran: http://www.robotran.be (Center for Research in Mechatronics, Université catholique de Louvain 2015)
76. 3.76
J.C. Samin, P. Fisette: Symbolic Modeling of Multibody Systems (Kluwer, Dordrecht 2003)
77. 3.77
M.G. Hollars, D.E. Rosenthal, M.A. Sherman: SD/FAST User’s Manual (Symbolic Dynamics Inc., Mountain View 1994)Google Scholar
78. 3.78
M. Sherman, P. Eastman: Simbody, https://simtk.org/home/simbody (2015)
79. 3.79
G.D. Wood, D.C. Kennedy: Simulating Mechanical Systems in Simulink with SimMechanics (MathWorks Inc., Natick 2003) Google Scholar
80. 3.80
W. Khalil, D. Creusot: SYMORO+: A system for the symbolic modeling of robots, Robotica 15, 153–161 (1997)
81. 3.81
W. Khalil, A. Vijayalingam, B. Khomutenko, I. Mukhanov, P. Lemoine, G. Ecorchard: OpenSYMORO: An open-source software package for symbolic modelling of robots, Proc. IEEE/ASME Int. Conf. Adv. Intell. Mechatron. (2014) pp. 126–1211Google Scholar
82. 3.82
Cyberbotics Ltd.: Webots User Guide, http://www.cyberbotics.com (2015)
83. 3.83
I.C. Brown, P.J. Larcombe: A survey of customised computer algebra programs for multibody dynamic modelling. In: Symbolic Methods in Control System Analysis and Design, ed. by N. Munro (Inst. Electr. Eng., London 1999) pp. 53–77
84. 3.84
J.J. Murray, C.P. Neuman: ARM: An algebraic robot dynamic modeling program, Proc. IEEE Int. Conf. Robotics Autom., Atlanta (1984) pp. 103–114Google Scholar
85. 3.85
J.J. Murray, C.P. Neuman: Organizing customized robot dynamic algorithms for efficient numerical evaluation, IEEE Trans. Syst. Man Cybern. 18(1), 115–125 (1988)
86. 3.86
F.C. Park, J. Choi, S.R. Ploen: Symbolic formulation of closed chain dynamics in independent coordinates, Mech. Mach. Theory 34, 731–751 (1999)
87. 3.87
M. Vukobratovic, N. Kircanski: Real-Time Dynamics of Manipulation Robots (Springer, New York 1985)
88. 3.88
J. Wittenburg, U. Wolz: Mesa Verde: A symbolic program for nonlinear articulated-rigid-body dynamics, ASME Des. Eng. Div. Conf., Cincinnati (1985) pp. 1–8, ASME Paper No. 85-DET-151Google Scholar
89. 3.89
J.Y.S. Luh, C.S. Lin: Scheduling of parallel computation for a computer-controlled mechanical manipulator, IEEE Trans. Syst. Man Cybern. 12(2), 214–234 (1982)
90. 3.90
D.E. Orin: Pipelined approach to inverse plant plus jacobian control of robot manipulators, Proc. IEEE Int. Conf. Robotics Autom., Atlanta (1984) pp. 169–175Google Scholar
91. 3.91
R.H. Lathrop: Parallelism in manipulator dynamics, Int. J. Robotics Res. 4(2), 80–102 (1985)
92. 3.92
C.S.G. Lee, P.R. Chang: Efficient parallel algorithm for robot inverse dynamics computation, IEEE Trans. Syst. Man Cybern. 16(4), 532–542 (1986)
93. 3.93
M. Amin-Javaheri, D.E. Orin: Systolic architectures for the manipulator inertia matrix, IEEE Trans. Syst. Man Cybern. 18(6), 939–951 (1988)
94. 3.94
C.S.G. Lee, P.R. Chang: Efficient parallel algorithms for robot forward dynamics computation, IEEE Trans. Syst. Man Cybern. 18(2), 238–251 (1988)
95. 3.95
M. Amin-Javaheri, D.E. Orin: Parallel algorithms for computation of the manipulator inertia matrix, Int. J. Robotics Res. 10(2), 162–170 (1991)
96. 3.96
A. Fijany, A.K. Bejczy: A class of parallel algorithms for computation of the manipulator inertia matrix, IEEE Trans. Robotics Autom. 5(5), 600–615 (1989)
97. 3.97
S. McMillan, P. Sadayappan, D.E. Orin: Parallel dynamic simulation of multiple manipulator systems: Temporal versus spatial methods, IEEE Trans. Syst. Man Cybern. 24(7), 982–990 (1994)
98. 3.98
A. Fijany, I. Sharf, G.M.T. D'Eleuterio: Parallel O(logN) algorithms for computation of manipulator forward dynamics, IEEE Trans. Robotics Autom. 11(3), 389–400 (1995)
99. 3.99
R. Featherstone: A divide-and-conquer articulated-body algorithm for parallel O(log(n)) calculation of rigid-body dynamics. Part 1: Basic algorithm, Int. J. Robotics Res. 18(9), 867–875 (1999)
100. 3.100
R. Featherstone, A. Fijany: A technique for analyzing constrained rigid-body systems and its application to the constraint force algorithm, IEEE Trans. Robotics Autom. 15(6), 1140–1144 (1999)
101. 3.101
P.S. Freeman, D.E. Orin: Efficient dynamic simulation of a quadruped using a decoupled tree-structured approach, Int. J. Robotics Res. 10, 619–627 (1991)
102. 3.102
Y. Nakamura, K. Yamane: Dynamics computation of structure-varying kinematic chains and its application to human figures, IEEE Trans. Robotics Autom. 16(2), 124–134 (2000)