Observability(可观测性)

如果现有的测量能够约束某个状态(或状态空间中的某个方向),那么该状态就是可观测的;不可观测的方向可以自由漂移而不改变任何测量值。形式化地说,当沿方向n\mathbf{n}扰动状态而不改变任何测量时,n\mathbf{n}就位于不可观测子空间中——对于线性化系统而言,n\mathbf{n}张成的是由堆叠的HΦ\mathbf{H}\boldsymbol{\Phi}块构成的可观测性矩阵的零空间。准确知道VIO中哪些方向不可观测,对于构建一致的估计器至关重要。

VIO的4个不可观测自由度

一个视觉惯性系统测量的是到地标的方位角(相机)以及比力加角速率(IMU)。重力为横滚和俯仰提供了一个绝对参考,而加速度计使得度量尺度(metric scale)在一般运动下可观测。剩下不可观测的是:

因此单目VIO恰好有4个不可观测自由度。对比如下:

系统不可观测自由度自由的部分
纯单目视觉7平移(3)+ 旋转(3)+ 尺度(1)
单目VIO4平移(3)+ 航向角(1)
立体VIO4平移(3)+ 航向角(1)——基线提供了第二个尺度信息源,但全局位置和航向角依然自由

依赖于运动的退化情形

某些状态只有在足够激励的运动下才可观测:

一个快速的直觉检验

为什么航向角不可观测,而横滚/俯仰可观测?将整个世界(轨迹+地图)绕重力向量旋转一个角度α\alpha:每个相机仍然会以相同的方位角看到每个地标(旋转同时施加在两者上),加速度计测得的重力投影也不变(重力恰是旋转轴,因而不受影响)。没有任何测量能够区分旋转后的世界与原始世界——航向角是自由的。现在改为绕一个水平轴倾斜整个世界:方位角依然一致,但重力在加速度计上的投影发生变化——IMU会察觉到这一点。横滚和俯仰因此被”钉住”。

同样的论证方式可以说明全局平移是自由的(方位角和加速度对平移不变),以及为什么加速度计能在一般运动下确定尺度:将地图和轨迹都放大一倍,真实加速度也会放大一倍,加速度计能够检测到这一点——除非加速度是恒定的,在这种情况下这种变化会被隐藏进偏置/重力估计之中。

一致性与首次估计雅可比(FEJ)

一个在不同时刻使用不同估计值进行线性化的EKF可能会沿不可观测方向虚假地获得信息:每个雅可比单独看都是正确的,但把它们堆叠在一起后所定义的线性化系统的不可观测子空间会比真实的不可观测子空间更小(通常表现为航向角看起来可观测,而实际上并非如此)。滤波器因此会变得过度自信——即不一致——最明显的表现是航向角协方差在没有依据的情况下不断缩小。

FEJ的解决方法:在每个状态首次被估计时计算其雅可比,并一直使用这个线性化点,从而使所有堆叠的雅可比共享一致的线性化点,正确的4维不可观测子空间因此在结构上得以保留。这在OpenVINS和现代MSCKF变体中已是标准做法,同样的思想也支配着滑动窗口优化器中边缘化先验的处理方式(Basalt的非线性因子恢复和DM-VIO的延迟边缘化是其他的替代处理方式)。

实际影响

常见误区

对SLAM的意义

可观测性分析解释了那些原本看起来像是程序缺陷的行为:永不停止的航向角漂移、高速公路驾驶中的尺度漂移、长时间运行后过度自信的协方差。它决定了初始化的设计(需要激励)、回环检测的设计(4自由度),以及滤波器一致性机制的设计(FEJ)。阅读一篇VIO论文首先要问:这个系统把哪些状态视为可观测的,以及在什么样的运动条件下?

相关条目