An Explicit Formulation of Singularity-Free Dynamic Equations of Mechanical Systems in Lagrangian Form Part one : Single Rigid Bodies

This paper presents the explicit dynamic equations of a mechanical system. The equations are presented so that they can easily be implemented in a simulation software or controller environment and are also well suited for system and controller analysis. The dynamics of a general mechanical system consisting of one or more rigid bodies can be derived from the Lagrangian. We can then use several well known properties of Lie groups to guarantee that these equations are well de ned. This will, however, often lead to rather abstract formulation of the dynamic equations that cannot be implemented in a simulation software directly. In this paper we close this gap and show what the explicit dynamic equations look like. These equations can then be implemented directly in a simulation software and no background knowledge on Lie theory and di erential geometry on the practitioner's side is required. This is the rst of two papers on this topic. In this paper we derive the dynamics for single rigid bodies, while in the second part we study multibody systems. In addition to making the equations more accessible to practitioners, a motivation behind the papers is to correct a few errors commonly found in literature. For the rst time, we show the detailed derivations and how to arrive at the correct set of equations. We also show through some simple examples that these correspond with the classical formulations found from Lagrange's equations. The dynamics is derived from the Boltzmann Hamel equations of motion in terms of local position and velocity variables and the mapping to the corresponding quasi-velocities. Finally we present a new theorem which states that the Boltzmann Hamel formulation of the dynamics is valid for all transformations with a Lie group topology. This has previously only been indicated through examples, but here we also present the formal proof.


