跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言AI算法

机器人技术中的李群与李代数基础理解

综述由AI生成机器人技术中位姿表述的局限性及矩阵求导问题,引出李群与李代数的概念。详细阐述了群的数学定义、李群作为光滑流形的性质,以及李代数作为切空间的作用。通过欧拉公式解释了指数映射与对数映射的关系。重点讲解了特殊正交群 SO(3) 和特殊欧氏群 SE(3) 在机器人中的应用,包括罗德里格斯公式推导及旋量表示。旨在帮助读者建立完整的机器人数学知识体系,便于后续深入学习与工程应用。

灭霸发布于 2026/4/6更新于 2026/5/2024 浏览
机器人技术中的李群与李代数基础理解

一、问题提出

1.1 位姿的表述

所谓的机器人,可以理解为一堆连杆,或者叫一堆刚体(柔性机械臂一般简化为连续的欠驱动的多刚体机械臂)。机器人技术,便是对刚体的研究技术,这些技术都是成熟的。对于刚体间的关系,其普遍描述于欧氏空间中。欧氏空间,或者叫平直空间,全称是欧几里德空间(Euclidean Space),顾名思义就是欧几里得建立的以角和空间线的关系为法则的空间。其对于空间内固定的点集主要表现出两个特性:其一是平移特性,所有点向相同方向移动相同的距离;其二是旋转特性,所有点关于同一个旋转轴旋转相同角度。

在大量的文献资料上,不难发现机器人等效为一系列关联的坐标系。由于其描述在欧氏空间,坐标系采用的是笛卡尔坐标系,坐标系之间的关系分为旋转和平移两种,如图 1 所示。工程上一般将机器人描述的欧氏空间定义为 x-y-z 的 3 维欧氏空间,空间内的点表示为 3×1 的列向量,每一行分别对应 x、y、z 轴上的值。平移和旋转运算在矩阵乘法中为左乘运算。在运算上,空间内的平移可以用一个 3×1 的平移矢量表示,其平移运算后空间点仍旧还是空间点;空间内的旋转可以用 1 个 9×9 的旋转矩阵表示,其旋转运算后仍旧还是空间点。

文章配图

图 1. 欧氏空间中描述位姿的两种变换

从数学公式上看:

1)平移变化可以表示为

T_{translation} = \begin{bmatrix} d_{x}\ d_{y}\ d_{z} \end{bmatrix}

,

P_{new} = P_{old} + T_{translation}

,

2)旋转变化可以表示为

T_{rotation} = \begin{bmatrix} r_{11} & r_{12} & r_{13}\ r_{21} & r_{22} & r_{23}\ r_{31} & r_{32} & r_{33} \end{bmatrix}

,

P_{new} =T_{rotation} P_{old}

,

其中,平移变化可以用 3 个参数表示,而旋转参数需要用 9 个参数表示。显然,对于 3 维度的空间描述过于冗余了。

因此,根据旋转矩阵的 9 个参数,其中大部分耦合。为了简化旋转模型,减少未知变量,产生了欧拉角描述法、旋量描述法、四元数描述法等描述法。

这样,刚体间的位姿关系就可以用平移变化和旋转变化共同表示。

在欧氏空间中,针对一个 3D 点的变换,这二者不好合并。一个表达形式是矩阵加法,一个表达形式是矩阵乘法,其按照 3D 形式表达为:

P_{new} =T_{rotation} P_{old} + T_{translation}

为了简化表示,最好能写成如:

P_{new} = A P_{old}

的形式。因为矩阵本身就表征了向量的一种变换,便于算法的后续处理。旋转变化比较好处理,而平移矩阵如何转变成矩阵乘法依靠 3D 变换则比较困难。一般将待变换的点扩展 1 维并将多余维度补作 1。

平移变换的齐次形式为:

\begin{bmatrix} P_{new}\ 1 \end{bmatrix}=\begin{bmatrix} I & T_{translation}\ 0 & 1 \end{bmatrix} \begin{bmatrix} P_{old}\ 1 \end{bmatrix}

而旋转变换的齐次形式为:

\begin{bmatrix} P_{new}\ 1 \end{bmatrix}=\begin{bmatrix} T_{rotation} & 0\ 0 & 1 \end{bmatrix} \begin{bmatrix} P_{old}\ 1 \end{bmatrix}

因此,平移旋转的合同齐次形式为(齐次坐标左乘旋转矩阵再左乘平移矩阵):

\begin{bmatrix} P_{new}\ 1 \end{bmatrix}= \begin{bmatrix} I & T_{translation}\ 0 & 1 \end{bmatrix} \begin{bmatrix} T_{rotation} & 0\ 0 & 1 \end{bmatrix} \begin{bmatrix} P_{old}\ 1 \end{bmatrix} = \begin{bmatrix} T_{rotation} & T_{translation} \ 0 & 1 \end{bmatrix} \begin{bmatrix} P_{old}\ 1 \end{bmatrix}

进而,定义位姿矩阵为:

T=\begin{bmatrix} T_{rotation} & T_{translation}\ 0 & 1 \end{bmatrix} , T \in \mathbb{R}^{4 \times 4}

,

因此刚体变换方程为:

P_{old} = T P_{new}

1.2 矩阵求导的问题

在实际机器人技术中,需要对其涉及的一些刚体位姿进行测量,而这种测量主要是依赖特定特征空间点进行的,比如移动机器人依赖路标点对机器人本体位姿进行测量,机械臂依赖环境特征点对末端位姿进行测量等等。假想,对于一系列与刚体固定的空间点

p_i

(真实值),以及其在传感器上所表现出的'空间点'

z_i

(观测值),目的为了获得一个最佳的位姿

T

,使得:

min_{T} J(T) = \sum_{i=1}^{N} \left | z_i - T p_i \right |_{2}^{2}

这就需要让目标函数

J(T)

对变换矩阵

T

进行求导。

求导本质上是一个高阶多项式的线性和的拆分。然而,由于乘法矩阵存在

T_{rotation}T_{rotation}^{-1} = I

和

det\left ( R \right ) = 1

两个约束,两个旋转矩阵相加后便不是旋转矩阵,进而任意两个位姿矩阵相加后并不是一个位姿矩阵。因此,矩阵

T

所处的空间对于加法运算不封闭,进入无法进行求导运算,李群李代数刚好能很好地解决这个问题。

刚体的三维旋转矩阵所组成集合等价于一个球体,球体上每一个点都对应了一个旋转变换。

文章配图

图 2. 每个旋转矩阵 R 都等效于其集合空间空间{M}(单位球)上的一个点

二、李群

2.1 群数学定义

群是对称数学中的一个词。对称的定义:一个数学对象

X

,如果存在

X\rightarrow X

的可逆变换能够使它在某种意义上不变,则该数学对象

X

上所有的对称就构成了一个对称群。

群的定义是:一种集合加上一种运算的代数结构。群

\left ( G,\bigcirc \right )

由集合

G

和运算

\bigcirc

共同构成,对于流形内的

x,y,z \in G

以及流形内的幺元

\varepsilon

,需要满足以下约束:

a) 封闭性:

x\bigcirc y = \in G

b) 同一性:

\varepsilon \bigcirc x = x\bigcirc \varepsilon = x

c) 可逆性:

x^{-1} \bigcirc x = x\bigcirc x^{-1} = \varepsilon

d) 可交换性:

\left ( x\bigcirc y \right ) \bigcirc z = x \bigcirc \left ( y \bigcirc z \right )

(注意:幺元

\varepsilon

为集合中的单位元,与集合中其它元素结合时不会改变其它元素,比如旋转矩阵中的单位阵

I

)

这个对称群的变换和逆变换数学对象的性质不变,对于旋转而言是显而易见的,因为旋转对对象的形状等参数不产生任何变化。因此旋转变换应该对应了一个群。

2.2 李群和李代数的数学定义

李群的定义:具有群结构的实流形或者复流形。

李群是一个光滑(可微)流形,而其元素满足群的公理。光滑流形是一个局部近似于线性空间的拓扑空间,其光滑性意味着空间内每个点都存在一个唯一的切空间,而这个空间是可以做微积分的线性空间,或是叫做向量空间,如图 3 所示。

文章配图

图 3. 流形{M}与其向量空间 Tx{M}在元素 X 处相切

可以看到,对于机器人状态空间,则假如流形是机器人的位置空间,那么其切空间便是机器人的速度空间。对于旋转矩阵而言,约束于一个具有单位模长(模长为 1)半径的球面流形,其球面上每个点都可以进行微分运算,如图 4 所示。

文章配图

图 4. 旋转矩阵李群{M}及其在幺元处的切空间

对于李群,流形上的每一个点都是类似的,其切空间也是相似的。李群的切空间,也称作李群的李代数。

下面利用常见的单位球模型简要说明李群和李代数的关系(1940 年 Hans 证明了只有

S^0,S^1,S^3

具有李群结构):

a)如图 5 所示,假设具有李群结构的单位圆

S^{1}

位于平面

\mathbb{C}

上,该群的集合包含了所有单位复数。单位复数的乘积是单位复数,并且

z^{*}z=1

,其中

z^{*}

是

z

的共轭复数,也是

z

的逆。那么,李代数

s^{1} = T_{\varepsilon } S^{1}

则是由虚数构成的直线

i\mathbb{R}

,其与实直线

\mathbb{R}

同构,所以图中用蓝色直线绘制。

文章配图

图 5 S1 单位圆模型中李群与李代数的关系

对于初始李群元素

X_1

(用实轴虚轴表示),其经过另一个李群元素

z = cos \theta + i sin \theta

(用θ和虚轴表示)左乘运算后得到另一个李群元素

X_2

,

X_2 = z X_1

。相较于初始向量

X_1

,该旋转的结果在李群

S^1

上对应着唯一的相对角度

\theta

,在李代数

i\mathbb{R}

上也一定对应了一个长度

\theta

,但是维度降低了。

根据完美的欧拉公式:

cos \theta + i sin \theta= e^{i \theta}

