3、传感器误差模型:IMU零偏与噪声、GNSS多路径效应、轮速里程计刻度因子、视觉特征退化
做多传感器融合定位,说白了就是跟各种误差打交道。你想想看,每个传感器都有自己的“脾气”,摸不透这些脾气,融合出来的结果就是一团浆糊。这一章,我就把几个最要命的误差模型掰开揉碎了讲。
3.1 IMU零偏与噪声:那个永远在漂的家伙
IMU这东西,我刚开始接触时觉得它挺神奇的。但用久了才发现,它就是个“慢性漂移患者”。你把它放桌上一动不动,它输出的速度却在慢慢变化——这就是零偏在作怪。
零偏(Bias),说白了就是传感器在静止状态下,输出值不为零的那个固定偏移。陀螺仪有角速度零偏,加速度计有加速度零偏。这个值每次开机都不一样,而且随着温度、时间慢慢变化。
我个人习惯把零偏建模成两部分:
- 常值零偏:开机后基本固定的偏移,可以在初始化时标定掉
- 零偏稳定性:随时间缓慢变化的残余部分,通常用随机游走模型描述
噪声则是另一回事。它比零偏更“随机”,是传感器内部电子元件热运动、量化误差等造成的白噪声。IMU的噪声通常用角度随机游走(ARW)和速度随机游走(VRW)来量化。
核心公式:
陀螺仪模型: ω_measured = ω_true + b_g + n_g
加速度计模型: a_measured = a_true + b_a + n_a
其中:
b_g ~ N(0, σ_bg²) # 陀螺零偏
b_a ~ N(0, σ_ba²) # 加速度计零偏
n_g ~ N(0, σ_ng²) # 陀螺白噪声
n_a ~ N(0, σ_na²) # 加速度计白噪声
我的经验:IMU的零偏和噪声参数,千万别只看数据手册。我曾在项目里直接用了厂家给的参数,结果融合定位精度惨不忍睹。后来老老实实做Allan方差分析,才发现实际噪声比手册上大了将近一倍。嗯,这里要注意——Allan方差曲线是标定IMU噪声的黄金标准,建议每个IMU都跑一遍。
3.2 GNSS多路径效应:城市峡谷里的幽灵
GNSS在开阔地带表现很好,但一进城市峡谷就“精神分裂”。为什么?多路径效应是罪魁祸首。
卫星信号本来走直线,但遇到高楼、地面、树木就会反射。接收机同时收到直达信号和反射信号,两者叠加后,伪距和载波相位测量值就出现了偏差。这个偏差有时能到几十米,甚至导致定位完全跳飞。
多路径效应的特点:
- 非高斯性:误差分布不是正态的,有长尾特性
- 相关性:同一颗卫星的多路径误差在时间上相关,不是白噪声
- 环境依赖性:不同地点、不同时刻,多路径模式完全不同
我在项目中遇到过最头疼的情况——高架桥下停车。GNSS信号被桥体遮挡,反射信号反而更强,定位直接偏到桥的另一侧车道。后来怎么解决的?用信噪比(SNR)和卫星仰角做质量评估,低信噪比、低仰角的观测值直接降权或剔除。
避坑指南:我曾经天真地以为多路径误差可以用高斯模型近似,结果卡尔曼滤波直接发散。多路径误差的分布其实是拉普拉斯分布或混合高斯分布,建议用鲁棒核函数(如Huber Loss)来处理。
3.3 轮速里程计刻度因子:车轮不是完美的圆
轮速里程计看起来简单——车轮转一圈,车走πD的距离。但现实中的车轮,嗯,没那么理想。
刻度因子(Scale Factor),就是实际车轮周长与理论周长之间的比例偏差。这个偏差来源很多:
- 轮胎气压变化(气压低了,滚动半径变小)
- 轮胎磨损(花纹磨平了,周长减小)
- 车辆负载(载重不同,轮胎形变不同)
- 转弯时内外轮差(差速器的影响)
刻度因子通常建模为:
v_true = s * v_measured
其中:
s = 1 + δs
δs ~ N(0, σ_s²) # 刻度因子误差,通常1%~5%
我个人习惯把刻度因子放进状态向量里在线估计,而不是固定标定。因为轮胎气压会随温度变化,固定值根本扛不住。在卡尔曼滤波里,把刻度因子作为增广状态,和位置、姿态一起估计,效果会好很多。
实战技巧:轮速里程计的刻度因子在直线行驶和转弯时不一样。我建议分模式处理——直线段用主刻度因子,转弯时引入额外的转弯刻度因子修正。否则,长距离转弯后定位误差会累积得很快。
3.4 视觉特征退化:当相机“瞎了”的时候
视觉SLAM依赖特征点匹配。但有些场景,特征点就是不够用,或者匹配质量极差。这就是视觉特征退化。
常见的退化场景:
- 弱纹理区域:白墙、地面、天空——特征点稀疏得像沙漠里的绿洲
- 重复纹理:砖墙、地毯、百叶窗——特征点很多,但匹配全是歧义
- 光照变化:白天到黑夜、阴影移动——同一个特征点,外观完全变了
- 运动模糊:快速旋转或颠簸——图像糊成一片,特征提取直接失败
视觉特征退化怎么检测?我常用两个指标:
- 特征点数量:少于阈值(比如20个)就报警
- 特征分布均匀性:用图像网格统计,如果特征点集中在某个区域,说明退化风险高
一旦检测到退化,就要调整融合策略。我的做法是:
- 降低视觉观测的权重,甚至完全禁用视觉
- 切换到IMU+轮速里程计的纯惯导模式
- 等视觉恢复后,再用重定位找回全局位姿
我的经验:视觉特征退化最怕的不是退化本身,而是“半退化”状态——特征点看起来够用,但匹配质量很差。我曾在长走廊里吃过亏,特征点数量正常,但全是沿着走廊方向的点,横向约束完全缺失。结果定位在横向漂了半米多。后来我加了一个特征分布熵的指标,专门检测这种“伪健康”状态。
3.5 误差模型总结:一张图看懂
下面这张图,我把四种传感器误差模型的核心逻辑画出来了。你一看就明白它们各自的特点和应对思路。
这张图的核心逻辑很简单:每个传感器都有自己的“软肋”,IMU怕漂移、GNSS怕反射、轮速怕刻度不准、视觉怕退化。融合定位的本质,就是知道什么时候该信谁,什么时候该怀疑谁。
一句话总结:误差模型不是用来消除误差的,而是用来量化不确定性的。你越了解每个传感器的“不靠谱程度”,融合出来的结果就越靠谱。