Introduction
There are many motivations for deriving the explicit dynamic equations of mechanical systems.Firstly, the equations are needed for system and controller analysis.This analysis can to some extent be based on an abstract formulation of the dynamics, for example by writing the configuration space in terms of abstract Lie groups.For a complete analysis, however, the explicit dynamics is required.This is for example the case when representation or implementation issues affect the stability of the mechanical system.
Secondly, the dynamics is important in simulations and controller implementation.In this case it is of vital importance that the obtained equations reproduce the actual behavior of the real system as closely as possible.In this case we need the dynamics written explicitly in closed or recursive form.One major concern in this setting is to obtain a set of equations without the presence of representation singularities, which may arise when transforming an abstract formulation into the explicit dynamic equations.In an abstract formulation of the dynamics the representation singularities are not present simply because the representation, i.e., the choice of coordinates, have not yet been made.This is important to keep in mind when choosing the state variables of the system.
We see that singularities may appear in the dynamics if an unfortunate set of variables is chosen to represent the state space.Examples of systems that often suffer from singularities are ships and marine vehicles, spacecraft and aircraft, robotic manipulators, and so on.It is, however, well known that if an appropriate set of state variables is used to represent the state space of the system, the singularities are avoided.The most common way to do this is to use the quaternion representation to represent orientation or to represent the state space as the tangent bundle, i.e., the position as an element of the Lie group and the velocity variables as an element of the tangent space transformed by an action of the Lie group, i.e., an element of the Lie algebra.
The quaternion representation is a popular representation because we obtain a global representation of the attitude by using four variables to represent orientation instead of the minimal representation with three variables (From et al., 2010).Quaternions are therefore both appropriate and a popular choice for representing the rigid body orientation in kinematic equations.When we are to derive the dynamics, however, the quaternions are not always suited because they are not a minimal representation.The Lagrangian formalism, for example, requires a minimal representation of the generalized coordinates of the system, which the quaternions are not.Even so, it is important to note that the quaternions can often be used in the implementation for attitude representation even though we often use more general formulations in the derivation.
Another solution that removes the singularities from the equations is to represent the state space as a tangent bundle.The position of the system is then represented by an element of the Lie group, which for configuration spaces of higher dimensions are represented as matrix Lie groups.Common examples are free motion represented by the Special Euclidean group SE(3), rotations around a point in space represented by the Special Orthogonal group SO(3), planar motion represented by SE(2), and free translation and rotation around one fixed axis represented by the Schönflies group X .
Lie groups are the mathematical basis for several different approaches used to derive the dynamics of multibody systems (Selig, 2000;Park et al., 1995;Bullo and Lewis, 2000;Arnold, 1989;Bullo and Murray, 1999;Murray et al., 1994).The state space is then represented by the tangent bundle, i.e., the position of the rigid body is described by an element of the Lie group, and the velocity state is described by an element of the Lie algebra.For this approach to be valid for all configurations, the configuration space needs to be covered by an atlas of local coordinate patches.This leads to several different sets of equations, one for each coordinate patch.The appropriate equations must then be chosen for the current configuration.For example, the geometric approach presented in Bullo and Lewis (2000) can be used to obtain a globally valid set of dynamic equations on a single Lie group, such as an underwater vehicle or spacecraft.
Deriving the dynamics in this way does unfortunately require quite a few tools from differential geometry and the final equations are often written in a rather abstract form.This is particularly the case with multibody dynamics.The equations are abstract in the sense that the configuration space is given by "some matrix Lie group", often without specifying what the matrix looks like and how to represent it mathematically.Several of the properties that can be associated with the matrix depend on its representation and this must therefore be taken into account when writing the equation explicitly.Similarly, the transformations needed are represented by adjoint maps on the Lie groups or Lie algebras, but it is not always straight forward to see what these transformations and their derivatives look like.We will see some examples of such transformations in this paper.We will also see how we can use the structure of the Lie groups to simplify the final expressions.
One particular transformation for which it may be difficult to find a mathematical representation is the mapping from local to global velocity variables: When taking a Lie theoretical approach to deriving the systems dynamics, the equations are derived on the tangent space.However, using our approach, the dynamics is derived in terms of local velocity variables which are in general different from the twists.The transformation from the local coordinates to the twists is thus important because we want to write the final equations in terms of the globally defined twists, and not the local state variables.In this way we derive the dynamics in terms of the local variables in R m to avoid singularities, but we obtain a final set of equations written in terms of the global velocity and position variables.We need both this mapping and its derivative to find the explicit dynamic equations.
The singularity-free dynamic equations of multibody systems were derived in Duindam andStramigioli (2007, 2008) for mechanisms with general joints.The Boltzmann-Hamel formulation used allows us to derive the dynamics in terms of velocity variables v that are different from the time derivative of the position variables q.These velocity variables are normally referred to as quasi-coordinates.Duindam and Stramigioli (2008) showed that this transformation can be derived in terms of the local position variables of the system, which again allows us to find a well defined velocity transformation matrix.In From et al. (2010) the same equations were used to derive the singularity-free dynamic equations of vehicle-manipulator systems.In From et al. (2012), a few mistakes in the above mentioned papers were corrected and the correct dynamic equations were presented.In this paper we will derive in detail the explicit dynamic equations based on the correct formulation first presented in brief in From et al. (2012).
The final expressions written in terms of the global variables are rather simple but the derivations and computations are somewhat complex, and it is therefore important to show that the formulation of the Boltzmann-Hamel equations of motions presented in From et al. (2012) is in fact correct.We will therefore derive the explicit dynamic equations for several different configuration spaces and show that, when reduced to single rigid body dynamics, these are equivalent to the standard formulation for single rigid bodies found in the classical literature, such as Euler's equations and Newton-Euler equations of motion.It is an important principle that even though there are many different approaches to deriving the dynamic equations, we should arrive at the same final equations when written out explicitly.If we were to find the explicit expressions for the dynamics based on the formulation in Duindam andStramigioli (2007, 2008), for example, we would find that these are different from the standard formulation of the dynamics and, more importantly, nor can they be reformulated into these.The equations presented in Duindam andStramigioli (2007, 2008) and From et al. (2010) are therefore wrong, which is not easy to see without comparing them to the standard formulation and certainly not easy to see from the derivation.We use this as a motivating example to show the importance of writing out the equations explicitly, especially in the case when the derivations are complex and lengthy.We show that using the formulation presented in this paper we arrive at the dynamic equations traditionally presented in literature to calculate the dynamics of these systems.
The dynamic equations for the most important Lie groups are found in Section 4 and compared to the standard formulation.It is however also important to show that the equations found are general.In Section 5 we therefore find a general theorem valid for all configuration spaces with a Lie group topology.We show for the first time that the Boltzmann-Hamel equations derived from exponential coordinates first presented in From et al. (2012) are in fact valid for all Lie groups.
Even though the derivation of the dynamic equations is not standard, the final expressions that we arrive at are well known from literature.It is, however, important to derive these simple dynamic equations because the formulation used allows us to combine these into the dynamics of multibody systems.The expressions presented in this paper can therefore be used as a basis for implementing more complex systems.For example, for a multibody system we can consider the expressions presented in this paper a list of available configuration spaces, and we can simply pick the correct configuration space for each transformation in the multibody system.In fact, one of the reasons that we derive the dynamics in terms of quasi-velocities in this way is that we are then able to automatically generate multibody dynamics based on the properties of the configuration space of each joint or transformation looked at separately.Moreover, we will see that when deriving the mechanics of a general multibody mechanism we can use the results obtained for single rigid bodies directly because the velocity transformation matrices can be combined into one big block-diagonal velocity transformation matrix representing the whole system.Also, deriving the dynamics in terms of local coordinates allows us to write the dynamics without the presence of singularities also when the configuration space is not Euclidean.