可以得到:

X_2 = \left (cos \theta + i sin \theta \right ) X_1= e^{i \theta} X_1

,

i \theta = log\left ( X_1 ^{*} X_2 \right )

,

可以发现,对于乘法运算,李群和李代数之间可以用指数关系描述。通过对数变换,李群的乘法等效于李代数的加法;通过指数变换,李代数的加法等于李群的乘法。

(注意:这类变换和拉氏变换表征时域和频域关系类似。我们知道,拉氏变换联系了信号的时域和频域,时域中的信号乘积等于频域中的卷积,时域中的卷积等于频域中的乘积。)

b)如图 6 所示,假设具有李群结构的 3 维单位球单位球

S^{3}

位于空间

\mathbb{H}

上,该群的集合包含了所有的单位四元数,即

q = cos(\theta/2) + usin(\theta/2),u=iu_x+ju_y+ku_z

,其中

u

是一个单位向量,

\theta

是一个单位角。单位四元数其也存在

q^{*} q =1

的性质。该李群所对应的李代数位于与球面相切的纯虚四元数空间

ix+jy+kz \in \mathbb{H}_p

中,并与

\mathbb{R}^{3}

同构,图中用红色网格表示。

文章配图

图 6 S3 单位圆模型中李群与李代数的关系

对于初始李群元素

X_1

(用实轴虚轴表示),

X_1=ix+jy+kz

,其经过另一个李群元素

q

(用θ和虚轴 i、j、k 表示)进行乘运算后得到另一个李群元素

X_2

,

X_2 = q X_1 q^{*}

。相较于初始向量

X_1

,该旋转的结果在李群

S^3

上对应着唯一的相对角度

\theta

,在李代数

T_{x_{1}}S^{3}

上也一定对应了一个长度

\theta

,但是维度降低了。

可以推导出:

X_2 = q X_1 q^{*} =\left ( cos(\theta/2) + usin(\theta/2) \right ) X_1 \left ( cos(\theta/2) - usin(\theta/2) \right )=X_1 e^{u\theta }

u \theta = log\left ( X_1 ^{*} X_2 \right )

,

可以发现,其

S^3

李群推导结果与

S^1

李群相似。

2.3 欧拉公式

上述李群和李代数之间的映射主要用到了指数映射,而指数映射中核心运算为欧拉公式:

e^{i \theta} = cos \theta + i sin \theta

公式右边

cos \theta + i sin \theta

描述是复平面的单位圆周运动,如图 7 所示。其自变量是

\theta

,也就是圆周上点在复平面上的方向;

文章配图

图 7 单位复数的圆周运动

公式左边

e^{i \theta}

可以利用泰勒级数公式展开:

e^{i\theta} \= 1+\frac{i\theta}{1!} - \frac{\theta^2}{2!} - \frac{i\theta^3}{3!}+\frac{\theta^4}{4!}+\frac{i\theta^5}{5!}+\cdots \ =\left ( 1 - \frac{\theta^2}{2!} + \frac{\theta^4}{4!} + \cdots \right ) + i\left ( \theta-\frac{\theta^3}{3!} + \frac{\theta^5}{5!} + \cdots \right ) \=cos \theta + i sin \theta

这是利用泰勒级数公式展开得到,不是十分形象,可以利用更一般的式子进行形象表述 e 的指数旋转过程。

根据定义:

e=\lim_{n \rightarrow \infty } \left ( 1 + \frac{1}{n} \right )^{n}

,

e^{i}=\lim_{n \rightarrow \infty } \left ( 1 + \frac{i}{n} \right )^{n}

e^{i \theta }= \left [ \lim_{n \rightarrow \infty } \left ( 1 + \frac{i}{n} \right )^{n} \right ] ^{\theta }

复数乘法中,乘以

\left ( 1+ \frac{i}{n} \right )

等价于伸缩和旋转运动,其幅度与

n

的取值直接相关。

当

\theta =1

(旋转弧度 1),

n=3

时,

e^{i}= \left ( 1+\frac{i}{3} \right ) \left ( 1+\frac{i}{3} \right ) \left ( 1+\frac{i}{3} \right )

其在复平面运动如图 8 所示:

文章配图

图 8 θ=1,n=3 的指数展开过程

当

\theta =1

(旋转弧度 1),

n=10

时,

e^{i}= \left ( 1+\frac{i}{10} \right )\left ( 1+\frac{i}{10} \right )\cdots \left ( 1+\frac{i}{10} \right )

其在复平面运动如图 9 所示:

文章配图

图 9 θ=1,n=10 的指数展开过程

当

\theta =1

(旋转弧度 1),

n=50

时,

e^{i}= \left ( 1+\frac{i}{50} \right ) \left ( 1+\frac{i}{50} \right ) \cdots \left ( 1+\frac{i}{50} \right )

其在复平面运动如图 10 所示:

文章配图

图 9 θ=1,n=50 的指数展开过程

因此,可以推断出,当

n \rightarrow \infty

时,

e^{i}

在单位圆上转过了 1 弧度。同样,当

