Robot dynamics
From Scholarpedia
| Roy Featherstone (2007), Scholarpedia, 2(10):3829. | revision #37266 [link to/cite this article] | |||||||||||||||||||
Contents |
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
The equation of motion for a robot mechanism can be written
- (1)
In this equation,
,
,
and
are vectors of joint position, velocity,
acceleration and force variables, respectively, and they are called the
joint-space position, velocity, acceleration and force vectors. Each is an
-dimensional coordinate vector, where
is the
number of (independent) joint variables in the mechanism. The force variables
are defined such that
is the power
delivered by
to the system. Thus,
and
qualify
as a set of generalized velocity and force variables for the system.
denotes an external force acting on the
robot, due to contact with the environment (so the robot is exerting a force
of
on the environment). Typically,
is a
spatial (6D) vector
describing the
contact force acting on the robot's end effector. This is appropriate if the
robot makes contact with its environment only through its end effector. If
the robot makes multiple contacts, then it can be regarded as having multiple
end effectors (e.g. the hands and feet of a humanoid robot); and
is then the concatenation of the
individual contact force vectors. If there are
end
effectors, then
is a
-dimensional vector.
is called the joint-space inertia matrix,
and it is an
symmetric, positive-definite matrix.
is called the joint-space bias force, which
is the value of the joint-space force that must be applied to the system in
order to produce zero acceleration. (The choice of symbols varies from one
author to the next.) The expressions
and
indicate that
is a function of
, but
is a function of
,
and
. Once these dependencies are understood,
they are usually omitted. Together,
and
are the coefficients of the equation of motion.
The kinetic energy of the robot mechanism is
Although
is never singular, it can be highly
ill-conditioned.
Equation (1) is the most useful for calculation purposes. However, there are two other ways to write the equation of motion that are useful for robot control systems. The first is
- (2)
in which the bias force has been broken into its component parts. The term
includes the Coriolis and
centrifugal forces, and it is the product of a square matrix
with the vector
.
Gravity
terms are included in the vector
; and the
effect of the external force is given by
. The matrix
is the Jacobian of the end effector (or set of end
effectors). It satisfies the equation
where
is the spatial (6D) velocity of the end
effector, or the concatenation of the spatial velocities of the end effectors,
if the robot has more than one. Thus,
is a
matrix.
The second alternative form for the equation of motion is called the operational-space formulation. It expresses the dynamics in the robot's task space, which is the space in which the robot is commanded to operate. Typically, the task space is the space of positions and orientations of the end effector. The operational-space formulation is written
where
is a vector of position coordinates,
is a spatial vector giving the end-effector's
velocity,
is the spatial force acting on the end
effector, and
,
and
are the coefficients of the equation of
motion.
is called the operational-space
inertia matrix;
containts Coriolis and
centrifugal force terms; and
contains gravity
terms.
is the sum of an external force acting on
the end effector and the projection onto the end effector of the actuator
forces acting at the joints.
Dynamic Models
Strictly speaking, the coefficients of Eq. (1) do not
depend only on
,
and
, 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
. It can also be used to calculate
in Eq. (1); and it can be modified so as to calculate the terms
and
in Eq. (2).
- The articulated-body algorithm (ABA). This algorithm solves the forward dynamics problem, and has a computational complexity of
.
- The composite-rigid-body algorithm (CRBA). This algorithm calculates the joint-space inertia matrix,
, and has a computational complexity of
. When combined with the RNEA, to calculate
, and a linear equation solver, to solve
for
, the result is an algorithm to solve the forward dynamics problem having a computational complexity of
. Although this algorithm will inevitably be slower than the ABA for sufficiently large values of
, the two algorithms have approximately the same efficiency at small values of
, such as
.
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
to
calculate an
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.
See Also
(links to be added later)
| Roy Featherstone (2007) Robot dynamics. Scholarpedia, 2(10):3829, (go to the first approved version) Created: 14 May 2007, reviewed: 9 October 2007, accepted: 9 October 2007 |