Rigid Body Dynamics
In this section we present the dynamic equations of a single rigid body.We derive the dynamics from the Lagrangian in the classical way which results in the well known dynamic equations of single rigid bodies, such as Euler's equations for rotational motion in R 3 and the Euler-Lagrange equations for free motion in R 3 .We will use these equations to show that the equations that we obtain from the Boltzmann-Hamel formulation in Section 3 are identical to the Euler and Newton-Euler equations found in the classical literature on mechanical systems (Goldstein et al., 2001;Arnold, 1989).
In Section 2.3 we present the dynamic equations as presented in Duindam and Stramigioli (2008) and show that these do not correspond with the dynamic equations found in the classical literature.We start with a short overview of the dynamics of single rigid bodies for the most important configuration spaces.

Motion of Single Rigid Bodies
The dynamic equations of a single rigid body can be derived using the Lagrangian framework.Considering kinetic energy only this will lead to the dynamic equations for a configuration space SO(3).These equations are known as Euler's equations of motion.Here M is the inertia matrix of the rigid body and ω B 0b is the angular velocity of the rigid body frame F b with respect to the inertial frame F 0 as seen from F b .We can further allow external forces τ to act on the rigid body and write the equations explicitly as (2) where ω B 0b = p q r T , τ = τ p τ q τ r T and the inertia matrix is written as M = diag(I x , I y , I z ) which is possible if we choose the body frame so that its origin is in the center of gravity of the rigid body and its axes are aligned with the principal axes of inertia.These equations can then be written as where p ∈ R 3×3 is the skew-symmetric matrix such that px = p × x for all p, x ∈ R 3 .In this case we have Similarly, for the configuration space SE(3) the Lagrangian formalism will result in the equations where These equations are normally referred to as the Newton-Euler equations of motion.Note that if we write ad ω = ω the formulation in (7) reduces to (5) for SO(3) by using that ωT = −ω.In this paper we will for the first time show that this is in fact a general result.
If we write τ = τ T v τ T ω T we get the well known Kirchhoff's equations of rigid body motion These equations can also be written as with ad V as in (8).

