群
群: 群是一种集合加上一种运算的代数结构,记为(G,•). G是集合,•为该集合上的二元运算,这个运算需要满足一下性质:
- 封闭性:
- 结合律:
- 幺元:
- 逆:
常见矩阵群包括:
- GL(n) 指 nxn 的可逆矩阵,它们的乘法成群
- SO(n) 旋转矩阵
- 欧式变换:
如果把运算看做矩阵的乘法,可以验证它满足上述四条性质:封闭性、结合律、 幺元、 逆。
容易验证 - 旋转矩阵、欧式变换成群。
李群
李群是具有群结构的光滑微分流形,其群作用与微分结构相容。
先定义流形(manifold) : smooth topological surface, 这三个英文单词加在一起可以很好地解释 manifold. 基本上就把它看成是一个光滑的结构,比如球面,比如各种七扭八扭的面。
再定义群作用 : 群作用是群中的元素具有改变其它集合中元素的能力,比如我们的旋转群,如果把它运用在空间中向量上,那么它可以旋转向量。
更正规一点的定义:
群作用是比如我们有一个李群 G,然后有一个集合 V, 那么 g • v 就是群作用
- 幺元: g • v = v
- 结合律: (g • h) v = g • (h • v)
基本上对于我们的旋转群、欧式变换群、单位复数群这个群作用就是左乘,因为这样交就改变了元素,单位四元数群的群作用稍有不同,是左乘和右乘:
- SO(n) 旋转矩阵 :
- SE(n) 欧式矩阵:
-
单位复数:
-
单位四元数:
明白了李群的定义之后,我们需要知道,有几种观点可以用来看待李群:
- 拓扑:切空间(tangent space)、指数映射(exponential map)
- 代数:群操作(group operation)、具体实现(concrete realization)、群作用(group action)
- 几何:群作用(group action)带来的位置、速度、朝向的变化
李代数
李代数对应李群的正切空间,它描述了李群局部的导数。
研究一下对于三维旋转群SO(3):
又旋转矩阵的性质 -
因为
而
对于某个时刻的R(t)(李群空间),存在一个三维向量φ=(φ1,φ2,φ3)(李代数空间),用来描述R在t时刻的局部的导数。
继续考虑
如果把它看做一般的微分方程:
解之:
所以:
再认识两个操作符:
- Hat
: 把向量对应到它的反对称矩阵
- Vee
: 把反对称矩阵转化为向量
在阅读文档的时候也经常会见到 Hat 和 Vee 来表示的 李代数。
指数映射
现在我们来考究
对于矩阵的指数映射,可以用泰勒展开,当结果收敛的时候其结果依旧是一个矩阵:
定义向量
为了展开,我们来计算一些
所以:
这刚好就是罗德里格斯旋转公式,指数映射是有closed form的。
so(3)的李代数空间就是由旋转向量组成的的空间,其物体意义就是旋转向量。指数映射关系就是罗德里格斯公式,他们在数学上本质是一样.
利用对数映射我们也可以把 SO(3) 中的元素对应到 so(3) 中,不过既然我们已经知道了 so(3) 是旋转向量构成的空间,所以我们算出旋转轴和旋转角就可以直接写出 so(3) 中的元素。
实际上,对于李群和李代数都有这样的指数映射和对数映射的关系:
参考:
- 轴角
- 视觉SLAM中的数学基础 第三篇 李群与李代数
- 从零开始一起学习SLAM | 为啥需要李群与李代数?