**Int. J. Robotics Research, vol. 16, no. 2, pp. 168–170, 1997**

© 1997 Massachusetts Institute of Technology

In an earlier paper on inertial properties in robotic manipulation, Khatib introduced the dynamically-consistent generalized inverse. This inverse, which is identical to the inertia-weighted generalized inverse of the Jacobian of a redundant manipulator, is shown here to be independent of load and end-effector inertias. The consequences of this property are: simplified calculation of the generalized inverse, load-independent behavior of control systems and redundancy-resolution schemes using this matrix, and simplification of the equations of motion of multi-arm systems handling a common load.

DOI: 10.1177/027836499701600203

**Experimental Robotics V, A. Casals & A. T. de Almeida (Eds.),
pp. 128–139, Springer, Berlin, 1998**

© 1998 Springer-Verlag

This paper presents a general first-order kinematic model of frictionless rigid-body contact for use in hybrid force/motion control. It is formulated in an invariant manner by treating motion and force vectors as members of two separate but dual vector spaces. The more general kinematics allows us to model tasks that cannot be described using the Raibert-Craig model; a single Cartesian frame in which directions are either force- or motion-controlled is not sufficient. The model can be integrated with the object and manipulator dynamics in order to model both the kinematics and dynamics of contact. These equations of motion can be used to design force and motion controllers in the appropriate subspaces. To guarantee decoupling between the controllers, it is possible to apply projection matrices to the controller outputs that depend solely on the kinematic model of contact, not a dynamic one. Experimental results show a manipulation that involves controlling the force in two separate face-vertex contacts while performing motion. These multi-contact compliant motions often occur as part of an assembly and cannot be described using the Raibert-Craig model.

**Int. J. Robotics Research, vol. 18, no. 9, pp. 867–875, 1999**

© 1999 Sage Publications, Inc.

This paper presents a recursive, divide-and-conquer algorithm for
calculating the forward dynamics of a robot mechanism, or general rigid-body
system, on a parallel computer. It features *O*(log(*n*)) time
complexity on *O*(*n*) processors, and is the fastest available
algorithm for a computer with a large number of processors and low
communications costs. It is an exact, non-iterative algorithm, and is
applicable to mechanisms with any joint type and any topology, including
branches and kinematic loops.

The algorithm works by recursive application of a formula that constructs the articulated-body equations of motion of an assembly from those of its constituent parts. The inputs to this formula are the equations of motion of two independent sub-assemblies, plus a description of how they are to be connected; and the output is the equation of motion of the assembly. Starting with a collection of unconnected rigid bodies, the equations of motion of any rigid-body system can be constructed by repeated application of this formula.

This paper, being the first in a two-part series, presents an overview of the new algorithm and a detailed description of the simplest case: unbranched kinematic chains. Details of the general case are presented in Part 2.

DOI: 10.1177/02783649922066619

**Int. J. Robotics Research, vol. 18, no. 9, pp. 876–892, 1999**

© 1999 Sage Publications, Inc.

This paper is the second in a two-part series describing a recursive,
divide-and-conquer algorithm for calculating the forward dynamics of a
robot mechanism, or a general rigid-body system, on a parallel computer.
This paper presents the general version of the algorithm. The derivation
begins with an algorithm for kinematic trees, which is then extended to
closed-loop systems. The general algorithm achieves
*O*(log(*n*))
time complexity on *O*(*n*) processors for all kinematic trees
and a large subset of closed-loop systems.

This paper also presents a more accurate version of the algorithm, and the results of some numerical accuracy tests that compare both versions with the standard articulated-body algorithm. The tests use rigid-body systems containing up to 1024 bodies; and they show that the divide-and-conquer algorithm is substantially less accurate than the best serial algorithm, but still accurate enough to be useful.

DOI: 10.1177/02783649922066628

**IEEE Trans. Robotics & Automation, vol. 15, no. 6,
pp. 1140–1144, 1999**

© 1999 IEEE

The Constraint Force Algorithm, as originally described by Fijany et
al., calculates the forward dynamics of a system comprising *N* rigid
bodies connected together in an unbranched chain with joints from a restricted
class of joint types. It was designed for parallel calculation of
the dynamics, and achieves *O*(log *N*) time complexity on
*O*(*N*)
processors. This paper presents a new formulation of the Constraint
Force Algorithm that corrects a major limitation in the original, and sheds
new light on the relationship between it and other dynamics algorithms.
The new version is applicable to systems with any type of joint, floating
bases, and short branches off the main chain. It is obtained using
a new technique for analysing constrained rigid-body systems by means of
a change of basis in a dual system of vector spaces. This new technique
is also described.