The Boltzmann-Hamel Equations of Motion
The Boltzmann-Hamel formulation of the dynamics of a rigid body allows us to write the velocity state in terms of quasi-velocities.Quasi-velocities are velocity variables v that are not necessarily the time derivative of the position variables q.They are related to the time derivative of the position variables by a linear relation in the form v = S(q) q. (12) Because both the velocity and position variables are written in vector form, singularities tend to arise in this type of expressions, for example in velocity transformation matrices relating the time derivative of the Euler angles and the body velocity variables.The Lagrangian can be written in terms of the generalized coordinates x and the velocity variable v in the body frame F b , as The partial derivatives of the Lagrangian in ( 13) are given explicitly as We can also write the velocity v in terms of the time derivative of the generalized velocity as v = S(x) ẋ.This allows us to write the Lagrangian as a function of generalized coordinates x and generalized velocities which can be substituted into Lagrange's equations for some B(x) yet to be determined.We find the partial derivatives as The Euler-Lagrange equations are found by the partial derivatives of the Lagrangian L(x, ẋ) as and can thus be written in terms of the Lagrangian L.
The torques τ are defined so that they are collocated with v (represented in the body frame) and we can therefore write the work W as which gives B(x) = S T (x) as expected.We therefore pre-multiply (23) with S −T (x) to get the dynamics in the right form: Proposition 2.1.For a mechanical system with Lagrangian we can find the dynamic equations in terms of the Lagrangian L(x, v) in ( 13) with v = S(x) ẋ as Proof.The proof follows directly by substituting the expressions in Equations (19-21) into ( 22) and premultiplying with S −T (x).
We can simplify these equations by writing where γ k is a function of S(q).The formulation of the dynamics shown in ( 26) was correctly presented in Duindam and Stramigioli (2008), however the final expression for the Coriolis matrix was not presented correctly.One of the objectives of this paper is to show how to arrive at the correct explicit expression for Coriolis matrix from the formulation of the dynamics given in (27).
To avoid singularities it is possible to use local position and velocity variables ϕ ∈ R m and φ ∈ R m .We refer to Duindam and Stramigioli (2008) for details on this topic.In the context of this paper is suffices to know that we can find the mapping from the time derivative of the local position coordinate to the body velocities in terms of the local position variables as (Rossmann, 2002) where ad ϕ is the matrix representation of the Lie bracket, which for SE(3) is shown in (8).
The dynamics in terms of the local parameterization is found in the same way as above with 2.3 The Coriolis Matrix as Shown in Duindam and Stramigioli (2008) In order to avoid the singularities that normally arise in the velocity transformation matrix S when the Euler angles are used to represent the orientation, Duindam and Stramigioli (2008) introduce local variables ϕ for position and φ for velocity.The dynamics are then found by substituting v = S(ϕ) φ into the expressions above, differentiating with respect to ϕ, and evaluating the equations at ϕ = 0 to obtain the global configuration variables.We refer to Duindam and Stramigioli (2008) for more details on this topic.The dynamics can now be written as where Q is the matrix representation of the configuration space, for example a matrix representation of SO(3) or SE(3), and C(Q, v) is the matrix describing the Coriolis and centrifugal forces.The Coriolis matrix is given in (Duindam and Stramigioli, 2008, Eq. ( 26)) as We will now look at what the dynamics will look like for a single rigid body with configuration space SE(3) with the formulation above.We first find an expression for S(ϕ), which for a single rigid body can be written as (Rossmann, 2002) where ad X is the adjoint map for a general Lie algebra X of dimension m.Since we are to differentiate with respect to ϕ and substitute ϕ = 0 we see from (34) that we can simplify (33) slightly to From the mapping in (34) we also note that after differentiating and evaluating at ϕ = 0 the matrices ∂Sji ∂ϕ k ij are equal to − 1 2 ad T e k where e k is a 6-vector with 1 in the k th entry and zeros elsewhere.Similarly, ∂S jk ∂ϕi ij is equal to 1 2 ad T e k .This is then multiplied by the k th element of the vector M v and the Coriolis matrix is therefore given by which gives the following dynamics: We note that this is not the same as the Newton-Euler equations in (11), nor can they be re-arranged into these.We can therefore conclude that the formulation in (33) is wrong.We will now present the correct explicit expressions of the Coriolis matrix.

