视觉SLAM14讲——李群与李代数

前面的文章说过三维空间的刚体运动,介绍了旋转的表示。在SLAM中相机的位姿是不确定的,需要我们进行优化,常用的优化方法便是求导,但是旋转矩阵由于自身的特殊性(行列式为1的正交矩阵),使我们无法直接对旋转矩阵进行求导优化,所以引入了李群与李代数来简化求解方式。

1、李群与李代数

上一篇文章说过旋转矩阵构成了特殊正交群SO(3),变换矩阵构成特殊欧氏群SE(3)。

视觉SLAM14讲——李群与李代数_第1张图片

首先我们来介绍下群这一概念。

1、群

无论从旋转矩阵还是变换矩阵,我们可以证明两个矩阵进行加法运算后便不再是旋转矩阵(行列式为1的正交矩阵)。即:

但是两个矩阵的乘法运算之后的矩阵仍是旋转矩阵:

接下来介绍以下群的概念。群是一种集合加上一种运算的代数结构。群要求运算满足以下四个条件:

视觉SLAM14讲——李群与李代数_第2张图片

 结合我们已知的,旋转矩阵这种集合,加上矩阵乘法运算,正好构成了群,同理变换矩阵集合和矩阵乘法也构成了群。
群结构保证了在群上的运算具有良好的性质。
李群是指具有连续(光滑)性质的群。结合SLAM知识,相机在空间中是连续运动的,所以SO(3)和SE(3)都是我们要讨论的李群。

2、李代数

对于旋转矩阵R,我们根据旋转矩阵是一个行列式为1的正交矩阵这一特点可以得出:

现在我们认为R随着相机的旋转是随着时间变化的,也就是说R是时间的函数,可以得出:

 经过整理得出:

 从上式可以看出等号左边是一个反对称矩阵,我们知道一个反对称矩阵可以找到一个向量与之对应:

 ^为反对称符号,表示将一个向量变为反对称矩阵形式。对上式进行变形,等式两边右乘R(t)

视觉SLAM14讲——李群与李代数_第3张图片

 上式可以看出每对旋转矩阵求导,只需要在旋转矩阵左乘一个反对称矩阵

 考虑t0 = 0时,设此时旋转矩阵R(0) = I,将R(t)在t=0附近进行一阶泰勒展开:

 从上式可以看到可以反应R的导数性质,所以称他为SO(3)原点附近的正切空间,同时设在t0附近为常数,所以有:

 上式可以看作为是关于R的微分方程,最终求解得出:

 可以看出旋转矩阵R在t=0时刻可以由反对称矩阵通过指数运算发生联系。截止到这里,我们知道了在给定时刻的R,我们能够知道一个向量,他能够描述旋转矩阵R在局部的导数性质,然们之间存在着一种指数关系,实际上就是对应到SO(3)的李代数so(3)。

1、李代数的定义

每个李群都有与之对应的李代数,李代数描述了李群的局部性质,准确的说是李群单位元的正切空间。

视觉SLAM14讲——李群与李代数_第4张图片

 2、李代数so(3)

之前说过的实际上就是李代数,李代数so(3)是一个由三维向量组成的集合,每个向量都对应一个反对称矩阵,可以用来表示旋转矩阵的导数。它与SO(3)的关系由指数映射给定:

 2、指数映射与对数映射

上面我们说过旋转矩阵的李代数可以通过指数映射运算与旋转矩阵建立联系,但是很明显这是一个矩阵的指数映射,我们可以用泰勒展开的形式来描述。

 由于是一个向量,我们可以定义他的模长和方向记为:,根据一些数学上的特殊处理,我们最终可以得出以下推导:

视觉SLAM14讲——李群与李代数_第5张图片

 总结和得出一个曾经学过的公式:

 这就是在三维空间刚体运动那一张学过的罗德里格斯公式,换个角度来说,我们这一章推导的李代数就是由旋转向量组成的空间,指数映射就是罗德里格斯公式。通过他们,我们可以将so(3)的任意向量对应到SO(3)中,反之亦然。

那么最终分别给出旋转和变换两种运动的李群与李代数的转换关系。

视觉SLAM14讲——李群与李代数_第6张图片

 3、李代数求导与扰动模型

1、BCH公式与近似公式

引入李代数的原因是由于李代数可以很好的进行求导优化,而李群不方便。我们现在已经知道了李群与李代数之间的转换关系,但是由于都是用矩阵来表示的,那么他们之间的转换是否和标量一样?即:我们在李代数上做加法是否等于李群上乘法运算?李群上的乘法运算是否等于李代数的加法运算?如果成立的话相当于:

 由于我们解决的是矩阵问题,上面是标量问题。BCH公式给出了两个李代数指数映射乘积的完整形式:

 BCH公式告诉我们,在处理两个矩阵指数积的时候,会产生一些由李括号组成的余项,小量二次以上的项都会忽略,那么BCH的近似表达为:

 视觉SLAM14讲——李群与李代数_第7张图片

 总结以下BCH的意义为:假定一个旋转R,对应的李代数为。我们左乘一个微小旋转记作ΔR,对应的李代数为Δ。李群的表示为RΔR,而在李代数上由于BCH近似表达为

 合并起来写就是:

 反之如果是在李代数上做加法:

 2、李代数求导

假设我们对空间上点p进行旋转得到了Rp,现在要计算旋转之后的点对于旋转的导数可以记为:

 由于SO(3)无法定义加法,无法按照导数定义进行求导,我们通过SO(3)对应的李代数来按照导数定义求导:

视觉SLAM14讲——李群与李代数_第8张图片

 最终记为:

 这种通过对李代数加上一个小量进行求导运算的方法称为求导模型,可以看到最终结果会带有一个雅可比矩阵,并不方便。

另一种求导方法是对R进行一次扰动ΔR,看结果相对于扰动的变化率:

视觉SLAM14讲——李群与李代数_第9张图片

 相比于直接对李代数进行求导,扰动模型求导会省去雅可比矩阵的麻烦,更为实用。

 

 

你可能感兴趣的:(视觉14讲,矩阵,线性代数)