\theta =\pi

时,

e^{i\pi }

在单位圆上转过了半圈;当

\theta =2\pi

时,

e^{2\pi i }

在单位圆上转过了整圈。

特别的,

n

控制了变换的幅度,

\theta

控制了变换的角度。

总的来说,通过欧拉公式可以看到,指数变换可以理解为是一个卷曲的映射。

三、李群在机器人中的应用

经过第二章的推导可以得到李群的定义:

给定一个李群

M

和一个集合

V

,将

X

作用于元素

v

记作:

X\cdot v

,其中

X \in M, v \in V

,定义这类作用为需满足李群约束:

\cdot : M \times V \rightarrow V,\left ( X,v \right ) \rightarrow X \cdot v

其具备以下李群性质:

a)同一性:

\varepsilon \cdot v = v

b)交换性:

\left ( x \cdot y \right ) \cdot v = x \cdot \left ( y \cdot v \right )

3.1 SO(3) 特殊正交群

常见的有旋转矩阵

R

构成的李群

SO(3)

,以及其对应的

\mathfrak{so}\left ( 3 \right )

李代数。

SO(3)

李群也被称作特殊正交群,记为:

SO(3) = \left { R \in \mathbb{R}^{3 \times 3} | RR^{T} = I , det(R) = 1 \right }

,

\mathfrak{so}\left ( 3 \right )

具有 3 个自由度,比李群

SO(3)

9 个参数简洁,记为:

\mathfrak{so}\left ( 3 \right ) = \left { \phi \in \mathbb{R}^3, \Phi =\phi^{\wedge } \in \mathbb{R}^{3 \times 3} \right }

具体数学推导包括:

由于旋转矩阵

R

是正交矩阵,其满足的条件:

R^{-1} = R^{T}

则可以得到

RR^{T} = I

假设

R

是一个随着时间变化的量(实际也得变化),那么

R\left ( t \right )

表示,则,

R\left ( t \right )R^{T} \left ( t \right )= I

等式两边对

t

进行求导,可以得到:

\dot{R}\left ( t \right )R^{T} \left ( t \right )+{R\left ( t \right )\dot{R}^{T} \left ( t \right )= 0

\dot{R}\left ( t \right )R^{T} \left ( t \right )=-{R\left ( t \right )\dot{R}^{T} \left ( t \right )

\dot{R}\left ( t \right )R^{T} \left ( t \right )=- \left ( \dot{R}\left ( t \right )R^{T} \left ( t \right ) \right )^{T}

不难发现,

\dot{R}\left ( t \right )R^{T} \left ( t \right )

是一个反对称矩阵,令:

\phi \left ( t \right )^{\wedge }=\dot{R}\left ( t \right )R^{T} \left ( t \right )

两边同右乘

R(t)

\phi \left ( t \right )^{\wedge } R \left ( t \right )=\dot{R}\left ( t \right )

\dot{R}\left ( t \right ) = \phi^{\wedge } (t) R \left ( t \right )

求解该微分方程可以得到:

R(t) = R(t_0)e^{\phi ^{\wedge } t} = e^{\phi ^{\wedge } t}

即,通过指数映射关系,

\phi _{0}^{\wedge } t

与

R(t)

一一对应。

更一般地,

SO(3)

李群和李代数的关系被写作:

R = e^{\phi^{\wedge }}

给定李代数

\phi ^{\wedge }

可以计算唯一对应的旋转矩阵

R

。这是李代数和李群之间的指数映射。

值得注意的是,反对称标识符为:

\phi ^{\wedge } =\Phi = \begin{bmatrix} 0 & -\omega_z & \omega_y\ \omega_z & 0 & -\omega_x\ -\omega_y & \omega_x & 0 \end{bmatrix}

,

\Phi^{\vee } = \phi

。

反对称矩阵

A^{T} = -A

,其主要性质包括:

1)反对称矩阵的主对角线元素均为 0,而非主对角线上的上三角和下三角元素反号;

2)若 A 为反对称矩阵,则 A 的逆,λA 均为反对称矩阵;

3)若 A,B 均为反对称矩阵,则 A±B 亦为反对称矩阵;

4)若 A 为反对称矩阵,B 为对称矩阵,则 AB-BA 为对称矩阵;

5)奇数阶的反对称矩阵行列式必为 0,比如

det \left ( a^{\wedge } a^{\wedge } a^{\wedge } \right )=0

6)反对称矩阵的特征值是 0 或者是纯虚数,并且对应于纯虚数的特征向量的实部和虚部形成的实向量等长且相互正交。

特别的,李代数可以用向量

\omega = \left ( \omega_x, \omega_y, \omega_z \right ) \in \mathbb{R}^{3}

表示,这是一个用 3 个未知量

\omega_x, \omega_y, \omega_z

表示

3\times 3

矩阵

\phi ^{\wedge }

的方法,即

\phi^{\wedge } = \omega_x E_x + \omega_y E_y + \omega_z E_z

,

其中,

