跳转至

李群与李代数

0 前言

我学习李群和李代数的主要动机是因为在机器人学中,描述空间坐标系的旋转平移变换时,经常出现诸如 \(\mathrm{SO}(3)\),SE(3),\(\mathfrak{so}(3)\) 等内容。

我们不妨先说明一下 \(\mathrm{SO}(3)\) 和 SE(3) 是什么:

\[\begin{aligned} \mathrm{SO(3)} &= \{\mathbf{R} \in \mathbb{R}^{3\times3} | \mathbf{R}\mathbf{R}^\top = \mathbf{I}, \mathrm{det}(\mathbf{R}) = 1\}\\ \mathrm{SE(3)} &= \left\{\mathbf{T} = \begin{bmatrix}\mathbf{R} & \mathbf{t}\\ \mathbf{0}^\top & 1\end{bmatrix} \in \mathbb{R}^{4\times4} | \mathbf{R}\in \mathrm{SO(3), \mathbf{t}\in\mathbb{R}^{3}}\right\} \end{aligned}\]

\(\mathrm{SO}(3)\) 又被称为特殊正交群,SE(3) 又被称为特殊欧式群。

在机器人学中,通常将 \(\mathrm{SO}(3)\) 理解为旋转矩阵群,而 SE(3) 则是齐次变换群。


1 李群

1.1 群(Group)

群指的是一种集合加上一种运算组成的结构。要求这个集合和运算满足以下四个条件

  1. 封闭性:对于集合内任意两个元素 a, b,运算 (a, b) 的结果也在集合内
  2. 结合律:对于集合内任意三个元素 a,b,c,运算 ((a, b), c) 和运算 (a, (b, c)) 的结果一致
  3. 幺元:集合内存在一个元素 e,对于集合内任意元素 a,总有 (e, a) = (a, e) = a 成立
  4. 逆元:对于集合内任意一个元素 a,总存在一个对应的元素 b,满足 (a, b) = (b, a) = e .

1.2 李群(Lie group)

李群是指具有连续(光滑)性质的群。

比如说整数群 \(\mathbb{Z}\) 这种离散的群没有连续性质,就不是李群。又比如说 SO(3) 特殊正交群和 SE(3) 特殊欧式群,每一个属于 SO(3) 群的矩阵都代表一个刚体的姿态,每一个属于 SE(3) 群的矩阵都代表一个刚体的位姿;我们可以直观想象一个刚体在空间中连续运动,所以这两个群都具有连续形式,都是李群。

(数学的语言有点超出我的认知范围了)


2 李代数(Lie Algebra)

每个李群都有与之对应的李代数,李代数描述了李群的局部性质,是单位元附近的正切空间。

李代数由一个集合 \(\mathbb{V}\),一个数域 \(\mathbb{F}\) 和一个二元运算 \([,]\) 李括号组成。它们需要满足以下几条性质:

  • 封闭性:\(\forall \mathbf{X}, \mathbf{Y} \in \mathbb{V}, [\mathbf{X}, \mathbf{Y}] \in \mathbb{V}\)
  • 双线性:\(\forall \mathbf{X},\mathbf{Y},\mathbf{Z} \in \mathbb{V}, a,b\in\mathbb{F}\),有
\[[a\mathbf{X} + b\mathbf{Y},\mathbf{Z}] = a[\mathbf{X},\mathbf{Z}] + b[\mathbf{Y} + \mathbf{Z}], [\mathbf{Z}, a\mathbf{X} + b\mathbf{Y}] = a[\mathbf{Z}, \mathbf{X}] + b[\mathbf{Z}, \mathbf{Y}]\]
  • 自反性: \(\forall \mathbf{X} \in \mathbb{V}, [\mathbf{X}, \mathbf{X}] = \mathbf{0}\).
  • 雅可比等价:\(\forall \mathbf{X}, \mathbf{Y}, \mathbf{Z} \in \mathbb{V}, [\mathbf{X},[\mathbf{Y},\mathbf{Z}]]+[\mathbf{Z},[\mathbf{X},\mathbf{Y}]]+[\mathbf{Y},[\mathbf{Z},\mathbf{X}]] = 0\)

2.1 李代数 so(3)

什么是代数?代数又叫线性代数,本质就是定义了矢量乘法 \(V\times V \rightarrow V\) 的线性空间 \(\{V\}\).

