4. IMU模型与标定

视觉惯性SLAM系统的精度上限,很大程度上取决于IMU(惯性测量单元)的建模精度与标定质量。IMU提供了高频的角速度与加速度测量,但原始数据中混杂着确定性误差与随机噪声。若不对其进行建模与补偿,融合定位系统将迅速发散。本章从IMU的物理测量原理出发,深入解析噪声与偏差的数学模型,并给出内参标定与相机-IMU外参标定的完整工程流程。

IMU测量链路与标定关系图 MEMS IMU 物理层 加速度计 + 陀螺仪 确定性误差 + 随机误差 尺度/轴偏/零偏/噪声/游走 标定参数输出 内参矩阵 + 外参 T_BC 内参标定(六面静止法) 加速度/陀螺仪零偏、尺度、轴偏 外参标定(旋转激励法) 相机-IMU 旋转/平移外参 在线标定(VINS初始化) 重力对齐、速度/尺度估计 视觉惯性融合定位(VINS-Fusion) 预积分 → 滑动窗口优化 → 回环检测 → 全局位姿 标定质量直接影响预积分精度与初始化收敛速度

上图展示了IMU标定在视觉惯性SLAM系统中的核心位置:物理层的原始测量经过误差建模与参数补偿后,才能进入预积分与状态估计模块。下面我们逐层拆解。

4.1 IMU测量原理与误差来源

IMU通常包含三轴加速度计与三轴陀螺仪。加速度计测量的是比力(Specific Force),即物体所受非引力加速度之和,单位为 m/s²;陀螺仪测量的是相对于惯性系的角速度,单位为 rad/s。在VINS中,我们关心的是IMU坐标系(B系)相对于世界坐标系(W系)的运动。

理想测量模型为:

a_m = R_wb * (a_w - g_w) + b_a + n_a
ω_m = ω_wb + b_g + n_g

其中,a_m、ω_m为原始测量值;R_wb为世界系到IMU系的旋转;a_w为世界系下的加速度;g_w为重力向量;b_a、b_g为加速度计与陀螺仪的零偏(Bias);n_a、n_g为高斯白噪声。

实际传感器还存在确定性误差:尺度因子误差(Scale Factor)与轴间非正交误差(Misalignment)。这些误差在出厂时已部分校准,但温度变化、机械应力会导致残余误差,因此需要用户自行标定。

误差类型来源对SLAM的影响标定方式
零偏(Bias)MEMS制造工艺、温度漂移导致位姿漂移,积分发散静止放置求均值
尺度因子ADC量化、放大电路增益偏差速度/位移估计偏大或偏小六面法+最小二乘
轴间非正交芯片贴装、封装应力耦合误差,旋转时产生虚假加速度多位置旋转标定
高斯白噪声电子热噪声、采样量化影响滤波精度,需用Allan方差分析Allan方差法
随机游走零偏的积分累积长期漂移,无法完全消除Allan方差法估计

核心原理:零偏是慢变误差,随机游走是零偏的随机波动。在VINS中,我们通常将零偏作为状态量在滑动窗口中在线估计,而随机游走则通过噪声协方差矩阵建模。

4.2 噪声与偏差的数学模型

IMU的随机误差通常用Allan方差(Allan Variance)来表征。Allan方差将不同时间尺度上的噪声源分离,典型曲线呈“V”形或“碗”形。通过拟合Allan方差曲线,可以提取出:

  • 角度随机游走(ARW):陀螺仪白噪声的积分效应,单位 °/√h。
  • 速度随机游走(VRW):加速度计白噪声的积分效应,单位 m/s/√h。
  • 零偏不稳定性(Bias Instability):Allan方差曲线的最低点,代表零偏的极限波动。
  • 量化噪声:ADC采样分辨率限制。

在VINS的ESKF(误差状态卡尔曼滤波)或滑动窗口优化中,我们通常将IMU噪声建模为:

n_a ~ N(0, σ_a² I)
n_g ~ N(0, σ_g² I)
b_a_dot = n_ba ~ N(0, σ_ba² I)
b_g_dot = n_bg ~ N(0, σ_bg² I)

其中,σ_a、σ_g为测量白噪声标准差;σ_ba、σ_bg为零偏随机游走标准差。这些参数直接影响预积分的协方差传播,进而影响优化权重。

工程经验:对于消费级IMU(如MPU6050、BMI160),σ_a 通常在 0.01~0.05 m/s²/√Hz,σ_g 在 0.001~0.005 rad/s/√Hz。工业级IMU(如ADIS16470)可低一个数量级。若参数设置过小,系统会过度信任IMU,导致视觉约束被忽略;设置过大则IMU约束失效。

4.3 IMU内参标定流程