E_x = \begin{bmatrix} 0 & 0 & 0\ 0& 0 & -1\ 0 &1 &0 \end{bmatrix} , E_y = \begin{bmatrix} 0 & 0 & 1\ 0 & 0 & 0\ -1 & 0 & 0 \end{bmatrix}, E_z = \begin{bmatrix} 0 & -1 & 0\ 1 & 0 & 0\ 0 & 0 & 0 \end{bmatrix},

但是,在继续计算中发现,对于矩阵的指数运算,我们没有合适的运算工具,只能通过泰勒展开:

e^{\phi ^{\wedge }} = \sum_{n=0}^{\infty } \frac{1}{n!} \left ( \phi^{\wedge } \right )

注意到这里的 n 需要趋于无穷,显然这运算量巨大,不是一种好的逼近方法,需要将其再进一步转换回旋转标识。

考虑到李代数

\mathfrak{so}\left ( 3 \right )

其为一个三维向量,那么其可以用一个模长

\theta

和方向向量

a

进行表示,即:

\phi = \theta a

对于方向向量

a

,其存在以下两条性质:

a^{\wedge } a^{\wedge } \= \begin{bmatrix} 0 & -a_3 & a_2\ a_3 & 0 & -a_1\ -a_2 & a_1 & 0 \end{bmatrix} \begin{bmatrix} 0 & -a_3 & a_2\ a_3 & 0 & -a_1\ -a_2 & a_1 & 0 \end{bmatrix} \= \begin{bmatrix} -a_3^2-a_2 ^2 & a_1a_2 & a_1a_3\ a_1a_2 & -a_1^2-a_3^2 & a_2a_3\ a_1a_3 & a_2a_3 & -a_1^2-a_2^2 \end{bmatrix} \= \begin{bmatrix} -1+a_1^2 & a_1a_2 & a_1a_3\ a_1a_2 & -1+a_2^2 & a_2a_3\ a_1a_3 & a_2a_3 & -1+a_3^2 \end{bmatrix} \=aa^{T}-I

以及其推论

a^{\wedge }a^{\wedge }a^{\wedge } =a^{\wedge }\left ( aa^{T} - I \right ) = -a^{\wedge }

再回到李代数根据微分方程的解:

R = e^{\phi^{\wedge }}

直接对其进行泰勒展开

\phi

无法处理,需要将其分解为模长和向量的形式,进而,

e^{\phi^{\wedge }} \ = e^{\theta a ^{\wedge }} \= I + \frac{\theta a^{\wedge }}{1!} + \frac{ \theta ^{2} a^{\wedge } a^{\wedge }}{2!} + \cdots + \frac{\theta^{n} a^{\wedge } a^{\wedge }\cdots a^{\wedge }}{n!} \ = aa^T - a^{\wedge }a^{\wedge } + \theta a^{\wedge } + \frac{1}{2} \theta^{2} a^{\wedge }a^{\wedge }+\cdots +\frac{1}{n!} \theta^{n} a^{\wedge }a^{\wedge }\cdots a^{\wedge } \=aa^{T} +\left ( \theta - \frac{1}{3!} \theta^{3}+ \frac{1}{5!} \theta^{5}-\cdots \right )a^{\wedge }-\left ( 1-\frac{1}{2!} \theta^{2} + \frac{1}{4!} \theta^{4} -\cdots \right )a^{\wedge }a^{\wedge } \= aa^{T} + sin\theta a^{\wedge } -cos \theta a^{\wedge }a^{\wedge } \=aa^{T} + sin\theta a^{\wedge } - cos \theta\left ( aa^{T} - I \right ) \= (1-cos\theta) aa^{T} + sin\theta a^{\wedge } +cos \theta I

这也被称作罗德里格斯公式(Rodriguez formula),表征了由旋转向量

\left ( \theta, a \right )

到旋转矩阵

R

的映射关系。

因此,指数映射关系可以重写为:

R= (1-cos\theta) aa^{T} + sin\theta a^{\wedge } +cos \theta I

反之,如果要从李代数

\mathfrak{so}\left ( 3 \right )

推导到李群

SO(3)

,则需要依靠对数映射。其推导过程如下:

对于公式

R = e^{\phi^{\wedge }}

两边取自然对数,得到对数映射的通式

\phi = \ln \left ( R \right )^{\vee }

考虑到对数的泰勒展开公式:

\ln(1+x) = \left{\begin{matrix} x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}+\cdots +\left ( -1 \right )^{(n-1)} \frac{x^{n}}{n}, n=2k+1\ x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}+\cdots +\left ( -1 \right )^{(n+1)} \frac{x^{n}}{n}, n=2k \end{matrix}\right.

进而对等式的右侧进行泰勒级数展开:

\phi = \left ( \sum_{n=0}^{\infty } \frac{(-1)^n}{n+1} \left ( R-I \right )^{n+1}\right )^{\vee }

这也没办法进行求解。

对于李代数

\phi ^{\wedge } \cong \left ( \theta ,a \right )

,可以利用矩阵的迹对其方向和模长进行分开求解。

其中对于李代数的模长

\theta

,这是标量,最快的求解方式是对罗德里格斯公式两边取迹:

tr\left ( R \right ) \=cos\theta tr\left ( I \right ) +(1-cos\theta) tr\left ( a a^{\wedge } \right ) + sin \theta tr\left ( a^{\wedge } \right ) \ = 3cos\theta +(1-cos\theta) + 0\= 1+2cos\theta

可以得到

\theta

和

R

的对应关系:

\theta = arccos\left ( \frac{tr\left ( R \right ) - 1}{2} \right )

对于其转轴方向

a

,由于旋转矩阵的特性,其存在

Ra = a

。这就等价于

a

为矩阵

R

特征值为 1 所对应的特征向量,对该矩阵进行求解再进行归一化可以得到旋转轴单位向量

a

。

可以发现,旋转矩阵的李群和李代数之间的变换运算主要是依赖罗德里格斯公式进行的,而罗德里格斯公式的核心并不是李代数,而是李代数的拆解形式

\phi ^{\wedge } \cong \left ( \theta ,a \right )

,也就是旋量的形式,其李群李代数的直观表现如图 10 所示,三维向量 p 旋转至新的向量 p'时,这个旋转变换所对应的旋转矩阵 R 可以等效为绕轴 a 旋转θ角度的定轴旋转,也就是旋量,旋量在其切空间的表示就是李代数。

文章配图

图 10 旋转矩阵李群李代数转换关系示意图

3.2 SE(3) 特殊欧氏群

欧氏矩阵是旋转矩阵和位移向量的齐次补齐,欧氏矩阵所构成的

SE(3)

李群也被称作特殊欧氏群,记为:

SE(3) = \left { T = \begin{bmatrix} R & d\ 0^{T} & 1 \end{bmatrix} \in \mathbb{R}^{4 \times 4} | R \in SO(3), d \in \mathbb{R}^{3} \right }

相较于旋转矩阵

\mathbb{R}^{3 \times 3}

所形成的

SO(3)

李群的李代数

\mathfrak{so}\left ( 3 \right )

处于

\mathbb{R}^{3}

空间,欧氏矩阵

\mathbb{R}^{4 \times 4}

所形成的

SE(3)

群其对应的李代数

\mathfrak{se}\left ( 3 \right )

处于

\mathbb{R}^{6}

空间中,其具有 6 个独立的变量,记为:

\mathfrak{se}\left ( 3 \right ) = \left { \xi = \begin{bmatrix} \rho \ \phi \end{bmatrix} \in \mathbb{R}^{6},\rho \in \mathbb{R}^{3} , \phi \in so(3), \xi ^{\wedge } = \begin{bmatrix} \phi^{\wedge } & \rho \ 0 & 0 \end{bmatrix} \in \mathbb{R}^{4\times 4} \right }

同样,其具体数学推到为:

考虑到欧氏变换矩阵与其逆矩阵的乘积为单位向量,即不对物体产生作用:

T(t) T^{-1}(t) = I

,

对上述等式两边进行对

t

求导,可以得到:

\dot{T}(t) T^{-1}(t) + T(t) \dot{T}^{-1}(t) = 0

\dot{T}(t) T^{-1}(t) =- T(t) \dot{T}^{-1}(t)

同样,令

\Xi(t) = \xi^{\wedge }(t) = \dot{T}(t) T^{-1}(t)

,不难发现

\xi^{\wedge }

也是一个反对称矩阵。

值得注意的是,欧式变换矩阵的逆矩阵为:

T^{-1}(t) = \begin{bmatrix} R^{-1}(t) & -R^{-1}d(t)\ 0 & 1 \end{bmatrix} = \begin{bmatrix} R^{T}(t) & -R^{T}d(t)\ 0 & 1 \end{bmatrix}

,

因此,

\xi^{\wedge } (t) \ = \dot{T}(t) T^{-1}(t) \=\begin{bmatrix} \dot{R}(t) & \dot{d}(t) \ 0 & 1 \end{bmatrix} \begin{bmatrix} R^{T}(t) & -R^{T}d(t) \ 0 & 1 \end{bmatrix} \ = \begin{bmatrix} \dot{R}(t)R^{T}(t) & -\dot{R}(t) R^{T}d(t) +\dot{d}(t) \ 0 & 0 \end{bmatrix}

令

\phi ^{\wedge } (t)= \dot{R}(t) R^{T}(t)

,

\rho (t) = \dot{d}(t) -\dot{R}(t) R^{T}d(t)

,则

\xi^{\wedge } (t)= \begin{bmatrix} \phi^{\wedge }(t) & \rho(t) \ 0 & 0 \end{bmatrix}

对于

\rho (t)

,很容易发现其为一个 3×1 的矩阵,而

\phi ^{\wedge }

是

\mathfrak{so}\left ( 3 \right )

,因此特殊欧氏群的李代数

\mathfrak{se}\left ( 3 \right )

可用 6 个变量表示,这就是旋量,记为:

\xi(t) = \begin{bmatrix} \rho(t) \ \phi(t) \end{bmatrix}

这里有的论文将

\xi(t)

