Você está na página 1de 37

∗†

Dynamics of robots
Herman Bruyninckx
22 August, 2005

Contents
1 Introduction 2

2 Forward and Inverse Dynamics 5

3 Local and global dynamics 6

4 Tree-structure and DAG topologies 7

5 Frames—Coordinates—Transformations 7
5.1 Frames . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.2 Force/torque transformation . . . . . . . . . . . . . . . . . . . . . 9
5.3 Momentum transformation . . . . . . . . . . . . . . . . . . . . . 12
5.4 Velocity/acceleration transformation . . . . . . . . . . . . . . . . 12
5.5 Parametric uncertainty . . . . . . . . . . . . . . . . . . . . . . . . 13

6 Dynamics of a single rigid body 13

7 Mass, acceleration, and force projections 15


7.1 Inward mass matrix projection . . . . . . . . . . . . . . . . . . . 15
7.1.1 Multi degrees-of-freedom joints . . . . . . . . . . . . . . . 18
7.1.2 Joints with shaft inertia . . . . . . . . . . . . . . . . . . . 18
7.2 Outward acceleration projection . . . . . . . . . . . . . . . . . . 19
7.3 Inward force projection . . . . . . . . . . . . . . . . . . . . . . . 19

8 Link-to-link coordinate recursions 20


8.1 Outward position recursion . . . . . . . . . . . . . . . . . . . . . 21
8.2 Outward velocity recursion . . . . . . . . . . . . . . . . . . . . . 21
8.3 Outward acceleration recursion . . . . . . . . . . . . . . . . . . . 22
∗ This Chapter uses material from the Chapter on Geometry and Serial Robots.
† This text is part of The Robotics WEBook , http://www.roble.info. Copyright is held
by the authors, who release the text and the figures under the open content WEBook license.
You are invited to improve and extend this text.

1
8.4 Inward articulated mass recursion . . . . . . . . . . . . . . . . . . 22
8.5 Inward force recursion . . . . . . . . . . . . . . . . . . . . . . . . 23

9 Dynamic algorithms 24
9.1 Inverse dynamics (ID) . . . . . . . . . . . . . . . . . . . . . . . . 24
9.2 Forward dynamics (FD) . . . . . . . . . . . . . . . . . . . . . . . 25

10 Constrained systems 25

11 Over- or under-constrained robots 26


11.1 Under-constrained robot . . . . . . . . . . . . . . . . . . . . . . 26
11.2 Free-floating base . . . . . . . . . . . . . . . . . . . . . . . . . . 27
11.3 General base constraints . . . . . . . . . . . . . . . . . . . . . . 28

12 Inverse Dynamics with specified link accelerations 28

13 Pseudo-inverse based dynamics control 28

14 Analytical form of tree structure dynamics 29


14.1 Composite inertia method . . . . . . . . . . . . . . . . . . . . . 30

15 Euler-Lagrange approach 30
15.1 Euler-Lagrange equations . . . . . . . . . . . . . . . . . . . . . . 32

16 Newton-Euler vs. Euler-Lagrange 33


16.1 Impedance transformation . . . . . . . . . . . . . . . . . . . . . . 34

17 Differential geometry of robot dynamics 35

1 Introduction
In the context of (bio)mechanical systems, dynamics is the study of how the
forces acting on bodies make these bodies move. This text describes how to
model the dynamic properties of chains of interconnected rigid bodies that form
a robot, and how to calculate the chains’ time evolution under a given set of
internal and external forces and/or desired motion specifications.
The theoretical principle behind rigid body dynamics is rather straightfor-
ward: one extends Newton’s laws for the dynamics of a point mass to rigid
bodies, which are indeed nothing else but conglomerations of point masses that
keep constant distances with respect to each other. However, the interconnec-
tion of rigid bodies by means of (prismatic, revolute, . . . ) joints gives rise to new
physical properties that do not exist for one single point mass or one single rigid
body. More in particular, the topology of the kinematic chain (serial, fully par-
allel, tree-structured, . . . ) determines to a large extent the minimal complexity
of the computational algorithms that implement these physical properties.

2
Most of the introductory material can be found in textbooks on classical
physics and mechanics, e.g., [1, 5, 12, 14, 31, 39]. Research on the dynamics
of multiple interconnected rigid bodies has not exclusively been performed with
only robotics in mind, but has progressed more or less independently in different
research communities, each with its own emphasis:

1. Serial robot arms, [24, 34]. The emphasis here is on efficient, realtime algo-
rithms, that can be used in the controllers of commercial industrial robot
arms to make them move faster and more accurately. “Realtime” means
that the robot control computer must be able to perform the algorithms
about 1000 times per second.

2. Parallel manipulators, also called Parallel Kinematics Machines (PKMs).


These structures typically have light-weight moving parts, because the
motors can all be attached to the fixed base of the robot. Hence, PKMs are
in principle capable of faster motions, with a higher payload/arm weight
ratio, such that the importance of on-line dynamics algorithms increases
with respect to serial robot arms. However, also the complexity of the
dynamics algorithms is increased, because PKMs have several kinematic
loops.
3. Spacecraft control, [19, 20]. This domain mainly investigates the effects
of a free-floating basis, the structural flexibilities in light-weight moving
parts such as long-reach arms and solar panels, and the generation of
spatial re-orientation maneuvers in space.
4. Simulation of multibody systems: cars, trucks, trains, . . . . The major
emphases in this domain are on: the complexity generated by the huge
amount of interconnected bodies and motion constraints, on the non-
linearities in many of these elements (such as springs, dampers, and fric-
tion), and on the development of symbolic preprocessing and numerical
integration schemes to cope with the system’s large dimensions and mul-
tiple constraints.
5. Humanoid and walking robots. A humanoid or a walking robot consists
of a number of serial subchains: legs, arms, and head, all connected to
the same trunk, which in itself consists of several bodies (“vertebrae”)
connected in series. The resulting topology is a tree: there is only one
way to go from one link of the robot to another one.
Humanoid and walking robots typically have some constraints imposed
by their interaction with the environment: the feet of the robot are in
contact with the ground; the arms can grasp objects that are fixed in
the environment; the limbs of the robot must move around obstacles; the
trunk of the robot must remain as vertical as possible; etc. Some of these
interactions with the environment result in closed kinematic loops, others
result in constraints on the joint accelerations. In addition, the robot pro-
grammer wants some parts of the robot to follow specific trajectories that

3
are virtual constraints, and not physical constraints as in the examples be-
fore. Both physical and virtual constraints make the dynamics algorithms
a bit more complex, similarly to the multibody dynamics case mentioned
above. However, the number and nature of the constraints that act on
a humanoid robot typically remain much lower and much simpler than
those in multibody dynamics, hence allowing realtime solutions.
When running, both feet of the humanoid or walking robot are in the air,
and there is no fixed support point. This free-floating base situation is
equivalent to the satellite dynamics mentioned above.
Humanoid and walking robots have a lot of redundancy, in the sense that
the same task can be executed in infinitely many ways. This allows for
optimization of the task, as well as for performing lower-priority subtasks
together with the main task. For example: avoidance of an obstacle or
of a singular configuration by the legs, trunk and arms, while the hands
transport the load along the desired trajectory.
6. Computer graphics and animation. Here, the emphasis is on realistically
looking interactions between different (rigid and soft) bodies, but much
less on absolute physical realism. Most often, bodies are not actuated by
motors, but are falling onto each other, hit by projectiles, or they are
racing cars that have only one motorized degree of freedom. Computer
graphics is growing closer and closer to robotics, beginning to pay more
attention to the physically realistic simulation of human and other figures.
7. Biomechanics and gait analysis. In these domains, the real human is the
subject of study, so the “robotic” models of the above-mentioned domains
are not sufficient. The most distinctive particularity is the inclusion of
(more or less) realistic models of the human muscle system, including
the very non-linear and still incompletely understood muscle activation
functions.
It turns out that the tree-structured kinematics chains of humanoid robots are
the most complex ones for which the dynamics can be solved in realtime. So,
this text will discuss the dynamics of serial robots and humanoid/walking robots
at the same time, because the latter is an only rather simple extension of the
former.
Another focus of this text are the algorithms that allow realtime execution
in a robot controller, i.e., the calculations require less time than the real-world
physics. In practice, this means that only ideal kinematic chains are considered:
rigid bodies interconnected via ideal joints. Introducing flexible joints and joint
friction increases the computational costs, although realtime execution remains
possible. Introducing flexible links, however, leads to computations that can-
not be done in realtime, because these systems cannot be modelled anymore as
finite-dimensional lumped-parameter systems. Indeed, infinite-dimensional de-
scriptions are required, involving partial differential equations (PDEs), instead
of the ordinary differential equations (ODEs) that show up in finite-dimensional
systems; and PDEs are much more difficult to solve than ODEs.

