Observability(可观测性)
如果现有的测量能够约束某个状态(或状态空间中的某个方向),那么该状态就是可观测的;不可观测的方向可以自由漂移而不改变任何测量值。形式化地说,当沿方向扰动状态而不改变任何测量时,就位于不可观测子空间中——对于线性化系统而言,张成的是由堆叠的块构成的可观测性矩阵的零空间。准确知道VIO中哪些方向不可观测,对于构建一致的估计器至关重要。
VIO的4个不可观测自由度
一个视觉惯性系统测量的是到地标的方位角(相机)以及比力加角速率(IMU)。重力为横滚和俯仰提供了一个绝对参考,而加速度计使得度量尺度(metric scale)在一般运动下可观测。剩下不可观测的是:
- 3自由度的全局平移 —— 将整条轨迹和地图一起平移不会改变任何相机测量(位姿与地标之间的方位角不变),也不会改变任何IMU测量(加速度对平移是不变的)。
- 1自由度的全局航向角(yaw) —— 绕重力方向旋转整个系统不会改变方位角,而重力本身相对其自身轴是对称的,因此IMU也无法打破这种对称性。相比之下,横滚和俯仰是可观测的,因为它们会改变重力在加速度计上的投影方式。
因此单目VIO恰好有4个不可观测自由度。对比如下:
| 系统 | 不可观测自由度 | 自由的部分 |
|---|---|---|
| 纯单目视觉 | 7 | 平移(3)+ 旋转(3)+ 尺度(1) |
| 单目VIO | 4 | 平移(3)+ 航向角(1) |
| 立体VIO | 4 | 平移(3)+ 航向角(1)——基线提供了第二个尺度信息源,但全局位置和航向角依然自由 |
依赖于运动的退化情形
某些状态只有在足够激励的运动下才可观测:
- 在恒定加速度(包括悬停和匀速运动)下,度量尺度会额外变得不可观测——加速度计读数无法被分解为尺度和加速度。这就是为什么VIO在匀速地面车辆和轻微悬停的无人机上表现下降,为什么高速公路驾驶会出现尺度漂移,以及为什么初始化过程需要动态运动。
- 纯旋转或零旋转会削弱加速度计偏置、重力和外参标定状态之间的可分离性;在线相机-IMU标定同样需要绕多个轴的旋转激励。
- 实用经验:运动越丰富(加速度和旋转变化越多),尺度、偏置和外参收敛得越快。像DM-VIO这样的系统会在初始化之后明确继续优化尺度,因为早期运动可能尚未对其形成充分激励。
一个快速的直觉检验
为什么航向角不可观测,而横滚/俯仰可观测?将整个世界(轨迹+地图)绕重力向量旋转一个角度:每个相机仍然会以相同的方位角看到每个地标(旋转同时施加在两者上),加速度计测得的重力投影也不变(重力恰是旋转轴,因而不受影响)。没有任何测量能够区分旋转后的世界与原始世界——航向角是自由的。现在改为绕一个水平轴倾斜整个世界:方位角依然一致,但重力在加速度计上的投影会发生变化——IMU会察觉到这一点。横滚和俯仰因此被”钉住”。
同样的论证方式可以说明全局平移是自由的(方位角和加速度对平移不变),以及为什么加速度计能在一般运动下确定尺度:将地图和轨迹都放大一倍,真实加速度也会放大一倍,加速度计能够检测到这一点——除非加速度是恒定的,在这种情况下这种变化会被隐藏进偏置/重力估计之中。
一致性与首次估计雅可比(FEJ)
一个在不同时刻使用不同估计值进行线性化的EKF可能会沿不可观测方向虚假地获得信息:每个雅可比单独看都是正确的,但把它们堆叠在一起后所定义的线性化系统的不可观测子空间会比真实的不可观测子空间更小(通常表现为航向角看起来可观测,而实际上并非如此)。滤波器因此会变得过度自信——即不一致——最明显的表现是航向角协方差在没有依据的情况下不断缩小。
FEJ的解决方法:在每个状态首次被估计时计算其雅可比,并一直使用这个线性化点,从而使所有堆叠的雅可比共享一致的线性化点,正确的4维不可观测子空间因此在结构上得以保留。这在OpenVINS和现代MSCKF变体中已是标准做法,同样的思想也支配着滑动窗口优化器中边缘化先验的处理方式(Basalt的非线性因子恢复和DM-VIO的延迟边缘化是其他的替代处理方式)。
实际影响
- 明确固定规范(gauge)。 固定第一个位姿(位置+航向角)或添加先验;否则求解器会沿着自由方向漂移,Hessian矩阵将是奇异的。
- 4自由度回环闭合。 VIO位姿图中的回环闭合修正应该只调整航向角+平移(如VINS-Mono所做的那样)——扭曲横滚/俯仰会破坏重力已经使其可观测的方向。
- 4自由度轨迹对齐。 评估VIO系统相对于真值的表现应使用4自由度(航向角+平移)对齐方式,而不是适用于纯视觉里程计的6自由度或7自由度()对齐方式。
- 解读协方差。 在没有回环检测或绝对参考(GPS、先验地图)的情况下,沿全局和航向角方向的不确定性应该无界增长;一个报告航向角不确定性在缩小的滤波器,是在告诉你它并不一致,而不是它更准确。
常见误区
- 认为立体视觉能消除所有关于尺度的担忧:立体视觉确实解决了尺度的可观测性问题,但全局平移和航向角依然不可观测——在没有回环检测或绝对测量的情况下,这些方向上的漂移是不可避免的。
- 把航向角漂移或高速公路上的尺度漂移当作程序缺陷来诊断:它们是传感器组合本身的结构性属性,只能通过增加信息(回环、GPS、轮式里程计、先验地图)来缓解。
- 对VIO结果套用完整的6/7自由度评估对齐方式——这会掩盖航向角误差,使数字看起来比实际更好。
对SLAM的意义
可观测性分析解释了那些原本看起来像是程序缺陷的行为:永不停止的航向角漂移、高速公路驾驶中的尺度漂移、长时间运行后过度自信的协方差。它决定了初始化的设计(需要激励)、回环检测的设计(4自由度),以及滤波器一致性机制的设计(FEJ)。阅读一篇VIO论文首先要问:这个系统把哪些状态视为可观测的,以及在什么样的运动条件下?
相关条目
- MSCKF — 其后续文献发展出了VIO可观测性分析的滤波器。
- OpenVINS — 实现了基于FEJ的可观测性约束估计。
- Scale observability — 关于尺度的立体视觉视角。
- Scale ambiguity — 纯单目情形(7个不可观测自由度)。
- Consistency — 可观测性分析所保护的估计器属性。
- Metrics — 4自由度对齐惯例在评估中出现的位置。