Scholarpedia is supported by Brain Corporation
Robot dynamics Contents
1 Definition
2 Equations of Motion
3 Dynamic Models
4 Dynamics Algorithms 4.1 Fixed and Floating Bases 4.2 Inverse Dynamics and Floating Bases 4.3 Loops and Trees
5 References
6 Recommended Reading
7 See Also
Definition Robot dynamics is concerned with the relationship between the forces acting on a robot mechanism and the accelerations they produce. Typically, the robot mechanism is modelled as a rigid-body system, in which case robot dynamics is the application of rigid-body dynamics to robots. The two main problems in robot dynamics are:
Forward dynamics: given the forces, work out the accelerations.
Inverse dynamics: given the accelerations, work out the forces.
Forward dynamics is also known as "direct dynamics," or sometimes simply as "dynamics." It is mainly used for simulation. Inverse dynamics has various uses, including: on-line control of robot motions and forces, trajectory design and optimization, design of robot mechanisms, and as a component in some forward-dynamics algorithms. Other problems in robot dynamics include:
Calculating the coefficients of the equation of motion.
Inertia parameter identification --- estimating the inertia parameters of a robot mechanism from measurements of its dynamic behaviour.
Hybrid dynamics: given the forces at some joints and the accelerations at others, work out the unknown forces and accelerations.
Equations of Motion Dynamic Models But
also on the dynamic model of the robot mechanism. This is a description of the
mechanism in terms of its component parts: bodies, joints, and the parameters that characterize them. Specifically, a dynamic model consists of the following:
a kinematic model of the robot mechanism, and
a set of inertia parameters.
Ten inertia parameters are required to define the inertia of a single rigid body (mass, location of center of mass, and six rotational inertia parameters); so a dynamic model will normally contain 10 inertia parameters per body. However, when bodies are connected together to form a mechanism, they lose some of their degrees of motion freedom. As a result, some of their
inertia parameters may have no effect on the dynamic behavior of the system, or may be indistinguishable from algebraic combinations of other inertia parameters. Therefore, if the task is to obtain a dynamic model of a robot mechanism from a given kinematic model and a set of measurements of its dynamic behavior, then the procedure is to identify the values of a set of base inertial parameters, which are the set of observable inertia parameters of the system (Khalil and Dombre, 2002).
Dynamics Algorithms There are three main algorithms used in robot dynamics:
The recursive Newton-Euler algorithm (RNEA). This algorithm solves the inverse dynamics problem, and has a computational complexity of \(O(n)\ .\) It can also be used to calculate \(\boldsymbol{c}\) in Eq (); and it can be
modified
so
as
to
calculate
the
\(\boldsymbol{C}\dot{\boldsymbol{q}}\)
terms and
\(\boldsymbol{\tau}_{\!g}\) in Eq ().
The articulated-body algorithm (ABA). This algorithm solves the forward dynamics problem, and has a computational complexity of \(O(n)\ .\)
The composite-rigid-body algorithm
(CRBA). This
algorithm calculates the joint-space inertia matrix, \(\boldsymbol{H}\
,\)
and
has
a
computational
complexity of \(O(n^2)\ .\) When combined with the RNEA, to calculate \(\boldsymbol{c}\ ,\) and a linear equation
solver,
to
solve
\(\boldsymbol{H}\ddot{\boldsymbol{q}}=\boldsymbol
{\tau}-\boldsymbol{c}\) for \(\ddot{\boldsymbol{q}}\ ,\) the result is an algorithm to solve the forward dynamics problem having a computational complexity of \(O(n^3)\ .\) Although this algorithm will inevitably be slower than the ABA for sufficiently large values of \(n\ ,\) the two algorithms have approximately the same efficiency at small values of \(n\ ,\) such as \(n=6\ .\) To give rough ballpark figures for the efficiencies of these algorithms, the RNEA requires about 200 floating-point calculations per body, the ABA requires about 450 per body, and the CRBA requires about \(16n^2\) to calculate an \(n\times{}n\) inertia matrix. The cost of the CRBA varies according to how the bodies are connected together, being substantially cheaper for a branched tree than for a long chain. Source code for these algorithms can be found on Featherstone's spatial vectors page, and descriptions can be found in (Featherstone, 1987, 2007; Featherstone and Orin, 2000; Siciliano and Khatib, 2008).
Fixed and Floating Bases A robot is said to have a fixed base if it is rigidly attached to a fixed support. An industrial robot arm is a good example of a fixed-base robot. If no part of the robot mechanism is fixed, then it is said to have a floating base. Wheeled and legged mobile robots, flying robots, swimming robots and humanoids are all floating-base robots. In a floating-base robot, one particular link is identified as the floating base. Usually, it is the largest or heaviest link. The standard versions of the three dynamics algorithms calculate the dynamics of a fixed-base robot, but the ABA can be modified trivially to calculate the dynamics of a floating-base robot. The other two algorithms can be adapted as follows. Starting with the dynamic model of the floating-base robot, introduce a fictitious fixed base, and connect it to the floating base via a fictitious joint having six degrees of freedom (a 6-DoF joint). Such a joint does not impose any motion constraints on the floating base, and therefore does not alter the dynamics of the floating-base robot. The modified dynamic model now has a fixed base and six additional joint
variables, the latter serving to define the position and orientation of the floating base. As the modified system does now have a fixed base, the RNEA and CRBA can be applied directly to it.
Inverse Dynamics and Floating Bases The RNEA expects to be told all of the joint accelerations, so that it can work out all of the forces. If the RNEA is applied to the modified dynamic model, then it expects to be told the acceleration of every real joint, and also the acceleration of the fictitious 6-DoF joint (i.e., it wants to know the acceleration of the floating base). If this acceleration is not known, then the problem is no longer an inverse-dynamics problem, but a hybrid-dynamics problem: the acceleration variables of the real joints and the force variables of the 6-Dof joint (which are zero) are given, and the task is to calculate the unknown forces at the real joints and the unknown acceleration of the floating base. All three dynamics algorithms can be adapted to solve hybrid-dynamics problems.
Loops and Trees The connectivity of a robot mechanism can be described using a graph in which the nodes represent the bodies and the arcs represent the joints. If this graph does not contain any cycles, implying that it is a topological tree, then the robot mechanism is called a kinematic tree. Furthermore, if the tree does not contain any branches, then it can be called a kinematic chain. All three dynamics algorithms work on kinematic trees. If the connectivity graph does contain cycles, then the robot mechanism contains kinematic loops, and is called a closed-loop system. The three dynamics algorithms described above do not work on closed-loop systems, although they can be used as components in a closed-loop dynamics algorithm. In general, closed-loop systems have more complicated dynamics than kinematic trees, and they require more sophisticated (and expensive) algorithms to calculate their dynamics.
References Featherstone, R., and Orin, D. E. (2000). Robot Dynamics: Equations and Algorithms. IEEE Int. Conf. Robotics and Automation, pp. 826-834. Khalil, W., and Dombre, E. (2002). Modeling, Identification and Control of Robots. New York: Taylor and Francis. Internal references
Olaf
Sporns
(2007)
Complexity.
Scholarpedia,
2(10):1623.
James Meiss (2007) Dynamical systems. Scholarpedia, 2(2):1629.
Eugene M. Izhikevich (2007) Equilibrium. Scholarpedia, 2(10):2014.
Recommended Reading Featherstone, R. (1987). Robot Dynamics Algorithms. Boston: Kluwer Academic Publishers. Featherstone, R. (2007). Rigid Body Dynamics Algorithms. Boston: Springer. Siciliano, B., and Khatib, O. (eds.) (2008). Springer Handbook of Robotics. Berlin: Springer.