DOI: 10.1109/70.817679

**IEEE Int. Conf. Robotics & Automation, San Francisco, April
24–28, pp. 826–834, 2000**

© 2000 IEEE

This paper reviews some of the accomplishments in the field of robot dynamics research, from the development of the recursive Newton-Euler algorithm to the present day. Equations and algorithms are given for the most important dynamics computations, expressed in a common notation to facilitate their presentation and comparison.

DOI:
10.1109/ROBOT.2000.844153

Full Text.

**Ball 2000, Cambridge, UK, July 9–12, 2000**

This paper examines a property of twists and wrenches that leads to
a restriction in the choice of basis vectors in a twist/wrench representation
of motion and force vectors. Given any non-zero twist **t** (or
wrench **w**), it is possible to identify wrenches **w** (or twists
**t**)
having the same screw axis as **t** (or **w**). This kind of
relationship is inherent in the definition of twists and wrenches, and
should therefore be regarded as an invariant property; but it is not invariant
with respect to a general change of basis, so it becomes necessary to restrict
the choice of bases to a set that does preserve the invariance of this
property. A similar problem arises with motors.

This paper goes on to argue that the restricted choice of bases is a practical disadvantage on the grounds that it hinders the analysis of freedoms and constraints, and reduces the number of analytical techniques that can be used.

(The ** Full Text** is available via the
Online Conference Proceedings.)

**Int. J. Robotics Research, vol. 20, no. 11, pp. 841–846, 2001**

© 2001 Sage Publications, Inc.

This paper explains the relationship between two existing representations of rigid-body acceleration in a 6-D vector: conventional acceleration, which is the concatenation of two 3-D acceleration vectors, and spatial acceleration, which is the time derivative of a 6-D velocity vector. The two are materially different and obey different composition rules. In particular, spatial accelerations behave like true vectors, and conventional accelerations do not. This paper shows that the conventional acceleration of a rigid body is its apparent spatial acceleration in a moving coordinate system. This implies that both vectors describe the same physical phenomenon, but in different coordinate systems. It also implies that rigid-body acceleration really is a vector. The paper concludes with some examples showing how 6-D accelerations are used.

DOI: 10.1177/02783640122068137

**Robotics Research: The Tenth International Symposium, R. A. Jarvis &
A. Zelinsky (Eds.), pp. 433–446, Springer, Berlin, 2003**

© 2003 Springer-Verlag

This paper presents an analysis of frictionless contact between a rigid body belonging to a robot mechanism and one belonging to its environment. According to this analysis, it is possible to design a hybrid motion/force controller such that the motion and force subsystems are instantaneously independent of each other, and both are instantaneously independent of the environmental dynamics. Such a control system should be able to operate in an environment with unknown dynamics.

Full Text of preprint version, originally published in: ISRR 2001: 10th Int. Symp. Robotics Research, Lorne, Victoria, Australia, Nov. 9–12, pp. 341–348, 2001.

**IEEE Trans. Robotics & Automation, vol. 20, no. 1, pp. 82–92,
2004**

© 2004 IEEE

This paper examines the phenomenon of frictionless contact between rigid bodies that are already subject to kinematic constraints from some other source. Such contacts occur frequently when robots interact with their environments, in which case, the additional constraints come from the robot mechanisms. A proper analysis of these contacts must consider both sets of constraints. This paper presents a general model of constrained-body contact, expressed in invariant terms; a method of resolving equations of motion into decoupled subsystems with respect to the contact's motion and force freedoms; an equation of motion for possibly redundant robots experiencing constrained-body contact, which employs a novel decomposition of the robot's joint space into dynamically-decoupled subspaces; and a dynamically-decoupled hybrid motion/force control system based on the same decomposition. It is shown that disturbances from an unknown dynamic environment are automatically confined to the force-control subsystem, and that a modification to the control law can factor these disturbances out of the controlled response.

**Int. J. Robotics Research, vol. 23, no. 9, pp. 859–871, 2004**

© 2004 Sage Publications, Ltd.

The joint-space inertia matrix of a robot mechanism can be highly
ill-conditioned. This phenomenon is not merely a numerical artifact: it
is symptomatic of an underlying property of the mechanism itself that can make
it more difficult to simulate or control. This paper investigates the
problem by means of an empirical study of the eigenvalues, eigenvectors and
condition number of the joint-space inertia matrix. It is shown that the
condition number is typically large, and that it grows anywhere from
*O*(*N*) to *O*(*N*^{4}) with the number of bodies
in the system. Several graphs are presented showing how the condition
number varies with configuration, the number of links, variations in link
sizes, variations in connectivity, and fixed or floating bases.
Explanations are offered for some of the observed effects.

