第二章 传感器原理与特性(上):GPS/RTK与IMU
各位同学,欢迎来到多传感器融合定位实战的第二讲。
今天我们要聊的,是定位系统里最核心的两个传感器:GPS/RTK 和 IMU。说白了,一个负责告诉你“我在哪”,一个负责告诉你“我动了没”。但现实世界没这么简单——GPS 会飘,IMU 会偏。我做了这么多年定位,踩过的坑大多跟这两个家伙有关。
2.1 GPS 定位原理:从卫星到坐标
GPS 的基本原理,其实就一句话:通过测量卫星到接收机的距离,解算位置。
每颗 GPS 卫星都在不停地广播自己的位置和精确时间。接收机收到信号后,计算信号传播时间,乘以光速,就得到了距离。理论上,有三颗卫星就能定位(三维空间需要三个距离),但实际中至少需要四颗——因为接收机的时钟不够准,需要第四颗卫星来消除钟差。
核心公式:
伪距观测方程:ρ = r + c·Δt + ε
其中 ρ 是测量到的伪距,r 是真实几何距离,c 是光速,Δt 是钟差,ε 是其他误差项。
我在项目里遇到过一个问题:明明天空视野很好,定位精度却只有十几米。后来排查发现,是接收机附近的金属护栏反射了卫星信号,造成了多路径效应。嗯,这种坑,光看书是学不到的。
2.2 RTK:把精度从米级拉到厘米级
普通 GPS 的精度大概在 2-5 米,对于车道级定位来说完全不够。这时候就需要 RTK(实时动态差分定位)出场了。
RTK 的原理其实很巧妙:利用基准站消除公共误差。
基准站架设在已知精确坐标的位置上。它接收卫星信号后,计算出自己的测量值与真实值之间的误差。然后把这个误差通过电台或 4G 网络发给流动站(也就是你的车)。流动站用这个误差修正自己的测量值,精度就能达到厘米级。
我的经验:RTK 最怕的是“失锁”——当车辆经过高架桥下或隧道时,卫星信号中断,RTK 会退化为普通 GPS,定位精度瞬间掉到米级。这时候就需要 IMU 来“撑场子”了。
2.3 GPS/RTK 的误差来源
为什么 GPS 会不准?误差来源主要有这几类:
| 误差类型 | 来源 | 典型量级 | 能否被 RTK 消除 |
|---|---|---|---|
| 卫星钟差 | 卫星时钟漂移 | 1-2 米 | 能 |
| 轨道误差 | 卫星位置预报不准 | 0.5-1 米 | 能 |
| 电离层延迟 | 信号穿过电离层时折射 | 2-5 米 | 能(短基线) |
| 对流层延迟 | 信号穿过对流层时折射 | 0.5-1 米 | 部分能 |
| 多路径效应 | 信号反射后进入接收机 | 0.5-10 米 | 不能 |
| 接收机噪声 | 硬件电路热噪声 | 0.1-0.5 米 | 不能 |
你看,RTK 能消除大部分与空间相关的误差,但多路径和接收机噪声是它搞不定的。我曾经在深圳的 CBD 测试,高楼大厦之间的“城市峡谷”让多路径效应特别严重,RTK 的精度从 2cm 直接掉到了 30cm。这时候,就得靠 IMU 来帮忙了。
2.4 IMU 工作原理:加速度计与陀螺仪
IMU(惯性测量单元)包含两个核心器件:加速度计和陀螺仪。
加速度计测量的是比力(specific force),也就是物体受到的加速度减去重力加速度。你想想看,当 IMU 静止放在桌面上时,加速度计读到的不是 0,而是 1g(约 9.8 m/s²)——因为它感受到的是重力。
陀螺仪测量的是角速度,单位通常是 °/s 或 rad/s。它告诉你物体在三个轴向上转得有多快。
IMU 的坐标系:
通常采用右手坐标系:x 轴向前,y 轴向右,z 轴向下(或向上,取决于具体定义)。
加速度计输出:a_x, a_y, a_z(单位:m/s²)
陀螺仪输出:ω_x, ω_y, ω_z(单位:rad/s)
我个人习惯把 IMU 比作“盲人走路”——它不知道自己绝对位置,但能感知每一步的加速度和转弯。如果初始位置已知,通过积分就能推算后续位置。但问题是,积分会累积误差。
2.5 IMU 的零偏与噪声模型
IMU 不是完美的。它有两个最让人头疼的问题:零偏和噪声。
零偏(Bias):即使 IMU 完全静止,加速度计和陀螺仪的输出也不是 0。这个固定的偏移量就是零偏。零偏会随时间缓慢变化,这叫“零偏稳定性”。
噪声(Noise):IMU 的输出会随机抖动,这种随机噪声通常用“角度随机游走”(ARW)和“速度随机游走”(VRW)来描述。
避坑指南:我曾经在一个项目中,直接用了 IMU 的原始数据做积分,结果 10 秒后位置误差就超过了 100 米。后来才发现,我忘了做零偏补偿。记住:IMU 数据必须经过标定和补偿才能用。
常用的 IMU 噪声模型是:
// 简化的 IMU 测量模型
a_measured = a_true + b_a + n_a
ω_measured = ω_true + b_g + n_g
// 其中:
// b_a, b_g 是加速度计和陀螺仪的零偏(随时间缓慢变化)
// n_a, n_g 是高斯白噪声
零偏的建模通常用“一阶高斯-马尔可夫过程”或“随机游走”。说白了,就是认为零偏的变化是随机的,但变化速度有限。
2.6 本章知识体系
为了让大家更直观地理解本章的知识结构,我画了一张图:
这张图把本章的核心内容串起来了。左边是 GPS/RTK,右边是 IMU,底部是两者的融合。你想想看,GPS 像是一个“慢性子”但“记性好”的人——它知道绝对位置,但更新慢、容易受干扰。IMU 则像个“急性子”但“健忘”的人——它反应快,但时间一长就忘了自己从哪来的。只有把两者结合起来,才能既快又准。
我的建议:刚开始学多传感器融合的同学,不要急着上卡尔曼滤波。先把每个传感器的特性摸透——它的输出是什么?误差长什么样?什么时候会失效?这些基本功打扎实了,后面的融合算法才能用得顺手。
好了,这一章我们聊了 GPS/RTK 的定位原理和误差来源,也讲了 IMU 的工作原理和噪声模型。下一章,我们会深入传感器的标定方法,以及如何在实际项目中处理这些传感器的数据。到时候我会分享一些我踩过的坑,保证让你少走弯路。