Lie Theory in Robot Motion

7 minute read ·

Published:

This note covers some of the fundamental concepts in Lie group and Lie algebra, and their applications to representing rigid body motion in robotics.

Matrix Lie Groups

A group is a set GG equipped with a binary map :G×GG\cdot:G\times G\to G satisfying the following properties:

  • Closure: a,bG,abG\forall a,b\in G, a\cdot b\in G.
  • Associativity: a,b,cG,(ab)c=a(bc)\forall a, b, c\in G,\, (a\cdot b)\cdot c = a\cdot(b\cdot c).
  • Identity: eG,s.t.aG,ae=ea=a\exist e\in G,\,\mathrm{s.t.}\,\forall a\in G, \, a\cdot e=e\cdot a=a.
  • Inverse: aG,a1G,s.t.aa1=a1a=e\forall a\in G,\, \exist a^{-1}\in G, \, \mathrm{s.t.}\, a\cdot a^{-1}=a^{-1}\cdot a = e.

Here, it’s better to understand the element of a group as a kind of operation or transformation (e.g., a rotation or a rigid body transformation) rather than a number or a vector. These groups turn out to be also differentiable manifolds, which makes them Lie groups.

Special Orthogonal Group, SO(n)\mathrm{SO}(n)

To represent a rotation formally, we need to consider the properties that define a rotation. In general, a rotation should be

  • Linear, so it can be represented as a matrix R\mathbf{R}.
  • Preserves length and angles, so for any vector v\mathbf{v} and w\mathbf{w}, vw=(Rv)(Rw)\mathbf{v}\cdot \mathbf{w}=(\mathbf{R}\mathbf{v})\cdot (\mathbf{R}\mathbf{w}).

    Note, from this property,

    vw=(Rv)(Rw)=vRRw\mathbf{v}^{\top}\mathbf{w}=(\mathbf{R}\mathbf{v})^{\top}(\mathbf{R}\mathbf{w})=\mathbf{v}\mathbf{R}^{\top}\mathbf{R}\mathbf{w}

    which means the matrix R\mathbf{R} has to satisfy the following

    RR=I\begin{equation} \mathbf{R}^{\top}\mathbf{R}=\mathbf{I} \end{equation}
  • Preserves orientation (no mirroring), so det(R)>0\det(\mathbf{R})>0.

    Given the previous property

    det(RR)=det(R)det(R)=(det(R))2=1\det(\mathbf{R}^{\top}\mathbf{R})=\det(\mathbf{R}^{\top})\cdot\det(\mathbf{R})=(\det(\mathbf{R}))^2=1

    we have

    det(R)=1\det(\mathbf{R})=1

In fact, these properties give rise to a group called the special orthogonal group,

SO(n)={RRn×nRR=I,det(R)=1}\mathrm{SO}(n)=\{\mathbf{R}\in\mathbb{R}^{n\times n}\mid\mathbf{R}^{\top}\mathbf{R}=\mathbf{I},\det(\mathbf{R})=1\}

which is a group of all rotations about the origin in an nn dimensional Euclidean space.

Special Euclidean Group, SE(n)\mathrm{SE}(n)

The general way to represent the motion of a rigid body is a transformation that

  • Preserves the Euclidean distance, f(x)f(y)=xy\left\|f(\mathbf{x})-f(\mathbf{y})\right\|=\left\|\mathbf{x}-\mathbf{y}\right\|.
  • Preserves the orientation.

All such transformation forms a group called the special Euclidean group, SE(n)\mathrm{SE}(n).

Intuitively, such transformation can be represented by a function f:RnRnf:\mathbb{R}^n\to\mathbb{R}^n, where

f(x)=Rx+p,RSO(n)andpRn\begin{align*} f(\mathbf{x})=\mathbf{R}\mathbf{x}+\mathbf{p}, && \mathbf{R}\in\mathrm{SO}(n)\,\,\text{and}\,\,\mathbf{p}\in\mathbb{R}^n \end{align*}