DOI:
10.1177/0278364904044869

Full Text.

**Int. J. Robotics Research, vol. 24, no. 6, pp. 487–500, 2005**

© 2005 Sage Publications, Ltd.

This paper describes new factorization algorithms that exploit
branch-induced sparsity in the joint-space inertia matrix (JSIM) of a
kinematic tree. It also presents new formulae that show how the cost of
calculating and factorizing the JSIM vary with the topology of the tree.
These formulae show that the cost of calculating forward dynamics for a
branched tree can be considerably less than the cost for an unbranched tree of
the same size. Branches can also reduce complexity; and some examples
are presented of kinematic trees for which the complexity of calculating and
factorizing the JSIM are less than *O*(*n*^{2}) and
*O*(*n*^{3}), respectively. Finally, a cost comparison
is made between an *O*(*n*) algorithm and an
*O*(*n*^{3}) algorithm, the latter incorporating one of the
new factorization algorithms. It is shown that the
*O*(*n*^{3}) algorithm is only 15% slower than the
*O*(*n*) algorithm when applied to a 30-DoF humanoid, but is 2.6
times slower when applied to an equivalent unbranched chain. This is due
mainly to the *O*(*n*^{3}) algorithm running about 2.2 times
faster on the humanoid than on the chain.

DOI:
10.1177/0278364905054928

Full Text.

**IEEE Int. Conf. Robotics & Automation, Orlando, Florida, May
15–19, pp. 1892–1897, 2006**

© 2006 IEEE

6-D vectors are routinely expressed in Plücker coordinates; yet there is almost no mention in the literature of the basis vectors that give rise to these coordinates. This paper identifies the Plücker basis vectors, and uses them to explain the following: the relationship between a 6-D vector and its Plücker coordinates, the relationship between a 6-D vector and the pair of 3-D vectors used to define it, and the correct way to differentiate a 6-D vector in a moving coordinate system.

DOI:
10.1109/ROBOT.2006.1641982

Full Text.
Conference Slides.

**Springer Handbook of Robotics, B. Siciliano & O. Khatib (editors),
Springer, Berlin, chapter 2, pp. 35–65, 2008**

© 2008 Springer

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 tensors.

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 access.

DOI: 10.1007/978-3-540-30301-5 (book) 10.1007/978-3-540-30301-5_3 (chapter)

**Int. J. Robotics Research, vol. 27, no. 5, pp. 595–611, 2008**

© 2008 Sage Publications, Ltd.

This paper presents a new control architecture for fast, accurate force
control of antagonistic pairs of shape memory alloy wires. The main
components are: a differential-mode controller, which controls the output
force, an anti-slack mechanism, a rapid-heating mechanism and an anti-overload
mechanism. The closed-loop response is fast and accurate, even in the
presence of large external motion disturbances. There is no sign of
limit cycles; and the performance is unaffected by large load inertias.
This paper also presents an architecture for position control, in which a
position feedback loop is added to the force control architecture.
Experimental results show force control accuracies as high as 1mN in a
+/−3N range, force output rates as high as 50Ns^{−1}, and
highly accurate position control with steady-state errors below the resolution
of the position encoder.

DOI:
10.1177/0278364908090951

Full Text of final manuscript.

**Int. J. Robotics Research, vol. 29, no. 10, pp. 1353–1368,
Sept. 2010**

© 2010 Roy Featherstone

This paper presents a new method for calculating operational-space inertia matrices, and other related quantities, for branched kinematic trees. It is based on the exploitation of branch-induced sparsity in the joint-space inertia matrix and the task Jacobian. Detailed cost figures are given for the new method, and its efficacy is demonstrated by means of a realistic example based on the ASIMO Next-Generation humanoid robot. In this example, the new method is shown to be 6.7 times faster than the basic matrix method, and 1.6 times faster than the efficient low-order algorithm of Rodriguez et al. Furthermore, cost savings of more than 50,000 arithmetic operations are obtained in the calculation of the inertia-weighted pseudoinverse of the task Jacobian and its null-space projection matrix. Additional examples are considered briefly, in order to further compare the new method with the algorithm of Rodriguez et al.

DOI:
10.1177/0278364909357644

Full text
of final submitted version.

**IEEE Robotics & Automation Magazine,
vol. 17, no. 3, pp. 83–94, 2010**

© 2010 IEEE

