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