Derivation of the Coriolis Matrix
In this section we derive the explicit dynamic equations for a single rigid body from the Boltzmann-Hamel equations of motion.A short version of the results presented here is given in From et al. (2012), but in this section we also present some more details in the derivation and show how we arrive at the final equations.
Following the notation in Duindam andStramigioli (2007, 2008) we will write the dynamics as so it only remains to find an expression for the matrix γ k .Comparing ( 38) with ( 26) gives We will first look at k γ k,1 v k = S −T (q) ṠT (q).The matrix S −T (q) can be written as where S −1 ij is to be interpreted as element (i, j) of the matrix S −1 (not the inverse of the element S ij ).The transpose of the time derivative of the velocity transformation matrix, i.e., ṠT (q), is given by We now rewrite q = S −1 (q)v as qm = k S −1 mk (q)v k which allows us to write the first part of γ k v k , i.e., which eliminates q from the first part of γ k .
Similarly for the second part k γ k,2 v k = −S −T (q) ∂ T (S(q) q) ∂q we first write and then if we write (S(q) q) l = m S lm qm we can write the matrix ∂ T (S(q) q) We find an expression for k γ k,2 v k as: We can now find We can use these new expressions to write the dynamics in terms of local coordinates.Because we can substitute the variable vector q with local variables (the local variables are always Euclidean) we can also write this as and we can derive the dynamics in terms of the local variables ϕ.The following proposition was first presented correctly in From et al. (2012), but here we present the detailed proof.
Proposition 3.1.Consider a single rigid body with local position and velocity coordinates ϕ and φ and global position and velocity coordinates Q and v. Write the kinetic energy as K(v) = 1 2 v T M v with the inertia matrix M .The dynamics of this system then satisfies where M is found in the normal way, with τ the vector of external and control wrenches (collocated with v), and the matrix describing the Coriolis and centrifugal forces given by For a single rigid body this becomes To compute the matrix C(v) for a single rigid body with configuration space SE(3) or one of its subgroups, we can use the structure of the Lie algebra to simplify (50) slightly to Proof.From Equation ( 38) and ( 47) we first find We know that there are many different ways to write the Coriolis matrix which all result in the same vector C(ϕ, v)v.We denote this vector C(ϕ, v)v = c 1 c 2 . . .c n T and write Here we have used the observation that M does not depend on ϕ so there is no need to evaluate M at ϕ = 0.
Because c i = C ij v j a change in the summation indexes gives the Coriolis matrix Now, recall that the velocity transformation matrix can be written as where ad X is the adjoint map for a general Lie algebra X of dimension m.Because the expression is to be evaluated at ϕ = 0 this expression is non-zero only for l = i and m = j, see (55).The final expressions then become which after a change in the index name becomes We see that we have found a formulation of the dynamic equations in terms of the variables ϕ and v.However, when we evaluate the expressions av ϕ = 0 the position variables ϕ vanish from the equations and the position is written in terms of the configuration state matrix Q. Admittedly, the formulation is rather complex, but we will see in the next section that when we use the expressions for the velocity transformation matrices S(ϕ) for the different configuration spaces, the final expressions will take a very simple form.