4
All dynamics algorithms discussed in this text assume that the physical
parameters of the robot are known: dimensions of links, relative positions and
orientations of connected parts, mass distributions of links, joints and motors. In
practice, it’s not straightforward to find realistic values for all these parameters
in a given robot. In addition, the text assumes ideal systems, i.e., perfectly
rigid bodies, joints without backlash and with perfectly modelled flexibilities
and friction.
The computational complexity of an algorithm is most often expressed as
O(N k ) (“order N to the kth power”). In the case of robot dynamics, N is the
number of rigid bodies in the robot. O(N k ) means that the time to compute
the dynamics increases proportionally to the kth power of the number of bodies
in the system. This text deals mostly with the most computationally efficient
case, where k = 1, i.e., so-called linear-time algorithms.
Serial robot, and also humanoid robot, dynamics is well within the power of
modern computer hardware and software, because its linear time complexity is
due to the absence of loops in its kinematic chain structure, and the fact that all
links can be considered to be ideal rigid bodies. The simulation of real human
structures is more complex: the skeleton has a number of kinematic loops;
the joints are not ideal revolute, gimbal or spherical joints; and the muscles
and tendons add “parallel actuator loops” around the kinematic structure. In
addition, the dynamics of the human muscle activation is much more non-linear
than the dynamics of typical electric motors.
Finding algorithms to calculate the dynamics is much more important for
serial and humanoid robots than for parallel or mobile robots: the dynamics
of parallel and mobile robots are reasonably approximated by the dynamics of
one single rigid body. Moreover, mobile robots move so slowly (in order to
avoid slippage) and their inertia changes so little that dynamic effects are small.
Parallel robots, on the other hand, have light links, and all motors are in, or close
to, the base, such that the contributions of the manipulator inertias themselves
are limited. The reader interested in parallel and mobile robot dynamics is
referred to the literature, e.g., [3, 4, 21, 27, 29, 30, 38].
This text takes into account the inertia of the robot links as well as that
of the motors. This motor inertia can be significant, especially for the high
gear ratios between motor shaft and robot link shaft as used in most industrial
robots.

2 Forward and Inverse Dynamics


The core of this text is formed by the following two algorithms: forward dynam-
ics, and inverse dynamics. They are described towards the end of the text only,
and the intermediate sections each introduce one small aspect of the complete
algorithms.
The Forward Dynamics (FD) algorithm solves the following problem: “Given
the vectors of joint positions q, joint velocities q̇, and joint forces τ , as well as
the mass distribution of each link, find the resulting end-effector acceleration

5
Ẍ.”
In the case of a humanoid robot, the user is typically interested in more than
one “end-effector”: the two hands, two feet, the head, etc.
The notation “Ẍ” for the six-dimensional coordinate vector of a rigid body
acceleration, is, strictly speaking, a bit misleading: it is not the second-order
time derivative of any six-dimensional representation of position and orientation.
Also the velocity Ẋ is not such a time derivative. However, none of the dynamics
algorithms requires explicit time derivatives, and hence the literature often uses
this notation for convenience.
The FD is used for simulation, and as feedforward in the robot’s motion con-
troller, i.e., the FD calculates what the robot does when specific joint torques are
applied, and under the assumption that all physical parameters in the dynamics
model are accurate.
The Inverse Dynamics (ID) algorithm solves the following problem: “Given
the vectors of joint positions q, joint velocities q̇, and desired joint accelerations
q̈, (or end-effector acceleration Ẍ) as well as the mass distribution of each link,
find the vector of joint forces τ required to generate the desired acceleration.”
The ID is needed for:
1. Control : if one wants the robot to follow a specified trajectory, one has
to convert the desired motion along that trajectory into joint forces that
will generate this motion.
2. Motion planning and optimization: when generating a desired motion for
the robot end-effector, one can use the ID of the robot to check whether
the robot’s actuators will be able to generate the joint forces needed to
execute the trajectory, and with what maximum speed the trajectory could
be executed.
3. Motion analysis: the ID is able to give estimates of the forces acting in the
human muscles, when the motion and ground reaction force are captured
during, for example, a gait analysis measurement session.

3 Local and global dynamics


The forward and inverse dynamics algorithms are both local : they take the
instantaneous motion and forces into account, and generate only instantaneous
outputs. This local approach of dynamics cannot solve all relevant problems; for
example, it doesn’t provide an answer to the questions of which gait (walking,
running, jumping, etc.) to use in a particular motion task for a humanoid or
walking robot, or how to re-orient a free-floating robot. These problems are
called global dynamics because their solution must look at the evolution of the
system over much more than just the following time instant. Typical solutions of
the global dynamics are cyclic gaits, i.e., a particularly synchronized trajectory
of all joints, that is repeated over time. For example, running or swimming. The
concrete time function of the synchronized motion can be found from a dynamic

6
optimization, but this problem is much more complex than the instantaneous,
local dynamics. This text does not provide any details on the global dynamics.

4 Tree-structure and DAG topologies


The rest of this text develops efficient dynamics algorithm for a humanoid robot
structure, i.e., one with a tree as joint interconnection graph, (Fig. 1). Tree
structures are interesting, both because their dynamics algorithms are straight-
forward extensions of those for serial structures, and because the “bookkeeping”
of recursive traversal of the structure is relatively simple. Such recursions (“in-
ward or outward sweeps”) will show up many times in the algorithms that are
developed in later sections.
For the case of simplicity, this text assumes that all joints in the humanoid
robot are revolute, that all links are perfect rigid bodies, with known mass
properties (total mass, center of mass, rotational inertia), that each joint carries
a motor, and there are no closed kinematic loops (i.e., there is only one way
to go from any link of the robot to any other link). Some of these simplifying
assumptions will be relaxed in later sections.
In the humanoid robot tree, one of the rigid bodies in the trunk is chosen
as the root, and the head, the hands and the feet are the leafs. However, any
node in a tree structure can be chosen as root: only the “bookkeeping” of node
numbers changes when the root changes, in that the recursive algorithms of the
next Sections will traverse the robot structure differently, but the results will
be the same.
It is well known that all nodes in a tree can be numbered in such a way that
the root gets the lowest number, and the route from the root to any node n
passes only through nodes with lower numbers k < n (Fig. 1). When two nodes
are considered on the same (unique!) path from the root to a leaf, then the
node with the lowest number is called the proximal node, and the other is the
distal joint.
TODO: Directed Acyclic Graph (DAG): almost the same as a tree structure,
in that branches can come together again. In other words, there is no directed
path that starts and ends at the same vertex of the graph. In still other words:
some subtrees are shared by different parts of the tree. This topology offers
almost the same computational efficiency as a pure tree structure.
TODO: discuss the dynamic programming idea (= store intermediate com-
putational results for later re-use), and the corresponding graph traversal algo-
rithms (inward and outward “sweeps”).

5 Frames—Coordinates—Transformations
Newton’s law f = ma is the foundation of general dynamics, and hence also
of robot dynamics. Newton’s law is a relationship between force and accelera-
tion vectors. In order to be able to calculate with these physical vectors, one

7
Figure 1: Tree topology of a simplified humanoid robot. The nodes are rigid
bodies, the edges are joints. This schematic picture makes no claim whatsoever
towards completeness!

8
needs their coordinates with respect to known reference frames. One also needs
to know how to transform the coordinate representations of the same physical
vectors expressed in different reference frames. The following subsections intro-
duce (i) reference frames that are adapted to the mechanics of a tree-structured
robot, (ii) six-dimensional rigid body forces and their coordinate transforma-
tions, and (iii) six-dimensional rigid body velocities and accelerations, and their
coordinate transformations.

5.1 Frames
Figure 2 shows a typical link in a humanoid robot, together with its basic
reference frames. The tree structure of the whole kinematic chain makes that
link i is connected to one single proximal link i − 1 (by a revolute joint with axis
along z pi ), and to several distal links i + 1, . . . , i + k (by joints with axes along
the vectors z di+1 , . . . , z di+k ). Without loss of generality, the joint axes are the
Z axes of orthogonal reference frames {pi } and {di+1 } . . . {di+k }. Their origins
are chosen somewhere on the joint axes. If the link is a leaf node in the robot,
the distal “joint frames” are the user-defined end-effector frames, or Tool Centre
Points (TCPs). These frames are used to specify desired motion of the robot,
or desired interactions between the robot and the environment. Typical end-
effectors are the feet, the hands, and the head (or more specifically, its ears and
eyes). However, users may want to specify a desired motion of frames that are
not connected to leaf nodes but to “internal” nodes instead, and this possibility
is integrated in the algorithms in this text.
Since the links are rigid, the position and orientation of the distal frames
{di+1 } . . . {di+k } with respect to the proximal frame {pi } are constant. The link
connected at {di+1 } has its “proximal” frame {pi+1 } coinciding with {di+1 }, up
to a rotation about z di+1 over an angle qdi+1 in case the joint is revolute, and up
to a translation along z di+1 over a distance qdi+1 in case the joint is primatic;
the angle or distance qdi+1 is typically measured. The first and second time
derivatives q̇di+1 and q̈di+1 are also assumed to be measured, either directly, or
by numerical differentiation of qdi+1 .

5.2 Force/torque transformation


A point mass can be subjected to linear forces only (represented by three-
dimensional vectors f ), while a rigid body can be subjected to both forces f and
moments m, represented by a six-dimensional coordinate vector F = (f , m)
(also called a wrench). Every set of such forces and torques is equivalent to
one single force and one single torque applied at a given (force) reference point
on the rigid body. That means, a force sensor mounted at that point would
measure the six-dimensional vector F = (f , m). If a resultant force f 2 and
torque m2 are known at a reference point “2,” it is easy to find an equivalent
set (f 1 , m1 ) at another reference point “1”:

f 1 = f 2, m1 = m2 + r 1,2 × f 2 , (1)

9
Figure 2: Reference frames and notation for links in tree-structured robot. “p”
stands for “proximal,” and “d” for distal.

10
where r 1,2 is the vector from “1” to “2.” The force component is not influenced
by the choice of reference point, but the moment component is. Equation (1)
relates physical three-dimensional vectors, independent of the reference frame
used to express the coordinates of the vectors. This text uses the same equations
to represent the relationships between the coordinates of the force/moment pairs
at both reference points, expressed with respect to the same fixed “world” frame.
Combining the three-dimensional vectors of force and moment into one six-
dimensional vector  
fi
Fi = , (2)
mi
yields the matrix expression of Eq. (1):
 
F F 1 0
F1 = T 1,2 F 2, with T 1,2 = , (3)
r
b1,2 1

with 1 and 0 the 3 × 3 unit and zero matrices, respectively, and r b the 3 × 3
matrix that represents taking the cross product with the vector r:
 
0 −rz ry
b =  rz
r 0 −rx  . (4)
−ry rx 0

