前言
学习笔记,仅供学习,不做商用,如有侵权,联系我删除即可
一、目标
1. 理解李群与李代数的概念,掌握SO(3)、 SE(3)与对应李代数的表示方式。
2. 理解BCH近似的意义。
3. 学会在李代数上的扰动模型。
4. 使用Sophus对李代数进行运算。
二、李群与李代数基础
旋转矩阵自身带约束(正交且行列式为1),当它作为优化变量时,会引入额外的约束,使优化变得困难。通过李群-李代数间的转换关系,可以把位姿估计变成无约束的优化问题。
2.1 群
群(Group)是一种集合加上一种运算的代数结构,集合记作A,运算记作·,那么群可以计算G=(A,·)。群运算满足“封结幺逆”的条件:
李群(Lie Group):
- 具有连续(光滑)性质的群
- 既是群,也是流形。
- 直观上看,一个刚体能够连续在空间中运动,故SO(3)和SE(3)都是李群。
- 但是SO(3)和SE(3)只有定义良好的乘法
- 没有加法,难以进行取极限、求导的操作。
2.2 李代数
与李群对应的一种结构,位于向量空间。
- 通常记作小写的so(3)和se(3),通常用哥特体写出。
- 实际上是李群单位元处的正切空间。
因此,李群和李代数之间存在指数映射关系。哥特体的李代数so(3)代表一个能够表示相机位姿的三维向量。
李代数的性质:
李括号:
三、指数与对数映射
3.1 SO(3)上的指数映射
SO(3)上的指数映射其实就是罗德里格斯公式。
对应的对数映射:
3.2 SE(3)上的指数映射
J:Jacobian矩阵,只和旋转有关。
四、李代数求导与扰动模型
4.1 BCH公式与近似形式
左乘模型和右乘模型不一样,现在基本上都是左乘模型。
李代数上做加法等价于在李群上做了一个右乘,但右乘上多乘一个右雅可比矩阵。
se(3)的形式(SLAM中最常用的公式,只记左乘就可以,其实是一样的):
4.2 李代数求导
导数模型:对R对应的李代数加上小量,求相对于李代数小量的变化率。
扰动模型:对R左乘或右乘一个小量,求相对于小量的李代数的变化率。
设存在一个左扰动,对应的李代数为,对求导:
导数模型更精确,扰动模型编程时更常用。
SE(3)上的李代数求导
矩阵求导规则(推导中需要):
4.3 相似变换群与李代数
多了一个尺度自由度s,即Sim(3)是7自由度变换: