A_Multibody_Dynamics_Notation_Revision_2_
A_Multibody_Dynamics_Notation_Revision_2_
Document Version:
Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers)
General rights
Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners
and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights.
• Users may download and print one copy of any publication from the public portal for the purpose of private study or research.
• You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please
follow below link for the End User Agreement:
www.tue.nl/taverne
1
1 Introduction
This document provides a revision of the notation originally introduced in [20]
for describing kinematics and dynamics quantities of mechanical systems com-
posed by several rigid bodies. Relative to the first edition, this new version
includes an expanded section on frame acceleration (Section 5.4), the correction
of a few typos, and the change of the fonts used in the notation from single face
to bold face.
The notation detailed in this document is inspired by the well-known Feath-
erstone notation introduced in [7], also used, with small adaptations, in the
Handbook of Robotics [16]. Featherstone’s notation, while being extremely
compact and pleasant for the eye, is not fully in accordance with Lie group for-
malism, with the potential of creating a misunderstanding between the robotics
and geometric mechanics communities.
The Lie group formalism is well established in the robotics literature [13, 14,
10]. However, it is less compact than Featherstone’s notation [7], leading to long
expressions when several rigid bodies are present as in the case of a complete
dynamic model of humanoid or quadruped robots.
This report aims, therefore, at getting the best from these two worlds. The
notation strives to be compact, precise, and in harmony with Lie Group formal-
ism. The document furthermore introduces a flexible and unambiguous notation
to describe the Jacobians mapping generalized velocities of an arbitrary frame
to Cartesian linear and angular velocities, expressed with respect to a reference
frame of choice.
2
C
vA,B twist expressing the velocity of B w.r.t. to A written in C
C ∧
vA,B 4 × 4 matrix representation of C vA,B
C
vA,B × 6 × 6 matrix representation of the twist cross product
C
vA,B ׯ∗ 6 × 6 matrix representation of the dual cross product
C
aA,B acceleration of a frame B w.r.t. frame A, written in C
Bf coordinates of the wrench f w.r.t. B
B
AX wrench transformation from B to A
B
B f , vA,B duality pairing between a wrench and a twist
C
JA,B Jacobian relating the velocity of B w.r.t. A expressed in C
C
JA,B/F Jacobian relating the velocity of B w.r.t. A expressed in C,
where the moving-base velocity is expressed in F
L
B MB 6 × 6 inertia tensor of link L expressed w.r.t. frame B
L
B IB 3 × 3 inertia tensor of link L expressed w.r.t. frame B
3 Math preliminaries
3.1 Notation
The following notation is used throughout the document.
• The set of real numbers is denoted by R. Let u and v be two n-dimensional
column vectors of real numbers, i.e. u, v ∈ Rn , then their inner product
is denoted as uT v, with “T ” the transpose operator.
• The identity matrix of dimension n is denoted In ∈ Rn×n ; the zero column
vector of dimension n is denoted 0n ∈ Rn ; the zero matrix of dimension n×
m is denoted 0n×m ∈ Rn×m .
• The set SO(3) is the set of R3×3 orthogonal matrices with determinant
equal to one, namely
When endowed with the matrix commutator as operation, the set becomes
a Lie algebra.
• The set SE(3) is defined as
R p 4×4 3
SE(3) := ∈R | R ∈ SO(3), p ∈ R . (3)
01×3 1
3
• The set se(3) is defined as
Ω v 4×4 3
se(3) := ∈R | Ω ∈ so(3), v ∈ R . (4)
01×3 0
When endowed with the matrix commutator as operation, se(3) becomes
the Lie algebra of the Lie group SE(3).
• Given the vector w = (x; y; z) ∈ R3 , we define w∧ (read w hat) as the 3 × 3
skew-symmetric matrix
∧
x 0 −z y
w∧ = y := z 0 −x ∈ so(3). (5)
z −y x 0
• Similarly to what done for vectors in R3 few lines above, we define the vee
operator as the inverse of the hat operator such that
∧ ∨
ω v v
:= = v ∈ R6 . (8)
01×3 0 ω
4
and Df (x̄) · z should be interpreted as the vector [[Df (x̄)]][[z]] obtained by
multiplying the matrix [[Df (x̄)]] with the vector [[z]].
The power of the notation Df (x) · z lies on the fact that it can deal
with even more general maps such as those where the input and output
spaces are (normed) matrix vector spaces, such as E = Rn×m and F =
Rl×p equipped with the Frobenius norm. This is particularly useful when
dealing with maps such as a robot’s forward kinematics, where one deals
with maps of the form f : Rn → R4×4 representing the pose (position and
orientation) of each rigid link.
When E = E1 × E2 × · · · × Ep and consequently having f as a map
E 3 (x1 , x2 , . . . , xp ) 7→ f (x1 , . . . , xp ) ∈ F , we will use D1 f , D2 f , . . . , Dp f
to refer to the differential of f with respect to its first, second, . . . , p-th
argument. For further details on this derivative notation, we refer the
reader to [1, Section 2.3] and [18, Chapter 2].
5
4.2 Change of orientation frame
Given two frames A and B, we will employ the notation
A
RB ∈ SO(3) (11)
A d A
ṗ := p . (14)
dt
In particular, when p is the origin of a frame, e.g., p = oB , we have
A d A
ȯB = oB .
dt
It is important to note that, by itself, expressions like ȯB or ṗ have no meaning.
Similarly to (14), we also define
A d A
ṘB := RB (15)
dt
and
A A
A d A
ṘB ȯB
ḢB := HB = . (16)
dt 01×3 0
6
The relative velocity between a frame B with respect to a frame A can be
represented by the time derivative of the homogenous transformation matrix
A
HB ∈ SE(3). A more compact representation of A ḢB can be obtained by
multiplying it by the inverse of A HB on the left or on the right. In both cases,
the result is an element of se(3) that will be called a twist. Multiplying on the
left, one obtains
A T
RB −A RTB A oB A ṘB A ȯB
A −1 A
HB ḢB =
01×3 1 01×3 0
A T A A TA
RB ṘB RB ȯB
= . (17)
01×3 0
Note that A RTB A ṘB appearing on the right hand side of (17) is skew symmetric.
Define B vA,B and B ωA,B ∈ R3 so that
B
vA,B := A RTB A ȯB , (18)
B ∧
ωA,B := A RTB A ṘB . (19)
By construction,
B ∧
vA,B = A H−1
B
A
ḢB . (21)
Note the slight abuse of notation in using the hat operator ∧ in (19) and (21)
that maps a vector into its corresponding matrix representation (respectively,
from R3 to R3×3 using (5) in (19) and from R6 to R4×4 using (7) in (21)).
Similarly to what is done in (17), right multiplying A ḢB by the inverse of A HB
leads to
By construction,
A ∧
vA,B = A ḢB A H−1
B . (26)
7
5.1 Expressing a twist with respect to an arbitrary frame
Straightforward algebraic calculations allow to show that the right and left
trivialized velocities A vA,B and B vA,B are related via a linear transformation.
Inspired by the notation introduced in [7], we denote this linear transformation
with A XB and define it as
RB A o ∧
A A
A RB
XB := B
A ∈ R6×6 . (27)
03×3 RB
Lie group theory related notes. To draw a connection with Lie group
theory, indicating with g = gA,B := A HB ∈ SE(3) an arbitrary element of the
Special Euclidean group (i.e., a rigid transformation), A XB is nothing else than
Adg . Given g ∈ SE(3) and ξ ∈ se(3), then
The operator Ad : SE(3)×se(3) → se(3) is the adjoint action of the group SE(3)
∧
to its algebra se(3). Taking g = A HB and ξ = B vA,B , one sees immediately
that g ξ g −1 appearing in the right hand side of (29) equals
A ∧ A −1
HB B vA,B HB , (30)
B
which, recalling the definition of vA,B given in (21), is equivalent to
A
ḢB A H−1 A ∧
B = vA,B , (31)
by definition of A vA,B given in (26). The adjoint action of the group SE(3) to
its algebra se(3), given by (29), is linear with respect to its second argument.
It is therefore possible, when representing se(3) as a vector in R6 (as done in
(7)) to define the adjoint action (with a slight abuse of notation) as a map
Ad : SE(3) × R6 → R6 . In this way, for g = A HB , one gets with straightforward
computations that A vA,B = Adg B vA,B , with Adg = A XB given in (27).
Given the ubiquity of the velocity transformation AdgA,B (and its associate
wrench transformation Ad∗gA,B that we will introduce in Section 6) in multibody
dynamics computations, it is convenient to indicate it simply with the compact
notation A XB (respectively, B XA ). We stress here, however, the importance
to not forget its connection with Lie group theory: this can help, in particular,
to be able to understand the body of literature on geometric mechanics written
with the standard Ad notation.
8
and right trivialized velocities B vA,B and A vA,B , respectively given by (21) and
(26), are special cases of this concept. Formally, we define
C
v
C
vA,B = C A,B ∈ R6 (32)
ωA,B
as
C
vA,B := C XA A vA,B = C XB B vA,B . (33)
C
The latter equality follows from (28) and the identity XA A XB = C XB .
The linear component of the twists B vA,B and A vA,B requires, instead, a bit
more of attention. While B vA,B in (18) is the time derivative of A oB (the
coordinate vector of the origin of B with respect to the frame A) expressed in
the frame B, A vA,B is not the time derivative of A oB , but instead the (initially)
somehow counterintuitive expression given in (23). At each instant of time, the
linear velocity A vA,B is the linear velocity of the point, thought as fixed with
respect to frame B, that finds itself at the origin of frame A at the given instant
of time. The right trivialized velocity A vA,B is a key ingredient in understanding
the efficient numerical algorithms for multibody dynamics described, e.g., in
[7, 9, 14]. It also finds application in geometric mechanics when defining concepts
such as a mechanical symmetry or a momentum map [11, 2, 12].
There are situations in which, however, one would like to describe the linear
and angular velocity of a frame with the somehow natural velocities A ȯB and
A
ωA,B , respectively. With the notation introduced in this documents, this is
possible by introducing a special frame obtained combining the frames A and
B. Namely, one needs to express the velocity of frame B with respect frame A
in the new frame B[A] := (oB , [A]), that is, in the frame whose origin coincides
with the origin of B and whose orientation coincides with the orientation of A.
In this way, one gets
A B
RA A ȯB
A
B[A] RB 0 ȯB
vA,B = B[A] XB B vA,B = A B = A . (35)
0 RB ωA,B ωA,B
In [3], the velocity (35) is referred to as the hybrid velocity of frame B with
respect to frame A. To avoid confusion with hybrid systems theory, however,
in this document we will call (35) the mixed velocity of frame B with respect to
frame A (we call it mixed as it has both the flavor of a left trivialized velocity due
to the linear velocity part and of a right trivialized velocity due to the angular
velocity part).
9
5.3 The cross product on R6 (×)
B
The defining equation for the velocity vA,B given by (21) can be rewritten as
A ∧
ḢB = A HB B vA,B . (36)
Basic properties of the cross product. The cross product between vectors
of R6 that derives from (38) satisfies the classical anticommutative property
C
vA,B × C vD,E = − C vD,E × C vA,B . (39)
C
A direct consequence of the anticommutativity is that, for any vA,B ,
C C
vA,B × vA,B = 06×1 . (40)
Lie group theory related notes. For someone knowledgeable with the the-
ory of Lie groups, a deeper look at the cross product defined via (38) reveals
that this operation turns R6 into a Lie algebra (a vector space with a anticom-
mutative bilinear operation satisfying the Jacobi identity [11, Chapter 9]).
Indeed, (38) is nothing else then the matrix representation of the adjoint
action of R6 on itself, indicated with ad, once we interpret R6 as the Lie algebra
induced by the Lie algebra homeomorphism between R6 and se(3) provided by
the hat (∧ ) operator defined in (7). Defining g = A HB ∈ SE(3), then (37) can
be rewritten in the usual form (cf. [11, Chapter 9, equation (9.3.4)]) as
d
Adg = Adg adg−1 ġ , (42)
dt
where Adg = A XB , adg−1 ġ = A vA,B ×, and g −1 ġ = B vA,B
∧
. This standard Lie
group notation, employing Ad and ad is found in well-known robotic literature
such as, e.g., [8] and [14].
Finally, the distributive property (41) is equivalent to the identity (cf., e.g.,
[11, Chapter 9])
Adg adg−1 ġ = adAdg g−1 ġ Adg = adġg−1 Adg , (43)
10
5.4 Frame acceleration and acceleration vectors
Several definitions of frame accelerations are present in the robotic literature,
such conventional and spatial accelerations [6]. In [7], “coordinate free” (or
“absolute”) frame accelerations are introduced by only considering twists with
respect to an (implicitly defined) inertial frame. In our experience, this partic-
ular definition of acceleration is convenient in obtaining computational efficient
algorithms for multibody dynamics, but it is not natural for robot task specifi-
cation and closed-loop control, where it is common to use the classical concept
of linear acceleration as the derivative of the (inertial) coordinates of a point in
space.
In this section, we start defining the apparent acceleration of a frame B
with respect to a frame A seen and expressed in a frame C simply as the time-
derivative of the corresponding velocity C vA,B , that is
C d C
v̇A,B := vA,B . (44)
dt
Writing C vA,B as the product C XB B vA,B and using the time derivative
formula for a change of coordinates given by (37), one gets
C
v̇A,B = C XB B vC,B × B vA,B + B v̇A,B .
(45)
The equation above shows that, in general, C v̇A,B 6= C XB B v̇A,B . However, for
the special case C = A, one obtains the fundamental and at first-sight surprising
relationship between left and right trivialized accelerations given by
A
v̇A,B = A XB B v̇A,B . (46)
Due to this last equality, that does not involve any cross product, it is possible
to define the (intrinsic) acceleration of a frame B with respect to a frame A
expressed in a frame C as
C
aA,B := C XA A v̇A,B = C XB B v̇A,B . (47)
Component-wise, the intrinsic and apparent accelerations (47) and (44) are
written as
C C
C aA,B 6 C v̇A,B
aA,B = C ∈ R and v̇A,B = C ∈ R6 . (48)
αA,B ω̇A,B
Combining the above definitions and equalities and using the equality C vC,B ×
C
vA,B = (C vC,B + C vB,A ) × C vA,B = C vC,A × C vA,B , leads to the following
relationship between the intrinsic and apparent accelerations
C
aA,B = C v̇A,B + C vA,C × C vA,B , (49)
11
Note. For task specification, the following (mixed) apparent acceleration
B[A] A
B[A] v̇A,B öB
v̇A,B = B[A] = A . (52)
ω̇A,B ω̇A,B
is of common use in robotics, because the linear acceleration corresponds to the
Cartesian acceleration of the origin of B with respect to frame A. From (49),
this apparent acceleration can be expressed in terms of the intrinsic acceleration
as
B[A]
v̇A,B = B[A] aA,B − B[A] vA,B[A] × B[A] vA,B . (53)
Component-wise, (53) reads
B[A]
v̇A,B = B[A] aA,B − B[A] vA,B × B[A] ωA,B , (54)
B[A] B[A]
ω̇A,B = αA,B , (55)
B[A] B[A]
where we used ωA,B[A] = 0 and vA,B[A] = B[A] vA,B .
Lie group theory related note. The formula (45), relating the acceleration
with the apparent acceleration, is written in the standard notations of Lie groups
as
d ˙
(Adg ξ) = Adg (adg− 1ġ ξ + ξ), (56)
dt
and it is a well-known result (cf. [11, Proposition 9.3.8]).
Note how, in contrast to twists, just the coordinate frame with respect to which
the wrench f is expressed is indicated explicitly.
As for a twist, we can define a linear map to change the coordinates of a
wrench from a frame B to another frame A. This coordinate transformation is
denoted A XB , so that we have
Af = A XB B f . (58)
The mapping A XB is actually strictly connected to the transformation B XA
given in (27), and can be defined as
A A
B B T RB 03×3 RB 03×3
A X := XA = = A ∧A (59)
−A RB B o∧A
A
RB oB RB A RB
where, for the last equality, we made use of the identity A oB = −A RB B oA . The
definition (59) leads, in particular, to the expected coordinate independency of
power
B A
Bf, vA,B = Af , vA,B . (60)
In the above expression, f can be interpreted as a wrench applied to a rigid
body and expressed with respect to a frame B which is fixed with respect to
the body and A as the inertial frame.
12
6.1 The dual cross-product between a twist and a wrench
The time derivative of the wrench coordinate transformation A XB has a struc-
ture that resembles the velocity coordinate transformation A XB , given in (37).
Straightforward computations lead to the expression
A Ẋ
B ¯∗
= A XB B vA,B × (61)
¯∗
where × represents an operation between a twist and a wrench, that we call
¯ ∗ , whose matrix representation is
the dual cross-product and indicate with ×
B ∧
B ∗ ωA,B 03×3
¯
vA,B × := B ∧ ∧ . (62)
vA,B B ωA,B
Note how (62) can be obtained from (38) by simply transposing it and changing
its sign. This fact is actually encoded in the symbol × ¯ ∗ itself, in the sense
that the overline and the the star represent, respectively, the sign change and
transposition (more formally, its adjoint linear map, that is typically indicated
with a star).
The dual cross product (62) takes one twist and one wrench and returns
one wrench (as opposed to one twist from two twists as in the case of the cross
product (38)): this is also the reason why the sub- and superscripts in (61)
are also correct: when A ẊB is applied to a wrench B f expressed in B, the
dual cross product between B vA,B and B f will return a wrench expressed in B
that can then be converted into a wrench expressed in A via A XB . The dual
cross-product also satisfies the geometrically intuitive equality
AX
BB ¯ ∗ = A vA,B ×
vA,B × ¯ ∗ A XB . (63)
The result is straightforward to prove.
AX
B
= Ad∗g−1 (64)
13
7 Generalized inertia tensor
The 6 × 6 generalized inertia of a rigid body L (where L stands for link), when
expressed with respect to a frame C whose origin coincides with the body center
of mass is denoted C MLC and explicitly given by
L mL I3 03×3
C MC = 0 L , (67)
3×3 C IC
where
L B ∧B ∧
B IB = C RTB C IL C
C RB − mL oC oC . (69)
14
Let δH denote an infinitesimal perturbation of the pose of the moving base
(δH ∈ TH SE(3), in the language of differential geometry) and δs an infinitesimal
perturbation of the joint displacements. Then, the corresponding infinitesimal
perturbation of frame E can be computed as
A
δHE = A D1 HE (H, s) · δH + A D2 HE (H, s) · δs, (71)
where H is short for A HB and δH is short for A δHB . Let E ∆A,E and B ∆A,B ∈
R6 denote the trivialized infinitesimal perturbations
A −1 A
E
∆∧
A,E := HE δHE , (72)
∧
∆ = B
∆∧
A,B := A
H−1
B
A
δHB −1
=H δH. (73)
Combining (72) and (73) together with (71), note how E ∆A,E depends lin-
early on B ∆A,B and δs. Such a linear map defines the geometric Jacobian
for the (moving-base) multibody system and will be indicated with the symbol
E
JA,E/B ∈ R6×(6+nJ ) .
The subscript A, E/B appearing in E JA,E/B indicate that the Jacobian al-
lows to compute the infinitesimal perturbation of frame E relative to frame
A, based on the infinitesimal perturbation of the internal joint configuration
and that of the moving base, this latest perturbation being expressed with re-
spect to frame B. The superscript E appearing in E JA,E/B specifies that the
infinitesimal perturbation is expressed with respect to frame E.
The Jacobian is therefore obtained by means of two left-trivializations (one
in the output E ∆A,E and one in the input B ∆A,B ) and for this reason, we will
sometimes refer to E JA,E/B as the doubly left-trivialized geometric Jacobian
associated to the rigid transformation A HE = A HE (A HB , s). In formulas,
E E ∆
∆A,E = JA,E/B (H, s) , (74)
δs
with I and 0 denoting identity and zero matrix of indicated dimensions. For
the control of humanoid robots, it is common to express the moving-base and
end-effector frame twists in the mixed frames B[A] and E[A], respectively. The
associated geometric Jacobian E[A] JA,E/B[A] obtained from (75) when D = E[A]
and C = B[A] will be called the doubly mixed geometric Jacobian associated to
the rigid transformation A HE = A HE (A HB , s).
15
Geometric Jacobians for fixed-based systems. For fixed-base systems
such as robot manipulators, the configuration variable is simply q = s. In this
context, as there is no moving base, the geometric Jacobians is simply written
C
JA,B . One speaks then of a mixed Jacobian for B[A] JA,B and left-trivialized
Jacobian for B JA,B .
Ḣ = H(Xv)∧ (77)
ṡ = r (78)
with X = B XB[A] . More compactly, we will write both equations above with
a single equation1 as as q̇ = q(Yν)∧ where Y := B YB[A] = diag(B XB[A] , InJ )
is the combined twist-joint velocity transformation from mixed to body-fixed
velocity. For more details, cf. (76) in Section 8. The total equations of motion
for the moving-base multibody system are written as
q̇ = q(Yν)∧ , (79)
X
M(q)ν̇ + C(q, ν)ν + G(q) = S τ + JTk (q) fk (80)
k∈IC
where M the mass matrix, C the Coriolis matrix, G the potential force vector,
S := [06×nJ ; InJ ] the joint selection matrix 2 , τ the joint torques, IC the set of
closed contacts, fk := Ck [A] fk the k − th contact wrench, and
the geometric Jacobian (see Section 8 for details on the notation) associated to
the frame Li rigidly attached to the link i that is experiencing the k-th contact
and Ck denotes the contact frame3 where the contact interaction forces and
torques are expressed.
1 This notation is derived from Lie group theory, when considering the configuration mani-
fold Q = SE(3) × RnJ as the Lie group defined by the direct product of the groups SE(3) and
(RnJ , +).
2 The joint selection matrix (see, e.g., [5]) simply emphasizes the fact that moving-based
systems are typically underactuated, requiring establishing physical contact with the environ-
ment in order to fully control their posture.
3 Note that C is allowed to move with respect to the link frame L , at it happens, e.g., for
k i
a rolling contact. This is exactly the reason why one needs to use Ck [A] JA,Li /B[A] and not
Ck [A] J
A,Ck /B[A] as contact Jacobian.
16
On velocity parametrization. Note that M, C, G, J appearing in (80)
depend on the choice of the moving-base velocity: if we would have chosen,
e.g., B vA,B instead of B[A] vA,B as done above, this would have led to matri-
ces/vectors with different entries. It is possible to pass from one representation
to another by suitable left- and right-multiplication by means of a suitable gen-
eralized velocity transformation Y.
Lie group theory related note. In the robotics literature, the equations of
motions (80) are often referred to, with abuse of terminology, as forced Euler-
Lagrange equations. While, indeed, the variational principle and the Lagrangian
play a central role in obtaining the unforced equations
17
10 Acknowledgements
The authors would like to thank Martijn Bos and Marco Frigerio for valuable
feedback on this new version of the notation document.
Accelerations. Featherstone [7, 16] uses the dot notation (·) ˙ to indicate the
differentiation with respect to an implicitly defined inertial frame, and the ring
˚ to indicate the differentiation with respect to the frame in which
notation (·)
the quantity is expressed. As we do not implicitly assume the existence of
an absolute inertial frame, we just use the (·) ˙ to indicate the differentiation
in coordinates. Using this definition, it is easy to see that the body (spatial )
acceleration defined in Featherstone as
C
v̇B = C aB
18
is equivalent, in this report’s notation, to
C
aA,B = C XA A v̇A,B , (85)
where A is the inertial frame implicitly used in Featherstone’s, and C aA,B is the
(intrinsic) acceleration defined in (47). Note that from (46), using this report’s
notation, we get
B
v̇A,B = B XA A v̇A,B , (86)
that in Featherstone’s notation is written
B
v̊ B = B v̇B . (87)
Adjoint transformations. The adjoint transform that maps a motion vector
expressed in a frame B in one expressed in a frame C is indicated in this report
as C XB . This notation is directly take from Featherstone’s, where it is indi-
cated with C XB . However, the transformation matrix for a 6D force vector is
∗
indicated with C XB in Featherstone’s, while in this report’s we use C XB . The
main reasons behind this choice are: a) the star is typically used to indicate
the adjoint (in the sense of adjoint linear transformation in linear algebra) and
indeed, in this report’s notation we get C XB = B X∗C , which is not the case in
Featherstone’s; b) C XB maps wrenches into wrenches while B XC maps twists
into twist and we use a right superscript to indicate a twist and a right subscript
to indicate a wrench.
19
A.2 Siciliano’s notation
In this section, we compare this report’s notation the notation used in the
classical book of Siciliano et al. [17].
Homogenous transformation. In [17], the homogeneous transformation that
maps the coordinates of a point from a frame A to a frame B is indicated with
A
oA
A RB B
TB = . (88)
03×1 1
Comparing it with (35), indicating with A the inertial frame implicitly assumed
by the Siciliano notation, we have
This report Siciliano et al. [17]
B[A]
vA,B vB
A
ȯB ṗB
A
ωA,B ωB
20
Velocity of a frame. In [19, Section 4.6], the velocity of a frame B w.r.t. to
a inertial frame A is denoted
A A
A v ȯ
ξB = BA = BA . (91)
ωB ωB
Velocity of a frame. In [13, Equation 2.53, Section 4.2], the so-called spatial
velocity of a frame B with respect to a frame A is defined as
s T
s vab −Ṙab Rab pab pab + ṗab
V̂ab = s = T ∨ . (93)
ωab (Ṙab Rab )
Comparing it with (23), it is clear that this is equivalent to what in this report
is referred as right trivialized velocity A vA,B .
Similarly, in [13, Equation 2.55, Section 4.2], the body velocity of a frame B
with respect to a frame A is defined as
T
b
b v Rab ṗab
V̂ab = ab = . (94)
b
ωab T
(Rab Ṙab )∨
Comparing it with (23), we see that this is equivalent to what in this report is
referred as the left trivialized velocity B vA,B .
The overall comparison of velocities between this report and [13] is given in
the following table:
21
This report Murray et al. [13]
A s
vA,B V̂ab
A s
vA,B vab
A a
ωA,B ωab
B b
vA,B V̂ab
B b
vA,B vab
B b
ωA,B ωab
References
[1] R. Abraham, J.E. Marsden, and T. Ratiu. Manifolds, tensor analysis, and
applications, volume 75. Springer Science & Business Media, 2012.
[2] A.M. Bloch. Nonholonomic mechanics and control, volume 24. Springer
Science & Business Media, 2003.
[3] H. Bruyninckx and J. De Schutter. Symbolic differentiation of the velocity
mapping for a serial kinematic chain. Mechanism and machine theory,
31(2):135–148, 1996.
[4] T. De Laet, S. Bellens, R. Smits, E. Aertbeliën, H. Bruyninckx, and
J. De Schutter. Geometric relations between rigid bodies (part 1): Se-
mantics for standardization. Robotics & Automation Magazine, IEEE,
20(1):84–93, 2013.
[5] A. Del Prete, N. Mansard, F. Nori, G. Metta, and L. Natale. Partial force
control of constrained floating-base robots. In IEEE/RSJ International
Conference on Intelligent Robots and Systems (IROS 2014), pages 3227–
3232. IEEE, 2014.
[10] J. Kim. Lie group formulation of articulated rigid body dynamics. Technical
report, Carnagie Mellon University, School of Computer Science, 2012.
[11] J.E. Marsden and T. Ratiu. Introduction to mechanics and symmetry:
a basic exposition of classical mechanical systems. Springer, 2nd edition,
1999.
[12] J.E. Marsden and J. Scheurle. Lagrangian reduction and the double spher-
ical pendulum. Zeitschrift für angewandte Mathematik und Physik ZAMP,
44(1):17–43, 1993.
22
[13] R.M. Murray, Z. Li, and S.S. Sastry. A mathematical introduction to robotic
manipulation. CRC press, 1994.
[14] F.C. Park, J.E. Bobrow, and S.R. Ploen. A lie group formulation of robot
dynamics. The International Journal of Robotics Research, 14(6):609–618,
1995.
[15] A. Saccon, S. Traversaro, F. Nori, and H. Nijmeijer. On centroidal dy-
namics and integrability of average angular velocity. IEEE Robotics and
Automation Letters, 2(2):943–950, 2017.
[16] B. Siciliano and O. Khatib. Springer handbook of robotics. Springer, 2008.
[17] B. Siciliano, L. Sciavicco, L. Villani, and G. Oriolo. Robotics: modelling,
planning and control. Springer, 2009.
23