1、李群和李代数
三维旋转矩阵构成了特殊正交群SO(3),变换矩阵构成了特殊欧式群SE(3),表示如下:
但是什么是群呢?
群(Group)是一种集合加上一种运算的代数结构。
我们把集合记作A,运算记作 ·,那么群可以记作G = (A, ·)。群要求这个运算满足以下几个条件:
简单验证可知旋转矩阵和变换矩阵都是群。
李群
李群是指具有连续(光滑)性质的群。SO(n) 和 SE(n),它们在实数空间上是连续的。我们能够直观地想象一个刚体能够连续地在空间中运动,所以它们都是李群。由于 SO(3) 和 SE(3) 对于相机姿态估计尤其重要,所以主要讨论这两个李群。
先从较简单的 SO(3) 开始讨论,将发现每个李群都有对应的李代数。
2、李代数的引出
考虑任意旋转矩阵 R,满足:RRT = I.
R是某个相机的旋转,它会随时间连续地变化,即为时间的函数:R(t)。
在其两边对时间求导,可得:
进一步整理,得到:
仔细观察上式,发现满足A = -AT的形式,即:
记得上一节引入一个^符号,可以将一个向量转换为一个反对称矩阵。同理,对于任意反对称矩阵,我们也能找到一个与之对应的向量。所以有:
在等式两边右乘R(t),由于R是正交阵,所以可以得到:
我们设 t0=0 时的旋转矩阵 R(0)=I。按照导数定义,对R(t)在 0 附近进行一阶泰勒展开:
可以看到ϕ反映了 R 的导数性质,故称它在 SO(3) 原点附近的正切空间 (Tangent Space) 上。同时在 t0 附近,设 ϕ 保持为常数 ϕ(t0) = ϕ0。
这是一个关于 R 的微分方程,而且初始值 R(0) = I,解之,得:
在这个式子中我们发现,在t=0附近,只要知道某时刻的R,则会存在一个向量ϕ,他们满足这个矩阵指数关系!
它描述了 R 在局部的导数关系。与 R 对应的 ϕ 有什么含义呢?ϕ 正是对应到 SO(3) 上的李代数 so(3)
注意:SO(3) 对应的李代数是定义在 R3上的三维向量,我们记作 ϕ。根据前面的推导,每个 ϕ 都可以生成一个反对称矩阵:
总结:SO(3)对应的李代数so(3)表示为:
对于 SE(3),它也有对应的李代数 se(3)。与 so(3) 相似,se(3) 位于 R6 空间中:
3、为什么要用李代数
在 SLAM 中,除了位姿的表示之外,我们还要对它们进行估计和优化。因为在 SLAM 中位姿是未知的,而我们需要解决什么样的相机位姿最符合当前观测数据这样的问题。一种典型的方式是把它构建成一个优化问题,求解最优的 R, t,使得误差最小化。旋转矩阵自身是带有约束的(正交且行列式为 1)。它们作为优化变量时,会引入额外的约束,使优化变得困难。通过李群——李代数间的转换关系,我们希望把位姿估计变成无约束的优化问题,简化求解方式。再有,优化问题是要误差函数对状态变量求导的,对于旋转矩阵的导数,由于其对加法不封闭,不好定义其导数,而李代数对加法封闭并且其用3个参数就可以表达旋转,6个量就能表达欧式变换,比旋转矩阵和变换矩阵的参数少得多。
4、李群与李代数间的指数映射
exp(ϕ^) 是如何计算的?它是一个矩阵的指数,在李群和李
代数中,称为指数映射(Exponential Map)。
任意矩阵的指数映射可以写成一个泰勒展开,但是只有在收敛的情况下才会有结果,其结果仍是一个矩阵。
同样,对 so(3) 中任意一元素 ϕ,我们也能按此方式定义它的指数映射:
由于 ϕ 是三维向量,我们可以定义它的模长和它的方
向,分别记作 θ 和 a,于是有 ϕ = θa。这里 a 是一个长度为 1 的方向向量。对于a^,有以下两条性质:
由第一条性质可得:I = aaT - aa
于是,完整推导为:
最后得到:
形式正好就是罗德里格斯公式。这表明,so(3) 实际上就是由所谓的旋转向量组成的空间,而指数映射即罗德里格斯公式。通过它们,我们把so(3) 中任意一个向量对应到了一个位于 SO(3) 中的旋转矩阵。反之,如果定义对数映射,我们也能把 SO(3) 中的元素对应到 so(3) 中:(直接用罗德里格斯公式反推)
关于SO(3)和SE(3)上的指数映射和对数映射,关系如下:
5、李代数求导(扰动模型)
使用李代数的一大动机是为了进行优化,而在优化过程中导数是非常必要的信息。在SLAM中,我们经常会构建与位姿有关的函数,然后讨论该函数关于位姿的导数,以调整当前的估计值。
使用李代数解决求导问题的思路分为两种:
- 用李代数表示姿态,然后对根据李代数加法来对李代数求导。
- 对李群左乘或右乘微小扰动,然后对该扰动求导,称为左扰动和右扰动模型。
第一种方式对应到李代数的求导模型,而第二种则对应到扰动模型。
①求导模型
按照导数的定义由:
得到:
可见,等式里包含一个形式相当复杂的雅可比矩阵,而扰动模型能完美的避免他的计算。
扰动模型(左扰动为例)
对 R 进行一次扰动 ∆R,设左扰动 ∆R 对应的李代数为φ。然后,对 φ 求导,即:
可见,扰动模型相比于直接对李代数求导,省去了一个雅可比 的计算。这使得扰动模型更为实用。
对于SE(3) 上的李代数求导:
6、下节预告
视觉SLAM中,我们研究的主要是观测方程,见SLAM的数学描述。也就是“机器人如何观测外部世界”,在以相机为主的视觉 SLAM 中,观测主要是指相机成像的过程。所以下一节学习经典的针孔相机模型,搞清楚一个空间点是如何投影到相机成像平面的。