第2章:传感器基础与误差模型
各位同学,咱们今天聊聊传感器的基础。说实话,做融合最怕什么?最怕你连手里的传感器是什么脾气都没摸清楚,就开始往上堆算法。我见过太多人,一上来就搞卡尔曼滤波,结果传感器本身的误差模型都没建对,最后滤波结果比原始数据还离谱。
这一章,咱们就踏踏实实地把常见传感器的类型、误差来源、以及怎么用数学去描述这些误差,掰扯清楚。
2.1 常见传感器类型
做多源融合,你手里得有牌。常见的牌就这四种:IMU、GPS、相机、激光雷达。每种牌的打法不一样,脾气也不一样。
2.1.1 IMU(惯性测量单元)
IMU 这东西,说白了就是测量加速度和角速度的。它内部有加速度计和陀螺仪。加速度计测比力,陀螺仪测角速度。嗯,这里要注意,IMU 测的是「比力」,不是重力,也不是运动加速度,是物体受到的合力减去重力后的那个东西。
我个人习惯把 IMU 看作是「短时高精度、长时必漂移」的传感器。为什么?因为它靠积分。你想想看,加速度积分一次得速度,再积分一次得位置。积分一次误差就放大一次,两次积分下来,位置误差随时间平方增长。我在项目中遇到过,一个工业级 IMU,纯惯性导航跑 60 秒,位置误差能到几十米。
2.1.2 GPS(全球定位系统)
GPS 正好和 IMU 互补。它长时稳定,短时容易受干扰。GPS 的更新频率一般只有 10Hz 左右,而且信号容易被遮挡。在城市峡谷、隧道、高架桥下,GPS 基本就废了。
我曾经在深圳做路测,经过一段两边都是高楼的窄路,GPS 定位直接跳到了马路对面的人行道上。所以,做融合时,千万别把 GPS 当唯一真理。
2.1.3 相机
相机是个好东西,信息量巨大。它能告诉你「这是什么」,但很难直接告诉你「它在哪里」。相机的核心问题是深度信息缺失。单目相机尤其明显,你看到一张图片,但不知道那个物体离你 5 米还是 50 米。
双目相机可以解决一部分深度问题,但基线长度限制了有效测距范围。我建议,如果你要做视觉定位,最好配合 IMU 做 VIO(视觉惯性里程计),这样能互补。
2.1.4 激光雷达
激光雷达是直接测距的。它发射激光束,测量反射时间,直接得到点云数据。精度高,但成本也高。激光雷达的优点是直接、可靠,不受光照影响。缺点是点云稀疏,而且对雨雾天气敏感。
我记得有一次在雾天测试,16 线激光雷达的有效探测距离直接从 100 米掉到了 30 米。所以,做融合时,天气因素一定要考虑进去。
2.2 误差源分析
传感器都有误差。但误差和误差不一样。有些误差是随机的,有些是系统性的。咱们得把它们分开处理。
2.2.1 噪声
噪声是随机的、高频的。你拿一个静止的 IMU 看它的输出,会发现数值一直在跳。这就是噪声。噪声的均值一般是零,但方差不为零。处理噪声,通常用低通滤波或者卡尔曼滤波。
2.2.2 漂移
漂移是低频的、缓慢变化的。IMU 的零偏会随着温度和时间缓慢变化。GPS 的时钟漂移也会导致定位误差。漂移比噪声难处理,因为它不是零均值的,而且变化规律不确定。
我处理漂移的习惯是:能在线估计就在线估计,不能估计就定期标定。比如 IMU 的零偏,每次上电后静止几秒钟,取平均作为初始零偏估计。
2.2.3 偏差
偏差是系统性的、固定的。比如 IMU 的安装偏差、GPS 的天线相位中心偏差、相机的内参标定误差。偏差一旦确定,就是常数。所以偏差可以通过标定来消除。
我曾经遇到过一个案例,激光雷达和 IMU 的安装角度偏差了 0.5 度,结果融合出来的轨迹在 100 米外偏了将近 1 米。后来重新标定了一下,问题就解决了。所以,标定真的很重要。
2.3 数学模型建立
有了误差分析,咱们得用数学把误差描述出来。这样才能在算法里处理它们。
2.3.1 IMU 误差模型
IMU 的误差模型可以写成这样:
ω_m = ω_t + b_g + n_g
a_m = a_t + b_a + n_a
其中,ω_m 是测量角速度,ω_t 是真实角速度,b_g 是陀螺仪零偏,n_g 是陀螺仪噪声。加速度计同理。
零偏 b 通常建模为随机游走:
b_dot = n_b
也就是说,零偏本身也在缓慢变化,变化量是高斯白噪声。这个模型在卡尔曼滤波里非常常用。
2.3.2 GPS 误差模型
GPS 的误差模型相对简单:
p_gps = p_true + e_gps
其中 e_gps 通常建模为高斯白噪声,但实际中它是有色噪声,尤其是多路径效应导致的误差。不过,在大多数融合算法里,我们仍然把它近似为白噪声。
2.3.3 相机误差模型
相机的误差主要来自像素噪声和标定误差。像素噪声通常建模为高斯分布,标定误差则体现在内参矩阵 K 和畸变参数上。
u = K * [R|t] * P + n_cam
其中 u 是像素坐标,P 是三维点,K 是内参矩阵,n_cam 是像素噪声。
2.3.4 激光雷达误差模型
激光雷达的误差主要来自测距噪声和角度噪声。测距噪声通常与距离的平方成正比:
r_m = r_t + n_r, n_r ~ N(0, σ_r²)
θ_m = θ_t + n_θ, n_θ ~ N(0, σ_θ²)
其中 σ_r 和 σ_θ 是激光雷达的标称精度参数。
2.4 知识体系总览
下面这张图,是我自己画的。它把本章的核心逻辑串起来了。你一看就明白:传感器类型、误差来源、数学模型,这三者是怎么对应的。
这张图从左到右,从上到下,把本章的知识结构理清楚了。你以后做融合时,遇到问题就回来看看这张图,思路会清晰很多。
好了,这一章就到这里。传感器基础打牢了,后面讲融合算法时,你才能理解为什么卡尔曼滤波要那样设计,为什么有些参数要那样调。下一章,咱们开始讲数据预处理,包括时间同步和空间对齐。嗯,那又是另一门学问了。