The purpose of this tutorial is to present a beginner's guide to 6-D vectors in sufficient detail that a reader can begin to use them as a practical problem-solving tool right away. This tutorial covers the basics, and Part 2 will cover the application of 6-D vectors to a variety of robot kinematics and dynamics calculations. The rest of the tutorial is chiefly concerned with explaining what spatial vectors are and how to use them. It highlights the differences between solving a rigid-body problem using 3-D vectors and solving the same problem using spatial vectors, so that the reader can get an idea of what it means to think in 6-D.

**IEEE Robotics & Automation Magazine,
vol. 17, no. 4, pp. 88–99, 2010**

© 2010 IEEE

In this tutorial, we shall examine the application of spatial vectors to various problems in robot kinematics and dynamics. To demonstrate that spatial vectors are both a tool for analysis and a tool for computation, we shall consider both the mathematical solution of a problem and the computer code to calculate the answer.

**IEEE Int. Conf. Robotics & Automation, St. Paul, Minnesota, May
14–18, pp. 4911–4917, 2012**

© 2012 IEEE

This paper provides a reduced-order algorithm, the Extended-Force-Propagator
Algorithm (EFPA), for the computation of operational-space inertia matrices in
branched kinematic trees. The algorithm accommodates an operational
space of multiple end-effectors, and is the lowest-order algorithm published
to date for this computation. The key feature of this algorithm is the
explicit calculation and use of matrices that propagate a force across a span
of several links in a single operation. This approach allows the
algorithm to achieve a computational complexity
of *O*(*N*+*md*+*m*^{2}) where *N* is the
number of bodies, *m* is the number of end-effectors, and *d* is the
depth of the system's connectivity tree. A detailed cost comparison is
provided to the propagation algorithms of Rodriguez et
al. (complexity *O*(*N*+*dm*^{2})) and to the sparse
factorization methods of Featherstone
(complexity *O*(*nd*^{2}+*md*^{2}+*m*^{2}*d*)).
For the majority of examples considered, our algorithm outperforms the
previous best recursive algorithm, and demonstrates efficiency gains over
sparse methods for some topologies.

DOI: 10.1109/ICRA.2012.6224600

**Multibody System Dynamics,
vol. 29, no. 2, pp. 169–187, 2013**

© 2013 Springer Science+Business Media B.V.

This paper describes a new factorization of the inverse of the joint-space
inertia matrix ** M**. In this
factorization,

DOI: 10.1007/s11044-012-9313-z

**IEEE Int. Conf. Robotics & Automation, Karlsruhe, Germany, May
6–10, pp. 2027–2032, 2013**

© 2013 IEEE

In this paper, a new control algorithm is presented for implementing hopping and balancing motions on a planar hopping machine with a single actuated revolute joint. Starting with a simple control algorithm for balancing, it is extended to perform trajectory-tracking maneuvers, which enables it to perform the crouching, lift-off and flight phases of a single hop, as well as re-balancing after landing. Simulation results are presented showing that the control system works well, and that it is not significantly affected by small amounts of slipping between the foot and the ground.

DOI: 10.1109/ICRA.2013.6630848

**J. Computational & Nonlinear Dynamics, vol. 9, no. 2, paper
no. 021012, 2014**

