4、GNSS定位基础:伪距定位、载波相位、RTK/PPK技术原理与局限

各位同学好,我是老张。今天咱们聊聊GNSS定位。

说实话,很多做感知融合的工程师,一听到GNSS就觉得「这东西不就是给个经纬度嘛,精度还差」。嗯,这话对了一半。GNSS原始定位确实粗糙,但你要是把伪距、载波相位、RTK这些搞明白了,会发现它其实是自动驾驶定位里不可或缺的一环。

我当年刚入行时,也踩过不少坑。有一次在隧道口测试,定位直接跳了十几米,吓得我赶紧把融合算法里的GNSS权重调低了。后来才明白,那不是GNSS的错,是我没理解它的局限。

4.1 伪距定位:最基础的定位方式

伪距定位,说白了就是「测距定位」。卫星告诉你「我在哪」,你的接收机测量「卫星离我多远」,然后解算出你的位置。

原理其实很简单:

  • 每颗卫星都在广播自己的位置和发射时间
  • 接收机收到信号,记录到达时间
  • 时间差 × 光速 = 距离
  • 至少4颗卫星,就能解出三维坐标 + 钟差

但这里有个坑——伪距的精度其实不高。为什么?因为接收机的时钟不准,卫星的时钟也有漂移,再加上大气延迟、多路径效应……这些误差加起来,伪距定位的精度通常只有5-10米。

核心公式:

ρ = r + c·(δt_u - δt_s) + I + T + ε

其中ρ是伪距测量值,r是真实几何距离,c是光速,δt_u和δt_s分别是接收机和卫星钟差,I和T是电离层和对流层延迟,ε是噪声。

我在项目中遇到过一件事:有一次用单点定位做车道级导航,结果车辆在高速上左右横跳,轨迹像喝醉了酒。后来一查,是伪距噪声太大,加上多路径效应。从那以后,我但凡做融合定位,一定会在伪距解算后加一个粗差剔除。

避坑指南:我曾经在城区高架桥下测试,伪距定位误差飙到30米。后来发现是信号反射导致的。建议在融合算法里,对伪距残差设置一个阈值,超过20米的直接丢弃。

4.2 载波相位:精度提升的关键

伪距精度不够,怎么办?用载波相位。

载波相位测量的是卫星信号载波的相位变化。你想想看,L1载波的波长才19厘米,相位测量精度可以做到毫米级。这比伪距的米级精度高了好几个数量级。

但问题来了:载波相位测量存在整周模糊度。什么意思?就是你只能测到相位的小数部分,整数部分不知道。就像你只知道钟表指针的位置,但不知道现在是几点。

载波相位观测方程:

Φ = λ^(-1)·r + N + c·(δt_u - δt_s)/λ + I/λ + T/λ + ε

其中Φ是载波相位观测值(以周为单位),λ是波长,N是整周模糊度(整数)。

整周模糊度N的求解,是载波相位定位的核心难点。我刚开始做RTK时,最头疼的就是模糊度固定。有时候明明卫星数够了,但模糊度就是固定不下来,定位精度直接掉回米级。

为什么会这样?因为模糊度解算需要足够多的观测数据,而且对多路径和电离层非常敏感。我记得有一次在雷雨天气测试,电离层活跃,模糊度解算了整整5分钟才固定。嗯,这在自动驾驶里是不可接受的。

注意:载波相位还有一个问题——周跳。当接收机失锁再重新捕获信号时,整周计数会跳变。如果不处理周跳,定位结果会直接崩掉。我建议在预处理阶段一定要做周跳检测,常用的方法有GF(几何无关)组合和MW(Melbourne-Wübbena)组合。

4.3 RTK:实时动态差分定位

RTK(Real-Time Kinematic)是目前自动驾驶里用得最多的高精度定位技术。它的核心思想很简单:利用基准站和流动站的观测值做差分,消除公共误差。

RTK的工作流程:

  1. 基准站架设在已知坐标点上,连续观测卫星
  2. 基准站通过电台或4G网络,把观测值发给流动站
  3. 流动站收到数据后,做双差处理,消除钟差和大气延迟
  4. 解算整周模糊度,得到厘米级定位

我做过一个测试:在开阔环境下,RTK的定位精度可以稳定在2-3厘米。这个精度对于车道级定位来说,绰绰有余。

但RTK的局限也很明显:

  • 依赖通信链路:基准站和流动站之间需要实时数据传输。一旦断链,RTK就退化成单点定位
  • 作用距离有限:基准站和流动站距离超过30公里,大气延迟差异变大,模糊度固定困难
  • 初始化时间:每次开机或失锁后,需要重新固定模糊度,通常需要几十秒

实战经验:我曾经在城区测试RTK,发现只要经过高架桥下,RTK就会失锁。后来我加了一个策略:在失锁期间,用IMU做航位推算,等RTK重新固定后再融合。这样定位的连续性好了很多。

4.4 PPK:后处理差分定位

PPK(Post-Processed Kinematic)和RTK的原理一样,区别在于PPK是事后处理,不需要实时通信链路。

PPK的优势:

  • 不需要实时数据链路,适合偏远地区
  • 可以回放数据,反复优化解算参数
  • 精度通常比RTK更稳定,因为可以后处理滤波

PPK的局限:

  • 不能实时输出定位结果,不适合自动驾驶
  • 需要存储原始观测数据,数据量较大
  • 后处理流程复杂,需要专业软件

说实话,PPK在自动驾驶里用得不多。但我在做高精度地图采集时,经常用PPK做后处理验证。先把RTK的实时结果存下来,再用PPK跑一遍,对比两者的差异,就能发现RTK解算中的问题。

我的建议:如果你在做自动驾驶定位系统,RTK是首选。但一定要做好降级策略——当RTK不可用时,能平滑切换到伪距定位或IMU推算。别让定位精度突然跳变,那对控制模块是灾难。

4.5 三种技术的对比与选择

技术 精度 实时性 依赖条件 适用场景
伪距定位 5-10米 实时 无 低精度导航、辅助定位
载波相位 厘米级(需解模糊度) 实时/后处理 需解算整周模糊度 高精度定位基础
RTK 2-5厘米 实时 基准站+通信链路 自动驾驶、无人机
PPK 1-3厘米 后处理 基准站+数据存储 测绘、地图采集

你想想看,在实际的感知融合定位系统里,我们通常不会只用一种技术。伪距定位做粗定位和故障检测,RTK做高精度主定位,IMU做短时间推算——这才是工程上的成熟方案。

最后提醒一句:GNSS定位不是万能的。在隧道、地下车库、高楼峡谷这些场景,GNSS信号会完全丢失。这时候,感知融合里的视觉、激光雷达、IMU就要顶上。别把鸡蛋都放在一个篮子里。

GNSS定位技术体系与局限 GNSS定位 伪距定位 载波相位 差分定位 精度:5-10米 测距原理,受钟差、大气影响 适合低精度导航、辅助定位 精度:厘米级 需解算整周模糊度 存在周跳问题 RTK / PPK RTK实时厘米级,需通信链路 PPK后处理,适合测绘 共同局限:信号遮挡、多路径、电离层活跃 实际工程中,三种技术常组合使用,配合IMU实现鲁棒定位

可可精品资料库