IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

1

Newton–Euler equations in general coordinates

By Bertold Bongardt and Frank Kirchner Robotics Innovation Center, DFKI GmbH, Bremen, Germany

Abstract

For the computation of rigid body dynamics, the Newton–Euler equations represent a crucial relation unifying the laws of motion by Newton and Euler using the language of instantaneous screws. Typically, Newton–Euler equations are stated in spatial or in body coordinates, respectively. In this paper, a general formulation of Newton–Euler equations is provided for arbitrary reference systems. In particular, the general form uniﬁes the known equations in spatial and body coordinates. To the best of the authors’ knowledge, this relation between the spatial and the body form has not been reported in literature. The novel formulation is based on the concept of time diﬀerentiation with respect to moving reference systems.

1. Introduction Newton’s second law of motion states that the force f which acts upon a translating particle, a zero-dimensional body, is proportional to the time derivative of the particle’s linear momentum h = m · v with mass m and velocity v, all measured in an inertial sys- tem. In Euler’s formulation (Oliveira, 2007), this is expressed in the diﬀerential equation d d d f = dt (h) = dt (M · v) = M · dt (v) = M · a . (1.1) d Here, a = dt (v) denote the the acceleration vector and the mass matrix M = m · I with identity matrix I = I 3 is introduced for sake of formal consistency with Euler’s second law of motion, below. Euler’s second law of motion states that the torque τ which acts upon a rotating body is proportional to the time derivative of the body’s

angular momentum λ = M3 · ω with inertia matrix M3 and pseudovector ω denoting the body’s angular velocity, all measured in an inertial system. This is expressed in the diﬀerential equation d d d d τ = dt (λ) = dt (M3 · ω) = dt (M3) · ω + M3 · dt (ω) . (1.2) d d The angular acceleration is denoted by α = dt (ω). The derivative dt (M3) is given within the appendix. While the mass in Newton’s law is assumed to be a ‘universal’ quantity (Ardema, 2005), the inertia of the moving body changes with respect to the inertial system, so that the chain rule is applied in the diﬀerentiation of Euler’s law. In this paper, the Newton–Euler equations – that subsume Equations 1.1 and 1.2 by means of twists and wrenches – are formulated with respect to an arbitrary reference system. The remainder of the paper is structured as follows: necessary quantities and their notation are introduced in the next section. In Section 3, the generalized formulation of the Newton–Euler equations is given and interrelations to corresponding formulations in spatial and in body coordinates are discussed. In Section 4, a conclusion is drawn. Technical computations of time derivatives are compiled in Appendix A. IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

Newton–Euler equations in general coordinates 2 2. Prerequisites 2.1. Poses and displacements

4×4 EP p A pose matrix P ∈ R has the form P = 0 1 with attitude EP ∈ SO(3) and 3 (t) position p ∈ R . A trajectory is a sorted set of poses P with t > 0. A displacement 4×4 R t matrix D ∈ R has the shape D = 0 1 with rotation R ∈ SO(3) and translation 3 −1 t ∈ R . The matrix D = DPQ = P · Q describes the passive displacement between two Ad 6×6 poses P ∈ SE(3) and Q ∈ SE(3). The adjoint representation D = Ad(D) ∈ R of Ad R 0 D has the shape D = t × RR .

2.2. Screws, twists, and wrenches 6 ν Geometric screws. A screw ξ ∈ R is denoted in Pl¨ucker coordinates as ξ = µ sub- suming the direction ν and the moment µ. The matrix representation† of a screw ξ is ⊗ 0 −ν +ν ⊗ 4×4 ⊗ ν µ 3 2 ⊗ +ν 0 −ν denoted by ξ ∈ R and has the shape ξ = 0 0 with ν = 3 1 . The −ν2 +ν1 0 ad 6×6 adjoint representation of a screw ξ is denoted by ξ = ad(ξ) ∈ R and has the shape ⊗ ad ν 0 ν ~ 3 3 ξ = µ⊗ ν⊗ . For a screw ξ = µ , the screw vector ﬁeld ξ : R → R is evaluated ~ at any point P with coordinates p to the moment µP = ξ p given as ξ~ : p 7→ µ + ν × p . The vector ﬁeld ξ~ is characterized by the constitutive equation (Minguzzi, 2013) ξ~p − ξ~q = ν × (p − q) , (2.1) for arbitrary points P and Q with coordinates p and q. The interchange operator 4 ∈ 6×6 0 I R is deﬁned as 4 = I 0 according to Hunt, 2003, and McCarthy and Soh, 2010. Physical Screws. Twists and wrenches are geometric screws which are equipped with physical interpretations (and units) as screws from the force and and from the velocity domain, respectively. Both are denoted in ray-coordinates in accordance with (Phillips, 2007), (Tsai, 1999), (Mason, 2001), (Davidson et al., 2004), and (McCarthy and Soh, f 2010). A wrench is denoted by W = τ , subsuming force f and torque τ , and a twist ω is denoted by V = v , subsuming angular and linear velocity, ω and v. ~ ω For the vector ﬁeld V of a twist V = v , Equation 2.1 is casted into the ‘velocity- ~ ~ diﬀerence equation’‡ (Uicker et al., 2003), given, with vP =V p and vQ =V q , as