\(\mathrm{SO}(3)\) 对应的李代数是 \(\mathfrak{so}(3)\),该集合中的元素有两种表示方法 \(\phi\) 或者 \(\Phi\),由于两者是一一对应的,所以二者表示的其实是同一个李代数:

\[\mathfrak{so}(3) = \left\{\phi \in \mathbb{R}^3,\Phi = \hat{\phi}\in\mathbb{R}^{3\times3}\right\}\]

李代数的乘法称为李括号。给定一个李代数 \(\mathfrak{g}\),对于 \(\forall A, B \in \mathfrak{g}, \left[A, B\right] = C \in \mathfrak{g}\)

对应的李括号为

\[\begin{aligned} \left[\phi_1, \phi_2\right] &= (\Phi_1\Phi_2 - \Phi_2\Phi_1)^{\vee}, \Phi = \hat{\phi}\in\mathbb{R}^{3\times3}\\ \left[\Phi_1, \Phi_2\right] &= \Phi_1\Phi_2 - \Phi_2\Phi_1 \end{aligned}\]

其中,\(^{\wedge}\) 表示取三维向量的反对称矩阵,\(^{\vee}\) 表示取反对称矩阵对应的三维向量。

\[\begin{aligned} &\begin{bmatrix}\phi_1 \\ \phi_2\\ \phi_3\end{bmatrix}^{\wedge} = \begin{bmatrix}0 & -\phi_3 & \phi_2\\ \phi_3 & 0 & -\phi_1\\ -\phi_2 & \phi_1 & 0\end{bmatrix}\\ &\begin{bmatrix}0 & -\phi_3 & \phi_2\\ \phi_3 & 0 & -\phi_1\\ -\phi_2 & \phi_1 & 0\end{bmatrix}^{\vee}= \begin{bmatrix}\phi_1 \\ \phi_2\\ \phi_3\end{bmatrix} \end{aligned}\]

\(\mathrm{SO}(3)\) 对应于旋转矩阵,\(\mathfrak{so}(3)\) 对应于等轴角表示的角速度向量。

3 映射

3.1 指数映射(李代数到李群)

从李代数 \(\mathfrak{so}(3)\) 到李群 \(\mathrm{SO}(3)\) 的映射是如下的指数映射:

\[\begin{aligned} \mathbf{R} &= \text{exp}\left(\hat{\phi} \right)\\ &= \sum_{n = 0}^{\infty}\frac{1}{n!}\left(\hat{\phi}\right)^{n} \end{aligned}\]

以下给出计算证明:

此处矩阵的无穷次幂难以计算,我们考虑一些数学技巧。

首先,我们注意到

\[(c_1\phi_1)^{\wedge} \cdot (c_2\phi_2)^{\wedge} = c_1c_2(\hat{\phi_1}\cdot \hat{\phi_2}) \tag{1}\]
\[\begin{aligned} \hat{\phi}\hat{\phi} &= \begin{bmatrix}-\phi_2^2-\phi_3^2 & \phi_1\phi_2 & \phi_1\phi_3\\ \phi_1\phi_2 & -\phi_1^2-\phi_3^2 &\phi_2\phi_3\\ \phi_1\phi_3 & \phi_2\phi_3 & -\phi_1^2-\phi_2^2\end{bmatrix}\\ &= \phi \phi^{\top} - \begin{bmatrix}\phi_1^2+\phi_2^2+\phi_3^2 & 0 & 0\\ 0 & \phi_1^2+\phi_2^2+\phi_3^2 & 0\\ 0 & 0 & \phi_1^2+\phi_2^2+\phi_3^2\end{bmatrix} \end{aligned}\tag{2}\]
\[\hat{\phi}\phi\cdot\phi^\top = \begin{bmatrix}0 & -\phi_3 & \phi_2\\ \phi_3 & 0 & -\phi_1\\ -\phi_2 & \phi_1 & 0\end{bmatrix}\begin{bmatrix}\phi_1^2 & \phi_1\phi_2 & \phi_1\phi_3\\ \phi_1\phi_2 & \phi_2^2 & \phi_2\phi_3\\ \phi_1\phi_3 & \phi_2\phi_3 & \phi_3^2\end{bmatrix} = 0\tag{3}\]

