第四节:传感器模型——GPS/IMU/里程计的工作原理、误差模型与数据特性分析

各位同学好,我是你们的老朋友。今天我们来聊聊传感器模型。说实话,做轨迹分析这么多年,我最大的体会就是:算法再漂亮,传感器数据不行,一切都是白搭。你想想看,一个烂数据进去,再牛的滤波算法也救不回来。

这一节,我会把GPS、IMU、里程计这三个核心传感器掰开揉碎了讲。包括它们怎么工作的、误差从哪来、数据长什么样。嗯,都是我在项目里踩过的坑,希望能帮你们少走弯路。

核心观点:没有完美的传感器。GPS有漂移,IMU有零偏,里程计有打滑。我们的任务不是找到完美的传感器,而是理解它们的脾气,然后想办法互补。

4.1 GPS(全球定位系统)

4.1.1 工作原理

GPS的原理,说白了就是三角定位。卫星告诉你它的位置和时间,你的接收机算出距离,然后至少四颗卫星一交会,就能定出你的三维坐标。

公式很简单:

ρ = c × (t_receiver - t_satellite)

其中ρ是伪距,c是光速,t_receiver是接收机时间,t_satellite是卫星时间。

为什么叫「伪距」?因为接收机的时钟不准,算出来的距离有误差。所以实际上我们要解四个未知数:x, y, z 和接收机钟差。这就是为什么至少需要四颗卫星。

4.1.2 误差模型

GPS的误差来源,我归纳为三类:

  • 卫星端误差:星历误差、卫星钟差。这部分可以通过差分GPS(DGPS)或RTK来消除。
  • 传播路径误差:电离层延迟、对流层延迟、多路径效应。电离层延迟在白天比晚上严重,我做过测试,中午时分误差能比凌晨大两倍。
  • 接收机端误差:接收机噪声、天线相位中心变化。

典型的单点定位精度:水平3-5米,高程5-8米。如果你用RTK,精度可以到厘米级,但需要基站或者网络差分信号。

注意:在城市峡谷、隧道、高架桥下,GPS信号会严重衰减甚至完全丢失。这时候如果你还依赖GPS,轨迹就会「飞」出去。我曾经在上海市中心做过测试,高楼区GPS定位点能跳出去几十米。

4.1.3 数据特性分析

GPS数据有几个特点:

  • 低频:通常1-10Hz,消费级的一般5Hz。
  • 无漂移:长期来看,GPS不会越偏越远,误差是零均值的。
  • 有跳变:信号遮挡或反射会导致位置突然跳变。
  • 更新不规律:信号不好时,可能几秒才来一个点。

我个人习惯,拿到GPS数据后第一件事就是检查PDOP值(位置精度因子)。PDOP越小越好,一般小于3算优秀,大于6就基本不能用了。

4.2 IMU(惯性测量单元)

4.2.1 工作原理

IMU包含加速度计和陀螺仪。加速度计测比力,陀螺仪测角速度。通过对加速度积分得到速度,再积分得到位置;对角速度积分得到姿态。

核心公式:

v(t) = v(0) + ∫ a(t) dt
p(t) = p(0) + ∫ v(t) dt

听起来很简单对吧?但实际做起来,你会发现积分一次,误差就放大一次。这就是IMU的致命弱点。

4.2.2 误差模型

IMU的误差,我把它分成确定性误差和随机性误差:

误差类型 来源 影响
零偏(Bias) 制造工艺、温度变化 速度/位置随时间二次增长
比例因子(Scale Factor) 标定不准确 测量值与真实值成比例偏差
随机游走(Random Walk) 噪声积分 位置误差随时间线性增长
交轴耦合 安装误差 一个轴的运动会串扰到另一个轴

这里我要特别强调零偏。你想想看,加速度计如果有个0.01g的零偏(约0.1 m/s²),积分10秒后速度误差就是1 m/s,位置误差就是5米。再积分一分钟,位置误差就180米了。这就是为什么IMU不能单独用太久。

我的经验:IMU上电后前几分钟零偏变化最大,因为温度还没稳定。我一般会让IMU预热3-5分钟再开始采集数据。另外,每次上电的零偏都不一样,所以最好每次使用前都做一次静态标定。

4.2.3 数据特性分析

IMU数据的特点:

  • 高频:通常100-1000Hz,能捕捉快速运动。
  • 短期精度高:短时间内相对位置变化很准。
  • 长期漂移大:积分误差随时间累积,越跑越偏。
  • 对振动敏感:车辆颠簸、手持抖动都会引入噪声。

我做过一个实验:把IMU放在桌上静止一小时,积分出来的位置「跑」了上千米。所以IMU必须配合其他传感器使用,比如GPS来修正漂移。

4.3 里程计(Odometry)

4.3.1 工作原理

里程计分两种:轮式里程计和视觉里程计。这里我主要讲轮式里程计,因为它在机器人、车辆上用得最多。

轮式里程计的原理很简单:通过编码器测量车轮转动的圈数,结合车轮半径,算出行驶距离。如果是差速轮,还可以算出转向角。

公式:

Δs = (ΔN_left + ΔN_right) / 2 × π × D / N_total
Δθ = (ΔN_right - ΔN_left) / L × π × D / N_total

其中ΔN是编码器脉冲数,D是车轮直径,N_total是每圈脉冲数,L是轮距。

4.3.2 误差模型

里程计的误差主要来自:

  • 车轮打滑:这是最大的误差源。加速、急刹、湿滑路面都会导致打滑。
  • 车轮半径误差:轮胎气压变化、磨损都会改变有效半径。
  • 轮距误差:转向角计算依赖轮距,这个参数不准,转弯就会偏。
  • 量化误差:编码器分辨率有限,低速时尤其明显。

我曾经在雪天做过测试,轮式里程计在冰面上打滑,算出来的轨迹比实际路径短了30%。所以里程计在低附着系数路面上基本不可靠。

4.3.3 数据特性分析

里程计数据的特点:

  • 高频:编码器可以做到很高频率,通常50-200Hz。
  • 局部精度高:不打滑时,短距离内非常准。
  • 有累积误差:和IMU一样,误差会累积,但速度慢一些。
  • 对地面条件敏感:打滑、颠簸都会引入误差。

总结一下三个传感器的互补关系:

  • GPS:长期准,短期跳,低频
  • IMU:短期准,长期漂,高频
  • 里程计:局部准,全局偏,高频

所以多传感器融合的核心思路就是:用GPS约束长期漂移,用IMU和里程计填充短期运动。

4.4 知识体系结构图

下面这张图,是我自己画的传感器模型知识结构。你可以看到三个传感器各自的特点,以及它们如何互补。

传感器模型知识体系 GPS IMU 里程计 三角定位 加速度/角速度积分 编码器+车轮模型 星历误差、电离层 多路径、接收机噪声 零偏、比例因子 随机游走、交轴耦合 打滑、半径误差 轮距误差、量化误差 低频、无漂移、有跳变 高频、短期准、长期漂 高频、局部准、累积误差 多传感器融合:GPS约束长期漂移 + IMU/里程计填充短期运动

好了,这一节的内容就到这里。传感器模型是轨迹分析的基础,理解透了,后面的融合算法才能用得顺手。记住我一句话:别跟传感器较劲,要跟它做朋友。

可可精品资料库