3、传感器特性分析:GPS、IMU、磁力计、气压计、视觉传感器的噪声与偏差特性

做状态估计这么多年,我有个很深的体会:算法再漂亮,传感器不给力也是白搭。说白了,你喂给滤波器的数据是垃圾,出来的估计值就是垃圾——这就是经典的"Garbage In, Garbage Out"。

这一节,咱们把常用的几种传感器挨个捋一遍。我会结合自己踩过的坑,聊聊它们的噪声特性、偏差来源,以及在实际工程中怎么处理。

3.1 GPS:低频但会漂

GPS 是个好东西,但它有个毛病——更新率低。民用 GPS 一般就 5-10Hz,而且精度受环境影响很大。

噪声特性

  • 白噪声:位置测量通常有 1-3 米 RMS 的随机噪声
  • 多径效应:城市峡谷里,信号反射会导致几米甚至十几米的偏差
  • 电离层延迟:白天和晚上不一样,我见过最大能差 5 米

偏差特性

GPS 的偏差不是固定的。它更像是一个缓慢变化的偏移。我记得有一次在楼顶测试,GPS 位置突然跳了 8 米——后来发现是附近新装了个 5G 基站。

关键点:GPS 的误差模型通常用高斯白噪声 + 一阶马尔可夫过程来描述。实际工程中,我习惯把水平位置噪声设成 2-3 米(1σ),高度噪声设成 4-6 米(1σ)。

3.2 IMU:高频但会飘

IMU 是状态估计的"心脏"。它更新率快(100-1000Hz),但有个致命问题——积分会发散

加速度计

  • 白噪声:典型值 0.01-0.05 m/s²/√Hz
  • 零偏稳定性:MEMS 级别的,一般在 0.1-1 mg 之间
  • 温度漂移:温度变化 10°C,零偏可能跑掉 0.5 mg

陀螺仪

  • 白噪声:0.01-0.1 °/s/√Hz
  • 零偏稳定性:10-100 °/h(注意单位!)
  • g 灵敏度:加速度会影响陀螺输出,这个很多人会忽略

我的经验:IMU 的 Allan 方差分析一定要做。我曾经在一个项目里,发现陀螺的零偏稳定性标称是 20°/h,实际测出来是 80°/h——差了 4 倍!不测不知道,一测吓一跳。

3.3 磁力计:便宜但娇气

磁力计用来测航向,但它对环境太敏感了。说白了,它就是个"娇气包"

噪声特性

  • 白噪声:典型 0.1-0.5 μT RMS
  • 硬铁干扰:电路板上的电流会产生固定偏移
  • 软铁干扰:铁磁性材料会扭曲磁场线

偏差特性

磁力计的偏差主要来自周围环境。你想想看,无人机上那么多电机、电池、螺丝,哪个不是铁磁性的?

避坑指南:我曾经在飞控板上放了个大电容,结果磁力计读数偏了 15 度。后来把磁力计挪到远离电源模块的地方,问题才解决。所以,布局比算法更重要

3.4 气压计:稳定但受天气影响

气压计用来测高度,原理很简单——气压随高度变化。但问题在于,天气也会让气压变化

噪声特性

  • 白噪声:典型 0.1-0.5 Pa RMS(对应约 1-5 cm 高度)
  • 风噪:无人机飞行时,气流会导致压力波动
  • 温度噪声:气压计内部温度变化会影响读数

偏差特性

气压计的偏差主要是缓慢漂移。天气变化、太阳照射、甚至你从室内走到室外,都会改变气压基准。

实用技巧:我习惯在起飞前做一次"归零"——记录当前气压作为基准。飞行过程中,再用 GPS 高度来修正气压计的长期漂移。这样组合使用,效果比单用任何一个都好。

3.5 视觉传感器:信息丰富但计算量大

视觉传感器(摄像头)这几年越来越火。它能提供丰富的环境信息,但处理起来很吃计算资源

噪声特性

  • 像素噪声:CMOS 传感器固有的暗电流噪声
  • 运动模糊:快速运动时,图像会模糊
  • 光照变化:从亮到暗,特征点会丢失

偏差特性

视觉传感器的偏差主要来自标定误差。相机内参、畸变参数、相机与 IMU 的外参——任何一个标定不准,都会引入系统偏差。

我的建议:视觉 + IMU 的组合(VIO)是目前最实用的方案。视觉提供低频但稳定的位置修正,IMU 提供高频但会飘的积分。两者互补,效果 1+1 > 2。

3.6 传感器特性对比总结

好了,咱们把上面这些传感器放在一起对比一下。这样你心里就有数了:

传感器 更新率 主要噪声 主要偏差 典型应用
GPS 5-10 Hz 白噪声 1-3 m 多径、电离层 位置修正
IMU(加速度计) 100-1000 Hz 0.01-0.05 m/s²/√Hz 零偏、温度漂移 姿态、速度积分
IMU(陀螺仪) 100-1000 Hz 0.01-0.1 °/s/√Hz 零偏、g 灵敏度 姿态积分
磁力计 10-100 Hz 0.1-0.5 μT 硬铁、软铁干扰 航向修正
气压计 10-50 Hz 0.1-0.5 Pa 天气漂移 高度修正
视觉传感器 10-60 Hz 像素噪声、运动模糊 标定误差 位置、姿态估计

3.7 实际工程中的处理思路

说了这么多,到底怎么用?我总结几条实战经验:

  1. 先标定,再滤波:IMU 的零偏、磁力计的硬铁软铁、相机的内参——这些必须在算法跑之前搞定。不然后面全是白费功夫。
  2. 噪声参数要实测:别信 datasheet。我每次拿到新传感器,第一件事就是做 Allan 方差分析,拿到真实的噪声参数。
  3. 多传感器融合是王道:没有哪个传感器是完美的。GPS + IMU + 磁力计 + 气压计 + 视觉——组合起来,取长补短。
  4. 异常检测不能少:GPS 可能被遮挡,磁力计可能被干扰,视觉可能丢特征。你的滤波器必须能检测并处理这些异常情况。

最后说一句:传感器特性分析不是一锤子买卖。温度变了、环境变了、甚至传感器老化了,特性都会变。所以,定期重新标定是个好习惯。我在项目里一般每 3 个月做一次全面标定,效果很好。

下一节,咱们聊聊怎么把这些传感器模型塞进卡尔曼滤波器里。嗯,那才是真正有意思的部分。