However, the function ff is not linear and thus cannot be represented by a matrix, which causes inconvenience. The general trick to solve this problem is to augment the dimension by 1. For xRn\mathbf{x}\in\mathbb{R}^n, define xRn+1\overline{\mathbf{x}}\in\mathbb{R}^{n+1} and TR(n+1)×(n+1)\mathbf{T}\in\mathbb{R}^{(n+1)\times(n+1)} such that

x=[x1],T=[Rp01×n1],Tx=f(x)\begin{align*} \overline{\mathbf{x}}=\left[\begin{matrix}\mathbf{x}\\1\end{matrix}\right], && \mathbf{T}=\left[ \begin{matrix} \mathbf{R} & \mathbf{p}\\ \mathbf{0}_{1\times n} & 1 \end{matrix} \right], && \mathbf{T}\overline{\mathbf{x}}=\overline{f(\mathbf{x})} \end{align*}

so the transformation becomes matrix vector multiplication.

The special Euclidean group now can be written as

SE(n)={TR(n+1)×(n+1)T=[Rp01×n1],RSO(n),pRn}\mathrm{SE}(n)=\left\{\mathbf{T}\in\mathbb{R}^{(n+1)\times(n+1)}\mid\mathbf{T}=\left[ \begin{matrix} \mathbf{R} & \mathbf{p}\\ \mathbf{0}_{1\times n} & 1 \end{matrix} \right], \mathbf{R}\in\mathrm{SO}(n), \,\mathbf{p}\in\mathbb{R}^n \right\}

which represents all poses an object can take in an nn dimensional space.

Lie Algebra

A Lie algebra is a vector space g\mathfrak{g} together with a binary operation called the Lie bracket [,]:g×gg[\cdot,\cdot]:\mathfrak{g}\times\mathfrak{g}\to\mathfrak{g} satisfying the following properties

  • Bilinearity: [ax+by,z]=a[x,z]+b[y,z][a\mathbf{x}+b\mathbf{y},\mathbf{z}]=a[\mathbf{x},\mathbf{z}]+b[\mathbf{y},z], [z,ax+by]=a[z,x]+b[z,y][\mathbf{z},a\mathbf{x}+b\mathbf{y}]=a[\mathbf{z},\mathbf{x}]+b[\mathbf{z},\mathbf{y}].
  • Alternating: [x,x]=0[\mathbf{x},\mathbf{x}]=\mathbf{0}.
  • Jacobi identity: [x,[y,z]]+[y,[z,x]]+[z,[x,y]]=0[\mathbf{x},[\mathbf{y},\mathbf{z}]]+[\mathbf{y},[\mathbf{z},\mathbf{x}]]+[\mathbf{z},[\mathbf{x},\mathbf{y}]]=\mathbf{0}.

Importantly, every Lie algebra g\mathfrak{g} is associated to a Lie group GG, which is the tangent space of the identity of the Lie group, denoted as g=TeG\mathfrak{g} = T_{e}G, and it completely captures the local structure of the group. In the case of robot motion, we can think of a trajectory that lives in the Lie group while the velocity lives in the Lie algebra.

Exponential Map

Let GG be a Lie group and g\mathfrak{g} be its Lie algebra, first we need to define a few notations:

  • A curve in GG is defined as a function γ:RG\gamma:\mathbb{R}\to G that maps each real number tRt\in\mathbb{R} to an element of the group GG.

    The derivative of γ\gamma, denoted as γ˙\dot\gamma, evaluated at a specific time tt, γ˙(t)\dot\gamma(t), is a vector in the tangent space. Suppose γ(t)=g\gamma (t)=g, then γ˙(t)TgG\dot\gamma(t)\in T_gG.

  • Left translation: For a specific element gGg\in G, define the map Lg:GG,xgxL_g:G\to G, x\mapsto gx as the left translation. Example: if G=SO(3)G=\mathrm{SO}(3), and g=Rg=\mathbf{R}, then LR(Q)=RQL_{\mathbf{R}}(\mathbf{Q})=\mathbf{R}\mathbf{Q}.
  • Left-invariant vector field: For a vector ξg\xi\in\mathfrak{g}, the left-invariant vector field XξX_{\xi} is defined at any point gGg\in G by Xξ(g)=(dLg)e(ξ)X_{\xi}(g)=(\mathrm{d}L_g)_e(\xi).

    Basically, start from a velocity vector ξg\xi\in\mathfrak{g}, which has to stars at the origin ee (identity). Then, you map this velocity vector to another vector in the tangent space to a group element gg, i.e., TgGT_g G.