The Most Important Configuration Spaces
The kinematics of the system can be naturally described in terms of the state variables g 0b for position/orientation and V B 0b for velocity.To allow for more general systems with other configuration spaces than SE(3), we will write the configuration of a rigid body as a matrix Lie group Q of arbitrary but constant dimension.The velocity variable is written as v ∈ R m for a configuration space of dimension m ≤ 6.Using this formalism we obtain a global parameterization of a rigid idealized joint (Duindam, 2006): Definition 4.1.A globally parametrized rigid transformation is a kinematic restriction on the allowed relative twist of two rigid bodies i and j to a linear subspace of dimension m, where the relative motion of the bodies is described by two sets of states, namely • a matrix Q, parameterizing the relative configuration as g ij = g ij (Q); and • a vector v ∈ R m , parameterizing the relative twists as V B ij = Hv.For convenience, both for representation and for implementation, we will normally write the configuration as a homogeneous transformation matrix and the velocity as a twist.Because all configuration spaces that are of interest to us are subgroups of SE(3), we can always write the state space as an element of the tangent bundle in this way.
We see that it is important that we adapt a formalism that satisfies the restrictions of the configuration space also when the configuration space has less than six degrees of freedom.For rigid bodies with a configuration space other than SE(3) and with dimension m < 6 we only need m parameters to define the velocity state.Hence, in the case of m < 6 we can define a selection matrix in the following way (From et al., 2010): Definition 4.2.A selection matrix H ∈ R 6×m represents a mapping from velocity state in R m to the twist in R 6 such that the velocity twist is given by v ∈ R m fully determines the velocity state of the rigid body.
The transpose H T of the selection matrix thus selects the m entries of V B 0b needed to parameterize the m degrees of freedom motion.
The local Euclidean structure for the state g 0b is given by exponential coordinates.Mathematically, we can express configurations g 0b around a fixed state ḡ0b as for a local position variable ϕ.For se(3) we have m = 6 and we can write g 0b (t) = g 0b (0)e ϕ .Similarly, when m < 6 we set ϕ i = 0 for all the 6 − m entries that are trivially zero, corresponding to the all-zero rows of the selection matrix.The position and velocity variables ϕ and φ then become vectors in R m .
We can now derive an expression for the total kinetic energy.Let I b ∈ R 6×6 denote the constant positivedefinite diagonal inertia matrix of the vehicle.The kinetic energy K b then follows as Here, H T is the transpose of H which works fine when dealing with the Lie groups treated here, so we will use this notation throughout this paper.We see that the selection matrix H ∈ R 6×m guarantees that the inertia matrix M has the right dimension.Note that neither K(v) nor M depends on the pose g 0b nor the choice of inertial reference frame F 0 .The reason that the inertia matrix is constant is that we represent the velocities in the body frame.If we choose to represent the velocities in a different frame, for example the inertial frame, we get a configuration dependent inertia matrix in the form where M (g 0b ) = Ad T g b0 I b Ad g b0 and V S 0b is the spatial velocity twist.

Rigid Bodies with Configuration
Space SO(3) For a rigid body with configuration space SO(3) the selection matrix becomes There are two ways to arrive at this matrix: either as a matrix that gives us the twist V B 0b from the velocity vector v = ω B 0b , i.e., V B 0b = Hv, or as the matrix that transforms the generalized inertia matrix For SO(3) the constant inertia matrix then becomes as usual.Now that we have found the inertia matrix it only remains to find the Coriolis terms.We know from the Lie theory (Rossmann (2002)) that the matrix relating the local velocities φ and global body velocities ω B 0b is given by We will first show that when differentiating with respect to ϕ and substituting ϕ = 0 in (57) the matri- can be written in terms of very simple expressions.All constant terms will disappear when we differentiate with respect to ϕ and the parts that include higher order terms of ϕ will disappear when we evaluate the expressions at ϕ = 0. We therefore disregard the terms that we already know will equal zero and denote this matrix S r (the reduced velocity transformation matrix ) which then becomes We start with Similarly, For a rigid body with configuration space SO(3) the rather complicated expression for the Coriolis matrix in (57) becomes The dynamic equations can now be written in matrix form as If we use the relation (M v)v = − vM v and denote the velocity as v = ω B 0b we get Euler's equations of motion: which are identical to the classical formulation that we found in (1).

