GPS 是美国国防部在上世纪 70 年代启动的全球定位计划,它为使用者提供定位、导航和定时(PNT)服务。这套系统由三个部分组成:空间部分,控制部分和用户部分。美国空军承担空间和控制部分的开发、维护和运行。[1]
GPS概览
空间部分
发射在 6 个轨道平面的 24 颗卫星,可以保证在地球的任何地点都可以至少收到其中 4 颗的信息。而通过卫星位置、接收时间和时间差,可以在空间中画出至少三个球面,收取信号的位置就在球面的交汇点上。
控制部分
控制部分包括世界范围的监控站,通过不时发出的指令使卫星维持在适当的轨道上运行,同时校正卫星的时钟。它还跟踪GPS卫星,上载更新的导航数据,并且保持卫星群的健康运行和排列状态。
用户部分
用户部分由GPS接收机组成,它们从GPS卫星收到信号并利用传来的信息计算用户的三维位置及时间。
早在 2000 年,美国时任总统克林顿宣布撤销对民用 GPS 信号的干扰,使其误差可以控制在10米左右。这是 GPS 民用时代的开端。
今天,所有智能手机的 CPU 芯片都集成了 GPS 功能。基于 GPS 的定位方案已经相当成熟,只需要捕获信号的基带芯片和转换信号的射频芯片,就可以组装一个物美价廉的 GPS 模块。
但要在手机上使用精准的地图定位,还有许多麻烦。
GPS在实际应用中的问题
空间位置技术处理(加密处理)
根据中国国家测绘局制定的《导航电子地图安全处理技术基本要求》,在中国发行电子地图,必须先交给测绘局做“空间位置技术处理”。这种加密处理其实是一种半公开算法,可以让全球通用的标准坐标系统(WGS-84)变为中国的自定义坐标系统(GCJ-02,亦称“火星坐标系”)。加密的意义在于隐藏国家一些重要的机构(如军事管理区或国防战备设施等)。
这两个坐标系统存在偏差,下图是GCJ02和WGS84的误差示意图。绿色为偏移量最小的地方,红色为偏移量最大地方。右下角为图例,最小值为0.000213487度,大概为20多米;最大值为0.0104393,大概为1公里多。
解决天朝地图偏移的方法是让 GPS 数据也同样经历一次加密,这样,偏移的 GPS 定位就和偏移的地图对上了。
城市峡谷
即便解决了地图加密的问题,在高层建筑密布的城市里,GPS 仍然会经常出现严重漂移。
这种环境在业内称为城市峡谷,卫星信号在玻璃建筑垂直光滑的表面发生反射,再被手机接收。于是,设备将错误计算信号的传播时间,进而得出错误的位置结论,产生近百米的误差。
如上图3所示,GPS定位基本假设是,接收机对每个正在计算其伪距的卫星都有直接的LOS(line of sigh,无线电信号的视线传输),在开阔地形中工作无碍,但在城市环境中则偏差较大。
Uber的优化
通过在 3D 地图上模拟射线追踪的方式,UBER 试图计算每一个位置的 GPS 信号强度,进而建立概率模型,推算出更精确的乘客位置。
具体而言,第一,对于城市内任何位置的接收器,我们可以校验卫星的 LOS 是否会被遮挡。
如下图4所示,如果某颗卫星的信号比预期弱,那么很可能被大楼挡住了,你处在大楼的阴影里面,因此可以据此修正你的位置。
第二,安卓手机上,LocationManager API 不仅提供了手机的位置估计,还提供每个GNSS卫星的信噪比(SNR)。 第三,使用一个在 LOS 和阴影条件下的信噪比概率分布模型,我们可以算出任何位置任何时间信号的信噪比似然估计。 第四,最终绘制出这么一张位置热力图,如下图5所示:
第五,既然是一个概率模型,那根据手机上报的位置,Uber 估算出你的每一个运动点都有很多的可能性(像电子云),并最终推演你的实际运行轨迹。如下面这张动图所示。
滴滴的优化
除了城市峡谷,隧道,高架等复杂场景也会导致GPS 失效。滴滴使用的 FLP(Fusion Location Provider)方案,则采用了更多定位手段。通过网络定位,路网定位和车辆航位推算,FLP 方案可以在复杂场景下弥补 GPS 的缺陷,提高定位精确度。
基于 Wi-Fi 的网络定位服务 (Geo-Rank) ,是除 GPS 外最常用的定位手段。
打开你的手机 Wi-Fi ,每一个能被搜索到的热点,都有全球唯一的 MAC 地址。而每一个位置,都有不同数量,不同信号强弱的 Wi-Fi 。这些数据的集合,就能成为这个位置独一无二的信息。
这些信息可以帮助滴滴将定位问题转化为机器学习算法排序问题。
每天,滴滴的上千万用户将共同完善这个由 MAC 地址和 GPS 位置构成的热点数据库。同时,滴滴也能记录手机的信号强度、速度和方向,进一步优化网络定位结果。
因此,即使 GPS 失效,只要你打开了Wi-Fi 功能 ,就能与云端数据库数据比对,进而确定你的位置。
另一方面,滴滴能采集大量路面行驶的车辆定位数据,使网络定位的结果更偏向于在路上。
而车辆航位推算和道路匹配可以更有效的解决隧道、高架等场景下 GPS 信号丢失或不准确的问题。
根据手机内置的加速度计、陀螺仪等惯性导航元件,车辆航位推算算法可以推算车辆的速度、航向角等信息,进行位置推算。而根据司机的轨迹数据,道路匹配算法可以推算车辆当前和下一时段所在的道路的可能性,将定位点准确绑定在道路上。
每 1-3 秒,滴滴手机端会上传一个定位包至实时计价模块,通过对每个点的降噪和补偿,就能得到一个相对准确的数据线路。
通过这些不同的工具,滴滴可以在城市峡谷、高架、隧道等各种复杂场景下降低误差,让用户获得更准确的上车点和更可靠的里程计费。
尽管如此,手机定位仍然是一件相当困难的事。
在可预见的未来,也没有什么好办法可以把定位误差稳定控制在 5 米以内。
参考资料
附录:如何看待「地形图非线性保密处理技术」?
知友-「已注销」的回答
在中国,出于“保密”的理由,所有地图被强制要求使用 GCJ-02 座标系,也就是所有 POI控制点 的座标都要被映射到一个经过“地形图非线性保密处理”之后的座标系上。更有趣的是,这个转换模块还是要由测绘部门收费的。
打 Ingress(适地性游戏) 的时候,由于我并不会使用任何专业的工具,于是只能依赖 Google Earth 来自动生成地形图。然而,中国境内的道路都是按照 GCJ-02 记录的,而每个地方的海拔高度却是卫星取得的 WGS-84 座标系下面的数据。于是,生成的地形图很可能是错的——由于山口附近地形陡峭,座标偏移上几百米,可能海拔也会有上百米的错误,给我带来不小麻烦。
这个问题不可能去怪 Google。全世界就只有一个“其它国家”有这种奇葩的座标系映射。并且,如果单单把中国内地的POI映射掉的话,在边境地带就会出现中国内地的POI和其它地方的POI不连续,甚至重叠的情况。Google 对于街道图就采取了这样的措施,于是就产生了下图这样的惨状(港澳台地图不需经过加密):
知友-张浮生的回答
1: 地图这个东西,于情于理都应该有两个版本,一个版本呈现给民众,一个版本作为国家机密。民众看到的地图必须是不精确的,不正确的。
2: 工程建设需要地图,修桥铺路需要坐标,工民建领域需要精确的坐标。所以,第一个问题出现了:工程师必须要看到国家机密,这是刚性需求,但工程师也是民众,工民建的企业也是社会企业,怎么办?
我国的解决办法是,收钱,把国家机密卖出去,卖给自己人。
别扭就出现在这里:
工程师掏钱买的应该是精确的坐标,但实际情况是,工程师买来的是工程建设的资格,不是精确的坐标,而是垃圾坐标。要建设,必须向当地的测绘部门掏钱买地图,买控制点,不买不让开工。掏钱之后才发现,买来的控制点坐标,埋点时间都很久远,有的控制点已经被当地农民铲掉了,而且坐标也是不正确的,测绘局提供的坐标大多是八九十年代的,坐标系大多都是54坐标,买来的地图多成图于八十年代,掏钱之后买来的几乎是垃圾。。。掏钱之后还必须自己再掏钱去重测,重新画地图,然后工程建设单位开始招标,谁能画地图?出来?老子给你钱,你给我把这片的地图画一下。。然后招标的过程中会发现,中标的很可能又是测绘局。。。为什么?航测要资质,有航测资质的单位,一个省份就那么几家,这个标如果比较大的话,在各种原因的驱使下,民营企业要中标,难度很大。
所谓的国家机密,让人感觉仅仅是一个圈钱的概念而已,你永远看不到这套【机密机制】防范了多少对国家安全有害的动作,你只能看见这套【机密机制】恶心的是自己人。
所谓的机密无人维护,测绘局说没钱。所以直到现在,还有一大部分机密是八十年代的机密。这还叫机密吗?我不知道,我只知道这些八十年代的机密,很值钱。
3:「地形图非线性保密处理技术」有用吗?有实际用处吗?肯定是有的。
- 民众要开车导航,也不会发现导航不正确,因为高德将被处理过的地图复原了,民众表示很开森,但高德在骂娘
- 百度地图表示,你南方挣我的钱我就不说了,老子有钱,不在乎,但你要从我这挣钱你别给我添堵啊!你要让用户看到的地图是处理后的地图,好,我把我的地图全处理了!问题来了,用户手机上的GPS信号可不管这一套啊!定位出来的结果都是没漂移的坐标,我还得在后台把用户的定位结果再给处理一遍,再显示在用户的手机屏幕上!脱裤子放屁你烦不烦啊!
- 在新疆非法测绘的、心怀不轨的歪果仁表示,我很开心,我该测还测。我先测几个控制点,然后根据已有的民用地图做个转换。。。。诶?百度地图好像被处理过了,不要紧,实验室有的是计算机,哦,非线性的啊,有点麻烦,不过不要紧,我多测几个控制点,逼近一下。加密嘛,不要紧,就是麻烦了点而已。。。。。。。。。
实际效果,很大程度上只是恶心了自己人而已。
4:如果测绘局要推广这套处理技术的话,受害的,是一大批做地理位置应用的民间企业。
而对于防范歪国仁这方面,很显然做的还不够好,即便有防范作用,也应该考量一下,为了恶心邻居,自己天天吃屎这种行为是否值得。
发表您的看法