中的平移部分放上面,旋转部分放下面,有的则反过来旋转部分放上面,平移部分放下面。本文采用的是前者。

和特殊正交群一样,特殊欧氏群的李群和李代数之间也是指数/对数映射关系,根据等式:

\xi^{\wedge } = \dot{T}(t) T^{-1}(t)

\dot{T}(t) = \xi^{\wedge }(t)T(t)

其通解也是:

T(t) = e^{\xi^{\wedge } t}

该式子仅在时刻

t

附近有效。当知道李代数

\xi^{\wedge }

和时间

t

时,欧式变换矩阵

T(t)

也通过指数映射唯一确定,这是

\mathfrak{se}\left ( 3 \right )

到

SE(3)

的映射关系。

对

\xi^{\wedge }

进行指数映射展开:

e^{\xi^{\wedge }} \ = \sum_{n=0}^{\infty } \frac{1}{n!} \left (\xi^{\wedge } \right )^{n} \ = I+ \xi^{\wedge }+\frac{1}{2!} \left ( \xi^{\wedge } \right )^2+\frac{1}{3!} \left ( \xi^{\wedge } \right )^2 + \cdots + \frac{1}{n!} \left ( \xi^{\wedge } \right )^n

通过递推关系可以发现:

\xi^{\wedge } = \begin{bmatrix} \phi^{\wedge } & \rho \ 0 & 0 \end{bmatrix}

,

\left ( \xi^{\wedge } \right )^2 = \begin{bmatrix} \phi^{\wedge } & \rho \ 0 & 0 \end{bmatrix} \begin{bmatrix} \phi^{\wedge } & \rho \ 0 & 0 \end{bmatrix}= \begin{bmatrix} \left ( \phi^{\wedge } \right )^2 & \phi^{\wedge } \rho \ 0 & 0 \end{bmatrix}

,

\left ( \xi^{\wedge } \right )^3 =\begin{bmatrix} \left ( \phi^{\wedge } \right )^2 & \phi^{\wedge } \rho \ 0 & 0 \end{bmatrix} \begin{bmatrix} \phi^{\wedge } & \rho \ 0 & 0 \end{bmatrix}= \begin{bmatrix} \left ( \phi^{\wedge } \right )^3 & \left ( \phi^{\wedge } \right )^2 \rho \ 0 & 0 \end{bmatrix}

,

...

\left ( \xi^{\wedge } \right )^n =\begin{bmatrix} \left ( \phi^{\wedge } \right )^{n-1} & \left ( \phi^{\wedge } \right )^{n-2} \rho \ 0 & 0 \end{bmatrix} \begin{bmatrix} \phi^{\wedge } & \rho \ 0 & 0 \end{bmatrix}= \begin{bmatrix} \left ( \phi^{\wedge } \right )^n & \left ( \phi^{\wedge } \right )^{n-1} \rho \ 0 & 0 \end{bmatrix}

,

因此,指数展开式重写为:

e^{\xi^{\wedge }} \=\sum_{n=0}^{\infty } \frac{1}{n!}\begin{bmatrix} \left ( \phi^{\wedge } \right )^{n} & \left ( \phi^{\wedge } \right )^{n-1} \rho \ 0 & 0 \end{bmatrix} \ = \begin{bmatrix} \sum_{n=0}^{\infty } \frac{1}{n!} \left ( \phi^{\wedge } \right )^{n} & \sum_{n=0}^{\infty } \frac{1}{n!} \left ( \phi^{\wedge } \right )^{n-1} \rho \ 0 & I \end{bmatrix} \ := \begin{bmatrix} R & J\rho \ 0 & I \end{bmatrix} \ = T

这里注意到矩阵的指数展开有一个单位阵

I

这使得右下角 0 元素变为 1。

对于

R=\sum_{n=0}^{\infty } \frac{1}{n!} \left ( \phi^{\wedge } \right )^{n}

,由

\mathfrak{so}\left ( 3 \right )

的计算可以知道,

\sum_{n=0}^{\infty } \frac{1}{n!} \left ( \phi^{\wedge } \right )^{n} \= I + \frac{\theta a^{\wedge }}{1!} + \frac{ \theta ^{2} a^{\wedge } a^{\wedge }}{2!} + \cdots + \frac{\theta^{n} a^{\wedge } a^{\wedge }\cdots a^{\wedge }}{n!} \= (1-cos\theta) aa^{T} + sin\theta a^{\wedge } +cos \theta I

对于矩阵

J

同样指数映射需要借助罗德里格斯公式将

\phi^{\wedge }

转化为方向向量

a

和模长

\theta

进行化简,

