2. 误差来源分析:系统误差与随机误差、温度漂移、安装偏差、噪声模型
做传感器标定这么多年,我最大的体会就是:搞不清误差从哪来,标定就是瞎忙活。你想想看,一个传感器装上去,数据飘了,你第一反应是什么?调参数?换硬件?别急,先搞清楚误差的祖宗十八代再说。
这一节,咱们就把误差的底裤扒干净。我会把我在产线上踩过的坑、实验室里熬过的夜,都揉碎了讲给你听。
2.1 系统误差 vs 随机误差:两个老冤家
先说个我自己的例子。几年前做一款激光雷达的标定,发现测距总是偏大 3cm。一开始我以为是随机抖动,后来统计了 1000 组数据——好家伙,均值就是偏了 3cm,而且每次偏的方向都一样。这就是典型的系统误差。
系统误差的特点很鲜明:
- 有规律:要么固定偏大,要么固定偏小
- 可预测:你给它建个模型,就能补偿回来
- 来源明确:比如镜头畸变、安装角度偏了、ADC 参考电压不准
而随机误差呢?说白了就是没规律。同一个传感器,同一个环境,测 100 次,每次结果都不一样。我习惯叫它「噪声的野孩子」。
举个例子你就明白了。假设你拿尺子量桌子长度:
- 尺子本身短了 1mm → 每次量都多 1mm → 系统误差
- 手抖了一下 → 这次 100.2cm,下次 99.8cm → 随机误差
在标定流程里,我个人的处理习惯是:先干掉系统误差,再对付随机误差。为什么?因为系统误差不除掉,你后面做再多滤波都是白搭——方向都错了。
2.2 温度漂移:传感器界的「变脸王」
说到温度漂移,我就想起一个惨痛教训。有一年冬天,我们在北方某城市做车载摄像头标定。白天 15℃,晚上零下 10℃。第二天一看数据——IMU 的零偏直接翻了一倍。我当时还以为是传感器坏了,后来查了 datasheet 才发现,温度漂移是写在基因里的。
温度漂移的典型表现:
- 零偏漂移:温度一变,静止输出值就变了
- 灵敏度漂移:同样的物理量,不同温度下输出幅度不一样
- 非线性加剧:温度越高,传感器响应曲线越歪
为什么会这样?说白了,传感器内部的半导体材料、电阻、电容,都对温度敏感。你想想看,一个 MEMS 加速度计,内部硅结构在高温下热膨胀,电容间距变了,输出能不变吗?
温度补偿的常见做法有两种:
- 查表法:提前标定好不同温度下的参数,运行时查表插值
- 模型法:拟合一个多项式,比如
output = a*T² + b*T + c
我个人更推荐模型法——代码量小,而且连续性好。查表法在温度跳变时容易出毛刺。
2.3 安装偏差:你以为装正了,其实歪了
安装偏差这玩意儿,说大不大,说小不小。我见过最夸张的一次,一个客户把激光雷达装歪了 2 度,结果点云投影到图像上,偏差了十几个像素。他折腾了三天,最后发现是安装支架的螺丝孔打偏了。
安装偏差主要分三类:
| 类型 | 表现 | 典型来源 |
|---|---|---|
| 平移偏差 | 传感器位置偏了 | 安装孔位不准、垫片厚度不均 |
| 旋转偏差 | 传感器角度歪了 | 支架变形、手工安装误差 |
| 结构偏差 | 传感器内部光路/电路偏了 | PCB 焊接、镜头装配公差 |
嗯,这里要注意:旋转偏差比平移偏差更致命。为什么?因为角度偏差会随着距离放大。你想想,1 度的角度偏差,在 10 米外就是 17cm 的偏移。而平移偏差是固定的,大不了加个常数补偿。
安装偏差的标定方法,我习惯用外参标定——就是通过采集已知特征点的数据,反算出传感器相对于车体或其它传感器的位姿。这个后面章节会详细讲。
2.4 噪声模型:给随机误差画个像
随机误差虽然没规律,但我们可以用统计模型来描述它。说白了,就是给噪声「画个像」,知道它长什么样,才好对付它。
最常见的噪声模型有这几种:
- 高斯白噪声:均值 0,方差固定。这是最理想的噪声,也是很多滤波算法(比如卡尔曼滤波)的前提假设。
- 闪烁噪声(1/f 噪声):低频段噪声大,高频段噪声小。IMU 里常见,很难对付。
- 量化噪声:ADC 采样时,模拟量转数字量产生的舍入误差。分辨率越低,噪声越大。
- 突发噪声:偶尔出现的尖峰脉冲。比如电磁干扰、电源波动。
我举个例子,帮你理解噪声模型怎么用。假设你有一个加速度计,输出信号长这样:
// 原始数据(单位:m/s²)
9.81, 9.82, 9.80, 9.83, 9.79, 9.81, 9.82, 9.80
// 如果你知道它是高斯白噪声,方差 σ² = 0.0002
// 那就可以用滑动平均滤波:
// 滤波后 = (9.81 + 9.82 + 9.80 + 9.83 + 9.79) / 5 = 9.81
但如果你遇到的是闪烁噪声,滑动平均就不好使了——因为低频噪声会「拖尾」,平均完还是有偏。这时候得用艾伦方差来分析噪声特性,然后针对性设计滤波器。
我在项目中遇到过最头疼的是突发噪声。有一次 IMU 数据每隔几分钟就跳一个尖峰,查了三天,最后发现是电机启动时的电磁干扰。解决方案很简单——在硬件上加个磁环,软件里再加个阈值判断,超过 3σ 的直接丢弃。
2.5 知识体系总览
说了这么多,咱们用一张图把误差来源串起来。这张图我画了很多遍,每次带新人都会拿出来讲。
这张图我建议你保存下来。每次做标定之前,先对着图问自己三个问题:
- 这个误差是系统的还是随机的?
- 温度变化会影响它吗?
- 安装的时候有没有可能歪了?
把这三个问题想清楚,标定方案就出来一半了。剩下的,就是动手干。
可可精品资料库