Now, suppose you have a curve γξ\gamma_\xi that starts at the identity with velocity ξ\xi, then, for any tRt\in\mathbb{R}, we have

ddtγξ(t)=γ˙ξ(t)=Xξ(γξ(t))\frac{\mathrm{d}}{\mathrm{d}t}\gamma_\xi(t)=\dot\gamma_\xi(t)=X_{\xi}(\gamma_\xi(t))

The above equation can be thought of as a “differential equation” whose solution is

γξ(t)=exp(tξ)\gamma_\xi(t)=\exp(t\xi)

Let t=1t=1, the exponential map can be defined as

exp:gG,exp(ξ)=γξ(1)\begin{align} \exp:\mathfrak{g}\to G,&& \exp(\xi)=\gamma_\xi(1) \end{align}

Takeaway: The exponential and logarithmic maps bridge the Lie group and its associated Lie algebra. Since Lie group is a “curved manifold” and some operations (e.g., optimizations) do not apply to it, and the Lie algebra is a flat vector space and most operations are well defined, a common paradigm is to lift group elements to Lie algebra using log map, solve the problem in Lie algebra, and bring it back to Lie group using exponential map.

Conjugation and Adjoint Map

Let GG be a matrix Lie group with Lie algebra g\mathfrak{g}. For a specific element gGg\in G, the conjugation map is defined as Cg:GG,xgxg1C_g:G\to G, x\mapsto gxg^{-1}.

The derivative of the conjugation map evaluated at the identity, (dCg)e:gg(\mathrm{d}C_g)_e:\mathfrak{g}\to\mathfrak{g} is defined as the adjoint map, denoted as Adg\mathrm{Ad}_g. For any ξg\xi\in\mathfrak{g}, there exist a curve γξ(t)G\gamma_{\xi}(t)\in G such that ξ=γ˙ξ(0)\xi=\dot\gamma_{\xi}(0) and γξ(0)=e\gamma_\xi(0)=e, then

Adg(ξ)=(dCg)e(ξ)=ddtgγξ(t)g1t=0=gξg1\mathrm{Ad}_g(\xi)=(\mathrm{d}C_g)_e(\xi)=\left.\frac{\mathrm{d}}{\mathrm{d}t}g\gamma_\xi(t) g^{-1}\right|_{t=0}=g\xi g^{-1}
  • A conjugation map is a change of basis transformation for an element in the Lie group.
  • An adjoint map is a change of basis transformation for an element in the Lie algebra.

Angular Velocity and Twist, so(3),se(3)\mathfrak{so}(3), \mathfrak{se}(3)

Let R(t)SO(3)\mathbf{R}(t)\in\mathrm{SO}(3) be a smooth trajectory. By differentiating the orthogonality constraint, i.e., equation (1),

ddt(RR)=R˙R+RR˙=0\frac{\mathrm{d}}{\mathrm{d}t}\left(\mathbf{R}^\top\mathbf{R}\right)=\dot{\mathbf{R}}^\top\mathbf{R}+\mathbf{R}^\top\dot{\mathbf{R}}=0

which means,

R˙R=RR˙=(R˙R)\begin{equation} \dot{\mathbf{R}}^\top\mathbf{R}=-\mathbf{R}^\top\dot{\mathbf{R}}=-\left(\dot{\mathbf{R}}^\top\mathbf{R}\right)^{\top} \end{equation}

Suppose R(0)=I\mathbf{R}(0)=I, then R˙(0)\dot{\mathbf{R}}(0) would be an element of the Lie algebra by definition, and we have R˙(0)=R˙(0)\dot{\mathbf{R}}(0)^{\top}=-\dot{\mathbf{R}}(0). Therefore, the Lie algebra associated to the 3-dimensional rotation group is

so(3)={ΩR3×3Ω=Ω}\mathfrak{so}(3)=\left\{\mathbf{\Omega}\in\mathbb{R}^{3\times 3}\mid \mathbf{\Omega}^{\top}=-\mathbf{\Omega}\right\}

