第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 米。所以,做融合时,天气因素一定要考虑进去。

核心观点: 没有完美的传感器。IMU 短时准、长时漂;GPS 长时稳、短时跳;相机信息多、深度缺;激光雷达精度高、成本高。融合的本质就是取长补短。

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-3 倍。我建议你拿到传感器后,先做一次 Allan 方差分析,把真实的噪声参数测出来。别信手册,信自己测的数据。

2.4 知识体系总览

下面这张图,是我自己画的。它把本章的核心逻辑串起来了。你一看就明白:传感器类型、误差来源、数学模型,这三者是怎么对应的。

多源传感器融合 - 传感器基础与误差模型 传感器类型 IMU GPS 相机 激光雷达 误差源分析 噪声 漂移 偏差 数学模型建立 IMU误差模型 GPS误差模型 相机误差模型 激光雷达误差模型 核心逻辑 1. 不同传感器有不同特性 2. 每种传感器都有三类误差 3. 误差需要数学建模 4. 模型是融合算法的基础 关键提醒: 误差模型不准, 融合算法再好也没用。 先建模,再融合。

这张图从左到右,从上到下,把本章的知识结构理清楚了。你以后做融合时,遇到问题就回来看看这张图,思路会清晰很多。

好了,这一章就到这里。传感器基础打牢了,后面讲融合算法时,你才能理解为什么卡尔曼滤波要那样设计,为什么有些参数要那样调。下一章,咱们开始讲数据预处理,包括时间同步和空间对齐。嗯,那又是另一门学问了。


专注资料整理