视觉SLAM十四讲 Chapter4
李群与李代数
参考书目 《视觉SLAM十四讲》 高翔 张涛 等著
参考链接: https://zhuanlan.zhihu.com/p/33156814
一、 李群与李代数基础
1. 李群
三维旋转矩阵构成了 特殊正交群 \(SO(3)\) ,变换矩阵构成了 特殊欧式群 \(SE(3)\) \[ SO(3)=\{R \in R^{3 \times 3} |RR^T=I,det(R)=1\} \]
\[ SE(3)=\{ T = \begin{bmatrix} R & t \\ 0^T & 1 \end{bmatrix} \in R^{4\times4} | R \in SO(3),t \in R^3\} \]
它们对于加法是不封闭的,换句话说两个变换矩阵相加后得到的矩阵并不是一个变换矩阵。
定义:李群就是具有 连续(光滑) 性质的群。
前面举的整数的加法的例子显然不是连续的,因而它不是李群。但SO(3) 和SE(3) 在实数空间上是连续的(机器人在三维空间中显然是连续地运动,而不会进行“瞬移”)。
问题: 为什么要用到李群和李代数?避免一直是数学上的推导。我们用一个比较实际的例子。假设某个时刻我们预测机器人的位姿为 \(T\) (待定值), 它观测到了一个惯性坐标系下的点 \(p\) 而产生了一个观测数据 \(z\) ,它是该点在相机坐标系下的坐标,则可得 \[ z=Tp+w \]
其中,\(w\) 是观测噪声。由于观测噪声的存在, \(z\) 无法严格满足式 \(z=Tp\) 。因此而产生的误差 \(e\) 为 \[ e=z-Tp \] 若共有N 个观测值,那么就有N 个这样的式子。机器人的位姿估计就转变成寻找一个最优的 \(T\) 使得整体的误差最小化:
通常,直接求解上式得出最优的 \(T\) 是很困难的(或计算量很大)。我们常常先给定一个猜测值(初始值) \(T_0\) ,然后不断地对它进行迭代更新。而这个过程需要用到导数(可以想想梯度下降法)。
导数的定义,
显然计算导数和进行更新时都要用到加法。但SO(3) 和SE(3) 上对矩阵加法的运算并不封闭。如果要继续采取这个迭代更新的策略势必要再想想办法,使得导数“可行”。而这就可以通过李群及其对应的李代数来实现。