1. 漂移问题概述:GPS定位原理简介、什么是定位漂移、漂移的常见场景

各位同学好,我是老张。做定位算法这行十几年了,今天咱们聊聊一个让所有做定位的人都头疼的问题——漂移。

说实话,我刚入行那会儿,第一次看到定位轨迹在电子地图上乱飘,心里直犯嘀咕:这GPS不是号称能精确到几米吗?怎么实际用起来跟喝醉了似的?后来踩的坑多了,才慢慢摸清这里面的门道。

1.1 GPS定位原理简介

要理解漂移,得先搞明白GPS是怎么定位的。说白了,就是三颗卫星就能确定一个点,第四颗用来校准时间。

GPS卫星一直在天上广播信号,信号里包含两个关键信息:卫星的位置,以及信号发出的时间。你的接收机收到信号后,算一下信号飞了多久,乘以光速,就知道卫星离你多远。

三颗卫星的距离一确定,三个球面相交于一点——那就是你的位置。但实际中,接收机的时钟不准,所以需要第四颗卫星来消除钟差。这就是经典的四星定位原理。

核心公式(伪距观测方程):

ρ_i = √[(x_i - x_u)² + (y_i - y_u)² + (z_i - z_u)²] + c·Δt

其中ρ_i是伪距,x_i,y_i,z_i是卫星坐标,x_u,y_u,z_u是用户位置,c是光速,Δt是钟差。

嗯,这里要注意:实际解算时,我们用的是最小二乘法或者卡尔曼滤波。我个人习惯用卡尔曼滤波,因为它能结合运动模型,对动态场景更友好。

1.2 什么是定位漂移

定位漂移,就是接收机输出的位置和真实位置之间的偏差。这个偏差不是固定的,它会随着时间、环境、卫星几何分布而变化。

我遇到过最夸张的一次,在深圳某高架桥下,定位点直接飘到了对面马路的楼顶上。客户拿着轨迹图问我:张工,这车是飞过去的吗?

漂移的典型表现有几种:

  • 静态漂移:人站着不动,定位点却在原地画圈圈。一般半径在3-10米。
  • 动态漂移:运动轨迹出现锯齿状、跳跃式偏离。比如直线行驶,轨迹却像喝醉了。
  • 长时间漂移:定位点慢慢偏离真实路径,越偏越远,直到被校正回来。

我的经验:静态漂移主要看接收机噪声和多路径效应。动态漂移则跟卫星失锁、信号遮挡关系更大。排查问题时,先看环境,再看硬件,最后查算法。

1.3 漂移的常见场景

你想想看,GPS信号从两万公里的太空传下来,经过大气层、建筑物、树木,最后到你手里,中间有多少干扰因素?下面这三个场景,是我在实际项目中遇到最多的。

1.3.1 城市峡谷

城市峡谷,就是两边高楼林立,中间一条窄路。比如上海陆家嘴、香港中环、深圳深南大道两侧。

为什么会漂移?因为高楼会遮挡和反射GPS信号。接收机收到的信号,一部分是直射的,一部分是从玻璃幕墙反射过来的。反射信号路径更长,导致伪距测量值偏大,定位结果自然就偏了。

我曾经在上海某项目测试,在陆家嘴环路上走了三圈,轨迹简直像一团乱麻。后来我们用了3D城市模型辅助的方法,把反射信号剔除掉,效果才明显改善。

场景特征 典型漂移量 主要成因
两侧高楼>50米,路宽<20米 10-50米 多路径效应、卫星遮挡
十字路口、转角处 15-30米 信号切换、几何精度因子变差

1.3.2 隧道

隧道里完全没有GPS信号,这是最极端的情况。接收机一旦进入隧道,卫星信号全部丢失,定位就只能靠惯性导航或者航位推算。

但问题来了:消费级的IMU(惯性测量单元)精度很差,陀螺仪漂移严重,加速度计噪声大。在隧道里走个几百米,定位误差就能累积到几十米甚至上百米。

我记得有一次在北京某隧道测试,车辆出隧道后,定位点还在隧道入口附近转悠了十几秒才恢复。这就是典型的信号重捕延迟加上惯性推算误差累积。

避坑指南:我曾经在隧道场景中犯过一个低级错误——直接用零速假设来推算位置。结果车辆在隧道里缓行,推算出来的位置却停在原地不动。后来改用车辆里程计+陀螺仪的组合,才解决了这个问题。

1.3.3 高架桥下

高架桥下是个很有意思的场景。桥面挡住了头顶的卫星,但桥两侧还有缝隙能接收到部分信号。这就导致接收机能收到几颗卫星,但卫星几何分布极差——都在头顶两侧,没有垂直方向的约束。

这种情况下,定位结果会在垂直方向上剧烈跳动。你明明在桥下平路上开车,定位点却显示你在桥上或者地下。水平方向也会出现横向漂移,因为桥墩和桥面会形成多次反射。

我处理过一个案例:某物流公司的车辆,每天经过一段高架桥下,轨迹总是突然跳到旁边的小区里。后来我们分析发现,是桥墩反射的信号被接收机当成了直射信号,导致定位点被"拉"向桥墩方向。

解决方案其实不复杂:利用道路网络约束,把定位点"拉"回到道路上。再加上高程约束,限制垂直方向的跳动。这两个技巧组合使用,能把高架桥下的漂移从30米降低到5米以内。

知识体系总览

下面这张图,是我自己梳理的漂移问题知识框架。你可以把它当作本章的思维导图。

定位漂移问题 GPS定位原理 四星定位 + 伪距方程 最小二乘法 / 卡尔曼滤波 什么是定位漂移 静态漂移:原地画圈 动态漂移:轨迹锯齿 长时间漂移:累积误差 常见漂移场景 城市峡谷:多路径效应 隧道:信号完全丢失 高架桥下:几何分布差 核心思路:理解原理 → 识别场景 → 针对性优化 (后续章节将逐一展开解决方案)

好了,这一章的内容就到这里。漂移问题看着复杂,但只要你把原理搞清楚了,再针对不同场景对症下药,大部分问题都能解决。后面几章,我会带着大家一步步实现具体的抗漂移算法。

本章要点回顾:

  • GPS定位依赖四星定位和伪距方程,卡尔曼滤波是常用的解算方法
  • 漂移分为静态、动态、长时间累积三种类型,成因各不相同
  • 城市峡谷、隧道、高架桥下是三大典型漂移场景,各有其物理机制
  • 解决漂移需要从信号处理、传感器融合、地图约束三个层面入手

可可精品资料库