TF1,2 is the 6 × 6 force transformation matrix. Because of the anti-symmetry of


b, the inverse transformation T F
r F −1
2,1 = (T 1,2 ) is simple:
   
F 1 0 1 0
T 2,1 = = , (5)
−br 1,2 1 r
b2,1 1

Many publications in robotics use a particular kind of “link” frames to express


the force and moment coordinates in: the frame {i} is attached to the ith link
of a robot, it has its origin in a point “i” on the ith joint axis, and one of its
orthogonal axes lies along the joint axis. This choice of frame has the advantage
that the coordinates of the joint axis, as well as of the joint torque, velocity and
acceleration, are quite simple: all zeros except for the single component along
the joint axis. The disadvantage of this choice is that it changes the reference
frame with respect to which the coordinates are expressed, which makes the
transformation of forces and moments between two reference points a bit more
complex. Indeed, the coordinate transformation of force and torque vectors
from a link frame {2} to the “previous” link frame {1} involves the coordinates
(r 1,2 , 12R) of frame {2} with respect to frame {1}:
 2 
1R 03×3
F1 = T F F 2 , with T F
= . (6)
1,2 1,2 b1,2 12R 12R
r

The same notation T F


1,2 as above is used to represent the 6 × 6 force coordinate
transformation matrix; the choice of reference frame with respect to which the
transformation is expressed will be clear from the context. Because of the

11
orthogonality of R, and the anti-symmetry of r b, the inverse transformation
TF2,1 = (T F −1
1,2 ) is also simple in the case of transformation between “link”
frames:  2 T 
1R 03×3
TF = . (7)
2,1 −12RT rb1,2 12RT

5.3 Momentum transformation


TODO

5.4 Velocity/acceleration transformation


A point mass can only have a translational velocity, represented by a three-
dimensional vector v, and a translational acceleration, a = v̇. The velocity of a
rigid body contains both translational and angular velocity components, v and
ω; similarly for the body’s acceleration a: it has a translational component v̇
and an angular component ω̇. Again, a correct interpretation of these vector
representations requires the knowledge of the (velocity) reference point on the
moving rigid body for which the translational velocity v or translational ac-
celeration v̇ are considered; the angular components are not influenced by the
choice of reference point. So, the transformation of velocities and accelerations
between reference points (and “link” reference frames) are similar to those of
forces. In physical vector form:

ω1 = ω2 , v 1 = v 2 + r 1,2 × ω 2 . (8)

And in matrix form:  


vi
Ẋ i = , (9)
ωi
and
Ẋ 1 = T V1,2 Ẋ 2 , (10)
with 2
b1,2 12R
  
V 1 r
b1,2 1R r
T 1,2 = or 2 , (11)
0 1 0 1R

depending on whether or not the reference frame remains the same or transforms
together with the (velocity) reference point. The 6 × 6 velocity transformation
matrix T V1,2 contains the same 3 × 3 blocks as the force transformation matrix
TF1,2 in Eq. (3). Again, the inverse transformation is simple:

 −1  2RT − 2RT r b1,2



V V 1 1
T 2,1 = T 1,2 = 2 T . (12)
03×3 1R

Note that  T  T
TF V
2,1 = T 1,2 , T V2,1 = T F
1,2 . (13)
As with forces f and moments m, the order of the linear and angular three-
dimensional vectors v and ω in Eq. (9) is arbitrary. Making the alternative

12
 
ωi
choice, Ẋ i = implies that the coordinate transformation formulae of the
vi
following paragraphs have to be changed accordingly. In fact, this alternative
choice leads to exactly the same transformation relationships as for forces.
This text, as most publications in the literature, prefers notational conven-
tion over physical exactness: Ẋ is strictly speaking not the time derivative
of any possible position/orientation coordinates X, but this notation has the
advantage of looking suggestively similar to the point mass case.
The same transformation as for velocities holds for accelerations too:
 
V v̇
Ẍ 1 = T 1,2 Ẍ 2 , with Ẍ = . (14)
ω̇

5.5 Parametric uncertainty


The above-mentioned coordinate representations and transformations make im-
plicit use of a lot of geometrical parameters of the mechanical robot structure,
i.e., the relative positions and orientations of (frames on) the robot’s joint axes.
These parameters are in general only known approximately.

6 Dynamics of a single rigid body


Newton’s law f = ma describes the dynamics of an unconstrained point mass.
Most textbooks on dynamics, e.g., [2], show how to derive the motion law for
a rigid body, i.e., a set of rigidly connected point masses. This derivation is
straightforward (albeit algebraically a bit tedious): apply Newton’s law to each
“infinitesimal volume” of mass in the rigid body, and take the integral over
the whole body. We just summarize the results here, and stress the important
property that the dynamics are linear in the external force F = (f , m), the
acceleration Ẍ = (v̇, ω̇), and the mass matrix (or, inertia) M = (m, I), but
nonlinear in the velocity Ẋ = (v, ω):

ω × (ω × mr c )
 
F = M Ẍ + F b with F b = . (15)
ω × Iω

F b is the so-called bias force, i.e., the force not due to acceleration, but to the
current (angular) velocity. (This force is often described as the Coriolis and
centrifugal forces.) m is the total mass of the body. r c is the vector from
the origin of the reference frame in which all quantities are expressed, to the
centre of mass of the body. I is the 3 × 3 angular inertia matrix of the rigid
body with respect to the current reference frame. Note that the bias force
vanishes when (i) the centre of mass lies in the origin of the reference frame
(then r c = 0), and (ii) the body is spherical (its inertia I is a multiple of
the unit matrix). Otherwise, the angular velocity generates a force due to the
unbalance in the body. For example, assume you spin around a vertical axis
through your body, while holding a heavy object in your hand. The object will

13
not only be accelerated around the spin axis, but you will also feel a so-called
“centripetal ” force that tries to move the object away from you.
Often, one knows the inertia I c with respect to the centre of mass; the rela-
tionship between the (coordinate representation of the) inertia I c at the centre
of mass, and the (coordinate representation of the) inertia I at an arbitrary
reference frame is:
rc r
I = I c − mb bc . (16)
bc is the 3×3 vector product matrix corresponding to r c ; r c is zero in a reference
r
frame with origin in the centre of mass. This relationship is straightforward to
derive by a coordinate transformation, from the centre of mass c to another
frame, of the Newton and Euler equations:
f c = mv̇ c , mc = I ω̇ c . (17)
The mass and the angular inertia matrix together form the 6 × 6 generalized
mass matrix M :
rc
 
m13×3 −mb
M= . (18)
rc
mb I
This symmetric generalized mass matrix is symmetric; it’s a pure diagonal ma-
trix only in one single case, i.e., when expressed in a reference frame with origin
at the centre of a perfect sphere. In all other cases, the matrix causes “cou-
pling” between the different spatial directions: a force or torque that has zero
components along all coordinate axes except one generates an acceleration with
non-zero components along all coordinate axes; and, in order to obtain an ac-
celeration with a non-zero component along only one coordinate axis requires a
force with non-zero components along all coordinate axes.
Equations (16) and (18) show that I and M are symmetric matrices, ex-
pressed in any coordinate frame. Indeed, the coordinate transformation prop-
erties of I and M are straightforwardly derived from the transformations of
velocities, forces, and accelerations, and lead to symmetric coordinate represen-
tation matrices:
I 1 = 12R I 2 12RT , M1 = T F F T
1,2 M 2 (T 1,2 ) . (19)
For example, the latter follows from the relationships in Eq. (13) and from:
 
V −1 V
f 2 = M 2 a2 ⇒ T F F
1,2 f 2 = T 1,2 M 2 (T 1,2 ) T 1,2 a2 ,
V −1
⇒ f1 = T F
1,2 M 2 (T 1,2 ) a1 ,
V −1
⇒ M1 = T F
1,2 M 2 (T 1,2 ) .

Parametric uncertainty. The mass matrix and its coordinate representa-


tions and transformations also make implicit use of the same geometrical pa-
rameters of the mechanical robot structure as mentioned in Section 5.5, in ad-
dition to the three coordinates r c of the centre of mass, the total mass m of the
body, and the six parameters in the (symmetric) inertia matrix I. Again, these
parameters are in general only known approximately, such that they should be
considered as uncertain parameters in the robot model.

14
7 Mass, acceleration, and force projections
Figure 3 shows the basic building block of every robot: one link of a robot
connected to another link through a (revolute) joint. Forces act on both links,
and these forces are related to the links’ accelerations through their inertial
properties. This Section explains
• how much of the mass matrix of the distal link is felt by the proximal link;
• how much of the acceleration of a proximal link is transmitted to its distal
link;
• and how much of the force acting on the distal link is transmitted to the
proximal link.
Note the asymmetry between force and inertia on the one hand, and motion on
the other hand: motion is transmitted from proximal to distal, and force and
inertia are transmitted from distal to proximal. This asymmetry stems from
the most traditional application of dynamics in robotics, i.e., the dynamics of a
serial robot arm as used in industry. For that type of robot, the most proximal
link is rigidly fixed to the ground, and the most distal link is the end-effector,
which carries the load or can be in contact with the environment. Hence, the
natural recursion direction in which the motion of each link can be calculated is
from the rigid base to the end-effector, accumulating velocity and acceleration
each time a joint is passed. While the natural recursion direction for forces is
from end-effector to base: the force acting on each joint, as well as the mass to
be moved by each joint, are determined by the forces on, and the weight of, the
more distal links and not of the more proximal links.
Later Sections will relax these implicit assumptions: the base needs not be
fixed, and interaction with the environment can take place at any joint or link
of the robot structure.

7.1 Inward mass matrix projection


