[Robotics] Rigid-Body Motion: Lie Groups SO(3) and SE(3)
Why Lie Groups?
The configuration of a rigid body in $\mathbb{R}^3$ has six degrees of freedom, three for position and three for orientation. The set of all positions $\mathbb{R}^3$ is Euclidean, but the set of all orientations is not. This is the central conceptual obstacle that motivates the modern treatment of rigid-body motion. If we try to coordinatize orientations by Euler angles, roll-pitch-yaw, or any other three-parameter description, we inevitably encounter singularities (gimbal lock) and discontinuities. The reason is topological: the space of rotations $SO(3)$ is a curved three-dimensional manifold that admits no global, smooth chart from $\mathbb{R}^3$. The same obstruction prevents a smooth global atlas on the two-sphere $S^2$.
The remedy is to abandon local parameterizations and treat $SO(3)$ and $SE(3)$ as what they are: matrix Lie groups. Each is simultaneously a smooth manifold and a group under matrix multiplication, with the two structures compatible. Velocities (the tangent vectors at the identity) form a Lie algebra $\mathfrak{so}(3)$ or $\mathfrak{se}(3)$, which is a flat vector space and is therefore easy to coordinatize globally. The matrix exponential $\exp : \mathfrak{g} \to G$ then transports vectors from the algebra back onto the group. This yields exponential coordinates for rotations and rigid motions which are global (defined everywhere), coordinate-free in their geometric interpretation, and free of artificial singularities away from the cut locus.
A second virtue of this viewpoint is its intimate connection with classical screw theory. Chasles proved in the 1830s that any rigid displacement is a rotation about some axis combined with a translation along the same axis, a so-called screw motion. The exponential map is precisely the bridge between screw theory and matrix algebra: each twist $\xi \in \mathfrak{se}(3)$ encodes a screw, and the matrix exponential $e^{[\xi]\theta}$ realises the corresponding finite displacement. This unification — algebraic on one side, geometric on the other — underlies the product of exponentials (PoE) formula for forward kinematics and the modern geometric formulation of robot dynamics.
In this post we develop the Lie-group machinery for rigid-body motion. We begin with the rotation group $SO(3)$, build its Lie algebra $\mathfrak{so}(3)$ as the space of skew-symmetric matrices, and derive Rodrigues’ formula for the exponential map. We then extend to the special Euclidean group $SE(3)$, define twists, derive the closed-form exponential for $SE(3)$, state Chasles’ theorem, and introduce the adjoint representation $\operatorname{Ad}_g$ that transports twists between coordinate frames. We close with the dual notion of wrenches and a worked example.
The Rotation Group SO(3)
Definition and Matrix Representation
Fix an inertial frame $A$ with right-handed orthonormal axes $\hat{\mathbf{x}}, \hat{\mathbf{y}}, \hat{\mathbf{z}}$, and let $B$ be a body-attached frame with axes $\mathbf{x}{ab}, \mathbf{y}{ab}, \mathbf{z}_{ab}$ expressed in $A$. Stacking these as columns gives a $3 \times 3$ matrix
\[\mathbf{R}_{ab} = \begin{bmatrix} \mathbf{x}_{ab} & \mathbf{y}_{ab} & \mathbf{z}_{ab} \end{bmatrix} \in \mathbb{R}^{3\times 3}.\]Orthonormality of the columns is equivalent to $\mathbf{R}{ab}^{\top} \mathbf{R}{ab} = \mathbf{I}$, and right-handedness forces $\det \mathbf{R}_{ab} = +1$.
The *rotation group* is $$ SO(3) := \left\{ \mathbf{R} \in \mathbb{R}^{3\times 3} : \mathbf{R}^{\top}\mathbf{R} = \mathbf{I}, \; \det \mathbf{R} = +1 \right\}. $$
A rotation matrix simultaneously plays three distinct roles:
- A description of orientation: the columns of $\mathbf{R}_{ab}$ are the axes of $B$ expressed in $A$.
- A change-of-coordinates operator: given the body-frame coordinates $\mathbf{q}b$ of a point, its spatial-frame coordinates are $\mathbf{q}_a = \mathbf{R}{ab}\mathbf{q}_b$.
- A rigid rotation of vectors: the map $\mathbf{v} \mapsto \mathbf{R}\mathbf{v}$ sends a vector in $\mathbb{R}^3$ to its rotated counterpart.
These three interpretations are mathematically the same operation; the distinction lives only in our minds and in the subscripts we attach.
Group and Manifold Structure
Multiplication on $SO(3)$ is matrix multiplication, and one verifies the four group axioms:
- Closure. If $\mathbf{R}_1, \mathbf{R}_2 \in SO(3)$, then $(\mathbf{R}_1\mathbf{R}_2)(\mathbf{R}_1\mathbf{R}_2)^{\top} = \mathbf{R}_1\mathbf{R}_2\mathbf{R}_2^{\top}\mathbf{R}_1^{\top} = \mathbf{I}$, and $\det(\mathbf{R}_1\mathbf{R}_2) = (+1)(+1) = +1$.
- Identity. $\mathbf{I} \in SO(3)$.
- Inverse. $\mathbf{R}^{-1} = \mathbf{R}^{\top} \in SO(3)$.
- Associativity. Inherited from matrix multiplication.
Composition of rotations follows the chain rule $\mathbf{R}{ac} = \mathbf{R}{ab}\mathbf{R}_{bc}$: to express the orientation of $C$ in $A$, first express $C$ in $B$ and then $B$ in $A$.
$SO(3)$ is a smooth, compact, connected three-dimensional submanifold of $\mathbb{R}^{9}$. Its tangent space at the identity is the $3$-dimensional vector space $\mathfrak{so}(3)$ of $3 \times 3$ skew-symmetric matrices. Being a closed subgroup of $GL(3,\mathbb{R})$, $SO(3)$ inherits the structure of a matrix Lie group, and the group operation and inversion are smooth maps.
Because $\mathbf{R}$ has nine entries but only three degrees of freedom, $SO(3)$ sits inside $\mathbb{R}^9$ as the solution set of six independent constraints (orthonormality), defining a smooth three-manifold. Compactness and connectedness ensure, among other things, the existence of bi-invariant metrics and the absence of any disconnected “second sheet” — orientation is a single connected continuum.
Rotations Preserve Geometry
A rigid-body transformation must preserve distances and orientation (handedness). For the cross product, one has the useful algebraic identity
\[\mathbf{R}(\mathbf{v} \times \mathbf{w}) = (\mathbf{R}\mathbf{v}) \times (\mathbf{R}\mathbf{w}), \qquad \mathbf{R} \in SO(3).\]Distance preservation is direct:
\[\| \mathbf{R}\mathbf{q} - \mathbf{R}\mathbf{p} \|^2 = (\mathbf{q}-\mathbf{p})^{\top}\mathbf{R}^{\top}\mathbf{R}(\mathbf{q}-\mathbf{p}) = \|\mathbf{q}-\mathbf{p}\|^2.\]Thus every $\mathbf{R} \in SO(3)$ is a rigid body transformation, and orientation is preserved because $\det \mathbf{R} = +1$ excludes reflections.
The Lie Algebra so(3)
Skew-Symmetric Matrices and the Hat Operator
The cross product $\mathbf{a} \times \mathbf{b}$ in $\mathbb{R}^3$ is bilinear in $\mathbf{a}$, so for fixed $\mathbf{a}$ the map $\mathbf{b} \mapsto \mathbf{a} \times \mathbf{b}$ is a linear operator on $\mathbb{R}^3$. Writing this operator as a matrix yields the hat map
\[[\omega] := \hat{\omega} := \begin{bmatrix} 0 & -\omega_3 & \omega_2 \\ \omega_3 & 0 & -\omega_1 \\ -\omega_2 & \omega_1 & 0 \end{bmatrix}, \qquad \omega = (\omega_1, \omega_2, \omega_3) \in \mathbb{R}^3,\]so that $\omega \times \mathbf{b} = [\omega]\mathbf{b}$ for all $\mathbf{b}$. The matrix $[\omega]$ is skew-symmetric, $[\omega]^{\top} = -[\omega]$. The inverse vee operator extracts the vector from a skew matrix:
\[\bigl([\omega]\bigr)^{\vee} = \omega.\]The set of $3 \times 3$ skew-symmetric real matrices is $$ \mathfrak{so}(3) := \left\{ \mathbf{S} \in \mathbb{R}^{3\times 3} : \mathbf{S}^{\top} = -\mathbf{S} \right\}, $$ a three-dimensional real vector space. The hat operator gives a vector-space isomorphism $\mathbb{R}^3 \cong \mathfrak{so}(3)$, $\omega \leftrightarrow [\omega]$.
Why so(3) Equals the Tangent Space at the Identity
Differentiating the orthogonality constraint $\mathbf{R}(t)\mathbf{R}(t)^{\top} = \mathbf{I}$ at $t = 0$ with $\mathbf{R}(0) = \mathbf{I}$ gives
\[\dot{\mathbf{R}}(0) + \dot{\mathbf{R}}(0)^{\top} = \mathbf{0},\]so $\dot{\mathbf{R}}(0)$ is skew-symmetric. Thus every velocity through the identity in $SO(3)$ lies in $\mathfrak{so}(3)$. A dimension count (three constraints removed from nine variables) confirms equality of dimensions, hence
\[T_{\mathbf{I}} \, SO(3) = \mathfrak{so}(3).\]More generally, for any curve $\mathbf{R}(t) \in SO(3)$,
\[\dot{\mathbf{R}}(t)\mathbf{R}(t)^{\top} \in \mathfrak{so}(3), \qquad \mathbf{R}(t)^{\top}\dot{\mathbf{R}}(t) \in \mathfrak{so}(3).\]These two skew matrices encode, respectively, the spatial and body angular velocities of the rotating frame; we return to this distinction in the discussion of twists.
Lie Bracket
The Lie algebra structure on $\mathfrak{so}(3)$ is provided by the matrix commutator $[\mathbf{A}, \mathbf{B}] := \mathbf{A}\mathbf{B} - \mathbf{B}\mathbf{A}$. A direct calculation shows that for $\omega_1, \omega_2 \in \mathbb{R}^3$,
\[\bigl[\, [\omega_1] ,\; [\omega_2] \,\bigr] = [\omega_1 \times \omega_2].\]Thus, under the isomorphism with $\mathbb{R}^3$, the Lie bracket on $\mathfrak{so}(3)$ becomes the familiar cross product.
The Exponential Map and Rodrigues’ Formula
From Angular Velocity to Finite Rotation
Imagine a rigid body rotating about a fixed unit axis $\omega \in \mathbb{R}^3$, $|\omega| = 1$, at unit angular speed. A point $\mathbf{q}(t)$ on the body satisfies
\[\dot{\mathbf{q}}(t) = \omega \times \mathbf{q}(t) = [\omega]\mathbf{q}(t).\]This is a time-invariant linear ODE; its solution is
\[\mathbf{q}(t) = e^{[\omega]\,t} \mathbf{q}(0),\]where the matrix exponential is defined by the convergent series
\[e^{\mathbf{M}} := \sum_{k=0}^{\infty} \frac{\mathbf{M}^k}{k!}.\]After rotating by angle $\theta$ (i.e. for $t = \theta$), the rigid motion of the body is the rotation matrix
\[\mathbf{R}(\omega, \theta) = e^{[\omega]\theta}.\]This already gives the exponential coordinates $\omega\theta \in \mathbb{R}^3$ for the rotation. The vector $\omega\theta$ has direction equal to the rotation axis and magnitude equal to the rotation angle; this is the same data as the classical “axis-angle” representation.
Closed-Form Series: Rodrigues’ Formula
The infinite series for $e^{[\omega]\theta}$ collapses to a finite closed form. The crucial fact is that powers of $[\omega]$ with $|\omega| = 1$ satisfy
\[[\omega]^2 = \omega\omega^{\top} - \mathbf{I}, \qquad [\omega]^3 = -[\omega].\]Substituting into the series and grouping odd and even powers,
\[\begin{aligned} e^{[\omega]\theta} &= \mathbf{I} + \left( \theta - \frac{\theta^3}{3!} + \frac{\theta^5}{5!} - \cdots\right)[\omega] + \left(\frac{\theta^2}{2!} - \frac{\theta^4}{4!} + \cdots \right)[\omega]^2 \\ &= \mathbf{I} + \sin\theta \, [\omega] + (1-\cos\theta)\,[\omega]^2. \end{aligned}\]For a unit axis $\omega \in \mathbb{R}^3$, $\|\omega\| = 1$, and angle $\theta \in \mathbb{R}$, $$ \boxed{\; e^{[\omega]\theta} = \mathbf{I} + \sin\theta\, [\omega] + (1 - \cos\theta)\, [\omega]^2 \;\in SO(3). \;} $$ Equivalently, for a general (non-unit) vector $\boldsymbol\omega \in \mathbb{R}^3$ with $\theta := \|\boldsymbol\omega\|$, $$ e^{[\boldsymbol\omega]} = \mathbf{I} + \frac{\sin\theta}{\theta}[\boldsymbol\omega] + \frac{1-\cos\theta}{\theta^2}[\boldsymbol\omega]^2. $$
That $e^{[\omega]\theta}$ is indeed in $SO(3)$ follows from
\[\bigl(e^{[\omega]\theta}\bigr)^{-1} = e^{-[\omega]\theta} = e^{[\omega]^{\top}\theta} = \bigl(e^{[\omega]\theta}\bigr)^{\top},\]so the inverse equals the transpose; continuity of $\det$ and $\det(\mathbf{I}) = +1$ pin the determinant to $+1$.
Surjectivity: Every Rotation is an Exponential
The exponential map $\exp : \mathfrak{so}(3) \to SO(3)$ is surjective: every rotation can be written as $e^{[\omega]\theta}$. Given $\mathbf{R} \in SO(3)$ with $\mathbf{R} \neq \mathbf{I}$, equate Rodrigues’ formula with $\mathbf{R}$ and use the trace identity
\[\operatorname{tr}(\mathbf{R}) = 1 + 2\cos\theta \quad \Longrightarrow \quad \theta = \cos^{-1}\!\left(\frac{\operatorname{tr}(\mathbf{R}) - 1}{2}\right) \in [0,\pi].\]For $\theta \neq 0,\pi$ the axis is recovered from the antisymmetric part:
\[[\omega] = \frac{1}{2\sin\theta}\bigl(\mathbf{R} - \mathbf{R}^{\top}\bigr).\]The map is many-to-one (any $\omega\theta$ and $-\omega(2\pi - \theta)$ give the same $\mathbf{R}$, and $\omega$ is undetermined at $\mathbf{R} = \mathbf{I}$).
Every $\mathbf{R} \in SO(3)$ is equivalent to a rotation about some fixed axis $\omega \in \mathbb{R}^3$ through some angle $\theta \in [0, 2\pi)$. Equivalently, the exponential map $\exp : \mathfrak{so}(3) \to SO(3)$ is surjective.
The Special Euclidean Group SE(3)
Definition and Homogeneous Representation
A configuration of a rigid body in $\mathbb{R}^3$ is the pair $(\mathbf{p}, \mathbf{R})$ consisting of a translation $\mathbf{p} \in \mathbb{R}^3$ giving the origin of the body frame in the inertial frame, and a rotation $\mathbf{R} \in SO(3)$ giving its orientation. As a set,
\[SE(3) := \mathbb{R}^3 \times SO(3),\]a six-dimensional smooth manifold.
A point with body-frame coordinates $\mathbf{q}_b$ has spatial-frame coordinates
\[\mathbf{q}_a = \mathbf{R}_{ab}\mathbf{q}_b + \mathbf{p}_{ab}.\]This affine action becomes a linear action on the augmented vector $\bar{\mathbf{q}} = (\mathbf{q}^{\top}, 1)^{\top}$ via the $4 \times 4$ homogeneous representation
\[g = \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^{\top} & 1 \end{bmatrix} \in \mathbb{R}^{4\times 4}.\]Then $\bar{\mathbf{q}}a = g{ab}\,\bar{\mathbf{q}}_b$ encodes the rigid transformation as matrix multiplication.
The *Special Euclidean group* is $$ SE(3) := \left\{ g = \begin{bmatrix} \mathbf{R} & \mathbf{p} \\ \mathbf{0}^{\top} & 1 \end{bmatrix} \in \mathbb{R}^{4\times 4} : \mathbf{R} \in SO(3), \; \mathbf{p} \in \mathbb{R}^3 \right\}, $$ equipped with matrix multiplication as the group operation.
Group Properties
Composition follows the chain rule for frames:
\[g_{ac} = g_{ab}\, g_{bc} = \begin{bmatrix} \mathbf{R}_{ab}\mathbf{R}_{bc} & \mathbf{R}_{ab}\mathbf{p}_{bc} + \mathbf{p}_{ab} \\ \mathbf{0}^{\top} & 1\end{bmatrix}.\]The inverse has a particularly clean form:
\[g^{-1} = \begin{bmatrix} \mathbf{R}^{\top} & -\mathbf{R}^{\top}\mathbf{p} \\ \mathbf{0}^{\top} & 1 \end{bmatrix},\]equivalent to $(\mathbf{p}, \mathbf{R})^{-1} = (-\mathbf{R}^{\top}\mathbf{p}, \mathbf{R}^{\top})$.
$SE(3)$ is a smooth, connected, six-dimensional matrix Lie group. It is non-compact (because the translation factor $\mathbb{R}^3$ is non-compact). Elements of $SE(3)$ preserve distance between points and the cross product (orientation) of vectors, so $SE(3)$ exactly parameterizes the proper rigid motions of $\mathbb{R}^3$.
The Lie Algebra se(3) and Twists
Twists
By analogy with the rotation case, we want to identify $T_{\mathbf{I}}\, SE(3)$, the tangent space at the identity. Differentiating $g(t) \in SE(3)$ at $g(0) = \mathbf{I}$ yields a matrix of the form
\[[\xi] := \begin{bmatrix} [\omega] & v \\ \mathbf{0}^{\top} & 0 \end{bmatrix} \in \mathbb{R}^{4\times 4}, \qquad v, \omega \in \mathbb{R}^3.\]The block $[\omega]$ is skew-symmetric and the bottom row is zero. Such a matrix is called a twist.
The Lie algebra of $SE(3)$ is the six-dimensional real vector space $$ \mathfrak{se}(3) := \left\{ [\xi] = \begin{bmatrix} [\omega] & v \\ \mathbf{0}^{\top} & 0 \end{bmatrix} : v \in \mathbb{R}^3, \; [\omega] \in \mathfrak{so}(3) \right\}. $$ The *twist coordinates* of $[\xi]$ are the $6$-vector $$ \xi = \begin{bmatrix} v \\ \omega \end{bmatrix} \in \mathbb{R}^6, $$ with hat $\wedge$ and vee $\vee$ operators $$ \begin{bmatrix} v \\ \omega \end{bmatrix}^{\wedge} = \begin{bmatrix} [\omega] & v \\ \mathbf{0}^{\top} & 0 \end{bmatrix}, \qquad \begin{bmatrix} [\omega] & v \\ \mathbf{0}^{\top} & 0 \end{bmatrix}^{\vee} = \begin{bmatrix} v \\ \omega \end{bmatrix}. $$
Two conventions for ordering the twist coordinates are in common use:
- MLS (Murray–Li–Sastry) convention: $\xi = (v, \omega) \in \mathbb{R}^6$, linear part first.
- Modern Robotics (Lynch–Park) convention: $\mathcal{V} = (\omega, v) \in \mathbb{R}^6$, angular part first.
The mathematics is identical; one need only be consistent. We adopt the MLS convention $\xi = (v, \omega)$ throughout this post.
Physical Interpretation of a Twist
The components $\omega$ and $v$ of a twist have a clean physical meaning, but only after a frame is fixed:
- $\omega \in \mathbb{R}^3$ is the angular velocity of the body.
- $v \in \mathbb{R}^3$ is the linear velocity of the (possibly imaginary) point on the body that is instantaneously coincident with the origin of the reference frame.
In particular, $v$ is generally not the velocity of the origin of the body frame; that quantity has a different expression involving both $\omega$ and the position $\mathbf{p}$ (see Section on Spatial vs Body Twist below).
Exponential Coordinates for Rigid Motion
The Exponential Map exp : se(3) → SE(3)
Just as for rotations, a constant twist $[\xi] \in \mathfrak{se}(3)$ defines a one-parameter subgroup
\[g(t) = e^{[\xi]\,t} \in SE(3), \qquad g(0) = \mathbf{I},\]via the matrix exponential. The vector $\xi\theta \in \mathbb{R}^6$ provides exponential coordinates for the rigid displacement $g(\theta) = e^{[\xi]\theta}$.
Closed-Form Formula
The series for $e^{[\xi]\theta}$ admits a closed form, but the formula splits into two cases according to whether the angular part vanishes.
Case 1: $\omega = 0$. The twist matrix satisfies $[\xi]^k = 0$ for $k \geq 2$, so the series truncates:
\[e^{[\xi]\theta} = \mathbf{I} + [\xi]\theta = \begin{bmatrix} \mathbf{I} & v\theta \\ \mathbf{0}^{\top} & 1 \end{bmatrix}.\]This is pure translation by $v\theta$, corresponding to a prismatic joint with axis $v$.
Case 2: $\omega \neq 0$, with $|\omega| = 1$ (rescale $\theta$ if necessary). Direct calculation gives
\[\boxed{\; e^{[\xi]\theta} = \begin{bmatrix} e^{[\omega]\theta} & \bigl(\mathbf{I} - e^{[\omega]\theta}\bigr)(\omega \times v) + \omega\,\omega^{\top} v\,\theta \\ \mathbf{0}^{\top} & 1 \end{bmatrix}. \;}\]The upper-left block is just Rodrigues’ formula; the translational part of $e^{[\xi]\theta}$ has two contributions, one perpendicular to $\omega$ (from $\omega \times v$, the screw radius) and one along $\omega$ (from $\omega^{\top}v$, the screw pitch times $\theta$).
Surjectivity
Just as $\exp : \mathfrak{so}(3) \to SO(3)$ is surjective, so is $\exp : \mathfrak{se}(3) \to SE(3)$. Given $g = (\mathbf{R}, \mathbf{p}) \in SE(3)$, recover $\omega, \theta$ from $\mathbf{R}$ as in the rotation case; then solve
\[\bigl[(\mathbf{I} - e^{[\omega]\theta})[\omega] + \omega\omega^{\top}\theta\bigr] v = \mathbf{p}\]for $v$. The coefficient matrix is invertible for $\theta \in (0, 2\pi)$, so $v$ is uniquely determined. The case $\mathbf{R} = \mathbf{I}$ is handled by pure translation: $[\xi] = \begin{bmatrix} 0 & \mathbf{p}/|\mathbf{p}| \ 0 & 0\end{bmatrix}$, $\theta = |\mathbf{p}|$.
Screw Motions and Chasles’ Theorem
The closed-form exponential above has a vivid geometric interpretation. A screw motion is the simultaneous rotation about a directed line in space and translation along that same line, like turning a corkscrew. The line is the axis, the linear distance per radian of rotation is the pitch $h$, and the total amount of rotation is the magnitude $\theta$.
A *screw* $S$ consists of: - an *axis* $\ell$, a directed line in $\mathbb{R}^3$; - a *pitch* $h \in \mathbb{R} \cup \{\infty\}$, the ratio of translational distance to rotation angle; - a *magnitude* $M \in \mathbb{R}$, the total displacement (rotation angle if $h$ is finite, translation distance if $h = \infty$). Given a unit axis vector $\omega$, a point $q$ on the axis, finite pitch $h$, and magnitude $M = \theta$, the corresponding screw motion sends a point $p \in \mathbb{R}^3$ to $$ p \;\mapsto\; q + e^{[\omega]\theta}(p - q) + h\theta\,\omega. $$
In homogeneous coordinates this is the rigid transformation
\[g = \begin{bmatrix} e^{[\omega]\theta} & (\mathbf{I} - e^{[\omega]\theta})q + h\theta\,\omega \\ \mathbf{0}^{\top} & 1 \end{bmatrix}.\]Comparing with the closed-form $e^{[\xi]\theta}$ derived above, the screw with axis through $q$, direction $\omega$, pitch $h$, magnitude $\theta$ is exactly the rigid motion generated by the twist
\[\xi = \begin{bmatrix} -\omega \times q + h\omega \\ \omega \end{bmatrix}.\]In particular:
- A zero-pitch screw ($h = 0$) gives pure rotation about $\ell$; the corresponding twist has $v = -\omega \times q$ and represents a revolute joint.
- An infinite-pitch screw gives pure translation along $\ell$; the twist has $\omega = 0$ and represents a prismatic joint.
The pitch and axis can be read off directly from twist coordinates:
\[h = \frac{\omega^{\top} v}{\|\omega\|^2}, \qquad \ell = \left\{ \frac{\omega \times v}{\|\omega\|^2} + \lambda\omega : \lambda \in \mathbb{R} \right\} \quad (\omega \neq 0).\]Every rigid-body motion $g \in SE(3)$ can be realised as a *screw motion*: a rotation about some axis $\ell$ in space combined with a translation parallel to $\ell$. Equivalently, every $g \in SE(3)$ is the exponential of some twist $[\xi]\theta \in \mathfrak{se}(3)$.
The exponential coordinates $\xi\theta$ are thus the algebraic incarnation of Chasles’ screw axis. This is the deep connection between modern Lie-theoretic robotics and the classical screw theory of Ball (1900).
The Adjoint Representation
Changing the Reference Frame of a Twist
A twist $\xi$ is a six-dimensional quantity whose components depend on the coordinate frame. If two frames $A$ and $B$ are related by $g_{ab} \in SE(3)$, how does the same physical twist change its numerical coordinates when expressed in $A$ versus in $B$?
Consider a twist $[\xi]_b$ expressed in frame $B$. Its expression in frame $A$ is found by conjugation,
\[[\xi]_a = g_{ab}\, [\xi]_b \, g_{ab}^{-1}.\]Direct block multiplication with $g_{ab} = \begin{bmatrix} \mathbf{R} & \mathbf{p} \ 0 & 1\end{bmatrix}$ gives
\[g_{ab}[\xi]_b g_{ab}^{-1} = \begin{bmatrix} \mathbf{R}[\omega]_b\mathbf{R}^{\top} & -\mathbf{R}[\omega]_b\mathbf{R}^{\top}\mathbf{p} + \mathbf{R} v_b \\ \mathbf{0}^{\top} & 0 \end{bmatrix},\]which corresponds to twist coordinates
\[\xi_a = \begin{bmatrix} v_a \\ \omega_a \end{bmatrix} = \begin{bmatrix} \mathbf{R} v_b + (\mathbf{p} \times \mathbf{R}\omega_b) \\ \mathbf{R}\omega_b \end{bmatrix}.\]This linear map $\xi_b \mapsto \xi_a$ on $\mathbb{R}^6$ is encoded by the $6 \times 6$ adjoint matrix.
For $g = (\mathbf{p}, \mathbf{R}) \in SE(3)$, the adjoint matrix is $$ \operatorname{Ad}_g := \begin{bmatrix} \mathbf{R} & [\mathbf{p}]\mathbf{R} \\ \mathbf{0} & \mathbf{R} \end{bmatrix} \in \mathbb{R}^{6\times 6}. $$ It transforms twists between frames via $\xi_a = \operatorname{Ad}_{g_{ab}} \xi_b$, or equivalently $[\xi]_a = g_{ab}[\xi]_b g_{ab}^{-1}$.
Properties
The adjoint is a group representation of $SE(3)$ on $\mathbb{R}^6$. Two key properties:
For $g, g_1, g_2 \in SE(3)$, $$ \operatorname{Ad}_{g_1 g_2} = \operatorname{Ad}_{g_1} \operatorname{Ad}_{g_2}, \qquad (\operatorname{Ad}_g)^{-1} = \operatorname{Ad}_{g^{-1}} = \begin{bmatrix} \mathbf{R}^{\top} & -\mathbf{R}^{\top}[\mathbf{p}] \\ \mathbf{0} & \mathbf{R}^{\top} \end{bmatrix}. $$
These identities give a coordinate-free calculus for relative velocities and serve as the bedrock of geometric formulations of the manipulator Jacobian and Newton–Euler dynamics.
Spatial vs Body Twists
A rigid-body trajectory is described by a curve $g_{ab}(t) \in SE(3)$. As in the rotation case, the derivative $\dot{g}_{ab}(t)$ is not itself in $SE(3)$, but $\dot{g}\,g^{-1}$ and $g^{-1}\dot{g}$ both lie in $\mathfrak{se}(3)$. The two yield distinct, complementary descriptions of the instantaneous velocity.
Spatial Twist
The spatial twist (sometimes called “left-trivialised”) is
\[[\mathcal{V}^s_{ab}] := \dot{g}_{ab}\, g_{ab}^{-1} \in \mathfrak{se}(3),\]with twist coordinates
\[\mathcal{V}^s_{ab} = \begin{bmatrix} v^s_{ab} \\ \omega^s_{ab} \end{bmatrix}, \qquad \omega^s_{ab} = (\dot{\mathbf{R}}_{ab}\mathbf{R}_{ab}^{\top})^{\vee}, \qquad v^s_{ab} = \dot{\mathbf{p}}_{ab} - \omega^s_{ab} \times \mathbf{p}_{ab}.\]Interpretation: $\omega^s_{ab}$ is the angular velocity of the body expressed in the spatial frame. The linear part $v^s_{ab}$ is the velocity of the (imaginary) point on the rigid body — extended if necessary — that is instantaneously coincident with the origin of the spatial frame.
Body Twist
The body twist (right-trivialised) is
\[[\mathcal{V}^b_{ab}] := g_{ab}^{-1}\,\dot{g}_{ab} \in \mathfrak{se}(3),\]with twist coordinates
\[\mathcal{V}^b_{ab} = \begin{bmatrix} v^b_{ab} \\ \omega^b_{ab} \end{bmatrix}, \qquad \omega^b_{ab} = (\mathbf{R}_{ab}^{\top}\dot{\mathbf{R}}_{ab})^{\vee}, \qquad v^b_{ab} = \mathbf{R}_{ab}^{\top}\dot{\mathbf{p}}_{ab}.\]Interpretation: $\omega^b_{ab}$ is the angular velocity expressed in the body frame, and $v^b_{ab}$ is the linear velocity of the origin of the body frame, expressed in body coordinates.
Relating Spatial and Body Twists
The two are related by the adjoint:
\[\mathcal{V}^s_{ab} = \operatorname{Ad}_{g_{ab}} \mathcal{V}^b_{ab}.\]To verify, note that
\[\dot{g}\, g^{-1} = g\,(g^{-1}\dot{g})\,g^{-1},\]and converting the bracket-conjugation to coordinates gives the adjoint formula. Neither description is “better”; each is natural in its own context. Body twists arise in formulating Newton–Euler dynamics on a rigid body (where the inertia tensor is constant in the body frame), while spatial twists arise in tasks like specifying an end-effector velocity in the world frame.
Wrenches: The Dual of Twists
Forces and torques acting on a rigid body combine in a six-dimensional object dual to a twist. A wrench $F$ pairs a linear force $f \in \mathbb{R}^3$ and a moment $\tau \in \mathbb{R}^3$:
\[F = \begin{bmatrix} f \\ \tau \end{bmatrix} \in \mathbb{R}^6.\]The natural pairing of a wrench $F^b$ in the body frame with a body twist $\mathcal{V}^b$ is power:
\[\delta W = \mathcal{V}^b \cdot F^b = v^b \!\cdot\! f^b + \omega^b \!\cdot\! \tau^b.\]Because power is a coordinate-independent scalar, the transformation law for wrenches between frames is the inverse transpose of that for twists:
\[F^b = \operatorname{Ad}_g^{\top} F^s,\]equivalently, $F$ transforms as an element of the dual space $\mathfrak{se}(3)^*$.
Every system of forces and moments acting on a rigid body is equivalent to a single force applied along a fixed line in space, plus a torque about that same line. This screw of forces is the dual of Chasles' screw of motion.
Worked Example: SE(3) Element of a Screw Motion
Consider the rigid motion that rotates a body by angle $\theta$ about the line in the $z$-direction passing through the point $\mathbf{q} = (0, l_1, 0)^{\top}$ in the spatial frame, with zero pitch (pure rotation, $h = 0$).
Step 1: Identify the screw parameters. The unit axis is $\omega = (0, 0, 1)^{\top}$, the point on the axis is $\mathbf{q} = (0, l_1, 0)^{\top}$, the pitch is $h = 0$, and the magnitude is $\theta$.
Step 2: Compute the twist. From the screw-to-twist correspondence with $h = 0$,
\[v = -\omega \times \mathbf{q} + h\omega = -\omega \times \mathbf{q} = -\begin{bmatrix} 0 \\ 0 \\ 1 \end{bmatrix} \times \begin{bmatrix} 0 \\ l_1 \\ 0\end{bmatrix} = \begin{bmatrix} l_1 \\ 0 \\ 0 \end{bmatrix}.\]Hence
\[\xi = \begin{bmatrix} v \\ \omega \end{bmatrix} = \begin{bmatrix} l_1 \\ 0 \\ 0 \\ 0 \\ 0 \\ 1 \end{bmatrix}, \qquad [\xi] = \begin{bmatrix} 0 & -1 & 0 & l_1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{bmatrix}.\]Step 3: Compute $e^{[\xi]\theta}$. Rodrigues’ formula gives
\[e^{[\omega]\theta} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1\end{bmatrix},\]while the translational block, using $\omega \times v = (0, l_1, 0)^{\top}$ and $\omega^{\top}v = 0$, is
\[(\mathbf{I} - e^{[\omega]\theta})(\omega \times v) + \omega\omega^{\top} v\,\theta = \begin{bmatrix} l_1 \sin\theta \\ l_1(1 - \cos\theta) \\ 0 \end{bmatrix}.\]Therefore
\[g(\theta) = e^{[\xi]\theta} = \begin{bmatrix} \cos\theta & -\sin\theta & 0 & l_1 \sin\theta \\ \sin\theta & \cos\theta & 0 & l_1(1-\cos\theta) \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{bmatrix}.\]Sanity check. At $\theta = 0$, $g(0) = \mathbf{I}$ as required. The fixed points of $g(\theta)$ should be precisely the axis ${(0, l_1, z) : z \in \mathbb{R}}$; plugging $\mathbf{p} = (0, l_1, z)$ into the action $\mathbf{p} \mapsto \mathbf{R}\mathbf{p} + \mathbf{t}$ verifies this is invariant for every $\theta$.
Interpretation. The displacement $g(\theta)$ encodes how a body point, specified in spatial coordinates before the rotation, ends up after the rotation. Note that the translation component $(l_1 \sin\theta, l_1(1-\cos\theta), 0)$ is not the origin of the body frame moving — it is the trajectory traced by the spatial-frame origin when viewed from the rotating body, equivalently the offset needed to make the screw motion land in homogeneous form.
Summary
We have introduced the modern, Lie-theoretic formulation of rigid-body motion:
- $SO(3)$ is the matrix Lie group of orientations. Its Lie algebra $\mathfrak{so}(3)$ is the space of $3 \times 3$ skew-symmetric matrices, identified with $\mathbb{R}^3$ via the hat operator. The exponential map $\exp : \mathfrak{so}(3) \to SO(3)$ is surjective, and Rodrigues’ formula gives the closed form $e^{[\omega]\theta} = \mathbf{I} + \sin\theta\,[\omega] + (1-\cos\theta)\,[\omega]^2$.
- $SE(3)$ is the matrix Lie group of rigid-body configurations, with $4 \times 4$ homogeneous matrix representation. Its Lie algebra $\mathfrak{se}(3)$ consists of twists $\xi = (v, \omega) \in \mathbb{R}^6$. The exponential map has a closed-form expression and is surjective.
- Chasles’ theorem asserts that every rigid motion is a screw motion; algebraically, every $g \in SE(3)$ is the exponential of a twist.
- The adjoint $\operatorname{Ad}g$ transforms twists between frames as a $6 \times 6$ matrix, with the chain-rule property $\operatorname{Ad}{g_1 g_2} = \operatorname{Ad}{g_1}\operatorname{Ad}{g_2}$.
- Spatial twist $\dot{g}g^{-1}$ and body twist $g^{-1}\dot{g}$ are two natural representations of instantaneous velocity, related by $\mathcal{V}^s = \operatorname{Ad}_g \mathcal{V}^b$.
- Wrenches are six-dimensional force–moment pairs dual to twists, transforming by $\operatorname{Ad}_g^{\top}$ so that power is invariant.
This machinery is the foundation for the product of exponentials formula in forward kinematics, the geometric Jacobian, and the Lie-theoretic formulation of robot dynamics, all of which will appear in subsequent posts.
Reference
[1] R. M. Murray, Z. Li, and S. S. Sastry, A Mathematical Introduction to Robotic Manipulation, CRC Press, 1994. (Chapter 2: “Rigid Body Motion”.)
[2] K. M. Lynch and F. C. Park, Modern Robotics: Mechanics, Planning, and Control, Cambridge University Press, 2017. (Chapter 3: “Rigid-Body Motions”.)
[3] R. S. Ball, A Treatise on the Theory of Screws, Cambridge University Press, 1900.
[4] M. Chasles, “Note sur les propriétés générales du système de deux corps semblables entr’eux,” Bulletin des Sciences Mathématiques, 1830.
[5] L. Poinsot, Éléments de Statique, Paris, 1803.
Leave a comment