基础知识
群是一种集合加上一种运算的代数结构。集合记作,运算记作,群记作。如果要构成群,则运算必须满足要求:
- 封闭性:
- 结合律:
- 幺元:
- 逆:
李群是指具有连续性质的群。
在SLAM中讨论:特殊正交群SO(n),特殊欧氏群SE(n);分别对应旋转矩阵群、欧氏变换矩阵群。
每个李群都有与之对应的李代数。李代数描述了单位元附近的正切空间(反应了李群的导数性质)。李代数由一个集合,一个数域,和一个二元运算[,]组成。其中二元运算被称为李括号。李代数记作。要构成李代数,李括号需要满足:
- 封闭性:
- 双线性:,有:
- 自反性:
- 雅可比等价:
李代数
考虑任意的旋转矩阵R,易知其性质:。假如R是时变的,则这个性质可以表示为:。等号两边对时间求导,则有:
可以看出是一个反对称矩阵。用 运算符表示将向量变为反对称矩阵,类似地,用 运算符表示将反对称矩阵变为向量。
利用上述的运算,将反对称矩阵对应到一个三维向量上:
等号两边同乘,R是正交矩阵,因此:
考虑时,设此时旋转矩阵,将R(t)在t=0附近一阶泰勒展开:
可见反应了R的导数性质。
这里的实际上是一种李代数,是定义在 上的向量。每个都可以生成一个反对称矩阵:
两个向量的李括号为(向量外积):
则SO(3)对应的李代数,这是一个由三维向量组成的集合,每个向量对应着一个反对称矩阵,可以用来表达旋转矩阵的导数。
假设在附近,保持为常数,则有:
代入(假设的)初始值, 解这个微分方程,则有:
即可知李代数与李群的关系是指数映射。
李代数
SE(3)也有对应的李代数。其位于空间中:
这个李代数中的每个元素记作,前3维为平移,记为,后三维为旋转,记为是 的元素。
符号表示从向量到矩阵(但不再是反对称):
该李代数的李括号:
指数与对数映射
SO(3)上的映射
从李代数到李群的映射为指数映射。由前面的推导可知,。因此实际要解决的问题是计算的问题。
对于收敛的矩阵的指数映射,可以用泰勒展开来表示:
但计算无穷次幂是很复杂的,因此考虑其他的方法:将的模长和方向分别记为和,其中是一个长度为1的方向向量。对于, 有:
因此对于高阶项,可以写成:
这和之前提到的罗德里格斯公式相同。罗德里格斯公式将旋转向量变为旋转矩阵。因此可以知道,是旋转向量组成的空间,而指数映射就是罗德里格斯公式。通过这二者,就可以将中的任意一个向量对应到SO(3)中的旋转矩阵。
相反地,定义对数映射,将SO(3)中的元素对应到中:
同样没有必要计算泰勒展开中的无穷次幂。可以用迹的性质分别求解转角和转轴。
SE(3)上的映射
的指数映射的左上角是SO(3)中的元素,与旋转部分对应,右上角的J为:
的平移部分经过指数映射,还要经过以J为系数矩阵的线性变换。
相反地,也有对数映射。但有更简单的方式从变换矩阵求向量:用变换矩阵左上角的R计算旋转向量。右上角的t有:, 由求J,就可以求了。
总结
之间的关系:

李代数求导与扰动模型
使用李代数的其中一大原因是进行优化。导数是优化过程中必要的信息。因为我们会经常构建与位姿有关的函数,然后讨论该函数关于位姿的导数,用于调整当前的估计值。但是SO(3)和SE(3)上没有良好定义的加法,因此需要寻找别的数学工具。而李代数由向量组成,有良好的加法运算,因此使用李代数解决求导问题。有两种思路:
- 李代数的求导模型:用李代数表示姿态,然后根据李代数加法对李代数求导。
- 扰动模型:对李群左乘或右乘微小扰动,然后对该扰动求导
BCH公式
研究李群中矩阵乘法,对应李代数的变化。或者说,研究李代数加法,对应李群中矩阵乘法的关系。BCH公式(Baker-Campbell-Hausdorff)的展开式的前几项为:
其中[,]为李括号。这个公式表明,两个矩阵指数的积会产生一系列由李括号组成的余项。
考虑SO(3)上的李代数,当或为小量时,可以忽略高次项:
这个式子告诉我们,对于一个旋转矩阵(李代数为),左乘一个小的旋转矩阵(李代数),可以近似看作在原有李代数上加上了一项.右乘一个小的旋转矩阵情况类似。在使用时,要注意是左乘模型还是右乘模型。在这个系列中,将使用左乘。
左乘BCH近似雅可比 实际上就是SE(3)上的映射提到的。
将BCH近似公式换一个形式书写,可以更加直观的表达其意义。设旋转,左乘的微小旋转为, 对应的李代数分别为. 在李群上得到,在李代数上则得到. 则BCH可以简单写为:
相反地,在李代数上进行加法,可以近似到李群上带有左右雅可比的乘法:
对于SE(3),也有类似的BCH近似:
是6×6的矩阵。具体内容略。
李代数求导
首先考虑SO(3)。假设对空间点p进行了旋转,得到了Rp,现在要计算旋转之后的坐标相对于旋转的导数(该记法不正式)。由于SO(3)没有加法,所以这里的导数无法按照一般的导数进行计算。设R对应的李代数为,则可以转而计算 (该记法不正式)

在第二行使用了BCH线性近似。第三行进行了泰勒展开,并舍去了高次项。第四-五行交换了反对称符号并变号(类似向量叉积)。因此旋转后的点相对于李代数的导数:
扰动模型(左乘)
对R进行一次扰动,其结果相对于扰动的变化率可以近似为导数。这里以左扰动(扰动乘在左边)为例。设左扰动对应的李代数为, 对 求导:
可见扰动模型不需要计算雅可比,因此更加实用。
SE(3)上的求导问题
这里就只介绍扰动模型了。
矩阵求导的基本规则如下:

空间点p,经过了一次变换T(对应李代数),得到了。给T左乘一个和扰动,设扰动的李代数为, 则有:
运算符把一个齐次坐标的空间点变换成4×6的矩阵。
应用例:求误差
真实位姿和估计的位姿有李群中的元素来表示。但在李群中没有加减。因此转换到李代数上,方便求其均方误差或其他误差。