Rigid Bodies with Configuration Space SE(3)
The configuration space of a rigid body in the special Euclidean space is described by the matrix Lie group Q = g 0b for position and velocities variables v = V B 0b .The selection matrix is thus the identity matrix H = I ∈ R 6×6 .
For a rigid body with configuration space SE(3) the matrix relating the local and global velocities is given by (Rossmann (2002)) The precise computational details of the partial derivatives follow the same steps as for SO(3) in the previous section.We note that after differentiating and evaluating at = 0 the matrices are equal to 1 2 ad e k where e k is a 6-vector with 1 in the k th entry and zeros elsewhere and ad p for p ∈ R 6 is defined as is equal to − 1 2 ad e k .This is then multiplied by the k th element of M v when differentiating with respect to ϕ k .The C-matrix is thus given by where ad (M v) is given by (73) with the vector (M v) ∈ R 6 in the entries.
The dynamic equations are written in matrix form as which in this case is identical to the Newton-Euler equations of rigid body motion.We see this if we use that ad and we obtain the Newton-Euler equations which we found in (11).For the special case when M is a constant diagonal matrix we can write out the dynamics of a single rigid body on SE(3) as where V B 0b = u v w p q r T .We see that when the inertia matrix is diagonal the cross terms vanish from the dynamics.This is a general result.

Rigid Bodies with Configuration Space SE(2)
Planar motion allows translation in the xy-plane and rotations around the z-axis.The velocity state is given by V B 0b = u v r T and the selection matrix is thus given by The adjoint map of a Lie algebra V ∈ se( 2) is given by We thus write and find the partial derivatives as Similarly, For a rigid body with configuration space SE(2) the Coriolis matrix in (57) becomes where The dynamic equations can now be written in matrix form as If we use the relation ad (M v) v = − ad T v M v we get the dynamics: Choosing the body frame F b so that it coincides with the center of gravity we get the inertia matrix M = diag(m, m, I z ) and we can write the dynamics explicitly as The dynamics now becomes We see that for this choice of coordinate frames the cross terms from the Coriolis matrix c 3 = −mvu+muv disappear from the equations also in the planar case.

The Schönflies Group X
The Shönflies group is commonly found in pick-andplace applications in robotics.It allow translational motion in all directions and rotational motion around one fixed axis, normally chosen as the z-axis.The velocity state is thus given by V B 0b = u v w r T and the selection matrix is given by 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 The adjoint map ad V is given by so for the Shönflies group we write the reduced velocity transformation matrix as The partial derivatives are found as Similarly, This gives us the Coriolis matrix The dynamic equations can now be written in matrix form as Again, we can use that ad or, for a diagonal M , explicitly as From these equations and the Coriolis matrix in ( 93) we can conclude that the Coriolis and centrifugal terms do not affect linear motion in the direction of the z-axis, which is as expected.

Translational Motion R 3
For pure translational motion we fist note that S = I because the velocity variables are the time derivative of the position variables, both in R 3 .Thus, the derivative of both the inertia matrix and the velocity transformation matrix disappear and the Coriolis terms vanish.The dynamics is therefore in a very simple form which represent the pure translational motion of a rigid body when the orientation is fixed.

Lower-dimensional Groups
Also for the low-dimensional groups the Coriolis and centrifugal terms vanish.This is trivial for all 1-and 2-dimensional groups because the adjoint map is a zero matrix (see next section).

Summary
Table 2 shows the mapping from local to global velocity coordinates and the corresponding C-matrices for different Lie Groups.We note that when the Lie bracket vanish, which is the case for abelian Lie algebras, the Coriolis and centrifugal forces are not present in the dynamics, as expected.The adjoint matrices and explicit expressions for the Coriolis matrices for all the Lie groups are shown in Table 1.

Lie Group
Table 1: The Lie algebras V , adjoint maps ad V and the Coriolis matrices C = ad p .In this paper the entries in the adjoint maps ad p are given by p = (M v).
Lie Group S C Eq.

SE(3)
Table 2: The velocity transformation matrices S(ϕ) and the corresponding Coriolis matrices for different Lie subgroups of SE(3).The explicit expressions for the different Lie groups are found in the equations in the right-most column.