因此,我们想到一个思路,那就是把 \(\phi\) 用模长 \(\theta\) 和方向 \(\mathbf{a}\) 来表示,即 \(\phi = \theta \mathbf{a}\) . 这里的 \(\mathbf{a}\) 是个长度为 1 的方向向量,所以 \(\hat{\mathbf{a}} \hat{\mathbf{a}} = \mathbf{a} \mathbf{a}^\top - \mathbf{I}\)\(\hat{\mathbf{a}} \hat{\mathbf{a}} \hat{\mathbf{a}} = -\hat{\mathbf{a}}\) .

于是

\[\begin{aligned} \sum_{n = 0}^{\infty}\frac{1}{n!}(\hat{\phi})^{n} &= \sum_{n=0}^{\infty}\frac{1}{n!}(\theta\hat{\mathbf{a}} )^{n}\\ &= \mathbf{I} + \theta\hat{\mathbf{a}} + \frac{1}{2}\theta^2\hat{\mathbf{a}} \hat{\mathbf{a}} + \frac{1}{3!}\theta^3\hat{\mathbf{a}} \hat{\mathbf{a}} \hat{\mathbf{a}} + ...\\ &= (\mathbf{a} \mathbf{a}^\top -\hat{\mathbf{a}} \hat{\mathbf{a}} )+\theta\hat{\mathbf{a}} + \frac{1}{2}\theta^2\hat{\mathbf{a}} \hat{\mathbf{a}} -\frac{1}{3!}\theta^3\hat{\mathbf{a}} -\frac{1}{4!}\theta^4\hat{\mathbf{a}} \hat{\mathbf{a}} \\ &= \mathbf{a} \mathbf{a}^\top + \hat{\mathbf{a}} (\theta - \frac{1}{3!}\theta^3 + \frac{1}{5!}\theta^5 + ...) + \hat{\mathbf{a}} \hat{\mathbf{a}} (-1 + \frac{1}{2}\theta^2-\frac{1}{4}\theta^4 + ...)\\ &= \mathbf{a}\mathbf{a}^\top + \hat{\mathbf{a}} \sin\theta + \hat{\mathbf{a}} \hat{\mathbf{a}} (-\cos\theta)\\ &= \mathbf{a} \mathbf{a}^\top + \hat{\mathbf{a}} \sin\theta + (\mathbf{I}-\mathbf{a} \mathbf{a}^\top)\cos\theta\\ &= \mathbf{I}\cos\theta + (1-\cos\theta)\mathbf{a} \mathbf{a}^\top + \hat{\mathbf{a}} \sin\theta \end{aligned}\]
\[\mathbf{R} = \sum_{n = 0}^{\infty}\frac{1}{n!}(\hat{\phi})^{n} = \mathbf{I}\cos\theta + (1-\cos\theta)\mathbf{a} \mathbf{a}^\top + \hat{\mathbf{a}} \sin\theta \tag{4}\]

怎么理解 (4) 式?