The relationship between the acceleration Ẍ 1 (from standstill) and the force
F 1 of link 1 for an unconstrained link 1 is given by the link’s mass matrix M 1 .
However, if link 1 is connected to link 2 by means of an ideal, non-actuated
joint, the force F 1 is not completely available to accelerate link 1; or, in other
words, it seems as if the link has become “heavier.” This subsection explains
how to find this so-called articulated inertia M a1 of link 1, i.e., the mapping
from the acceleration of the link to the corresponding force, taking into account
the influence of the distal link.
So, assume that link 1 is given an acceleration Ẍ 1 , from an initial motion-
less configuration. In order to execute this acceleration, a certain force F 1 is
needed, and the goal of this Section is to find this force, and, automatically, the
articulared inertia M a1 which is the ratio between force and acceleration.
F 1 is partially used to accelerate link 1 as if it were unconstrained, while a
part F 2 of the force F 1 is transmitted through the revolute joint, causing an

15
Figure 3: A rigid body is connected to another rigid body by a revolute joint.
The joint cannot transmit a pure torque component about its axis, generated
by the external forces.

acceleration Ẍ 2 of link 2. Both accelerations can only differ in their component


about the common joint axis:

Ẍ 2 − Ẍ 1 = Z q̈2 , (20)

with Z the six-dimensional basis vector of the joint, and q̈ the (as yet unknown)
acceleration of the joint.
In a frame with its Z axis on the joint axis, Z has the simple coordinate
representation (0 0 0 0 0 1)T . The positive sign of q (and hence also of q̇
and q̈) is chosen to be such that the relative motion between body 1 and body 2
has a positive component about the Z axis; in other words, q̇ > 0 ⇔ (Ẋ 2 )Z >
(Ẋ 1 )Z .
The transmitted force F 2 cannot have a component about the revolute joint
axis, hence:
Z T F 2 = 0. (21)
Because F 2 = M 2 Ẍ 2 , with M 2 the mass matrix of link 2, one finds that:

−Z T M 2 Ẍ 1 = Z T M 2 Z q̈2 , (22)

and  −1
q̈2 = − Z T M 2 Z Z T M 2 Ẍ 1 . (23)

16
Hence, the force F 1 needed to accelerate link 1 by an amount Ẍ 1 is given by

F 1 = M 1 Ẍ 1 + F 2
  −1 
= M 1 Ẍ 1 + M 2 − M 2 Z Z T M 2 Z Z T M 2 Ẍ 1 , (24)

= M a1 Ẍ 1 , (25)
  −1 
with M a1 = M 1 + I − M 2 Z Z T M 2 Z Z T M 2. (26)

M a1 the so-called articulated body inertia, [11], i.e., the increased inertia of link 1
due to the fact that it is connected to link 2 through an “articulation” which
is the revolute joint. The mass of link 2 is “projected” onto link 1 through the
joint between both links, via the 6 × 6 projection operator P 2 :
 −1
P 2 = 1 − M 2Z Z T M 2Z ZT . (27)

The matrix P 2 is indeed a projection operator, because it is easy to see that

P 2P 2 = P 2. (28)

The projection is not “orthogonal,” but skewed by the mass distribution M 2 of


link 2.
The total articulated inertia M a1 of link 1 is the sum of its own inertia M 1
and the projected part P 2 M 2 of the inertia of the second body:

M a1 = M 1 + P 2 M 2 . (29)

It is straightforward to check that P 2 M 2 is a symmetric matrix, as expected


from an inertia matrix. This symmetry is analytically made clearer by the
following equality, which is also straightforward to check:

P 2 M 2 = P 2 M 2 P T2 . (30)

The formula for the articulated inertia M a1 in Eq. (27) looks very complicated
at first sight, but in practice it is very efficient to calculate. Indeed, in the case
that the joint is revolute, one can make sure that the z-axis of the coordinate
reference frame lies along the joint axis, and, hence, the 6×1 vector Z is equal to
(0 0 0 0 0 1)T . So, m66 = Z T M 2 Z in Eq. (27) is the scalar element in the lower-
right entry of the 6 × 6 matrix M 2 , and P 2 in this particular frame becomes:
 
1 0 0 0 0 −m16 /m66
 0 1 0 0 0 −m26 /m66 
 
 0 0 1 0 0 −m36 /m66 
P2 = 
 . (31)
 0 0 0 1 0 −m46 /m66 

 0 0 0 0 1 −m56 /m66 
0 0 0 0 0 0

17
Hence, the projection operator eliminates link 2’s component of inertia about
the joint axis, i.e., the projected part of M 2 is:
 
m11 m12 m13 m14 m15 0
 m21 m22 m23 m24 m25 0 
 
 m31 m32 m33 m34 m35 0 
P 2M 2 =   . (32)
 m41 m42 m43 m44 m45 0 

 m51 m52 m53 m54 m55 0 
0 0 0 0 0 0

So, in case of a joint with a single degree of freedom, one needs no computation
time at all to find P 2 M 2 !

7.1.1 Multi degrees-of-freedom joints


The paragraphs above assume that Z is a 6 × 1 vector, representing the axis of
a 1 degree-of-freedom joint. However, this can easily be extended to N degrees-
of-freedom joints: Z then becomes a 6 × N matrix, and each of its columns
represents one degree of motion freedom. The only resulting complication is
that the inverse of Z T M 2 Z is now a matrix inverse, and not anymore a scalar
inverse. However:
• Practical joints have one, two or at most three degrees of freedom, so the
matrix inverse remains quite efficient to calculate.
• The reference frame on the joint can again be chosen in such a way that
Z has mostly zero entries.
(TODO: make explicit calculation of P 2 M 2 in the case of a spherical joint.)

7.1.2 Joints with shaft inertia


The paragraphs above assume the joint to be massless by itself. However, if
the joint is actuated by an electrical motor, the motor shaft does have non-zero
inertia. In addition, any gearbox between the motor shaft and the joint increases
the effect of the motor shaft inertia, by a factor equal to the square of the gear
ratio. Let d2 denote the inertia of the motor shaft, as felt by the joint; that
is, after transmission through a gearbox. Then, the reasoning between Eq. (21)
and (26) can be repeated, with the following changes. The force F 2 is not fully
available to accelerate M 2 , but should also accelerate the motor shaft:

F 2 = M 2 Ẍ 2 − d2 q̈2 Z. (33)

The articulated body inertia M a1 becomes


 −1
M a1 = M 1 + M 2 − M 2 Z d2 + Z T M 2 Z Z T M 2. (34)

18
The projection operator P 2 becomes:
 −1
P 2 = 1 − M 2 Z d2 + Z T M 2 Z ZT (35)
 
1 0 0 0 0 −m16 /(d2 + m66 )
 0 1 0 0 0 −m26 /(d2 + m66 ) 
 
 0 0 1 0 0 −m36 /(d2 + m66 ) 
= 0 0 0 1 0 −m46 /(d2 + m66 )
.
 (36)
 
 0 0 0 0 1 −m56 /(d2 + m66 ) 
0 0 0 0 0 0
In this case, the calculation of P 2 M 2 requires a computational cost of O(N ),
compared to O(0) in case of no joint inertia, Eq. (32).
(TODO: make explicit calculation of P 2 M 2 in the joint inertia case above.)

7.2 Outward acceleration projection


The acceleration transmitted through the joint from proximal to distal link
follows from Eqs (20) and (23):
Ẍ 2 = Ẍ 1 + Z q̈2 , (37)
  −1 
T T
= 1 − Z Z M 2Z Z M 2 Ẍ 1 , (38)

= P T2 Ẍ 1 . (39)

7.3 Inward force projection


Assume now that a force F 2 acts on link 2. The question is how much of this
force is transmitted through the joint between links 1 and 2 and hence acting
as “external force” on link 1. As in Section 7.1, link 1 is assumed “fixed”, in
the sense that we are interested in the force as could be measured with a force
sensor at link 1, and not in the motion (i.e., .acceleration) of link 1 that results
from that force.
The naive answer to the question of the transmitted force is to take the
component Z T F 2 along the joint axis, and subtract it from F 2 . However,
this answer is naive because it neglects the fact that, although the acceleration
motion caused by F 2 can indeed only be around the joint axis, the resulting
acceleration gives rise to inertial forces in all six spatial components, because
the mass matrix is in general not diagonal. So, the transmitted force is F 2
minus all these acceleration-related components, and not just the component
around the joint axis. The detailed derivation of this result goes as follows:
• F 2 generates a torque τ = Z T F 2 about the joint axis.
• µ = Z T M 2 Z is the inertia of link 2 about the joint axis.
• α = (Z T M 2 Z)−1 is the corresponding acceleration generated by a unit
torque about the joint axis.

19
• τ α is the magnitude of the acceleration around the axis.
• The spatial acceleration vector of link 2 caused by F 2 is A = τ αZ =
Z(Z T M 2 Z)−1 Z T F 2 .
• This acceleration generates a six-dimensional force

M 2 A = M 2 Z(Z T M 2 Z)−1 Z T F 2 .

So, the part F 1 of the force F 2 transmitted in inward direction to link 1 is then
the original force F 2 minus what is lost in accelerating link 2:

F 1 = F 2 − M 2 Z(Z T M 2 Z)−1 Z T F 2 , (40)


= P 2F 2. (41)

Parametric uncertainty. The above-mentioned projections of forces, accel-


erations and inertias through a joint make use of the position and orientation
parameters of the joint, as well as of the mass matrix of the links. As before,
these parameters should be assumed to be uncertain.

8 Link-to-link coordinate recursions


