孙孝波,王志刚,张永欣,李 静,马 胜,周航帆
(1.国网信息通信产业集团有限公司,100052,北京;2.国网思极神往位置服务(北京)有限公司,102200,北京)
智能手持终端通常采用性能较弱的全球卫星导航定位(Global Navigation Satellite System,GNSS)芯片和内置天线,其单点定位精度大约在4 m左右[1],但随着联发科、博通、意法半导体等芯片厂商陆续推出能够接收GPS L5、Galileo E5双频信号的GNSS手机定位芯片[2],同时谷歌开放了安卓系统GNSS原始数据的获取接口,很多国内外学者开始研究利用手机GNSS双频原始数据进行高精度定位的可行性。
目前,智能手持终端高精度定位的研究主要包括动态差分定位技术、星基增强技术和多源融合导航与定位技术等。文献[3]利用三阈值单差滤波方法将手机单机平面定位精度提高到0.9 m左右,文献[4]利用手机双频数据进行静态PPP定位,经过长时间收敛后可获得0.3 m左右的平面定位精度,文献[5]利用RTK技术进行不同系统组合下的定位解算,分析其定位精度与稳定性,在华为Mate20手机获得了静态分米级定位精度。文献[6-8]研究了利用精密单点定位(Precise Point Positioning,PPP)技术在手机端的应用,实时静态精密单点定位解算结果的精度为0.62 m,可在8 min内收敛至1 m以内精度,并且长期收敛后的可达亚米级精度。在工程应用方面,国内地理信息行业使用的三防手机通过集成螺旋天线、使用类似u-blox公司的F9p小型化模组等方法提高手机终端的卫星数据质量,结合连续运行参考站(Continuously Operating Reference Stations,CORS)差分服务实现厘米级定位精度;美国天宝公司则利用软件接收机技术和外置智能天线的方法提高手机终端的卫星数据质量,结合其全球星基增强服务RTX获得厘米级定位精度;文献[9]总结了低成本接收机应用高精度定位技术将要面临的硬件问题,即接收信号处理与天线性能方面,智能手持终端高精度定位的根本难点在于观测数据的质量提高。因此本文主要介绍基于安卓系统的手机GNSS原始观测数据的获取、转换、数据质量分析方法。
安卓APP程序并不能直接跟定位芯片通信,而是通过安卓系统间接输出GNSS芯片的原始观测信息,安卓系统输出的GNSS原始时钟信息数据包括硬件时钟、时钟误差估计、总时钟偏差、中断计数等,具体见表1。
表1 安卓GNSS原始时钟信息
安卓系统输出的GNSS原始观测信息数据包括卫星编号、星座类型、载噪比、载波频率等信息,具体见表2。
表2 安卓GNSS原始观测信息
谷歌在安卓系统7.0以上版本提供了获取GNSS原始观测值的数据接口类(Location Manager),应用层软件通过向Location Manager类可获得时钟信息(GNSS Clock)及原始观测值信息(GNSS Measurement),经过转换得到卫星GNSS原始观测数据,具体流程如图1所示。
图1 数据接口及调用流程图
从安卓系统获得的原始数据并不是观测值,还需要经过数据转换计算才能得到高精度定位所需的GPS时间、伪距观测值、载波观测值等信息[10],由于系统并未直接输出GPS时间,需要根据硬件时钟及相对于卫星时钟的钟差信息计算得到,计算方法如式(1):
tgps=t0-(tFull+tBias)-tsys
(1)
式中:tgps为GPS系统时间,t0为硬件时钟(Time Nanos),tFull为总时钟偏差(Full Bias Nanos),tBias为亚偏差(Bias Nanos),tsys为不同系统间的时间偏差。
安卓系统并未直接输出卫星的伪距观测值,需由信号从卫星发射到手机接收到的时间差值计算得到,计算方法如式(2):
(2)
式中:ρ为伪距,c为光速,tTx为发射时间,可由系统直接获得(Received Sv Time Nanos),tRx为接收时间,需要经过计算得到,计算方法如式(3):
tRx=t0-(tFull+tBias)-WN
(3)
安卓系统并未直接输出卫星的载波相位观测值,需由距离观测值反算得到,计算方法如式(4):
(4)
式中:L为载波观测值,R为累积增量值(Accumulated Delta Range Meters),fn为载波频率。
经过转换获得时间及观测值后,即可组成观测历元数据,为了进行数据后处理,本文按照RINEX标准格式保存文件。
GNSS原始观测数据质量直接关系到导航定位的精度和可靠性,对其质量进行分析和评估是应用中的一项非常重要的基础工作,通常使用的数据质量评价指标有:数据完整率、多路径效应、电离层影响[11-12],常见的分析工具有TEQC、Anubis以及莱卡公司开发的SpiderQC软件等。
数据完整率指标体现观测数据的整体可用性与完好性,其定义如式(5):
(5)
式中:%为数据完整率,C为具有完整观测值的历元数,P为理论可见卫星观测历元数。具有完整观测值是指一颗卫星在一个历元的观测值具有伪距和载波数据,同时信噪比大于限制值,凡是出现丢历元、丢卫星、丢频点的都判断为历元不完整。由于目前GPS和北斗系统中存在新旧卫星发射不同频点信号的情况,实际统计时应按卫星进行细分统计。
多路径效应主要受观测环境、接收机内部算法及硬件噪声等影响[13],因此,对多路径效应的抑制性能也成了衡量数据质量的一个指标,通常多路径效应对伪距测量的影响比相位观测值的影响更为显著,因此可用伪距多路径的大小来体现数据质量,计算方程如式(6):
(6)
式中:MPk为各频率上的多路径值,Pk为伪距观测值,Li、Lj为双频载波相位观测距离,fi、fj载波频率,k、i、j为各系统频率编号。
目前各大卫星导航系统均有3个频率设计,以GPS系统的L1,L2,L5上的伪距多路径计算为例,MP1、MP2、MP5的计算公式分别如式(7)~(9):
(7)
(8)
(9)
载波相位观测值的连续性能够反映出信号跟踪质量,双频数据的周跳可以采用电离层残差组合法[14],通过构建无几何关系的载波相位观测值进行探测,对于单频数据可以采用历元间差分法进行探测[15]。所以,可以通过周跳数量与观测值的相对关系体现数据质量,周跳比的定义如式(10):
(10)
式中:ratio为周跳比,o为载波相位观测值的总数,s为周跳总数。周跳比数值越大,说明发生周跳的频率越低,数据质量越好。
卫星信号本质上是电磁波,在传输过程中会受到大气噪声和各类电磁干扰的影响,可以通过载波信号强度与噪声强度的比值来评价数据质量,在安卓系统的GNSS原始数据中可以直接提取Cn0DbHz字段获得以dB.Hz为单位的载噪比/信噪比。同一颗卫星随着截止高度角的上升,信噪比的数值会提升。
以小米公司2020年推出的小米K30手机作为测试样机,同时与测量型接收机(V30)和使用ublox F9p模组的手持北斗+5G融合定位终端进行对比测试,3款设备的基本配置如表3。
实验测试场地选取广州市某办公楼楼顶,测试环境开阔无遮挡,如图2所示。
3款设备同时开机,以1 s的采样间隔采集和
表3 测试设备参数
图2 现场测试环境
记录1 h的数据,使用自编APP软件进行手机端原始数据采集,于3个不同工作日的相同时段,重复测试3次,期间天气晴朗,大气环境相同,获得3组测试数据后转换为Rinex文件。
考虑到智能手机中的卫星导航芯片并不能接收所有卫星系统信号,实验选择仅以GPS系统的L1/L5进行横向数据对比。分别统计3次测试中不同接收机的数据完整率 (高度角>10°)、GPSL1信噪比、GPSL1多路径、GPSL5多路径、单GPS系统周跳比信息,测试结果见表4~表6所示。
表4 第1组测试结果对比
表5 第2组测试结果对比
表6 第3组测试结果对比
从3组测试结果来看,消费类手机芯片虽然支持多个GNSS系统的多个频点信号跟踪,但实际只能跟踪部分卫星的双频信号,同时信噪比平均值比测量型接收机低7 dB左右,即便在开阔环境下数据完整率也只能达到90%左右,同时伪距多路径噪声达到米级,载波相位的周跳非常频繁,而北斗+5G融合定位终端的数据完整率达到了99%以上,多径误差相比消费类手机显著降低,整体数据质量较高。
随着北斗星基增强服务和全国地基增强系统的建设普及,高精度手持定位终端的应用将会越来越广泛。本文主要介绍了安卓系统下GNSS原始观测数据的获取接口、转换和质量分析方法。实验表明,本文技术路线能够满足数据采集需求,测试数据可以为北斗手持高精度定位终端研究工作提供经验和借鉴。