我们需要引入一个罗德里格斯公式(Rodrigue's Formula):

\[\mathbf{R} = \cos\theta \mathbf{I} + (1-\cos\theta)\mathbf{n}\mathbf{n}^\top + \sin\theta \hat{\mathbf{n}}\tag{5}\]

其中,\(\mathbf{R}\) 代表旋转矩阵,\(\mathbf{n}\) 代表转轴,\(\theta\) 代表旋转角度。

我们把李代数 \(\mathfrak{so}(3)\) 中的三维向量理解为一个角速度向量 \(\omega\),而指数映射写成 \(\text{exp}(\omega t)\),则有

\[\text{exp}(\omega t) = \sum_{n=0}^{\infty}\frac{1}{n!}\left(\left\|\omega\right\|t \cdot \hat{\Omega}\right)^{n}\]

这里的 \(\left\|\omega \right\|t\) 就是上文的 \(\theta\),角速度乘以时间等于角度,非常合理。

所以,\(\mathrm{SO}(3)\) 可以理解为三维旋转矩阵的集合,而 \(\mathfrak{so}(3)\) 可以理解为角速度向量的集合。


一般而言,\(\mathfrak{so}(3)\) 中的元素不是三维向量,而是其对应的三维反对称矩阵。在这种情况下,指数映射的公式略有差异。

根据 (2) 式,我们有

\[\hat{\mathbf{a}}\hat{\mathbf{a}} = \mathbf{a}\mathbf{a}^\top - \mathbf{I} \tag{6}\]

把 (6) 式代入到 (4) 式,我们得到

\[\mathbf{R} = e^{\hat{\mathbf{a}}\theta} = \mathbf{I} + \hat{\mathbf{a}}\sin\theta + \hat{\mathbf{a}}^2(1-\cos\theta) \tag{7}\]

注意:当 \(\theta = 0\) 时,\(\hat{\mathbf{a}}\) 可以任意取值,这是指数映射的一个奇异点。


关于指数映射的一些性质

\[\begin{align} \hat{x}y = x\times y &= -y\times x = -\hat{y}x \tag{8}\\ -\frac{1}{2} \mathrm{tr}\left[\hat{x}\hat{y}\right] &= x^\top y \tag{9}\\ \mathrm{tr}\left[\hat{x}A\right] = \mathrm{tr}\left[A\hat{x}\right] &= \frac{1}{2}\mathrm{tr}\left[\hat{x}\left(A-A^\top\right)\right]=-x^\top\left(A-A^\top\right)^{\vee}\tag{10}\\ \hat{x}A+A^\top \hat{x} &= \left[(\mathrm{tr}\left[A\right]I_{3\times3}-A)x\right]^{\wedge}\tag{11}\\ R\hat{x}R^\top &= (Rx)^\wedge\tag{12} \end{align}\]

上式中,\(x,y\in \mathbb{R}^{3},A\in \mathbb{R}^{3\times3},R \in \mathbf{SO}(3)\)。我们来证明一下。

首先,(8) 式从几何上看是显然的,就不在代数上做证明了。 (9) 式:

\[\begin{aligned} -\frac{1}{2} \mathrm{tr}\left[\hat{x}\hat{y}\right] &= -\frac{1}{2}\mathrm{tr}\begin{bmatrix}0 & -x_3 & x_2\\ x_3 & 0 & -x_1\\ -x_2 & x_1 & 0\end{bmatrix}\begin{bmatrix}0 & -y_3 & y_2\\ y_3 & 0 & -y_1\\ -y_2 & y_1 & 0\end{bmatrix}\\ &= -\frac{1}{2}(-x_3y_3-x_2y_2-x_3y_3-x_1y_1-x_2y_2-x_1y_1)\\ &= x_1y_1+x_2y_2+x_3y_3\\ &= x^\top y\\ \end{aligned}\]

(10) 式:第一个等号是矩阵相乘的迹的性质,不在此处进行证明;第二个等号用到反对称矩阵的性质;第三个等号利用 (9) 式结论证明。

\[\begin{aligned} \frac{1}{2}\mathrm{tr}\left[\hat{x}\left(A-A^\top\right)\right] &= \frac{1}{2}\mathrm{tr}\left[\hat{x}A\right]-\frac{1}{2}\mathrm{tr}\left[\hat{x}A^\top\right]\\ &= \frac{1}{2}\mathrm{tr}\left[\hat{x}A\right]-\frac{1}{2}\mathrm{tr}\left[\left(\hat{x}A^\top\right)^\top\right]\\ &= \frac{1}{2}\mathrm{tr}\left[\hat{x}A\right]+\frac{1}{2}\mathrm{tr}\left[A\hat{x}\right] \\ &= \mathrm{tr}\left[\hat{x}A\right]\\ \frac{1}{2}\mathrm{tr}\left[\hat{x}\left(A-A^\top\right)\right] &= -\left[-\frac{1}{2}\mathrm{tr}\left[\hat{x}\left(\left(A-A^\top\right)^{\vee}\right)^{\wedge}\right]\right]\\ &= -x^\top\left(A-A^\top\right)^{\vee} \end{aligned}\]

(11) 式:注意到一个方阵减该方阵的转置,结果是一个反对称矩阵;再经过一些计算即可

\[\begin{aligned} \hat{\mathbf{x}}A+A^\top \hat{\mathbf{x}} &= \hat{\mathbf{x}}A - (\hat{\mathbf{x}}A)^\top\\ &= \begin{bmatrix}-x_2a_{12}+x_1a_{22}-x_3a_{13}+x_1a_{33}\\ -x_3a_{23}+x_2a_{33}+x_2a_{11}-x_1a_{21}\\ x_3a_{11}-x_1a_{31}+x_3a_{22}-x_2a_{32}\end{bmatrix}^{\wedge}\\ &= \left(\begin{bmatrix}a_{22}+a_{33} & -a_{12} & -a_{13}\\ -a_{21} & a_{11}+a_{33} & -a_{23}\\ -a_{31} & -a_{32} & a_{11}+a_{22}\end{bmatrix}\mathbf{x}\right)^{\wedge}\\ &= \left(\left(\mathrm{tr}\left[A\right]I_{3\times 3} - A\right)\mathbf{x}\right)^{\wedge} \end{aligned}\]

(11) 式:我们利用以下定理加以证明。\(\exist A,B\in \mathbb{R}^{3\times 3}, \ \forall y \in \mathbb{R}^{3}, Ay=By,\ \mathrm{iff}\ A=B\)。这个定理可以通过构造一个满秩的三维矩阵加以证明。

\[\begin{aligned}R\hat{x}R^\top y &= R\left(x \times \left(R^\top y\right)\right)\\ &= (Rx) \times \left(RR^\top y\right)\\ &= (Rx) \times y\\ (Rx)^{\wedge}y &= (Rx)\times y \end{aligned}\]

3.2 对数映射(李群到李代数)

我们同样可以定义从 \(\mathrm{SO}(3)\)\(\mathfrak{so}(3)\) 的映射,这是指数映射的逆运算,被称为对数映射。

\[\phi = \ln(\mathbf{R})^{\vee} = \left(\sum_{n=0}^{\infty} \frac{(-1)^{n}}{n+1}(\mathbf{R} - \mathbf{I})^{n+1} \right)^{\vee}\tag{13} \]

当然我们不会真的用 (13) 式计算 \(\phi\),这是个无穷级数,我们无法求解。我们可以利用 (7) 式对其进行求解。

首先,我们对 (7) 式左右两边求迹,得到

\[\begin{aligned} \text{tr}(\mathbf{R}) &= \text{tr}(\mathbf{I}) + (1-\cos\theta)\text{tr}\left(\hat{\mathbf{a}}^2\right) + \text{tr}(\hat{\mathbf{a}} )\sin\theta\\ &= 3 + (1-\cos\theta)(-\omega_2^2-\omega_3^2-\omega_1^2-\omega_3^2-\omega_1^2-\omega_2^2)\\ &= 1+2\cos\theta \end{aligned}\]

所以

\[\theta = \arccos\dfrac{\text{tr}(\mathbf{R})-1}{2} \tag{14}\]

接下来,我们需要求解旋转矩阵对应的的等轴角表示时的转轴,我们给出两种方法。

第一种方法:可以注意到,转轴是旋转过程中的一个不变量,因此有

\[\mathbf{R}\mathbf{a} = \mathbf{a} \tag{15}\]

怎么理解上面这个式子?

\(\mathbf{a}\)\(\mathbf{R}\) 的特征值 1 所对应的特征向量!

第二种方法:仍然利用 (7) 式,对 (7) 式左右两边取转置,我们得到

\[\begin{aligned} \mathbf{R}^\top &= \mathbf{I} + \hat{\mathbf{a}}^\top \sin\theta + \left(\hat{\mathbf{a}}^\top\right)^2(1-\cos\theta) \\ &= \mathbf{I} - \hat{\mathbf{a}}\sin\theta + \hat{\mathbf{a}}^2(1-\cos\theta) \end{aligned}\tag{16}\]

用 (7) 式减去 (16) 式,我们得到

\[\begin{aligned} \mathbf{R} - \mathbf{R}^\top &= 2\hat{\mathbf{a}}\sin\theta\\ \hat{\mathbf{a}} &= \frac{\mathbf{R}-\mathbf{R}^\top}{2\sin\theta} \end{aligned} \tag{17}\]

综上,\(\Phi = \dfrac{\theta}{2\sin\theta}(\mathbf{R} - \mathbf{R}^\top)\)\(\theta = \arccos\dfrac{\text{tr}(\mathbf{R})-1}{2}\)\(\phi = \check{\Phi}\)

\[(\mathbf{R}-\mathbf{R}^\top)^{\vee} = \begin{bmatrix}r_{32}-r_{23} & r_{13}-r_{31} & r_{21}-r_{12}\end{bmatrix}^\top \]

4 伴随表示

我们考虑一般的矩阵李群 \(G\),它对应的李代数是 \(\mathfrak{g}\),我们可以定义一个伴随表示

\[\forall g \in G, \forall X \in \mathfrak{g}, \ \ \ Ad_g(X) = gXg^{-1}\in \mathfrak{g}\]

我们考虑李群 \(\mathrm{SO}(3)\),它的李代数用矩阵形式表示是

\[\mathfrak{so}(3) = \left\{\Phi = \phi^{\wedge}\in\mathbb{R}^{3\times3}\right\}\]