MSCKF

Mourikis 2007 · 论文

一句话总结 — 多状态约束卡尔曼滤波器(Multi-State Constraint Kalman Filter)通过在EKF状态中维护一个由相机位姿(而非地标)组成的滑动窗口,并将特征测量投影到地标雅可比矩阵的左零空间上,从而实现高效的单目VIO,使计算复杂度与特征数量呈线性关系。

问题

经典的EKF-SLAM将每个三维地标位置都放入状态向量中,因此协方差更新的计算量随地图规模呈平方增长——这对于视觉辅助惯性导航是不可接受的,因为特征提取器通常每帧要跟踪数百个点。成对方案(对极约束、图像对之间的相对位姿测量)会丢弃信息,并在统计上相关的约束中重复使用相同的像素。MSCKF所回答的问题是:一个被多个相机位姿观测到的特征轨迹,能否在不将该特征本身变为状态变量的情况下,以最优方式约束轨迹?

方法与架构

该滤波器遵循一个三步循环(论文中的算法1):每收到一个IMU样本就传播(propagate),每收到一帧图像就扩增(augment),当特征轨迹结束时就更新(update)

总计算量:随特征数量呈线性增长,相对于(有限的)窗口位姿数量最多呈三次方增长。

实验结果

在明尼阿波利斯的一次真实城市道路测试中进行评估:车上装有一台Pointgrey FireFly相机(640×480 @ 3 Hz)和一台ISIS IMU(100 Hz),共1598幅图像,历时约9分钟,使用SIFT特征,状态中最多保留30个相机位姿。在3.2公里的轨迹中,共有142,903条特征轨迹被用于EKF更新,在一台2 GHz Intel T7200的单核上以14 Hz的速度处理——比3 Hz的传感器采样率还快。最终的位置误差约为10 m,即行驶距离的0.31%,且没有使用回环检测和运动先验;估计的3σ精度在姿态上优于1°,在速度上优于0.35 m/s。

对SLAM的意义

MSCKF奠定了VIO中基于滤波器的分支,其无结构测量模型也成为标准做法,其影响远超滤波领域(例如GTSAM/Kimera中的智能因子)。它是S-MSCKF(立体版本)、ROVIO时代EKF设计以及OpenVINS的直接先祖,而针对其线性化行为的后续研究则催生了如今所有基于滤波的VIO都依赖的可观测性/一致性分析(首次估计雅可比,First-Estimate Jacobians)。它的高效性正是MSCKF类估计器在已部署的AR/VR跟踪系统栈中被广泛采用的原因。当每CPU周期的精度比绝对精度更重要时,MSCKF仍是参考设计。

相关条目