The recursive algorithms for the forward and inverse dynamics of serial and
tree-structured robots, as presented below, can achieve linear-time complexity;
that is, they have a computational load that increases only linearly with the
number of links in the robot. The algorithms use inward and outward recursions
from link to link, to propagate force, velocity, acceleration, and inertia from the
root to the leafs (outward recursion), or vice versa (inward recursion). In this
text, the recursion step towards link i means that all physcial properties of
interest are expressed with respect to the reference point at the origin of the
proximal frame {pi } of that link. The terminology “inward” and “outward” is,
strictly speaking, only unambiguous for classical robot arms: their root is fixed
in the environment, and they have a well-defined end-effector on which forces are
applied, or motion constraints are acting. Humanoid robots, however, change
their “fixed” root from one foot to the other when walking, and sometimes they
have none of their feet on the ground. They can also “climb” such that one
of their hands serves as the fixed root, especially in outer space where gravity
is absent. Anyway, as said already before, its topology allows any of its link
to be taken as root of its topological structure, but in the current context, the
algorithms in the previous Sections made the implicit assumption that the root
is fixed in space. Hence, this Section is only relevant to humanoid robots that
have one foot on the ground; later Sections present the more general cases of
either none or both feet on the ground.
The physical properties of the recursions of dynamic parameters have already
been discussed in the previous Sections; this Section basically adds only the
somewhat complex “bookkeeping” of all coordinate transformations involved in

20
the recursions between different frames. Every recursion consists of two or three
steps. For example, an outward recursion from link i to link i + 1 performs the
following computations:
1. a change in reference point from the proximal frame {pi } of link i to the
distal frame {di+1 } attached to link i.

2. the incorporation of the physical contribution (position, velocity, . . . ) at


joint qi+1 , and using the origin of the distal frame {di+1 } as reference
point.
3. a coordinate transformation of the result to the proximal frame {pi+1 }
rigidly attached to the next link i + 1. This step is only necessary if the
coordinates are expressed with respect to the proximal frames on the links;
in the case of expressing all coordinates with respect to the fixed world
frame, this step is not required.
Of course, for efficiency reasons, linear-time algorithms try to keep these three
steps as computationally efficient as possible. That is the reason to choose
coinciding proximal and distal frames on subsequent links, up to a motion about
the joint axis, which has been chosen to be the Z axis of the local frames.

8.1 Outward position recursion


This has already been discussed in the Kinematics chapter: the position and
orientation of the end-effector frame are found from the measured joint angles
by a multiplication of homogeneous transformation matrices that depend on the
kinematic parameters of the robot.
Branching in a tree-structured robot does not complicate the motion (posi-
tion, velocity and acceleration) at all: each outward recursion path is exactly
equivalent to a serial robot, and there is no interaction between two branches.

8.2 Outward velocity recursion


The velocity recursion finds the linear and angular velocity Ẋ i+1 = (v i+1 , ω i+1 )
of link i + 1 (with the origin of the proximal frame {i + 1} as velocity reference
point), given the linear and angular velocity Ẋ i = (v i , ω i ) of link i (with the
origin of the proximal frame {i} as velocity reference point), and given the joint
angle speed q̇i+1 between both links. Because both links move only with respect
to each other by a rotation about z i+1 = z di+1 = z pi+1 , the following recursion
equations are obvious:

v i+1 = v i + ω i × r i,i+1 , (42)


ω i+1 = ω i + q̇i+1 z i+1 , (43)

with r i,i+1 the vector between the origins of the frames {i} and {i + 1}, i.e.,
r i,i+1 = r i+1 − r i . In coordinate form, the recursion Ẋ i → Ẋ i+1 over a

21
rotational joint becomes:
 
03×1
 
V
Ẋ i+1 = T i+1,i Ẋ i + q̇i+1 Z i+1 with Z i+1 = . (44)
z i+1

T Vi+1,i is the 6 × 6 velocity transformation matrix from (the velocity reference


point at the origin of) the proximal frame on link i to (the velocity reference
point at the origin of) the proximal frame on the distal link i + 1. In other
words, it’s the inverse of the transformation matrix in Eq. (11):
 
1 −b
r i,i+1
T Vi+1,i = . (45)
0 1

8.3 Outward acceleration recursion


This recursion calculates the linear and angular acceleration Ẍ i+1 = (v̇ i+1 , ω̇ i+1 )
(with the origin of the proximal frame {i + 1} as velocity reference point), given
the linear and angular acceleration Ẍ i = (v̇ i , ω̇ i ) (with the origin of the proxi-
mal frame {i} as velocity reference point), and given the joint angle acceleration
q̈i+1 . The recursion equations are found straightforwardly by taking the time
derivative of the velocity recursion in Eq. (44):

v̇ i+1 = v̇ i + ω̇ i × r i,i+1 + ω i × (ω i × r i,i+1 ), (46)


ω̇ i+1 = ω̇ i + q̈i+1 z i+1 + ω i × q̇i+1 z i+1 . (47)

This uses the property that ω i × x is the time derivative of a vector x that is
fixed to a body that rotates with an angular velocity ω i . In matrix form, the
recursion Ẍ i → Ẍ i+1 becomes:
 
Ẍ i+1 = T Vi+1,i Ẍ i + q̈i+1 Z i+1 + Ai+1 ,

ω i × (ω i × r i,i+1 )
 (48)
with Ai+1 = .
ω i × q̇i+1 z i+1

This acceleration recursion is similar to the velocity recursion of Eq. (44), except
for the bias acceleration Ai+1 due to the non-vanishing angular velocity ω i .

8.4 Inward articulated mass recursion


The inward articulated mass matrix recursion calculates the articulated mass
M ai felt by link i, and with the origin of the proximal frame {pi } of the link
as reference point, when the articulated mass matrix M ai+1 of the distal link
i + 1 (with the origin of its own proximal frame as reference point), and the
mass matrix M i of link i is also known in the ith proximal frame. Section 7.1
explained already how the mass matrix is transmitted through the revolute joint,
Eq. (29). Hence, the coordinate form of the inward recursion M ai ← M ai+1
becomes:
 F T
M ai = M i + T F a

i,i+1 P i+1 M i+1 T i,i+1 . (49)

22
When link i is a branching node in the tree topology of the humanoid robot,
Equation (49) contains the sum over all M ai+1 of the links connected to link i.
Indeed, the inertial coupling between two branches satisfies the superposition
principle.
M ai can be interpreted as an operator working on the acceleration of link i,
and resulting in a force, all expressed in the proximal frame {pi } of that link.
So, in Eq. (49), one recognizes the following steps from right to left:
1. (T F T V
i,i+1 ) = (T i,i+1 )
−1
transforms the coordinates of the acceleration of
link i from proximal frame {pi } to proximal frame {pi+1 }.
2. There, that acceleration works on the projection P i+1 M ai+1 of the artic-
ulated mass matrix of link i + 1 onto link i, and generates a force.
3. Finally, T F
i,i+1 transforms the coordinates of this force back to the proxi-
mal frame {pi } of link i.

8.5 Inward force recursion


This section explains the recursion from F i+1 , the (almost) total force felt at
the origin of the proximal frame of link i + 1, to F i , the (almost) total force felt
at the origin of the proximal frame of link i. F i consists of three parts:
1. Contributions from link i + 1: the accumulated resultant total force F i+1 .
The transmitted part of this force is given in Eq. (41).
2. Contributions from the joint torque τi+1 :

M ai+1 Z i+1 (di+1 + Z Ti+1 M ai+1 Z i+1 )−1 τi+1 .

3. Contributions from link i:


(a) The velocity-dependent bias force F bi , generated by the angular ve-
locity and the mass properties of link i, Eq. (15).
(b) The “external force” F ei , i.e., the resultant of all forces applied to
link i, for example by people or objects pushing against it.
These components constitute almost all physical contributions, except the force
generated by accelerating link i: this component is added later, in specific dy-
namics algorithms, because depending on that algorithm, the acceleration of
link i comes either from a user-specified acceleration of link i, or from the joint
torque applied to joint i. In matrix form, the recursion F i ← F i+1 becomes:

Fi = T F
i,i+1 {P i+1 F i+1
o
− M ai+1 Z i+1 (di+1 + Z Ti+1 M ai+1 Z i+1 )−1 τi+1
+ F bi + F ei . (50)

23
The minus sign for the joint torque contribution comes from the fact that link
i feels a torque −τi+1 if the motor at joint i + 1 applies a torque of +τi+1 .
When link i is a branching node in the tree topology of the humanoid robot,
Equation (50) contains the sum over all F i+1 of the links connected to link
i, plus the joint torque contributions of all joints at the distal frames i + 1.
Since the natural direction of the recursion is from the multiple branches to the
single link, the forces just add and there is no interaction coupling between the
different branches.
Again, the three different contributions to the link force appear linearly
in the equations, because the superposition principle holds: the effects of one
contribution can be calculated separately, and added to the effects of the other
contributions when required. For example, one can calculate the motion of the
robot under gravity, without actuation at the joints, by just eliminating the
joint torque contributions in the force recursion.

9 Dynamic algorithms
This Section applies the material of all previous Sections to construct linear-time
algorithms for the forward and inverse dynamics of a humanoid robot (with the
implicit assumption that it has one foot fixed to the ground!). The algorithms
are valid for humanoid robots with an arbitrary number of joints.

9.1 Inverse dynamics (ID)


The torque at any given joint can be found as soon as one knows (i) what
acceleration that joint must generate, (ii) what forces act on it, and (iii) what
articulated mass the joint must accelerate.
The acceleration of the end-effector link is specified by the user; for the
time being, assume that this desired end-effector acceleration has already been
transformed into corresponding desired joint angle accelerations. (For robots
with less or more than six joints, this transformation can be non-trivial and/or
non-unique; Section 11 give more details about this problem.) The joint torques
needed to achieve this acceleration are then calculated as follows:

1. Outward motion recursion of position, velocity and acceleration (including


the desired acceleration as well as the bias acceleration due to the angular
velocities).
2. Inward articulated mass matrix recursion. Initialized by M aN = 0 for all
end-effector links (given the number “N ”).

3. Inward force recursion, as in the previous Section, except that no joint


torques are known yet.
4. The outward joint torque recursion finds the joint torques needed to gen-
erate the desired accelerations, given the articulated inertias felt at each

24
joint:  
τi = Z Ti F i + M ai (Ẍ i − Ẍ i−1 ) . (51)

9.2 Forward dynamics (FD)


The acceleration generated by given joint torques can be found as soon as each
joint knows which (articulated) mass it has to accelerate, and what external
forces it has to withstand. The following scheme achieves this goal:
1. Outward motion recursion. Same as for ID, except that the joint acceler-
ations are not yet known.

2. Inward articulated mass matrix recursion. Same as for ID.


3. Inward force recursion. Same as for ID, except that no joint accelerations
are known yet.
4. Outward acceleration recursion. Now, joint i knows what (articulated)
mass is attached to it, as well as which forces are working on it. The
acceleration of link i − 1 is transmitted to joint i, so the torque τi in that
joint i must withstand the corresponding inertial force M ai Ẍ i−1 . It must
also withstand the (external and Coriolis) forces F i on joint i that come
from the inward force recursion. The remaining torque is then available
to generate the acceleration q̈i :
n  o
q̈i = (di + Z Ti M ai Z i )−1 τi − Z Ti F i + M ai Ẍ i−1 ) . (52)