which consists of all skew-symmetric matrices. Obviously, a 3 by 3 skew-symmetric matrix should look like

Ω=[0ωzωyωz0ωxωyωx0],ωx,ωy,ωzR\begin{align*} \mathbf{\Omega}=\left[\begin{matrix} 0 & -\omega_z & \omega_y\\ \omega_z & 0 & -\omega_x\\ -\omega_y& \omega_x & 0 \end{matrix}\right], && \omega_x, \omega_y,\omega_z \in\mathbb{R} \end{align*}

This means we can define a vector ω=[ωx,ωy,ωz]R3\boldsymbol{\omega}=\left[\omega_x, \omega_y,\omega_z\right]^\top\in\mathbb{R}^3 to represent the matrix Ω\mathbf{\Omega}, often denoted as ω=Ω\boldsymbol{\omega}^{\wedge}=\mathbf{\Omega} or ω×=Ω\lfloor\boldsymbol{\omega}\rfloor_{\times}=\boldsymbol{\Omega}

Notice that from equation (3), R˙R\dot{\mathbf{R}}^\top\mathbf{R} and RR˙\mathbf{R}^\top\dot{\mathbf{R}} are skew-symmetric, which makes them element of so(3)\mathfrak{so}(3). Thus, we can define two vectors ωb,ωsR3\boldsymbol{\omega}_b, \boldsymbol{\omega}_s\in\mathbb{R}^3 such that

ωb=RR˙,ωs=R˙R\begin{align} \boldsymbol{\omega}_b^{\wedge}=\mathbf{R}^{\top}\dot{\mathbf{R}}, && \boldsymbol{\omega}_s^{\wedge}=\dot{\mathbf{R}}\mathbf{R}^{\top} \end{align}

where ωs\boldsymbol{\omega}_s is the spatial angular velocity and ωb\boldsymbol{\omega}_b is the body angular velocity. From equation (4), naturally

R˙=RωbR˙=ωsR\begin{align} \boxed{\dot{\mathbf{R}}=\boldsymbol{R}\boldsymbol{\omega}_b^\wedge} &&\boxed{\dot{\mathbf{R}}=\boldsymbol{\omega}_s^\wedge\mathbf{R}} \end{align}

These two equations are known as the reconstruction equation or the equation of motion. It’s better to interpret the subscript bb and ss as

  • If the rotation matrix is multiplied on the left, then the velocity is in the body frame.
  • If the rotation matrix is multiplied on the right, then the velocity is in the spatial frame.

Similarly, we can derive the Lie algebra of SE(3)\mathrm{SE}(3) as

se(3)={ΞR4×4Ξ=[ωv00],ωso(3),vR3}\mathfrak{se}(3)=\left\{\mathbf{\Xi}\in\mathbb{R}^{4\times 4}\mid \boldsymbol{\Xi}=\left[\begin{matrix} \boldsymbol{\omega}^\wedge & \boldsymbol{v}\\ \boldsymbol{0} & 0 \end{matrix}\right], \boldsymbol{\omega}^\wedge\in\mathfrak{so}(3), \boldsymbol{v}\in\mathbb{R}^3 \right\}

which is a 6-dimensional vector space, each element of which can be identified with a vector known as the twist, ξ=[ω,v]R6\boldsymbol{\xi}=[\boldsymbol{\omega},\boldsymbol{v}]\in\mathbb{R}^6, often denoted as ξ=Ξ\boldsymbol{\xi}^\wedge=\mathbf{\Xi}. The reconstruction equation or equation of motion can be written as

T˙=TξbT˙=ξsT\begin{align} \boxed{\dot{\mathbf{ T}}=\mathbf{T}\boldsymbol{\xi}_b^\wedge} && \boxed{\dot{\mathbf{ T}}=\boldsymbol{\xi}_s^\wedge \mathbf{T}} \end{align}

Reference

[1] T. D. Barfoot, State Estimation for Robotics. Cambridge University Press, 2024.
[2] M. Ghaffari, ROB530 Lecture Slides — Matrix Lie Groups, Robot Motion. University of Michigan, 2026.

Categories: Robotics