This paper presents a new parallel algorithm for the operational space
dynamics of unconstrained serial manipulators, which outperforms contemporary
sequential and parallel algorithms in the presence of two or more
processors. The method employs a hybrid divide and conquer algorithm
(DCA) multibody methodology which brings together the best features of the DCA
and fast sequential techniques. The method achieves a logarithmic time
complexity (*O*(log(*n*)) in the number of degrees of freedom
(*n*) for computing the operational space inertia
(* Λ_{e}*) of a serial manipulator in presence
of

DOI: 10.1115/1.4025577

**IEEE Trans. Robotics, vol. 30, no. 3, pp. 736–739, 2014**

© 2014 IEEE

This paper presents a new nonlinear model of the normal force that arises during compliant contact between two spheres, or between a sphere and a flat plate. It differs from a well-known existing model by only a single term. The advantage of the new model is that it accurately predicts the measured values of the coefficient of restitution between spheres and plates of various materials, whereas other models do not.

**IEEE/RSJ Int. Conf. Intelligent Robots & Systems, Chicago, Illinois,
Sept. 14–18, pp. 3233–3238, 2014**

This paper presents an angular momentum based controller to control the balancing motion of a spatial under-actuated robot with three degrees of under-actuation. The control algorithm is based on the idea of decoupling the robot's motion instantaneously into bending and swivelling motions. This property of the robot is obtained by using a constant-velocity joint as the 2-DoF active joint of the robot. Simulation results show the performance of the controller during some interesting motions of the robot such as straightening, crouching and reorienting motions. The last two motions, which are the results of decoupling the robot's motion, are demonstrated here for the first time.

DOI: 10.1109/IROS.2014.6943011

**Robotics: Science & Systems, Rome, Italy,
July 13–17, 2015**

This paper shows how to define quantitative measures of a robot's ability to balance itself actively on a single point of support. These measures are expressed as ratios of velocities, and are called velocity gains. This paper builds on earlier work in this area by showing how these gains can be defined and calculated for the case of a general planar robot balancing on a general rolling-contact point in the plane, and the case of a general spatial robot balancing on a general rolling-contact point in 3D space. The case of balancing on a contact area with compliance is also considered. The paper concludes with two examples showing how to use velocity gains in the design of a triple pendulum and the analysis of a hydraulic quadruped.

DOI:
10.15607/RSS.2015.XI.026

Full Text.
Slides.
Poster.

**Autonomous Robots, vol. 40, no. 1, pp. 93–107, 2016**

In this paper, a new control algorithm based on angular momentum is presented for balancing an underactuated planar robot. The controller is able to stabilize the robot in any unstable balanced configuration in which the robot is controllable, and also it is able to follow a class of arbitrary trajectories without losing balance. Simulation results show the good performance of the controller in balancing and trajectory tracking motions of the robot. The simulations also show that the proposed controller is robust to significant imperfections in the system, such as errors in the controller's dynamic model of the robot and imperfections in the sensors and actuators. The new controller is compared with three existing balance controllers and is shown to equal or outperform them.

DOI: 10.1007/s10514-015-9446-z

**Int. Symp. Robotics Research, Sestri Levante, Italy,
Sept. 12–15, 2015**

This paper presents a new model of the dynamics of balancing in the plane, in which the essential parameters of the robot's balancing behaviour are reduced to just two numbers, both of which are simple functions of basic physical properties of the robot mechanism. A third number describes the effect of other movements on the robot's balance. Given this model, a high-performance balance controller can be constructed as a simple four-term control law with gains that are trivial functions of the two model parameters and a single value chosen by the user that determines the overall speed of balancing. The model is first developed for a double pendulum, and then extended to a general planar mechanism. Simulation results are presented showing the controller's performance at following commanded motion trajectories while simultaneously maintaining the robot's balance.

**Springer Handbook of Robotics, 2nd Ed., B. Siciliano & O. Khatib
(editors),
Springer, Berlin, chapter 3, pp. 37–66, 2016**

© 2016 Springer

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 tensors.

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 access.

DOI: 10.1007/978-3-319-32552-1 (book) 10.1007/978-3-319-32552-1_3 (chapter)

**Int. J. Robotics Research, vol. 35, no. 14, pp. 1681–1696, 2016**

This paper presents quantitative measures of a robot's physical ability to
balance itself actively on a single point, line or area of support.
These measures express the ratio of a change in the state of motion of the
robot's centre of mass to the amount of action required at the actuated joints
in order to produce that change. They therefore represent measures of
the gain of the robot mechanism as seen from the point of view of the balance
control system. This paper is concerned mainly with ratios of
velocities, called *velocity gains*, and it builds on earlier work by
showing how these ratios can be defined and calculated for the case of a
general planar or spatial robot balancing on a point, line or general rolling
contact, or an area contact with a compliant surface. The paper
concludes with three examples of use—design of a triple pendulum,
analysis of a hydraulic quadruped, and expressing the physics of planar
balancing—followed by a short discussion of gyroscopic balancing.

DOI:
10.1177/0278364916669599

Full Text.

**Int. J. Robotics Research, vol. 36, no. 13–14,
pp. 1489–1507, 2017**

This paper presents a new model of the dynamics of a general planar robot balancing on a point in the plane, in which the essential parameters of the robot's balancing behaviour are reduced to just two numbers, both of which are simple functions of basic physical properties of the robot mechanism. A third number describes the effect of other movements on the robot's balance. This model gives rise to a simple preview balance controller consisting of a four-term control law with easily calculated gains and a reverse-time low-pass filter acting on a preview of the command signal. The filter makes the robot lean in anticipation of future movements. Simulation results are presented showing the balance controller achieving excellent tracking of large fast motion commands while simultaneously maintaining the robot's balance and accurately rejecting disturbances caused by other motions being performed by the robot. The controller is also robust to effects such as actuator saturation and sensor noise.