A General Theorem for Rigid Body Dynamics
In this section we will show that the dynamic equations that we found in Section 3 are general and valid for all Lie groups.We will use the structure of the Lie bracket so the theorem is valid for configuration spaces with a Lie group topology only.We will first define a matrix x in the following way: Thus, a matrix x is a matrix whose entries are either an element x k of the vector x (of first order) or zero.One example of such a matrix is the adjoint map ad x .We can now write the following lemma This lemma simply allows us to swap the multiplication order so that y is written in matrix representation instead of x.To find the element ȳij , (98) simply searches each row of matrix x for a swap, i.e., a match so that wherever an element x j = xik is found, the corresponding element y k in inserted in the matrix ȳ at position y ij .
Lemma 5.2.Lemma 5.1 is also valid for affine combinations of the basis elements, i.e., for matrices of the form x = a 1 x1 + a 2 x2 + . . .
where āi are defined as in Lemma 5.1.
We will also need the following lemma which is valid when the matrices, in this case the adjoint matrices ad, satisfy the necessary axioms of the binary operation called the Lie bracket: (101) Proof.The adjoint matrix is constructed in the following way (with a slight abuse of notation) In other words, any element (ad X ) ij = X krepresented by the first matrix XY in (102)-has an element equivalent to the second matrix −Y X given by Y j .We see this if we write the first line of ad X Y as where we can identify each term in (103) with one of the matrices in (102).This follows from the structure of the adjoint matrix which needs to reflect the property of the Lie bracket (102).In (103) the first matrix XY is represented by the elements −X 3 and −X 6 and the second matrix Y X is represented by the elements X 2 and X 5 in the adjoint matrix.We see that when these are multiplied with the corresponding elements of Y we obtain the vector representation of the Lie bracket, as required.Due to this structure the partial derivative of the element (ad ϕ ) ki with respect to ϕ j is equal to the partial derivative of (ad ϕ ) kj but with respect to ϕ i , with opposite signs.The fact that we are to evaluate (101) at ϕ = 0 and we therefore can reduce the velocity transformation matrix to S r = − 1 2 ad ϕ , this completes the proof.
We have seen that the dynamic equations of a single rigid body can be written as with Through examples we showed that for the most important Lie groups, this can be written as We will now show that this is in fact a general result: Proposition 5.1.The dynamic equations of a single rigid body written in the form is equivalent to where ad (M v) is the Coriolis matrix written by Proof.By Lemmas 5.1 and 5.2 we can write (considering (M v) a vector) Similarly, for the transpose of the adjoint matrix ad v we obtain Now, if we consider only the non-vanishing terms in S(ϕ), we can write S r (ϕ) = − 1 2 ad ϕ (112) and from Lemma 5.3 we conclude that the two formulations in ( 107) and ( 108) are identical and for a velocity transformation matrix in this form, the expression in (110) can be rewritten in the form of (109).Thus, the Coriolis matrix in ( 108) is in fact equal to the one in (109).

Conclusion
In this paper the singularity free dynamic equations of single rigid bodies were presented.The dynamics are written explicitly, i.e., for a specific choice of coordinates.The coordinates chosen in the derivation are the local position and velocity coordinates but we use the structure of the Lie algebras to rewrite the equations in global variables.The explicit equations are then obtained by the derivative of the exponential map which takes us from the local to the desired global state variables.We have also shown that the equations are general and valid for all Lie groups.In addition to the theoretical framework presented, the equations are presented in such a way that they can be implemented in a simulation or control environment and do not require any pre-requisites in Lie theory or differential geometry.
86)where we have denoted the velocity as v = u v r T .

Lemma 5. 1 .
Given two vectors x and y, and their matrix representations x and ȳ by Definition 5.1.Then the vector xy can be rewritten as ȳx where ȳij = n k=1 ∂ xik ∂x j y k .