Gravity is taken into account by initializing the recursion with the gravi-
tational acceleration: Ẍ 0 = g.
5. Integration of joint accelerations into joint velocities and joint positions.
Numerical integration algorithms are not discussed in this text.

10 Constrained systems
TODO: constraints (position, velocity, acceleration; soft, hard), differential al-
gebraic equations (DAE), ordinary differential equations (ODE), particular dif-
ferential equations (PDE), index of DAE, Baumgarte stabilization; internal con-
straints, end-point constraints.
TODO: definition of a local constraint (= involves only constraints that can
be solved by an m-dimensional set of coupled equations, where m is “much
smaller” than the number n of bodies in the chain. It’s impossible to put an
absolute limit on the ration m/n.

25
11 Over- or under-constrained robots
The Section on inverse dynamics (Sec. 9.1) assumed that the robot has a serial
structure with six joints, with a unique and easy to calculate transformation
from Cartesian acceleration to joint-space acceleration. This Section presents
the extensions needed for under-constrained serial robots (“redundant” robots),
and for over-constrained serial robots. The constraints can be both physical
(e.g., contacts with the environment) and virtual (e.g., desired motion of (part
of) the TCP frame). The discussion is inspired by the work of the Russian
school of the 1970s and 1980s, [26, 34, 35].

11.1 Under-constrained robot


Assume the end-effector (link “N ”) of the robot cannot move arbitrarily, but
must satisfy the following acceleration constraints:

ATn Ẍ N = bN . (53)

AN is a 6 × m matrix if there are m constraints, and each one of its columns can
be interpreted as a constraint force (or, constraint “wrench”) acting on the end-
effector. The right-hand side m-dimensional vector bN of Eq. (53) represents
the “(constraint) acceleration energy” generated in the constraints. Classical
mechanics has no generally accepted name for this product of a force with an
acceleration, although Gauss [13] and Hertz [17] already used it. In differential
geometry, bN is the (square of the) geodesic curvature of the motion, [18].
The constraints can be physical, e.g., the end-effector is attached to, or
in contact with, objects in the environment that are physically constrained
themselves. Or the constraints can be virtual, in the sense that the represent
desired acceleration imposed on the robot by the human programmer.
The introduction of end-effector constraints leads to some extensions to the
recursive formulas of the previous Sections:
• The constraints are considered to be generated by constraint forces AN ;
these forces are not known in advance, but will be a result of the algorithm.
However, the working direction of all constraint forces are known, but not
their magnitude. This can be written as:

AN = E N ν. (54)

ν is the m-dimensional vector with the constraint force magnitudes, and


E N is the 6 × m matrix of m “unit” constraint forces.
• The matrix E N is propagated by an inward force projection recursion
(Sec. 7.3), just as if it were a matrix of external force:

E i = P i+1 E i+1 . (55)

26
• During the inward recursion, we keep track of how much of the “constraint
acceleration energy” bN has already been generated by the real forces and
joint torques:

β i = β i+1 + E i+1 αi+1 , (56)


  
with αi+1 = Ẍ i+1 + Z i+1 D−1 τi+1 − Z Ti+1 F i+1 + M ai+1 Ẍ i+1 ,
D = di+1 + Z Ti+1 M ai+1 Z i+1 .

β N is initialised to zero.
• During the inward recursion, we also keep the track of how much of the
“constraint acceleration energy” bN has already been generated by the
virtual unit end-effector constraint forces E i+1 :
−1
N i = N i+1 − E Ti+1 Z i+1 Di+1 Z Ti+1 E i+1 (57)

N i+1 is an m × m matrix, whose ith row contains the acceleration energy


that the ith unit constraint force has generated (up to now in the recur-
sion) against the accelerations generated by all constraint forces. Hence,
N N is initialised to zero.
E i+1 is what is felt of the unit constraint forces at the current joint; the
−1
multiplication with Z i+1 Di+1 Z Ti+1 results in the acceleration generated at
this joint by the constraint forces; and the multiplication with E Ti+1 yields
the acceleration energy contributions at this joint. The minus sign comes
from the observation that, eventually, the reaction force to the constraint
forces must be generated.
• When the recursion arrives at the base (i = 0), one can solve for the still
unknown constraint force magnitudes ν, via the final constraint accelera-
tion energy balance:

N 0 ν = bN − E T0 Ẍ 0 − β 0 .

The matrix N 0 is negative-definite, by construction. For a robot with


fixed base, the acceleration Ẍ 0 consists of gravity only.
Question: is N 0 always strictly definite? (Hence, invertible.)
The outward joint acceleration is then very similar to the unconstrained case
of Eq. (52), except that an extra joint torque E i ν is added to compensate the
constraint forces:
n  o
q̈i = (di + Z Ti M ai Z i )−1 τi − Z Ti F i + M ai (Ẍ i − Ẍ i−1 ) + E i ν . (58)

11.2 Free-floating base


If the base of the kinematic chain is not attached to the ground, but freely
floating, such as is the case with a robot in space, the base acceleration Ẍ 0 is

27
not imposed, but is a result of the natural dynamics of the robot. It follows
straightforwardly from Newton’s law:
−1
Ẍ 0 = − (M a0 ) (F 0 + A0 ν) . (59)

In other words, it moves under the combined action of (i) the physical forces,
and (ii) the constraint forces.

11.3 General base constraints


In this case, the base is subjected to a set of acceleration constraints:

AT0 Ẍ 0 = b0 . (60)

A0 is a k × 6 matrix, with each column interpreted as a constraint force on the


base. The base acceleration Ẍ 0 is now the result of an optimization problem:
...

12 Inverse Dynamics with specified link accel-


erations
This Section explains the extensions to the ID algorithm in the previous Sec-
tions, for the cases where one or more links must satisfy given acceleration
constraints. These constraints can come from the physics of the interaction
between robot and environment, but they can also be non-physical constraints
coming from the robot’s task specification.
XXX Null-space posture control; merging constraint recursions from two
branches;
The Inverse Dynamics problem of Section 9.1, with only a desired end-
effector acceleration Ẍ N is a special case of the under-constrained robot: the
constraint matrix AN is then equal to the 6 × 6 unit matrix, and bN is the
desired acceleration. (This is only “under-constrained” as long as the robot has
at least six joints, and it is not in a singular configuration!)
The joint torques are completely generated by the terms Ai ν, and not by
given τi . Nevertheless, the τi can be specified different from zero, in which case
they make the robot links move without disturbing the specified end-effector
acceleration. This is called a null-space motion, as is explained in more detail
in Section 13.
Questions: is A0 always full-rank, hence invertible? Does this occur when
the robot is over-constrained? A0 is also “weighted” by the mass matrix?

13 Pseudo-inverse based dynamics control


This Section explains the dynamically consistent pseudo-inverse, [22].
...

28
14 Analytical form of tree structure dynamics
The previous Sections presented recursive algorithms. This means that the
relationship between joint forces τ and joint accelerations q̈ (or end-effector
acceleration Ẍ) is not made explicit. Such an explicit analytical form of the
dynamics would be very inefficient to calculate, since many terms are repeated.
Nevertheless, an analytical form is interesting because it gives more insight: Are
all relationships nonlinear, or do some relationships exhibit linear behaviour?
What terms are important, and what others can be neglected in specific cases?
A closer inspection of the recursion relations reveals a general analytical form
for the dynamics: the accelerations enter linearly in the dynamic equations;
the velocities enter non-linearly due to the bias forces and accelerations; the
influence of the gravity enters linearly. (These linearities will be very helpful
to limit the complexity of estimation algorithms for the dynamic parameters of
the robot.) Hence, the relationship between the joint forces τ , joint positions
q, joint velocities q̇, and joint accelerations q̈ of a serial kinematic chain is of
the following analytical form:

τ = M (q) q̈ + c(q̇, q) + g(q). (61)

The matrix M (q) is called the joint space mass matrix. The vector c(q̇, q) is the
vector of Coriolis and centrifugal joint forces. Some references write the vector
c(q̇, q) as the product of a matrix C(q, q̇) and the vector q̇ of joint velocities.
The vector g(q) is the vector of gravitational joint forces. In component form,
Eq. (61) becomes
X X
τi = M ij (q) q̈j + C ijk (q) q̇j q̇k + g i (q). (62)
j j,k

The joint gravity vector g(q) gives the joint forces needed to keep the robot in
static equilibrium (q̇ = q̈ = 0) under influence of gravity alone. The Coriolis
and centrifugal vector gives the joint forces needed to keep the robot moving
without acceleration or deceleration of the joints.

Joint space mass matrix. The joint space mass matrix M (q) gives the
linear relationship between the joint forces and the resulting joint acceleration,
if the robot is in rest, and if gravity is not taken into account. Hence, the
physical meaning of M is that the ith column M i (q) is the vector of joint
forces needed to give a unit acceleration to joint i while keeping all other joints
at rest (and after compensation for gravity).
It can be proven that the instantaneous kinetic energy T of the robot is
given by
T = q̇ T M (q)q̇. (63)
This has the same form as the expression T = 12 mv 2 for the kinetic energy of a
point mass m moving with a velocity v.

29
14.1 Composite inertia method
TODO: Eq. (62) gives rise to the oldest numerical approach, the so-called com-
posite inertia method. This is less efficient, O(n3 ), so it is given here mostly for
completeness.

15 Euler-Lagrange approach
The previous Sections started from Newton’s law of motion to describe the
dynamics of serial chains of rigid bodies. This approach is often called the
Newton-Euler algorithm, and it uses the Cartesian velocities of all links in the
chain, and the Cartesian forces exerted on all links. This involves a non-minimal
number of variables, since each link has only one degree of freedom with respect
to its neighbours, while the Cartesian velocities and forces for each link are six-
vectors.
Another approach exists (the so-called Euler-Lagrange approach) that uses
a minimal number of variables to describe the same dynamics. These indepen-
dent variables are called generalised coordinates, [23]. In general, the minimal
set of generalised coordinates might consist of coordinates that are not straight-
forwardly connected to the physical features of the system. However, for serial
robots, the joint positions q are natural generalised coordinates for the position
of the robot. The joint forces τ are the corresponding generalised forces. The
generalised velocities and accelerations of the system are simply the time deriva-
tives of the joint coordinates, so no new independent variables are needed to
describe the system’s dynamics. Instead of Newton’s laws, the Euler-Lagrange
approach uses Hamilton’s Principle (1834) as a starting point: A dynamical
system evolves in time along the trajectory, from instant t1 to instant t2 , that
makes the action integral Z t2
I= L dt (64)
t1

reach an extremal value (i.e., a local minimum or maximum), [15, 16, 25, 28,
31, 36, 37].
A problem of this kind is called a variational problem. The integrand L is
called the Lagrangian of the dynamical system. Hamilton’s Principle is very
general, and applies to many more cases than just a robotic system of masses
moving under the influence of forces, as considered in this text. For this latter
case, the Lagrangian L is equal to the difference of the kinetic energy T of the
system, and the potential energy V :

L = T − V. (65)

If forces that cannot be derived from a potential function (so-called non-conservative


forces, such as joint torques, or friction) act on the system, then the Lagrangian
is extended with one more energy term W , i.e., the work done by these forces:

L = T − V + W. (66)

30
William Rowan Hamilton’s (1805–1865) Principle was the end-point of a long
search for “minimal principles,” that started with Fermat’s Principle of Least
Time (Pierre de Fermat (1601–1665), [7]) in optics, and Maupertuis’ Principle
of Least Action (Pierre Louis Moreau de Maupertuis (1698–1759), [8, 9]). The
precise contents of the word “action” changed over time (Lagrange, for exam-
ple, used the product of distance and momentum as the “action”, [23]) until
Hamilton revived the concept, and gave it the meaning it still has today, i.e.,
the product of energy and time.
This paragraph explains how one should interpret Hamilton’s principle in
the context of robot motion. Assume some forces act on the robot: gravity,
joint forces, external forces on the end-effector or directly on intermediate links
of the robot. The robot will perform a certain motion from time instant t1 to
time instant t2 > t1 . This trajectory is fully deterministic if all parameters
are known: the robot’s kinematics, the mass matrices of all links, the applied
forces, the instantaneous motion. This trajectory is “extremal” in the following
sense: consider any alternative trajectory with the same start and end-point,
for which (i) the same points are reached at the same start and end instants
t1 and t2 , (ii) the trajectory in between can deviate from, but remains “in the
neighbourhood” of, the physical trajectory, and (iii) the same forces act on the
robot. Then, the action integral (64) for the physically executed path is smaller
than the action integral for any of the alternative paths in the neighbourhood.
Hamilton’s principle is an axiom, i.e., it is stated as a fundamental physical
principle, at the same footing as, for example, Newton’s laws, or, in a different
area of physics, the laws of thermodynamics. Hence, it was never derived from
more fundamental principles. What can be proven is that different principles
turn out to be equivalent, i.e., they lead to the same results. This is, for example,
what Silver [32], did for the Newton-Euler approach of the previous Sections, and
the Euler-Lagrange approach of this Section. The validity of Newton’s laws and
Hamilton’s Principle as basic physical principles is corroborated by the fact that
they gave the correct answers in all cases they could be applied to. From this
“evidence” on a sample of characteristic problems, one has then induced their
general validity to a whole field of physics. This means that these principles
remain “valid” until refuted. Probably the two most famous refutations in the
history of science are Copernicus’ heliocentric model (refuting the geocentric
model), and Einstein’s Principles of Relativity (that replace Newton’s laws at
speeds close to the speed of light, or for physics at a cosmological scale.)
The interpretation of Hamilton’s principle above assumed that one knows
the physically executed path. However, in practice, this is exactly what one is
looking for. So, how can Hamilton’s principle help us to find that path? Well,
the Swiss mathematician Leonhard Euler proved that the solution to the kind of
variational problem that Hamilton used in his Principle, leads to a set of partial
differential equations on the Lagrangian function, [10]. This transformation by
Euler is valid independently of the fact whether or not one really knows the
solution. Although Euler applied his method only to the particular case of a
single particle, his solution approach is much more general, and is valid for the
context of serial robot dynamics.

31
Euler’s transformed principle is somewhat less general than Hamilton’s prin-
ciple (Euler’s PDEs are necessary, but not sufficient conditions!) but Euler’s
results are also much more practical to work with than Hamilton’s principle,
since it reduces finding the physical trajectory to solving a set of partial differ-
ential equations (PDEs) with boundary conditions that correspond to the state
of the system at times t1 and t2 . So, in practice one starts from Euler’s PDEs
as “most fundamental” principle, instead of starting from Hamilton’s principle.
The name of the French mathematician and astronomer Joseph Louis La-
grange (1736–1813) is connected to the method described in this Section because
he was the first to apply the “principle of least action” to general dynamical
systems. The equations of motion he derived for a system of rigid bodies are ex-
actly Euler’s PDEs, applied to mechanics. Euler’s and Lagrange’s contributions
in the area of dynamics of point masses or rigid bodies date from more than half
a century before Hamilton stated his Principle. However, Hamilton’s Principle
is more general than the dynamics that Euler and Lagrange considered in their
work.
This Section on the Euler-Lagrange approach is much shorter than the
Section on the Newton-Euler approach. This does not mean that the Euler-
Lagrange approach is simpler or more practical; its shorter length is a mere
consequence of the fact that most of the necessary material has already been in-
troduced in the Newton-Euler Section, such as, for example, the expressions for
the kinetic and potential energy of serial robots. The following paragraph will
just describe how the well-known dynamical equations of Lagrange are derived
from (i) Hamilton’s Principle, and (ii) the Euler differential equations that solve
the variational problem associated with the action integral.

15.1 Euler-Lagrange equations


This Section derives the Euler-Lagrange equations that describe the dynamics of
a serial robot. We start from Hamilton’s Principle, and apply Euler’s solution
approach to it. This derivation can be found in most classical textbooks on
physics, e.g., [6, 12, 14, 31]. (Some textbooks derive the opposite direction,
i.e., they deduce Hamilton’s principle from Lagrange’s equations. This proves
that both are fully equivalent.) Assume that the extremum value of the action
integral is given by Z t2
I= L(q, q̇, t) dt, (67)
t1
with L = T − V the desired Lagrangian function we are looking for. L is
a function of the n generalised coordinates q = (q1 , . . . , qn ), and their time
derivatives. Both q and q̇ depend on the time. A variation of this integral is a
function of the following form:
Z t2
Φ() = L(q + T r, q̇ + T ṙ, t) dt, (68)
t1

with  a vector of real numbers, and r a set of real functions of time that vanish
at t1 and t2 . Note that Φ is considered as a function of the epsilons, not of

32
the generalised coordinates. Hence, this variation Φ() is a function that can
approximate arbitrarily close the extremum L we are looking for if the epsilons
are made small enough. Now, this function Φ() should reach an extremal
value (corresponding to the extremal value of the action integral) for all i = 0.
Hence, Φ’s partial derivatives with respect to the i should vanish at the values
1 = · · · = n = 0. Hence, also the following identity will be fulfilled:
     
∂Φ ∂Φ ∂Φ
0 = 1 + 2 + · · · + n (69)
∂1 1 =0 ∂2 2 =0 ∂n n =0
Z t2       
∂L ∂L ∂L ∂L ∂L ∂L
= 1 r1 + ṙ1 + 2 r2 + ṙ2 + · · · + n rn + ṙn dt.
t1 ∂q1 ∂ q̇1 ∂q2 ∂ q̇2 ∂qn ∂ q̇n
(70)

The right-hand side is called the first variation of Φ, because it is formally


similar to the first order approximation of a “normal” function, i.e., the first term
in the function’s Taylor series. Partial integration on the factors multiplying
each of the i gives
t2
Z t2  
∂L ∂L d ∂L
i ri + i ri − dt. (71)
∂ q̇i t1 ∂qi dt ∂ q̇i
t1

The evaluation at the boundaries t1 and t2 vanishes, by definition of the func-


tions ri . Moreover, these functions are arbitrary, and hence the extremal value
of the variation is reached when each of the factors multiplying these functions
ri becomes zero. This gives the Euler-Lagrangian equations for an unforced
system (i.e., without external forces acting on it):

d ∂L ∂L d ∂L ∂L
− = 0, i = 1, . . . , n, or, in vector form, − = 0.
dt ∂ q̇i ∂qi dt ∂ q̇ ∂q
(72)

16 Newton-Euler vs. Euler-Lagrange


Since both the Newton-Euler approach and the Euler-Lagrange approach dis-
cuss the same physical problem, they must be equivalent, [32]. So, why would
one prefer one method to the other? This question doesn’t have a unique an-
swer, since this answer depends on the context and the envisaged application.
However, some general remarks can be made:
• Recursive Euler-Lagrange algorithms have been developed, such that the
historical objection against using the Euler-Lagrange approach because
of efficiency reasons has lost much (although not everthing) of its initial
motivation.

33
• Hamilton’s Principle is clearly independent of the mathematical represen-
tation used, hence the Euler-Lagrange equations derived from it are (by
construction) invariant under any change of mathematical representation.
• The Newton-Euler method starts from the dynamics of all individual parts
of the system; the Euler-Lagrange method starts from the kinetic and
potential energy of the total system. Hence, the Euler-Lagrange approach
is easier to extend to systems with infinite degrees of freedom, such as in
fluid mechanics, or for robots with flexible links.
• The Newton-Euler method looks at the instantaneous or infinitesimal as-
pects of the motion; the Euler-Lagrange method considers the states of
the system during a finite time interval. In other words, the Newton-
Euler approach is differential in nature, the Euler-Lagrange approach is
an integral method, [37].
• The Newton-Euler method uses vector quantities (Cartesian velocities and
forces), while the Euler-Lagrange method works with scalar quantities
(energies).
• For a non-redundant six degrees of freedom serial manipulator, the six
joint positions q could be replaced by six Cartesian position parameters
x of the end-effector. However, these generalised coordinates x are only a
local representation, hence the corresponding Euler-Lagrange approach is
not globally valid (as is the Newton-Euler approach).

16.1 Impedance transformation


The coordinate transformations of stiffness, damping and inertia matrices under
a change of reference frame is easily derived from the transformation of the twists
and wrenches they act on. For example, the compliance matrix C works on a
wrench w to produce an infinitesimal displacement twist t∆ : t∆ = C w. The
transformation of this relation from an initial reference frame {i} to a final
reference frame {f } is calculated as follows:

f t∆ = fiS i t∆
= fiS (i C i w)
= f C f w. (73)

Hence
−1
fC = fiS i C fiS . (74)

Similar reasonings apply to the stiffness and inertia matrices too. Note that
Eq. (74) is a similarity transformation. Such transformations leave the eigen-
vectors and eigenvalues of the matrices unchanged, [33]. Of course, the coor-
dinate description of the impedance matrices will change, but not the physical
mapping they represent.

34
17 Differential geometry of robot dynamics
...

References
[1] V. I. Arnold, K. Vogtmann, and A. Weinstein. Mathematical Methods
of Classical Mechanics, volume 60 of Graduate Texts in Mathematics.
Springer, New York, NY, 2nd edition, 1989.
[2] H. Baruh. Analytical Dynamics. WCB McGraw-Hill, 1999.
[3] J. M. Cameron and W. J. Book. Modeling mechanisms with nonholonomic
joints using the Boltzmann-Hamel equations. Int. J. Robotics Research,
16(1):47–59, 1997.
[4] A. Codourey. Dynamic modelling and mass matrix evaluation of the
DELTA parallel robot for axes decoupling control. In Proc. IEEE/RSJ
Int. Conf. Int. Robots and Systems, pages 1211–1218, Osaka, Japan, 1996.
[5] H. C. Corben and P. Stehle. Classical Mechanics. Dover Publications, Inc.,
Mineola, NY, 2nd edition, 1994.
[6] R. Courant and D. Hilbert. Methoden der Mathematischen Physik I.
Springer, 1968.
[7] P. de Fermat. ?? In Varia opera mathematica. Culture et civilisation,
Brussels, Belgium, 1679.
[8] P. L. M. de Maupertuis. Essai de cosmologie. In Oeuvres, Tome I. Olms,
Hildesheim, Germany, 1759.
[9] P. L. M. de Maupertuis. Accord de différentes lois de la nature. In Oeuvres,
Tome IV. Olms, Hildesheim, Germany, 1768.
[10] L. Euler. Methodus inveniendi lineas curvas maximi minimive proprietate
gaudentes, sive solutio problematis isoperimetrici latissimo sensu accepti,
additamentum II (1744). In C. Carathéodory, editor, Opera omnia, pages
LII–LV, 298–308. Fussli, Zürich, Switserland, 1952.
[11] R. Featherstone. Robot dynamics algorithms. Kluwer, Boston, MA, 1987.
[12] G. R. Fowles. Analytical Mechanics. Holt, Rinehart and Winston, New
York, NY, 3rd edition, 1977.
[13] K. F. Gauss. Uber ein neues allgemeines Grundgesatz der Mechanik. J.
für die Reine und Angewandte Mathematik, 4:232–235, 1829.
[14] H. Goldstein. Classical mechanics. Addison-Wesley Series in Physics.
Addison-Wesley, Reading, MA, 2nd edition, 1980.

35
[15] W. R. Hamilton. On a general method in dynamics. Philosophical Trans. of
the Royal Society, (II):247–308, 1834. Reprinted in Hamilton: The Mathe-
matical Papers, Cambridge University Press, 1940.
[16] W. R. Hamilton. Second essay on a general method in dynamics. Philosoph-
ical Trans. of the Royal Society, (I):95–144, 1835. Reprinted in Hamilton:
The Mathematical Papers, Cambridge University Press, 1940.
[17] H. Hertz. Die Prinzipien der Mechanik in neuem Zusammenhange
dargestellt. Barth, Leipzig, Germany, 1894. Reprinted in “The principles
of mechanics,” Dover, 1956.

[18] H. Hertz. Die Prinzipien der Mechanik. Einleiting. Geest und Portig,
Leipzig, Germany, 1984. With annotations by Josef Kuczera.
[19] W. W. Hooker. A set of r dynamical attitude equations for an arbitrary n-
body satellite having r rotational degrees of freedom. AIAA J., 8(7):1205–
1207, 1970.
[20] W. W. Hooker and G. Margulies. The dynamical attitude equations for
an arbitrary n-body satellite having r rotational degrees of freedom. J.
Astronautical Sciences, 12(4):123–128, 1965.
[21] Z. Ji. Dynamics decomposition for Stewart platforms. Trans. ASME J.
Mech. Design, 116:67–69, 1994.
[22] O. Khatib. A unified approach for motion and force control of robot ma-
nipulators: The operational space formulation. IEEE J. Rob. Automation,
RA-3(1):43–53, 1987.
[23] J. L. Lagrange. Mécanique analytique. In J.-A. Serret, editor, Oeuvres.
Gauthier-Villars, Paris, France, 1867.
[24] J. Y. S. Luh, M. W. Walker, and R. P. C. Paul. On-line computational
scheme for mechanical manipulators. Trans. ASME J. Dyn. Systems Meas.
Control, 102:69–76, 1980.
[25] J. E. Marsden and T. S. Ratiu. Introduction to Mechanics and Symmetry,
volume 17 of Texts in Applied Mathematics. Springer, New York, NY, 1994.
[26] E. P. Popov, A. F. Vereshchagin, and S. L. Zenkevich. Manipuliatsionnye
roboty: dinamika i algoritmy. Nauka, Moscow, 1978.
[27] C. Reboulet and T. Berthomieu. Dynamic models of a six degree of freedom
parallel manipulator. In Int. Conf. Advanced Robotics, Pisa, Italy, 1991.
[28] H. Rund. The Hamilton-Jacobi theory in the calculus of variations: Its role
in mathematics and physics. The New University Mathematics Series. Van
Nostrand, London, England, 1966.

36
[29] S. K. Saha and J. Angeles. Kinematics and dynamics of a three-wheeled
2-dof AGV. In Int. Conf. Robotics and Automation, pages 1572–1577,
Scottsdale, AZ, 1989.
[30] S. K. Saha and J. Angeles. Dynamics of nonholonomic mechanical systems
using a natural orthogonal complement. Trans. ASME J. Appl. Mech.,
58:238–243, 1991.
[31] F. A. Scheck. Mechanics, from Newton’s laws to deterministic chaos.
Springer, Berlin, Germany, 2nd edition, 1994.
[32] D. B. Silver. On the equivalence of Lagrangian and Newton-Euler dynamics
for manipulators. Int. J. Robotics Research, 1(2):60–70, 1982.
[33] G. Strang. Introduction to applied mathematics. Wellesley-Cambridge
Press, Wellesley, MA, 1986.
[34] A. F. Vereshchagin. Computer simulation of the dynamics of complicated
mechanisms of robot-manipulators. Engineering Cybernetics, 12(6):65–70,
1974.
[35] A. F. Vereshchagin. Modelling and control of motion of manipulational
robots. Soviet J. of Computer and Systems Sciences, 27(5):29–38, 1989.
Originally published in Tekhnicheskaya Kibernetika, No. 1, pp. 125–134,
1989.
[36] D. A. Wells. Lagrangian dynamics. Schaum’s Outline Series. McGraw-Hill,
New York, NY, 1967.
[37] W. Yourgrau and S. Mandelstam. Variational principles in dynamics and
quantum theory. Pitman and Sons, London, England, 3rd edition, 1968.
[38] K. E. Zanganeh, R. Sinatra, and J. Angeles. Dynamics of a six-degree-
of-freedom parallel manipulator with revolute legs. In World Automation
Congress WAC’96, volume 3, Robotic and Manufacturing Systems, pages
817–822, Montpellier, France, 1996.
[39] H. Ziegler. Mechanics, volume 2. Addison-Wesley, Reading, MA, 1966.

37

Você também pode gostar