[其他] 如何看待百度地图宣布切换为优先运用北斗系统进行定位 ...

[复制链接]
踏雪的剑 发表于 2023-9-30 09:53:00|来自:北京师范大学 | 显示全部楼层 |阅读模式
近日百度地图称,已切换为优先运用北斗系统进行定位,并已实现97.81%北斗优先定位比例。与此同时,有专家认为“百度地图切换为北斗优先定位”的说法不实,混淆了“北斗优先”和“支持北斗”,有偷换概念、夸大宣传之嫌。对此你怎么看?
全部回复5 显示全部楼层
zgjk 发表于 2023-9-30 09:53:54|来自:北京师范大学 | 显示全部楼层
首先,简单科普一下。虽然,我们现在普遍将手机的卫星导航称为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信号具有很大挑战的场景),我还是很佩服。
吴宗宪 发表于 2023-9-30 09:54:19|来自:北京师范大学 | 显示全部楼层
笑死我了… 这是收钱了吧,热门全删了!揭秘百度的全删了!
Oracle 发表于 2023-9-30 09:55:09|来自:北京师范大学 | 显示全部楼层
如果手机支持北斗定位的话(目前市场上绝大部分手机都支持北斗定位),手机会综合接收北斗、GPS、GLONASS等系统的卫星信号,综合进行处理解算出手机当前的位置。接下来手机通过安卓系统的驱动程序接口,向APP提供定位的结果,包括经纬度、高度、速度、速度方向等等。百度地图、高德导航等地图应用都是从驱动程序提供的接口获取的位置信息,然后在地图上显示出手机所在的位置,并进行导航的。99%以上的应用都是这么干的,包括以前的百度地图。所以,百度地图这样的app,只能使用手机定位后的结果,并不能影响手机使用什么卫星进行定位,也就不存在什么优先使用北斗了。
然而,事情还没有完。安卓7.0以上的系统不但可以输出定位结果,还可以输出卫星原始观测数据(伪距、载波相位等),通过这些原始观测数据可以计算出手机的位置。此时便不再使用手机系统计算的位置结果,而是在应用层自己计算位置。这次百度更新的很大一个新内容,也是源自于此,在应用层使用卫星原始观测数据自己进行定位解算,此时便可以选择只使用北斗卫星进行定位解算了。所以呢,百度的说法恨不准确,根本没有什么优先,这不叫北斗first,这叫北斗only。
再一个然而,这有啥用呢?百度的说法是针对高安全、高保密的行业,提供更安全的服务,金融行业、国家事业单位对优先北斗定位存在较强的需求。但我个人认为,这是扯淡兼作秀。因为正常情况下单北斗定位和北斗+GPS联合定位效果是一样的,不会因为增加了GPS就会被监控被干扰。非正常情况下,比如中美开战,美国会关闭相关区域的GPS民用信号,到时候手机收不到GPS信号,被迫只使用北斗信号进行定位,但还是能正常定位,不会因为GPS信号关了就不能定位了。所以不论是平时还是特殊清单,有没有GPS卫星参与定位都没啥不安全的。反而是只使用北斗定位的时候,由于没有GPS卫星、卫星数变少了,会导致定位精度变差,甚至在卫星信号遮挡严重的地方会导致不能定位。
最后一个然而,北斗only现在看来没什么卵用,但百度此举并非毫无意义。我查了百度地图的技术文档,实现北斗only的功能需要在程序中集成库文件libbdrtk.so,这个库文件可以进行应用层面的定位解算。重点在这个库文件的名字,libbdrtk。lib表示库,没啥好说的。bd表示北斗,也是应有之义。最后的rtk可就有意思了。rtk是一种高精度卫星定位技术,通过联网获取修正数据来提高卫星定位的精度,从原来的米级可以提高到亚米级甚至于厘米级。个人猜测,百度未来会继续更新这个库,逐渐增加rtk定位的功能,即读取卫星原始观测数据,进行rtk定位解算,实现亚米级甚至更高精度的定位。有了亚米级的定位精度之后,车辆可以知道自己正在哪条车道上行驶,自然就可以实现车道级导航了。指望手机在系统层面支持rtk定位比较难,手机厂家和手机型号那么多,很难大范围推广,那么如果在应用层面能很好的实现rtk定位,那么我们完全可以提前几年实现车道级导航的大范围普及。不过,事情没那么简单。rtk定位对卫星信号的质量要求很高,几年前就有朋友做过这方面的开发,在应用层面进行rtk解算,测试发现定位效果不太好,主要是手机的天线只能满足普通卫星定位的需求,但做rtk解算还是不行,那这就不是百度能左右的了,再怎么优化算法上限还是很低,需要联合手机厂家一起努力配合才行。
最后给出结论:北斗优先是忽悠人的,其实是提供了单北斗定位的方案可供选择。现在没什么用,未来可期,道阻且长。
vfi10863 发表于 2023-9-30 09:55:22|来自:北京师范大学 | 显示全部楼层
记得安卓在应用层LocationManager这个层次,可以通过GnssStatus(老版本安卓是GpsSatellite)这个类来获得目前卫星定位服务所锁定的所有定位卫星,通过getConstellationType获得卫星的类型,除了GPS 伽利略 格罗纳斯 北斗之外还有三种。
但是通过LocationManager对卫星信息只能get,不能set。
看了其他几个类GnssMeasurement、GnssMeasurementRequest、GnssClock等等,都没看到什么接口可以控制定位服务的寻星类型。
除非导航应用调用了各手机系统或者底包自己搞的接口,或者是一些手机的系统将不同种类的卫星定位做成不同的LocationProvider,应用层的导航应用好像并不能指定卫星定位服务寻星时的类型优先级吧。
倒是可以通过GnssStatus统计有多少颗哪些类型的卫星参与了定位过程,以及其接收信号强度等参数。
<hr/>刚下单了一个小米4,SoC是高通最后一代基带不支持北斗频段的801。不知道跑最新版百度地图等软件,会不会显示北斗导航?不过估计需要升级到Android7以上,GnssStatus才能用。
可以用GPS Status这个app,到户外去搜星,显示出来的卫星号不带字母的就是GPS,带r的就是格罗纳斯,带c的就是北斗。如果搜不到带c的,可以确定机器基带、射频或者软件上不支持北斗了。
<hr/>小米4还有问题,先找了个荣耀畅玩5(MT6735P,官方规格上面不支持北斗)试了一下。确实机子搜不到北斗卫星,用百度地图,导航右上角也显示的“强”而不是“北斗导航”。
但我就搞不清楚了,我前几天用日版索尼XZ3,北斗能搜到星但锁不了星,它给我显示个北斗导航在那里。显示这个的判断依据到底是什么?
sunj 发表于 2023-9-30 09:56:20|来自:北京师范大学 | 显示全部楼层
北斗优先这事,到底由谁来决定?
手机芯片>操作系统>软件选择
提问:在前面二者没有变更的情况下,是否可以单靠导航软件的力量,或者说“意志”来决定是否北斗优先?
百度地图显然清楚普罗大众对真实原理一头雾水,利用了大家对“北斗优先”的热情。虚假的营销宣传罢了。

快速回帖

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系客服 关注微信 下载APP 返回顶部 返回列表