引入
这篇文章主要是记录看完(1)之后的笔记。在之前的提到的各种姿态估计的算法中,姿态的非线性是一个非常难处理的问题。试图用Kalman滤波器等线性方法估计状态只是一种近似的手段,IEKF也算是另外一种手段。
但上述这些方法都或多或少的有些奇怪,因为观测的状态本身总是不符合Kalman滤波器所要求的线性,而我们希望设定的姿态能满足可加和的性质。实际上在误差状态Kalman中就已经提到了一些关于流形(Manifolds)上的操作,比较专业一些的算法例如FAST-LIO设定的状态也是在流形上的。不过目前正是因为缺少这部分的基础知识,看不明白这些论文的方法,于是找了(1)(2)(3)几本书补一下。
文(2)(3)覆盖内容比较全面一些,而文(1)主要覆盖的是工程运用里面所用到的基础知识,比较适合速成,这里也主要是围绕(1)展开。
基本概念
- 流形(Manifold):状态降维的抽象概念,表征高维数据中的低维结构,可以理解为为带约束的高维空间
- 李群(Lie Group):一个光滑(可微分)的流形
,且其元素 满足如下性质: - 切空间(Tangent space):给定流形上随
移动一点,其导数 所构成的空间。可以理解为与流形相切的平面构成的空间,是流形在某一点处线性化的向量空间。流形 上一点 的切空间记作 - 李代数(Lie algebra):流形在其幺元(Identity)
处的切空间,可以理解为流形在其“原点”处线性化的向量空间。流形 的李代数可记作
需要注意的是,流形的组合操作类似矩阵乘法,一般情况并不满足交换律。
实际上李群的概念并不是具体指代一种集合,而是说符合上述性质的一类抽象的集合,具体在现实中可能有很多种符合上述条件的集合。这些集合上很多操作都是非线性的,例如最常见的姿态表示的空间中旋转的组合都是采用乘法叠加的,这就为许多线性的信号处理的方法带来了麻烦。而在流形切空间上进行姿态的线性处理是一个非常合适的解决方法。虽然如扩展Kalman也可以直接对当前姿态状态求Jacobian近似线性化,但是流形切空间的优势在于由于流形上每一点总是相似的,其切空间也是相近的,这样其非线性程度远小于直接线性化。