vP − vQ = ω × (p − q) . (2.2)

f Analogously, the constitutive equation of a wrench W = τ , is the ‘torque-diﬀerence ~ ~ ~ equation’ of the vector ﬁeld W , given, with τP = W p and τQ = W q , as

τP − τQ = f × (p − q) . (2.3)

2.3. Attributing quantities For the remainder of the document, a notation is introduced to specify the reference system P and, if necessary, the evaluation point X of a quantity. The reference system

of a quantity • is denoted as [•]P according to Sathaye, 2011. In addition, the evaluation † The matrix representation is also called a ‘Ball vector’, see Uicker et al., 2013. ‡ The velocity-diﬀerence equation is also named the ‘fundamental formula of the rigid body’ in Minguzzi, 2013. IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

PREREQUISITES 3 point X of a quantity • is optionally† denoted as [•]X . Together, a quantity • is speciﬁed X by an evaluation point X and a reference system P as [•]P . Reference systems. For arbitrary reference systems, P ∈ SE(3) and Q ∈ SE(3), the x 4 homogenized coordinates 1 ∈ R of a point X are characterized with the ‘fundamental identity’ by Sathaye, 2011 as x = x = I · x = P · x = Q · x . (2.4) 1 1 O 1 O 1 P 1 Q Similarly, the identity is stated for the representing matrices of a pose X ∈ SE(3) as X = X = I · X = P · X = Q · X . (2.5) O O P Q From the previous identities, the transformation rules for a coordinate change are de- −1 duced; for a pose matrix X, for example, as [X]P = P · Q · [X]Q = DPQ · [X]Q, and x analogously, for the homogenized coordinates 1 of a point. Evaluation points. The evaluation of the screw vector ﬁelds ξ~, V~ , and W~ , which are speciﬁed by the diﬀerence Equations 2.1, 2.2, and 2.3, read with the introduced notation P ~ P ~ P ~ as [µ]O = µP = ξ p ,[v]O = vP = V p , and [τ ]O = τ P = W p . The fundamental identities for a screw, corresponding to Equations 2.4 and 2.5, are ⊗ ν given for its matrix representation ξ , its Pl¨ucker vector ξ = µ , and its adjoint repre- sentation ξad as ξ⊗ = ξ⊗O = I · ξ⊗O · I −1 = P · ξ⊗P · P −1 = Q · ξ⊗Q · Q−1 , (2.6) O O P Q ξ = ξO = I Ad · ξO = P Ad · ξP = QAd · ξQ , (2.7) O O P Q ξad = ξadO = P Ad · ξadP · (P −1)Ad = QAd · ξadQ · (Q−1)Ad . (2.8) O P Q From these identities, transformation rules for a change of reference system and eval- uation point can be deduced. As an example, the matrix twist ξ⊗P with respect to P the reference P , is obtained from the matrix twist ξ⊗Q with respect to the reference Q ⊗ P ⊗ Q −1 PQ Q as [ξ ]P = DPQ · [ξ ]Q · DPQ. With the convention [D]PQ = DPQ, the notation of the transformation rule can be reﬁned for two speciﬁc cases. For coinciding evaluation R 0 QQ points, the matrix D = ( 0 1 ) is denoted as [D]PQ = D, so that the transformation ⊗ Q QQ ⊗ Q QQ −1 reads [ξ ]P = [D]PQ · [ξ ]Q · ([D]PQ ) . Similarly, for coinciding attitudes, the displace- I t PQ ment matrix D = ( 0 1 ) is denoted as [D]QQ = D, so that the transformation reads ⊗ P PQ ⊗ Q PQ −1 [ξ ]Q = [D]QQ · [ξ ]Q · ([D]QQ) . at Motion laws. By means of the notation [•]ref, Newton’s law of motion from Equation 1.1, P d P is rephrased as [f]O = M · [ dt (v)]O where P denotes the position of the particle. Euler’s C d C C d law of motion from Equation 1.2 is rephrased as [τ ]O = [ dt M3]O ·ω +[M3]O · dt (ω) where C denotes the center of mass and O is chosen coincident to C. Thus, the notation proves helpful to emphasize the feasibility constraints that underlie these two motion laws.

