SLAM基础——李代数基础概念及公式
李群李代数基础概念
群(Groups) && 李群(LieGroups)
群的定义
群是一种 集合 加上 一种运算 的代数结构,这种运算需要满足几个条件(可以不用记住)
例 :旋转矩阵(集合)和矩阵乘法(运算),矩阵乘法对于旋转矩阵具有很良好的性质(符合群运算的定义),于是旋转矩阵是一种群。
特殊正交群
特殊正交群(Special Orthogonal Group)记为
特殊欧式群
特殊欧式群记为
李群
李群是具有连续(光滑)性质的群
例:旋转可以连续地进行,平移也可以连续地进行,所以
李代数
反对称矩阵符号
对于一个三维向量
同样的,任意一个反对称矩阵通过vee操作得到对应的三维向量
李代数与李群的关系
每个李群都对应一个李代数。
群的李代数是为了不造成理解困难,这里只用
群作为讲解。(笔者发现,用 群作为例子,不看 群理解起来会更容易)为什么要引入李代数? 一句话说明:在
群上求导不太容易,因为旋转矩阵上的加法没有良好性质(两个旋转矩阵的加法不一定是一个旋转矩阵;回忆导数的定义,输入的微小变化造成的输出的改变量),而旋转矩阵的乘积在其中一者为微小量的时候,可以对应到李代数空间的线性关系。利用这一性质可以对旋转矩阵进行求导。旋转矩阵的更性也可以对应到李代数空间上的线性更新。后文会详细解说。李代数对应李群单位元处的切空间 旋转矩阵群的单位元就是单位矩阵。李代数对应李群单位元处的切空间这一点只是两者的性质,与后文的指数/对数映射没有太大关系。(笔者一开始总是误会指数/对数映射只能在李群单位元处进行)
对数映射(log)和指数映射(exp)
《视觉SLAM十四讲》中这部分内容(第四讲)是通过旋转矩阵求导引出的,但其实这部分的推导只是建立一个感性的理解。李群李代数的指数/对数映射应该具有更严格的定义。所以这部分内容其实不要太过纠结。
再次强调:这部分推导只是为了建立感性认识
由于旋转矩阵的性质:
上式对旋转矩阵求导(
(这里对旋转矩阵求导,应该将其看作是一个变量,在时刻变化)
即:
也就是
上式是关于
的时候,刚好满足上面的微分方程。同时,当
于是,我们直接地引入定义:指数映射将李代数空间映射到李群空间,指数映射将李群映射到李代数空间。
SO(3)上的对数映射/ 的指数映射
的指数映射
令三维向量
经过一系列的推导,可以得到指数映射的公式如下:
上面公式的一种等价写法(不使用模和方向代替)为:
上面这两个公式叫做罗德里格斯(Rodrigues' formula),也是将 旋转向量 变换为旋转矩阵的变换公式。从上面两个公式我们也可以看出,
SO(3)上的对数映射
从上面的关系,我们可以知道要把李群
又由于旋转轴使用旋转矩阵旋转后方向不变,即:
所以旋转轴对应
轴向量也可以使用下面公式计算
指数映射的一阶近似
指数映射的严格展开形式为:
当
上面这个公式经常被使用到,要牢记
李群李代数总结
- 引入李代数的原因是在SLAM中常用的群:
没有良好定义的加法,因此在优化的时候没法直接往上更新一个微小增量 - 另一个原因是
这些群都有额外的限制,直接优化就变成了带约束的优化,而转到李代数空间则是一个无约束的优化问题 - 在后面我们可以看到当旋转矩阵乘以一个微小扰动可以对应到李代数空间的近似线性相加,这为优化带来很大的好处
- 李代数通过指数映射到李群,李群通过对数映射到李代数
- 李代数是李群单位元处的切平面
- 不要纠结上面的这句话!!!!对数映射/指数映射可以对整个李群/李代数空间进行映射!!!
BCH近似
BCH(Baker-Campbell-Hausdorff)公式表达两个李代数指数映射乘积的完整形式(很复杂,不用记),但是但忽略高阶项后则会出现优美的线性表达。
当旋转矩阵
BCH近似有左乘右乘两种形式,笔者发现学习的时候以一种形式去推导即可,更容易理解,下面以右乘的形式进行讲解(十四讲中是以左乘作为讲解)
BCH近似右乘形式
其中
也可以写成轴-角的形式
上面两种等价关系的变换中需要用到一个性质
另外
BCH近似的其他表达形式
BCH近似是为了能够将
上的李代数求导
加入我们对一个空间点
李代数空间求导
上式的推导中,等号1是导数的定义;等号2使用BCH右乘近似公式,也就是上文公式(BCH-2);等号3是指数映射的一阶近似,也就是上文公式(exp-1st);等号5利用了下面的性质
将上面的结果记为
如果在上面的推导中使用左乘模型进行推导,结果会稍微有点不同:
李群空间求导
另一种更常见的做法是在李群上对
其中等号1使用指数映射的一阶近似,也就是公式(exp-1st);等号3使用反对称矩阵的性质,也就是公式(skew-prop)。
如果使用左扰动推导,结果会稍有不同,我们将两者记为如下
右扰动模型:
左扰动模型: