首先,简单科普一下。虽然,我们现在普遍将手机的卫星导航称为GPS,但是,近年来,随着四大全球导航卫星系统(中国的“北斗”+美国的GPS+欧盟的GALILEO+俄罗斯的GLONASS)(简称“GNSS”),现在智能手机内置的芯片,通常会采用这四大卫导系统的混合星座提供的观测量提供导航和位置服务。所以,严格来说,我们应该将手机的卫星导航服务称为GNSS而不是GPS。
下面,基于自己有限的认知,对百度地图宣布的“北斗优先”进行分析一下吧。具体如何,请大家自行判断。
<hr/>宣传方式
首先,“北斗优先”“GPS优先”“GALILEO优先”“GLONASS优先”等类似的宣传,严格意义上来说,以手机后端软件APP的名义讲出来,是非常“业余”的(也许有办法利用它们授权范围内的数据,进行一些操作,达到某种“北斗优先”的目的,但在我看来,对用户体验来说,意义不大,后面会展开说)。
简单来讲,只有GNSS芯片的设计商才能决定,在天线接收卫星信号的时候,是优先捕获GPS的信号还是北斗的信号。
为什么会有优先级?因为芯片的资源是有限的。现在天上共有超过100颗GNSS卫星(当然,同一时间天顶可见的卫星数不会有这么多),为了节约资源和功耗,在芯片层面的算法上,会对优先捕获哪个系统的卫星进行决策。
所以,“XX优先”从手机APP的开发者的角度讲出来,是不专业的。
一些猜测
上面提到,也许手机后端的APP开发商,可以通过获取比较丰富的授权数据,来达到某种“业余”的“北斗优先”的目的。下面是我的一些看法。
讨论之前,我们假设,通过和手机生产商、芯片商达成的协议,最终可以获取到以下三个层级的GNSS数据:
- 导航解层(用户位置+速度):容易获取
- 原始观测量层(伪距、载波相位、多普勒):一般能获取
- 基带观测量层(跟踪误差):较难获取
导航解层
如果只能获取到导航解层的信息,上面高赞答案下的评论提到,也许百度地图可以通过软件算法选择“GNSS联合定位解算结果”“GPS单星座定位解算结果”“北斗单星座定位解算结果”等等吧。
一般通常会选择“GNSS联合定位”,如果将“北斗优先”放在这个层面去看,百度地图只能将算法改成“北斗单系统定位”。但是,可以简单思考一下,更多卫星的定位结果和更少卫星的定位结果比较,肯定是GNSS多系统联合定位的方案更好。
所以,如果百度地图只是利用这个层级的GNSS数据来达到宣称的“北斗优先”的目的,我觉得毫无意义。
原始观测量层
现在安卓系统的手机通常都能获取到这个层级的数据了。但是苹果系统的用户通常不能开放获取这种级别的数据。我们假设百度地图和苹果谈了,也获得了在苹果系统上获取GNSS原始观测量的授权了吧。
同时,我们假设百度地图有GNSS算法工程师,专门负责GNSS多频多模定位解算。这个时候,“北斗优先”也许可以由以下方式实现:
- 只利用北斗系统的原始观测量进行定位解算,意义性同上,也就是没什么意义吧。同时,百度地图的算法工程师最好能将单北斗星座的定位性能做得比芯片商的好,否则更加没有意义……
- 百度地图利用混合系统星座的原始观测进行定位解算,并保证在任何时候,会最大化、最优化地利用当前时刻芯片提供的所有北斗原始观测量,同时,还要保证提供的GNSS多系统联合定位性能要超过芯片商的定位解算解,否则没有意义。
如果没有采取以上任何措施,“北斗优先”的宣传就不成立。同时,如果用户体验没法超过GNSS芯片商的服务,就没有意义。
(根据谷歌举办的最新“2022 年谷歌智能手机分米挑战赛”结果来看,连续两年的冠军 Taro Suzuki 今年实现的最新精度是1.229m。这应该代表目前业界手机GNSS定位的天花板了。)
基带观测量层
不管是安卓还是苹果系统,都没有提供开放获取这种级别数据的服务(如果消息不可靠,请纠正我)。如果需要获得这种级别的数据,可能百度地图需要同时和不同手机生产商、芯片商去谈授权服务?
假设上面的合作都谈下来了吧。这时候,对百度地图负责GNSS方向的工程师要求更高,需要同时有GNSS定位算法和GNSS基带信号处理的工程师。这两类工程师通过很好地合作(也许会有很厉害的工程师同时精通这两个部分),实现了:
- 利用北斗系统的基带观测量生成了更好的原始观测量,提供了比芯片商更好的独立北斗定位解算结果。
- 重点优化了北斗系统的基带观测量生成了更好的北斗系统原始观测量,最终使GNSS多系统联合定位的性能超过了芯片商提供的GNSS多系统联合定位结果。
如果达到以上任何一种目的,我本人还是可以接受“北斗优先”的宣传,毕竟真的很不容易。
结论
作为手机后端的APP开发商发布“北斗优先”的宣传比较“业余”。但是,如果百度地图真的利用GNSS原始观测量数据甚至基带观测量数据实现了以“北斗优先”为前提的GNSS定位性能的提升(特别是在市中心这种对GNSS信号具有很大挑战的场景),我还是很佩服。 |