2.4. Mass and inertia The coordinates of the center of mass C of a body B, speciﬁed by mass m and mass 1 R density function ρ, are computed as c = m · V ρ(v) · v dV . The rotative inertia matrix C 3×3 [M3]C ∈ R is computed as Z C ⊗ 2 M3 = ρC v · −(v ) dV . C V † If the evaluation point coincides with the origin of the reference system, it can be omitted. IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

Newton–Euler equations in general coordinates 4

Figure 1. Sketch of a moving body B, together with a moving reference system P and the (t) (t) inertial system O. For simpliﬁcation, the orientations EP and EE are assumed to be constant over time t. The absolute velocities, vOB of body B and vOP of observer P , are indicate by red

and green arrows. The relative velocity vPB is computed as the diﬀerence vPB = −vOP + vOB and is indicated by blue arrows.

X For an arbitrary evaluation point X, the rotative inertia matrix [M3]C is determined by the Huygens–Steiner theorem, also known as the parallel axis theorem (Selig, 2005). With respect to an arbitrary reference system E ∈ SO(3), the rotative inertia matrix X X X −1 [M3]E is computed as [M3]E = REC · [M3]C · REC . 6×6 3×3 The aﬃne inertia matrix M6 ∈ R subsumes the rotative inertia M3 ∈ R and C the translative mass M = m·I. At the center of mass C, the aﬃne matrix [M6]C has the C [M ]C 0 shape M = 3 C . With respect to an arbitrary reference system P ∈ SE(3), 6 C 0 M P the spatial inertia matrix [M6]P is computed via the skew axis theorem (Selig, 2005)

P Ad −T C Ad −1 M = (D ) · M6 · (D ) , (2.9) 6 P PC C PC a generalized version of the Huygens–Steiner theorem. As in Section 2.3, reﬁned state- ments can be made in case of coinciding evaluation points or reference attitudes. In case I t R 0 that D only changes the evaluation point, D = ( 0 1 ), or the reference system D = ( 0 1 ), PC PP the formulation can be reﬁned by denoting D as D = [D]CC , or as D = [D]PC , respec- Ad −T tively. By means of the screw swap operator 4 the ﬁrst factor (DPC ) in Equation 2.9 Ad −T Ad is alternately expressed as (DPC ) = 4 · (DPC ) · 4. The fundamental identity for the aﬃne inertia matrices reads

O Ad −T P Ad −1 Ad −T Q Ad −1 M6 = M6 = (P ) · M6 · (P ) = (Q ) · M6 · (Q ) . (2.10) O P Q As above, the identities can be adopted for pure rotations (with coinciding evaluation points) and for pure translations (with coinciding reference attitudes).

2.5. Time derivatives with respect to a mobile reference The concept of time derivatives with respect to mobile reference systems is, for exam- ple, introduced by Featherstone, 2008. The time derivative of a moving point X with x x (t) homogeneous coordinates 1 = 1 is determined with respect to a moving reference system P with matrix P = P (t) as d x = P −1 · d x = P −1 · d x = P −1 · d P · x dt 1 P dt 1 O dt 1 O dt 1 P = P −1 · d (P ) · x + P · d x (2.11) dt 1 P dt 1 P = d x + V ⊗ · x . dt 1 P P P 1 P

d x d x ⊗ x In a physical interpretation, the three terms dt [ 1 ]P ,[ dt 1 ]P , and [V P · 1 ]P describe the relative velocity of X with respect to P , the absolute velocity of X with respect to O, and the absolute velocity of P with respect to O and evaluated at X; IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

