开始本文前,我已经有《视觉SLAM十四讲-高翔》前三章基础。
目录
李群李代数基础
在前几章介绍了旋转矩阵和变换矩阵,当时,我们说三维旋转矩阵构成了特殊正交群SO(3),而变换矩阵构成了特殊欧氏群 SE(3)。
这里可以引出,无论是旋转矩阵还是变换矩阵,他们对加法都是不封闭的。对于任意两个旋转矩阵R1,R2,他们按照矩阵加法的定义,和不再是一个旋转矩阵:
对于变换矩阵亦是如此。我们发现,这两种矩阵并没有良好定义的加法,相对的,它们只 有一种较好的运算:乘法。SO(3) 和 SE(3) 关于乘法是封闭的:
两次旋转矩阵相乘表示做了两次旋转,对于这种只有一个运算的集合,我们叫它做群。
群
群(Group)是一种集合加上一种运算的代数结构。我们把集合记作 A,运算记作 ·, 那么群可以记作 G = (A, ·)。群要求这个运算满足以下几个条件:
1.封闭性 2.结合律 3.幺元 4.逆
详见https://zhuanlan.zhihu.com/p/115658697
李群
李群是指具有连续(光滑)性质的群。像整数群 Z 那样离散的群没有连续性质,所以不是李群。而 SO(n) 和 SE(n),它们在实数空间上是连续的。我们能够直观地想象一个刚体能够连续地在空间中运动,所以它们都是李群。
李代数的引出
对于任意的旋转矩阵R,满足
在实际中,用R表示相机或其他传感器的旋转,它会随时间t变化,即为时间的函数:R(t),它仍是旋转矩阵,所以依旧满足上式,则有
对上式左右两边同时求导,可得
将式子移项,对转置外移,整理可以得到
这条等式就可以看出是一个反对称矩阵。
曾经叉积的学习中,引入了^符号,把一个向量变成了反对称矩阵。同理,对于任意反对称矩阵,我们亦能找到一个与之对应的向量。把这个运算用符号 ∨ 表示:
可以理解成是向量到矩阵的变换,
是矩阵到向量的变换。
在上方已经得出是反对称矩阵,可以找一个三维向量
与之对应,于是有:
等式两边同时R(t),由于R为正交阵,有:
可以看到,每对旋转矩阵求一次导数,只需左乘一个 矩阵即可。为方便讨论,我们设 t0 = 0,并设此时旋转矩阵为 R(0) = I。按照导数定义,可以把 R(t) 在 0 附近进行一阶泰勒展开:
我们看到 ϕ 反映了 R 的导数性质,故称它在 SO(3) 原点附近的正切空间 (Tangent Space) 上。同时在 t0 附近,设 ϕ 保持为常数 ϕ(t0) = ϕ0。则有:
上式是一个关于 R 的微分方程,而且我们知道初始值 R(0) = I,下面进行求解:
这里引出齐次一阶线性方程方便读者进行理解:
分离变量得到
两边同时积分,得到
也可以表示为
那么也就不难解出
通过推导,我们知道了旋转矩阵 R 与另一个反对称矩阵 通过指数关系发生了联系。也就是说,当我们知道某个时刻的 R 时,存在一个向量 ϕ,它们满足这个矩阵指数关系。
给定某时刻的 R,我们就能求得一个 ϕ,它描述了 R 在局部的导数关系。ϕ 正是对应到 SO(3) 上的李代数 so(3)。
矩阵指数 事实上正是李群与李代数间的指数/对数映射。
下一篇会详细说明李代数。