J\=\sum_{n=0}^{\infty } \frac{1}{n!} \left ( \phi^{\wedge } \right )^{n-1} \=I+\frac{1}{2!} \theta a^{\wedge } + \frac{1}{3!} \left ( \theta a^{\wedge } \right )^{2} + \cdots +\frac{1}{n!} \left ( \phi^{\wedge } \right )^{n-1} \= I + \left ( \frac{1}{2!} \theta - \frac{1}{4!} \theta^3 + \cdots \right )a^{\wedge } + \left ( \frac{1}{3!} \theta^2 - \frac{1}{5!} \theta^4 + \cdots \right ) \left ( a^{\wedge } \right )^{2} \=I + \frac{1}{\theta} \left ( \frac{1}{2!} \theta^2 - \frac{1}{4!} \theta^4 + \cdots \right )a^{\wedge } +\frac{1}{\theta} \left ( \frac{1}{3!} \theta^3 - \frac{1}{5!} \theta^5 + \cdots \right ) \left ( a^{\wedge } \right )^{2} \=I + \frac{1}{\theta} (1-cos\theta) a^{\wedge } + \frac{\theta - sin\theta}{\theta} \left ( aa^{T} - I \right ) \= \frac{sin\theta}{ \theta} I + \left ( 1-\frac{sin\theta}{\theta} \right ) aa^T + \frac{1-cos\theta}{\theta} a^{\wedge }

这样,再已知

\mathfrak{se}\left ( 3 \right )

的

\phi^{\wedge }

和

\rho

之后,可以将

\phi^{\wedge }

转化为

a

和

\theta

,进而求解出欧式变换矩阵 T。

反之,求取

SE(3)

到

\mathfrak{se}\left ( 3 \right )

的对数映射,其与

SO(3)

到

\mathfrak{so}\left ( 3 \right )

的变换类似,

利用和从

SO(3)

中利用旋转矩阵

R

提取旋量

a

和

\theta

一模一样的方法,我们可以获得欧氏变换矩阵的

a

和

\theta

,这样可以得到

\mathfrak{se}\left ( 3 \right )

中的

\phi^{\wedge }

。

同时,考虑到平移变换满足关系:

d =J\rho

,

\rho =J^{-1} d

因此,通过计算旋量

a

和

\theta

也可以计算得到

J

,进而根据平移向量

d

求解线性方程可以得到

\mathfrak{se}\left ( 3 \right )

中的

\rho

。这就完成了

SE(3)

到

\mathfrak{se}\left ( 3 \right )

的对数映射。

至此,在机器人应用中的李群李代数的变换关系为如图 11 所示(来自《视觉 SLAM 十四讲》)。

文章配图

图 11 机器人技术中常用的特殊正交群和特殊欧氏群的李群李代数映射关系

3.3 李代数的指数映射性质

假设李代数

\phi^{\wedge }

存在,则其指数映射存在以下几个性质(后续为了书写方便,

exp\left ( \cdot \right ) := e^{\left ( \cdot \right )}

):

(1)

\exp\left ( \left ( t+s \right ) \phi ^{\wedge } \right ) = \exp \left ( t \phi ^{\wedge } \right ) + \exp \left ( s \phi ^{\wedge } \right )

;

(2)

\exp\left ( t \phi^{\wedge } \right ) = \exp \left ( \phi^{\wedge } \right )^{t}

(3)

\exp\left ( -\phi^{\wedge } \right ) = \exp\left ( \phi^{\wedge } \right )^{-1}

(4)

\exp\left ( \Phi \phi^{\wedge } \Phi^{-1} \right ) = \Phi \exp\left ( \phi^{\wedge } \right ) \Phi^{-1}, \Phi =\exp\left ( \phi^{\wedge } \right )

...

目录

  1. 一、问题提出
  2. 1.1 位姿的表述
  3. 1.2 矩阵求导的问题
  4. 二、李群
  5. 2.1 群数学定义
  6. 2.2 李群和李代数的数学定义
  7. 2.3 欧拉公式
  8. 三、李群在机器人中的应用
  9. 3.1 SO(3) 特殊正交群
  10. 3.2 SE(3) 特殊欧氏群
  11. 3.3 李代数的指数映射性质
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • LeetCode 380 O(1) 时间插入、删除和获取随机元素
  • AIGC 核心技术解析:大语言模型、扩散模型与多模态模型
  • YOLOv8 工业级部署:保障 WebUI 稳定加载的核心实践
  • KiCad 符号编辑器引脚添加与同步机制解析
  • Webhook 原理、实操与 Langflow 落地场景
  • 投资策略规划最优决策分析
  • C++ STL unordered_set/unordered_map 使用介绍
  • Docker核心概念与架构
  • C++ 继承:面向对象代码复用的核心机制
  • AI 辅助开发实战:Python 数据处理自动化指南
  • Rust 内存管理与零成本抽象深度解析
  • Windows 网络工程师常用命令行工具整理
  • C++ 关联容器实战:Set、Map 与键值对详解
  • 临床智能体 AI 与环境感知 AI 融合:基于 Python 的医疗自然语言处理
  • C++ STL 常用容器 vector、set 与 string 用法详解
  • YOLO-DRONE 无人机低空巡检检测模型技术解析
  • 路径类动态规划入门:3 道经典例题全解析
  • 数据结构初阶:详解线性表之顺序表
  • LLM 数据工程解析:从预训练到 RAG 的实战策略
  • 前端数据库 IndexedDB 详解:构建离线 Web 应用

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online