A GENERAL FORMULATION 5 all expressed in coordinates with respect to the reference system P . By introducing X ∼ d x X X ∼ d x X X ∼ ⊗ x [vPX ]P = dt [ 1 ]P ,[vOX ]P = [vX ]P = [ dt 1 ]P , and [vOP ]P = [vP ]P = [V P · 1 ]P , Equation 2.11 is rephrased as X X X X X X vOX = vPX + vOP and vPX = vOX − vOP , (2.12) P P P P P P resembling the forms ‘absolute velocity = relative velocity + observer velocity’ and ‘relative velocity = absolute velocity − observer velocity’. In Figure 1, a sketch for an example setup is provided (where the point x of the body B is named b). Similar to Equation 2.4, a diﬀerential, fundamental identity can be stated as d x = d x = I · d x = P · d x = Q · d x . (2.13) dt 1 dt 1 O dt 1 O dt 1 P dt 1 Q d d d A term [ dt (•)]P describes the same ‘global’ derivative as dt (•) = dt [(•)]O , in coordinates d with respect to reference system P . In contrast, dt [•]P describes a ‘local’ derivative. The corresponding derivatives of poses, screws, and inertias are provided in Appendix A.2.

3. A general formulation 3.1. Newton–Euler equations in general coordinates The Newton–Euler equations in general coordinates state that the wrench W which acts upon a moving body at a point X ﬁxed in the lamina of the non-inertial reference

system P is proportional to the time derivative of the body’s momentum 4·M6 ·V , both expressed with respect to the reference P . This is expressed by the diﬀerential equation

X X h i h d i W = dt 4 · M6 · V . (3.1) P P The equation is stated in more detail as

X X X X h i d h i h adi h i W = dt 4 · M6 · V + V P · 4 · M6 · V , (3.2) P P P P by applying the transformations

X X h d i −1 Ad d h i −1 Ad d Ad X 4 · M6 · V = (P ) · 4 · M6 · V = (P ) · P · 4 · M6 · V dt dt dt P P O

−1 Ad d Ad X Ad d X = (P ) · P · 4 · M6 · V + P · 4 · M6 · V dt P dt P

d X −1 Ad ad Ad X = 4 · M6 · V + (P ) · (V · P ) · 4 · M6 · V dt P P P d X adX X = 4 · M6 · V + V · 4 · M6 · V , dt P P P P d Ad ad Ad using Equation 2.7, the chain rule, expansion, sorting, the identity dt P = V · P from Equation A 2, and Equation 2.8. 3.2. Evaluation Spatial coordinates. With respect to the static reference frame O, the second summand X d X of Equation 3.2 vanishes, so that Equation 3.2 simpliﬁes to W = 4 · M6 · V . P dt P Applying the chain rule, the equation is further evaluated to h iX h iX h ωiX h iX h ωiX W = 4 · M · d + d 4 · M · 6 dt v dt 6 v O O O O O (3.3) h iX h αiX ωadT h iX h ωiX = 4 · M6 · + − · 4 · M6 · . O a O v O v O Here, the time derivative of the spatial inertia matrix, d M X = (− ω ad)T · M X + dt 6 O v 6 O M X · − ω ad from Equation A 3 in the appendix is used together with the identity 6 O v IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

Newton–Euler equations in general coordinates 6 ω ad ω v · v = 0. For the case that the evaluation point X coincides with the center of mass C, Equation 3.3 covers

h iC h iC C h iC C C C τ [M3]O 0 α [ω]O × [M3]O · [ω]O 0 4 · W = = 0 M · + 0 [ω]C × M · [v]C . O f O a O O O The equations are stated in this form, for example, by Featherstone, 2008. Body coordinates. With respect to a reference system B moving together with the body, the ﬁrst summand d 4 · M · V X of Equation 3.2 is simpliﬁed by using the time dt 6 P d ω X X d ω X X invariance of the body inertia, 4 · M6 · = 4 · M6 · = 4 · M6 · dt v B B dt v B B α X . Thus, Equation 3.2 simpliﬁes to a B

X X X ad T X X X h i h i h αi h ωB i h i h ωi W = 4 · M6 · + − · 4 · M6 · . (3.4) B B a B vB B B v B For the case that the evaluation point X coincides with the center of mass C, Equation 3.4 covers h iC h iC C h iC C C C τ [M3]B 0 α [ω]B × [M3]B · [ω]B 0 4 · W = = 0 M · + 0 [ω]C × M · [v]C . B f B a B B B The Newton–Euler equations are stated in this form, for example, by Murray et al., 1994, and by Fossen, 2011. General coordinates. For the case of an arbitrarily moving reference frame P , the general Newton–Euler equations of Equation 3.2 read in components

X X ad X X h f i d h ωi h ωP i h ωi = dt 4 · M6 · + · 4 · M6 · . (3.5) τ P v P vP P v P