内参标定的目标是确定加速度计与陀螺仪的零偏、尺度因子和轴间非正交矩阵。最常用的方法是六面静止法:将IMU分别以六个面朝上静止放置,记录加速度计输出。由于静止时比力等于重力向量,我们可以建立线性方程组求解。

具体操作流程如下:

  1. 将IMU固定在一个精密水平台上,确保每个面朝上时静止至少30秒。
  2. 记录每个位置的加速度计均值 a_i(i=1..6)。
  3. 构建误差模型:a_m = T_a * K_a * (a_true + b_a),其中 T_a 为非正交矩阵,K_a 为尺度矩阵。
  4. 使用最小二乘法求解12个参数(3个零偏、3个尺度、6个轴偏角)。
  5. 陀螺仪标定需要转台提供已知角速度,或使用多位置旋转法。

对于没有转台的团队,可以使用多位置静态法:将IMU旋转到多个任意姿态,利用重力向量模长恒为g的约束,同样可以解算出加速度计内参。陀螺仪零偏则通过静止时输出均值直接估计。

风险提示:六面法对水平台精度要求极高,若台面倾斜超过0.1°,标定出的零偏误差将超过0.01 m/s²。建议使用气泡水平仪校准台面,并在每个位置采集更长时间(>60秒)以平滑噪声。

标定完成后,应验证残差:将标定参数代入,重新计算各位置的比力模长,与g的偏差应小于0.005 m/s²。若偏差过大,需检查数据采集质量或模型是否遗漏了温度项。

4.4 IMU与相机外参标定

外参标定是视觉惯性融合的关键步骤,即求解相机坐标系(C系)到IMU坐标系(B系)的变换矩阵 T_BC = [R_BC | t_BC]。外参误差会直接导致视觉与惯性约束不一致,严重时系统初始化失败。

常用的标定方法分为离线标定与在线标定两类:

方法原理优点缺点
Kalibr(离线)利用AprilTag标定板,联合优化相机内参、IMU内参、外参精度高,可同时标定时间延迟需要标定板,操作繁琐
VINS初始化(在线)利用旋转约束估计R_BC,利用平移约束估计t_BC无需标定板,自动完成需要充分激励,精度略低
手眼标定法将相机-IMU视为手眼系统,求解AX=XB数学严谨,适合批量标定需要高精度转台

在VINS-Fusion中,外参的在线估计被集成在初始化阶段。其核心思想是:在纯旋转运动下,视觉特征的对极约束与IMU陀螺仪的积分旋转应一致,从而可以线性求解 R_BC。平移 t_BC 则需要在有加速度激励时,通过视觉与IMU预积分的位置残差来估计。

实战场景:某移动机器人平台使用Realsense D435i(内置IMU),出厂外参精度不足。团队采用Kalibr标定,流程如下:

  1. 打印AprilTag标定板(8x6,方格0.2m),固定于墙面。
  2. 手持设备以缓慢旋转为主,辅以小幅平移,录制约2分钟bag包。
  3. 运行Kalibr,同时标定相机内参、IMU内参、外参及时间延迟。
  4. 标定结果:R_BC 的欧拉角误差 <0.1°,t_BC 误差 <2mm。
  5. 将标定结果写入VINS配置文件,初始化成功率从70%提升至95%。

需要注意的是,外参标定对运动激励有严格要求:旋转角速度应覆盖0.5~2 rad/s,避免纯平移或纯旋转。若运动过慢,陀螺仪噪声占比大;运动过快,则图像模糊导致视觉跟踪失败。

4.5 常见误区与总结复盘

在IMU标定与建模中,工程师常犯以下错误:

  • 忽略温度影响:MEMS零偏随温度漂移可达±0.1 m/s²。若标定环境温度与工作环境差异大,应做温补或在线估计。
  • 噪声参数设置随意:直接使用数据手册值,未考虑实际安装后的振动环境。建议用Allan方差实测。
  • 外参标定运动不充分:只做平移或只做旋转,导致外参某轴不可观。
  • 时间同步未处理:相机与IMU的时间戳偏差(通常1-5ms)会引入等效的旋转误差,需在标定中联合估计。

复盘建议:在VINS系统调试中,若初始化频繁失败,优先检查外参是否准确;若运行中位姿漂移大,优先检查噪声协方差是否过小。建议建立标定档案,记录每次标定的温度、运动轨迹、残差指标,便于回溯。

总结而言,IMU标定不是一次性任务,而是贯穿系统生命周期的持续工程。内参标定保证了测量值的准确性,外参标定保证了多传感器空间对齐,而噪声模型则决定了融合滤波器的信任分配。三者缺一不可,共同构成了VINS系统稳定运行的基石。