关于机器人状态估计/VIO/VSLAM中能观性/可观性/FEJ的一些直接解释

知识来源是高翔博士与贺一家老师的VIO课程,以及Barfoot教授的机器人学中的状态估计。

可观性问题会直接带来多传感器融合融态中的关键手段:FEJ First Estimated Jacobian

即不同残差对同一状态求Jacobian时,线性化点必须一致,以避免零空间null space退化而使不可观变量变可观。

因此对其的理解是一件非常重要的事情。

初学者在没有足够资料与文档解释的情况下,对其的理解是比较困难的。从业者应该都清楚,状态估计走到今天,前端已经进入了大成熟阶段,回环手段也较为一致(如word bag或语义),后端优化是核心中的核心。而其中对于H矩阵/或信息矩阵的处理与维护是核心

这类矩阵维护中,基于BA的滑动窗口滤波是基础手段之一,我们需要进行边缘化的同时传递先验信息(形成pose graph),节约开销的同时能够将先验信息传递至下一个滑动窗口。

现在我们将被Marge后的变量描述为Xm,剩余的变量记为Xr

Marg后:先验信息经过舒尔补操作后分别由残差矩阵b与先验信息矩阵Λ构成

这2个矩阵都由2个部分构成(具体构成就不写了),对应的Jacobian和残差r需要由这2个矩阵通过正定方程(增量方程)反解出来

但这样就出现了2个核心问题:

1.被Marg后的变量与测量已经丢弃,先验信息矩阵Λ中关于Xr的Jacobian在后续求解中已无法更新

2.Xr中部分变量还和其他残差有关,这些残差的Jacobian会随新的状态估计的迭代更新而不断在最新的线性化点中计算

则Λ变为了Λ1(线性化点固定)与Λ2(线性化点在变),这样最终将导致Λ的零空间改变,引入错误信息。这里导入线性代数的一个基础概念:满秩必可逆,转置逆不变,不满秩则有零空间。

因此导入了FEJ

可观性/能观性用最通俗和直观的方式来描述就是:状态一变,测量就变

单目slam存在7自由度不可观:3旋转,3平移,尺度皆不可观

单目+IMU存在4自由度不可观:Yaw与3平移,pitch与roll因重力而可观,尺度因加速度计而可观

因此大家在调试对应slam系统中,如果出现问题,一定要考虑到可观性/能观性问题。

另外FEL在实际工程中也存在不少问题,待后续具体实验中详解

你可能感兴趣的:(VIO与多传感器融合融态,矩阵,线性代数,计算机视觉)