反反复复看过很多次,总是有些地方不太明白,希望通过整理,再有一些新的认识。
参考:
视觉SLAM14讲 第4讲 https://zhuanlan.zhihu.com/p/33156814
https://blog.youkuaiyun.com/heyijia0327/article/details/50446140
群
群(group)是一种集合加上一种运算的代数结构。把集合记为
,运算记为
, 群就可以记为
。而这个运算必须满足以下条件:
- 封闭性:

- 结合律:

- 幺元:

- 逆:

李群
李群就是具有连续(光滑)性质的群。
三维旋转矩阵构成了特殊正交群 SO(3),变换矩阵构成了特殊欧式群 SE(3)。
李代数
李代数描述了李群的局部性质。
李代数的必要性:
考虑问题:假设某个时刻我们预测机器人的位姿为
(待定值), 观测到了一个惯性坐标系下的点
而产生了一个观测数据
,
机器人的位姿估计即为寻找一个最优的
使得整体的误差最小化:

如上最小二乘问题,一般利用初始值+梯度进行自变量更新,计算导数时需要用到加法,但是李群对加法不具备封闭性,遂引入李代数。
李代数的引出
考虑任意的旋转矩阵
,有

因为机器人在不断运动,所以
也在随时间不断变换,引入时间t 就得到
,上式也变成

等式两边一起对时间求导可得:

亦即

一个矩阵等于其自身转置后取负号,可知
是一个反对称矩阵。我们之前就介绍过反对称矩阵和^ 符号,可知对应地,对于任意的反对称矩阵,可以找到一个与之对应的向量,这个关系可以用
来表示:

设这个对应的向量为
,就有

等式两边同时右乘
则有

从式(11)(上式) 可以看到,每对旋转矩阵求一次导数,只需要左乘一个
就可以了。假设t0 = 0 并设此时
,对式(10) 进行一阶泰勒展开就有:

NOTE:
反应了
的导数的性质,故称它在SO(3) 原点附近的正切空间(Tangent Space)上。
同时,在t0 附近,设
也是一个常数,即
,根据式(11) 就有

显然,上式是一个关于
的微分方程,而且知道初始值
,解为

由于之前的假设,所以这个式子只在t 附近有效。
但可以确定,当某个时刻的
已知时,存在一个向量
,二者满足这个矩阵指数关系 。而这个
,就是对应到SO(3) 上的李代数so(3)。
李代数so(3)
李代数so(3) 对应的向量
,是定义在R3 上的向量,每个向量对应到一个反对称矩阵;(李括号为三维向量的外积运算);可以用来表达旋转矩阵的导数,和SO(3) 的关系由指数映射给定:
.
两个向量 的李括号为:
![[\phi_1, \phi_2]=(\mathbf{\Phi_1}\mathbf{\Phi_2}-\mathbf{\Phi_2}\mathbf{\Phi_1})^\vee](https://i-blog.csdnimg.cn/blog_migrate/be8ab9698e49c4ea857ab9de5e8150a8.png)
李代数se(3)
对于SE(3),它也有对应的李代数se(3)。和so(3) 类似,se(3) 在R6 空间中:

把每个se(3) 元素记做
,它是一个六维向量:前三维为平移,记作
;后三维是旋转,记作
,实质上是so(3) 元素。
此外,在se(3) 中,
符号的含义被拓展了:这里它将一个六维向量转换为四维矩阵,但这里不再表示反对称矩阵。
李代数se(3) 的李括号:
![[\xi_1,\ \xi_2]=(\xi_1^\wedge \xi_2^\wedge - \xi_2^\wedge\xi_1^\wedge)^\vee](https://i-blog.csdnimg.cn/blog_migrate/014fa1100c16aab2c52044bdcacba74c.png)
指数和对数映射
从李代数到李群,通过指数映射;反之,从李群到李代数,则通过对数映射。
so(3) : 
so(3) —— SO(3):

SO(3) —— so(3):


BCH近似
对于两次连续的旋转可以用矩阵乘法来描述,但用李代数如何表示呢?我们自然是希望李群中两个矩阵相乘对应李代数上对应元素的相加,这样我们才能够利用加法来计算导数和进行更新。但很遗憾,这是不成立的。
李代数指数映射的乘积,见BCH公式:
![\ln(\exp(\mathbf{A})\exp(\mathbf{B}))=\mathbf{A}+\mathbf{B}+\frac{1}{12}[\mathbf{A},\mathbf{B}]+\frac{1}{12}[\mathbf{A},[\mathbf{A},\mathbf{B}]]-\frac{1}{12}[\mathbf{B},[\mathbf{A},\mathbf{B}]]+\ldots](https://i-blog.csdnimg.cn/blog_migrate/aebe0d9b3dec8c3b8bb583c1fd45c564.png)
BCH 的线性近似:

根据BCH 近似:


扰动模型
利用李代数求导,有两种思路:
- 用李代数来表示位姿,根据李代数加法来对李代数进行求导;
- 利用李群来左乘或者右乘微小扰动,在对这个扰动的李代数进行求导。
一般使用第二种,扰动模型:
先对旋转矩阵
进行一次扰动
,然后再求导。
这里以左乘扰动模型为例。设左扰动的李代数为
,直接对
(而不是
)进行求导:

SE(3)上的扰动模型:
假设某空间点
经过了一次变换
,对应的李代数为
,得到了
。给
左乘一个微小扰动
,扰动项的李代数为
。则有:

最后的结果被定义为符号
的一个运算:把一个齐次坐标下的空间点变换成一个4*6 的矩阵。
1337

被折叠的 条评论
为什么被折叠?