X X The twist [V ]P in last factor [4 · M6 · V ]P is determined according to the identity in X Equation 2.7, the inertia matrix [M6]P according to the identity Equation 2.10. The ﬁrst summand d [4 · M · V ]X is expanded to 4 · ( d [M ]X · [V ]X + [M ]X · d V X ). The dt 6 P dt 6 P P 6 P dt P d X d X twist derivative dt [V ]P is determined via Equation A 4, the inertia derivative dt [M6]P is determined via Equation A 5. f X d Similar to the physical interpretation of Equation 2.12, the terms [ τ ]P , dt [4 · M6 · ad ω X ωP ω X v ]P , and [ vP · 4 · M6 · v ]P in Equation 3.5 can be characterized by the form ‘absolute wrench = relative wrench + observer wrench’. In the language of screws, the sum resembles the diﬀerence between real and apparent forces which are distinguished for non-inertial reference systems.

4. Conclusions This paper provides a general formulation of the Newton–Euler equations obtained by diﬀerentiation with respect to non-inertial reference systems and by using a suitable notation scheme. The general equations unify the known formulations in spatial and in body coordinates and clarify their interrelation. The derived connection can simplify communicating mechanics of rigid bodies. Additionally, the novel formulation of the Newton–Euler equations might prove applicable to questions arising in computational rigid body mechanics with regard to moving reference frames. In robotics, for example, mobile reference systems are of interest when the interaction of a robot’s end-eﬀector link with the robot’s environment is required to be described from the point of view of another moving link of the mechanical device.

Acknowledgments. The work presented in this paper was funded by the Federal Ministry of Education and Research (BMBF) within the project Recupera (Grant 01-IM-14006A). IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

APPENDIX 7 Appendix A. Time derivatives A.1. Spatial time derivatives Attitudes and poses. The time derivatives with respect to the inertial reference system O related to an attitude matrix E = E(t) ∈ SO(3) are d E = d E−T = ω⊗ · E = (−ω⊗)T · E−T dt dt (A 1) d T d −1 T ⊗ T −1 ⊗ dt E = dt E = E · (ω ) = E · (−ω ) . The time derivatives relative to the inertial reference system O related to the adjoint representation P Ad = Ad(P ) of a pose matrix P = P (t) ∈ SE(3) are d P Ad = V ad · P Ad d (P Ad)−1 = (P Ad)−1 · (−V ad) dt dt (A 2) d Ad T Ad T ad T d Ad −T ad T Ad −T dt (P ) = (P ) · (V ) dt (P ) = (−V ) · (P ) .

Ad −1 d Ad Ad −1 ad Ad Ad −1 ad The ﬁrst equation is extended to (P ) · dt P = (P ) ·V ·P = (P ) ·V , T d T ⊗ T ⊗ a formula which generalizes the ‘rotational’ identity E · dt (E) = E ·ω ·E = (E ·ω) .

Twists. The time derivative of a twist V with respect to the inertial reference system O α d ω d is denoted by A = a = dt v = dt (V ).

Inertia matrices. The time derivative of spatial inertia matrix M6 with respect to the inertial reference system O is

d d O d O ad T O O ad (M6) = M6 = M6 = −(V ) · M6 − M6 · V . (A 3) dt dt O dt O O O The equation is obtained by the transformations (using Equation 2.10, the chain rule, and identities from Equation A 2)

d d O d O d Ad −T B Ad −1 (M ) = M = M = (D ) · M6 · (D ) dt 6 dt 6 O dt 6 O dt OB B OB d Ad −T B Ad −1 Ad −T B d Ad −1 = (D ) · M6 · (D ) + 0 + (D ) · M6 · (D ) dt OB B OB OB B dt OB ad T Ad −T B Ad −1 Ad −T B Ad −1 ad = (−V ) · (D ) · M6 · (D ) + (D ) · M6 · (D ) · (−V ) OB OB B OB OB B OB OB = −(V ad )T · M B − M B · V ad . OB 6 B 6 B OB A.2. General time derivatives Poses. The time derivative of a pose matrix X = X (t) with respect to a mobile reference system P with matrices P = P (t) is obtained in analogy to Equation 2.11 as d X = P −1 · d X = P −1 · d X = P −1 · d P · X dt P dt O dt O dt P = P −1 · d (P ) · X + P · d X dt P dt P = d X + V ⊗ · X . dt P P P P In the ﬁrst line, the ‘fundamental identity’ Equation 2.5 is applied twice. In addition, the invariance of the inertial system is used. Next, the chain rule is applied. In the third line, the expression is expanded, simpliﬁed by using P −1 · d (P ) = V ⊗ , and sorted. dt P P The computation principle remains in the following derivations. Screws. The time derivative of a screw matrix ξ⊗ = (ξ⊗)(t) with respect to a mobile reference system P with matrices P = P (t) is computed as d ξ⊗ = P −1 · d ξ⊗ · P = P −1 · d ξ⊗ · P = P −1 · d P · ξ⊗ · P −1 · P dt P dt O dt O dt P = d ξ⊗P + P −1 · d (P ) · ξ⊗ + ξ⊗ · d (P −1) · P dt P dt P P dt = d ξ⊗P + V ⊗ · ξ⊗P − ξ⊗P · V ⊗ . dt P P P P P P P IMA Conference on Mathematics of Robotics 9 – 11 September 2015, St Anne’s College, University of Oxford

Newton–Euler equations in general coordinates 8 The fundamental identity of Equation 2.6 is applied in the ﬁrst line. For the simpliﬁcation, the identity d (P −1) · P = (−P −1 · d (P ) · P −1) · P = −P −1 · d (P ) = −V ⊗ is used. dt dt dt P P In Pl¨ucker coordinates, the corresponding expression reads d ξP = d ξP + V ad · ξP . (A 4) dt P dt P P P P

(t) Inertia matrices. The time derivative of an inertia matrix M6 = M6 with respect to a mobile reference system P with matrices P = P (t) is

d P d P ad T P P ad M6 = M6 − ( V ) · M6 − M6 · V (A 5) dt P dt P P P P P P P The equation is obtained with the identity Equation 2.10 as d M P = (P Ad)T · d M O · P Ad = (P Ad)T · d (P Ad)−T · M P · (P Ad)−1 · P Ad dt 6 P dt 6 O dt 6 P d P Ad T d Ad −T P P d Ad −1 Ad = M6 + (P ) · (P ) · M6 + M6 · (P ) · P dt P dt P P dt d P ad T P P ad = M6 − ( V ) · M6 − M6 · V . dt P P P P P P P In the last transformation, the simpliﬁcations, with ⊕ inverse to ⊗, so that ξ⊗⊕ = ξ, d (P Ad)−1 · P Ad = (P Ad)−1 · (−V ad) · P Ad = −(P )−1 · (V ⊗) · P ⊕ad = −V ad dt P P P P (P Ad)T · d (P Ad)−T =(P Ad)T (−V ad)T (P Ad)−T =−(P Ad)−1 ·V ad ·P AdT =−(V ad )T dt P P P P are used. They are derived by means of the identities given in Equation A 2.

REFERENCES Ardema, M. (2005). Newton-Euler Dynamics. Springer. Davidson, J. K., Hunt, K. H., and Pennock, G. R. (2004). Robots and Screw Theory: Applications of Kinematics and Statics to Robotics. Oxford University Press. Featherstone, R. (2008). Rigid Body Dynamics Algorithms. Springer. Fossen, T. I. (2011). Handbook of Marine Craft Hydrodynamics and Motion Control. John Wiley & Sons. Hunt, K. H. (2003). Don’t Cross-Thread the Screw! Journal of Robotic Systems, 20(7). Mason, M. T. (2001). Mechanics of Robotic Manipulation. MIT Press. McCarthy, J. M. and Soh, G. S. (2010). Geometric Design of Linkages. Springer. Minguzzi, E. (2013). A geometrical introduction to screw theory. European Journal of Physics, 34(613). Murray, R. M., Li, Z., and Sastry, S. S. (1994). A Mathematical Introduction to Robotic Manip- ulation. CRC Press. Oliveira, A. R. E. (2007). Euler’s Contribution to Classical Mechanics. In 12th IFToMM World Congress. Phillips, J. (2007). Freedom in Machinery: Volume 1 (1984) and Volume 2 (1990). Cambridge University Press. Sathaye, A. (2011). Notes on Similarity. Lecture Notes, MA322. Selig, J. M. (2005). Geometric Fundamentals of Robotics. Springer. Tsai, L.-W. (1999). Robot Analysis: The Mechanics of Serial and Parallel Manipulators. John Wiley & Sons. Uicker, J. J., Pennock, G. R., and Shigley, J. E. (2003). Theory of Machines and Mechanisms. Oxford University Press. Uicker, J. J., Ravani, B., and Sheth, P. N. (2013). Matrix Methods in the Design Analysis of Mechanisms and Multibody Systems. Cambridge University Press.