Android智能手机GNSS高精度实时动态定位
2021-01-18高成发刘永胜
高成发,陈 波,刘永胜
东南大学交通学院, 江苏 南京 211189
智能手机是如今人们生活中不可或缺的工具,智能手机中的GNSS模块已经实际改善了现代人类生活。在GNSS导航定位技术的发展中,导航或定位精度一直是制约其进一步应用于人类生产生活并发挥更大作用的关键问题,对于智能手机中的GNSS导航定位模块也是如此。2016年5月,谷歌公司在Android N操作系统上提供了访问GNSS原始观测数据的接口。此后,学者们开始着手于对智能移动终端接收的GNSS数据进行质量评估,并对其定位性能进行测试分析。
早期的智能设备GNSS定位测试大多基于Android系统的平板电脑。研究表明其伪距单点定位平面中误差约3 m,高程中误差约4 m[1];使用静态TD(time differenced,时间差分)滤波的方式,能够获得平面中误差优于0.6 m的定位精度[2];使用TT-SD(three-thresholds and single-difference,三阈值单差)滤波动态定位方式,平面定位中误差约0.9 m[3];使用静态载波双差定位的方式,能够在20 min内实现平面定位精度优于20 cm[4]。
区别于Android平板电脑,普通智能手机的定位表现要差得多。研究表明,某国产品牌智能手机伪距单点定位N、E方向中误差为10 m左右,U方向中误差超过20 m[5]。某国外品牌智能手机伪距单点定位平面精度约10 m[6],而使用NRTK(network real-time kinematic,网络实时动态)的定位方式,能够获得平面误差大约60 cm的静态定位结果[7]。
近年来,出现了双频GNSS智能手机,能够接收L1/B1/E1和L5/E5波段的原始GNSS测量值[8-9]。但是目前亚太地区能够接收到Galileo卫星(发射E1、E5信号)和升级后的GPS卫星(发射L1、L5信号)数目较少,导致实际应用中双频信号的可用程度较低。不过,由于双频智能手机的L1/E1波段的GNSS观测值质量较先前的单频GNSS手机也有较大改善,因此单频定位性能也得到了改善。目前有研究表明,使用智能手机的双频GNSS数据,事后静态PPP平面定位精度能够优于30 cm,但是定位所需时间相当长(超过100 min)[10];另外有研究表明在引入差分基准站后,其静态载波双差定位平面精度约为1.0 m(所需时间较短)[11]。
笔者的先前研究中,将智能手机与测地型GNSS接收机置于相同地点进行同步观测,对比分析了智能手机GNSS观测值的数据质量,发现智能手机观测值中存在伪距观测值和载波相位观测值之间的差值不固定的特性[12];采用相位平滑伪距差分定位的方式,获得了优于1.5 m平面定位精度[13];采用双手机钟差参数的静态PPP模型,在短时间获得了亚米级的平面定位精度[14]。
总体而言,在Google公司开放GNSS观测数据获取的接口后,很多学者开展了基于Android设备原始GNSS观测值的定位研究。早期的相关研究大多基于平板电脑展开,包括伪距单点定位、静态载波双差定位以及利用多普勒观测值、载波相位观测值进行平滑伪距滤波定位等[15-16]。对于普通智能手机的GNSS定位,单频智能手机普遍较低。双频智能手机出现后,学者们对其进行了数据质量分析,并尝试了静态PPP和静态载波双差等定位测试。目前相关的动态定位研究还较为欠缺。本文据此现状,在先前的静态定位研究基础上展开了智能手机的实时动态PPP和载波相位差分RTK研究,并验证研究方法的实际效果。
1 智能手机GNSS高精度动态定位解算模型
鉴于目前智能手机能够观测到的双频数据(L1/E1及L5/E5)卫星数量很少,而动态GNSS定位中涉及的位置参数较多,过少的卫星数意味着每个历元的观测方程数少于待估参数个数,影响定位性能,因此本文采用单频手机GNSS数据进行动态定位研究。
本文的主要目的是实现智能手机的实时动态PPP和RTK定位。在尝试使用现有方法进行解算的过程中,笔者发现由于目前手机观测值的质量状况导致现有公式的定位效果很差(如RTKLIB的解算结果)。因此笔者对现有方法进行了一些修改,获得了较为明显的定位效果改善。改进方法的主要特点是利用手机载波相位观测值不确定度进行粗差处理,使用星间单差法消除手机伪距和载波相位观测值之间差值不固定特性的影响,不再进行整周模糊度固定以及针对手机观测值修改Kalman滤波中的观测值噪声方差的数值。以下从实时动态PPP定位解算模型、RTK定位解算模型和粗差处理策略3个方面详细阐述相关原理。
1.1 实时动态PPP定位解算模型
目前智能手机的测量的GNSS观测值中存在的伪距观测值和载波相位观测值(均以m为单位)之间的差值不固定的特性,可以采用对伪距观测值和载波相位观测值分别设接收设备(智能手机)钟差参数的方式消除其影响[14],也可以采用对观测值作星间单差的方式消除其影响[3]。相较于智能手机双钟差参数的方法,观测值作星间单差法每历元能够减少2个钟差参数和1个载波相位模糊度参数,而观测方程数少2个,多余观测数更多。因此本文中采用观测值作星间单差的方法消除此手机GNSS观测值特性的影响。
具体采用的智能手机PPP定位方式如表1所示。
表1 实时动态PPP具体设置
表1中的WHU超快速星历是由武汉大学IGS数据中心(http:∥www.igs.gnsswhu.cn/)发布的超快速精密星历产品。此产品包含了GPS、GLONASS、BDS和Galileo系统大部分卫星的轨道和钟差预测数据,能够为手机定位提供多系统的实时高精度星历及钟差产品。
在使用表1中相应的误差改正方式后,认为卫星星历误差、卫星钟差和电离层延迟得到了改正,剩余误差归结为残差[18],手机伪距观测值观测方程为
(1)
(2)
相应的载波相位观测方程为
(3)
(4)
以卫星p为基准卫星,对两卫星间观测值作差,单差观测值为
Ppq=ρpq+
(5)
Φpq=ρpq+
(6)
考虑智能手机运动状态下的GNSS定位,Kalman滤波求解状态向量中需要包含智能手机速度甚至加速度等参数。研究表明当观测数据的采样间隔为1.0~3.0 s时,适宜采用常加速度模型,当采样间隔更小时,可以采用常速度模型[19-20]。目前,智能手机原始GNSS测量的最小采样间隔是1.0 s[21-22],因此采用常加速度模型。此时待估参数向量为
(7)
相应的观测值系数矩阵H为
(8)
ai=[(αi-αbase)(βi-βbase)(γi-γbase)]
(9)
bi=∂t·ai
(10)
ci=0.5∂t2·ai
(11)
Mi=MFi-MFbase
(12)
式中,上标(1,…,i,…,n)表示卫星序号;上标base表示基准卫星;(α,β,γ)为卫星到接收设备的方向余弦;∂t为观测数据采样间隔;MF为湿延迟投影函数,本文采用的是Niell投影函数[23]。
使用Kalman滤波进行参数求解,滤波过程中观测值的噪声矩阵根据卫星高度角模型确定,其形式如下
(13)
鉴于手机GNSS观测值过大的观测噪声,研究表明手机载波相位观测值中周跳占比超过20%[15],目前尚无有效的周跳探测及修复方案,现有模糊度固定也难以适用于手机定位,因此本文PPP及RTK算法均不尝试固定载波相位整周模糊度。
1.2 RTK定位解算模型
采用的手机RTK定位模型为常规的载波相位双差模型,使用Kalman滤波进行参数求解,同样不考虑载波相位整周模糊度固定工作。
假设测站i为基准站,测站j为移动站,原始观测值方程为
(14)
(15)
(16)
(17)
式中,下标i、j表示接收机设备序号;dT为卫星钟差;dorb为轨道误差;其余参数含义与前文相同。式中对于基准站也设置了两个设备钟差,实际上如果基准站为测地型接收机,其设备钟差参数应该只有一个,但是对差分后定位模型没有影响,此处不作区分。
首先在两个测站之间对同一颗卫星作站间单差,得到
(18)
(19)
(20)
(21)
同时当参考站与流动站距离较近时,双差星历误差和大气延迟误差也可以视作残差,得到简化的双差观测方程
Δ
(22)
Δ
(23)
相较于动态PPP模型,RTK定位模型中不包括对流层湿延迟参数,滤波过程中只需要估计位置及运动状态参数和载波相位整周模糊度参数即可。同样采用常加速度动态定位模型,此时待估参数向量为
(24)
相应的观测值系数矩阵为
(25)
式中符号含义与式(8)—式(12)相同。同样使用Kalman滤波进行参数求解,观测值方差阵与动态PPP定位滤波过程相同。
1.3 粗差处理
粗差探测是GNSS定位中不可或缺的一项内容。在传统GNSS定位领域中有一系列的粗差探测、周跳探测的方法,这些大多对数据采样率及数据质量有要求。对于智能手机,其载波相位观测值含有大量的周跳,现有单频周跳探测方法难以应用于手机载波相位数据[3,10]。针对手机GNSS观测值情况,采用了载波相位不确定度及卫星高度角进行观测值筛选配合抗差参数估计的方法来降低粗差值影响。
目前Android系统除了能够提供必要的GNSS观测值外,还提供了一些能够表征观测值状态及质量的辅助信息,如多路径效应标志、信号载噪比和载波相位不确定度等[22]。本文以载波相位不确定度(由Android系统提供)和观测值的卫星高度角作为判断标准,当载波相位不确定度大于阈值时,或卫星高度角小于高度截止角时,舍弃该历元该卫星的观测值。对于保留的观测值,采用高度角定权的方式给定各卫星权重。权重计算公式如下
(26)
在滤波过程中,增加了抗差模块,以降低未剔除粗差对定位结果的影响。在Kalman滤波中,根据当前各观测值残差值计算等价观测噪声方差,使用等价方差阵代替观测噪声方差阵求解待估参数[24]。Kalman滤波过程中观测值残差向量计算公式如下
(27)
(28)
(29)
本文采用的手机实时动态PPP和RTK定位技术流程如图1所示。与常规测地型接收机的定位解算相比,本文手机GNSS定位在流程上的主要区别是粗差处理方法不同、使用星间单差法消除手机伪距和载波相位观测值(均以米为单位)之间差值不固定特性的影响以及不再进行整周模糊度的固定,同时Kalman滤波过程中观测值噪声方差的数值针对手机观测值进行了修改。
如前文所述,首先根据载波相位观测值和卫星高度角进行观测值筛选,再辅以滤波抗差算法实现粗差处理。其中手机载波相位观测值不确定度阈值的确定相当重要。用于测试的手机其GNSS芯片输出的载波相位不确定度正常值为毫米级,因此本文中给定的载波相位不确定度阈值为0.01 m。对于一些数据质量更差的手机,此阈值可能会导致被剔除的观测值数量太多,进而无法实现定位,因此需要针对性修改。对于滤波过程中的手机观测值噪声方差,根据先前的数据质量分析结果[12],结合多次试验测试表现,设置伪距观测值噪声方差为3×3 m2,载波相位观测值噪声方差为0.015×0.015 m2(均为同款手机)。对于不同的智能手机,其观测值噪声大小也不相同,需要通过数据质量分析确定。值得注意的是,数据质量试验分析显示出的手机载波相位观测值噪声大小,与手机芯片给出的载波相位不确定度有差异。
图1 手机实时动态PPP和RTK定位技术Fig.1 Technology of smartphone real-time dynamic PPP and RTK positioning
2 试验验证与分析
使用前述定位方法,对测试用双频智能手机采集的观测数据进行实时动态PPP和RTK定位,以验证定位方法的有效性并评价其定位精度。试验地点为某高校田径场,时间为2019年12月12日,时长约10 min。其中RTK定位试验差分基准站是位于校内的CORS站,基准站距离试验地点约1 km。为了评价手机动态定位效果,试验时将智能手机与测地型接收机绑在一起,再一起架在自行车上沿田径场推行,如图2所示。试验过程为先在起点处静止约1 min,然后再推车绕操场两圈。
图2 动态试验仪器设置方式Fig.2 Dynamic experimental instrument setting method
试验中测地型接收机仅记录原始观测值,事后使用RTKLIB软件进行动态差分解算,解算结果中固定解达到95%,解算质量良好。
使用前文所述的实时动态PPP定位方法,对智能手机收集的GNSS数据进行定位解算,同时为了评价实时动态PPP定位结果的定位精度,将手机定位结果与测地型接收机的高精度定位结果对比,如图3所示。图3显示出手机实时动态PPP定位结果相当平滑,连续性完好,说明使用手机GNSS原始数据能够得到有效的动态PPP解算结果。图中右下角为测试起点,在定位开始的一段时间内定位误差较大,随着滤波过程的进行,手机动态PPP定位误差存在明显减小的过程。
图3 自研程序手机实时动态PPP定位结果与测地型接收机差分定位结果对比Fig.3 Comparison of smartphone real-time dynamic PPP results using self-developed program with geodetic receiver differential positioning results
以测地型接收机差分定位结果作为基准,计算手机实时动态PPP定位结果的误差序列如图4所示。图4显示出平面定位误差具有收敛的过程,在100 s之后优于4 m,220 s之后优于2 m,随后误差都稳定在2 m以下;而高程方向定位误差明显更加不稳定,说明残余的测量误差影响明显;同时平面及高程定位结果都包含较为明显的震荡现象。
图4 自研程序手机实时动态PPP定位结果误差序列Fig.4 Positioning error sequence diagram of smart-phone real-time dynamic PPP results using self-developed program
使用前文所述的RTK定位方法,对智能手机收集的GNSS数据进行定位解算,平面解算结果如图5所示。图5显示出RTK定位结果也相当平滑,连续性完好,说明使用手机GNSS原始数据能够得到有效的RTK解算结果。同时注意到右下角测试刚开始的定位结果的偏差相当大,但是在一小段时间后偏差明显减小,定位精度优于实时动态PPP。除了图中下部区域手机定位结果存在小幅度的抖动情况外,其余部分定位平滑性差别不大。事实上图中下部区域为靠近体育场看台的区域,信号遮挡严重,影响了定位精度,测地型接收机定位结果中的5%浮点解也位于此区域。
图5 自研程序手机RTK定位结果与测地型接收机差分定位结果对比Fig.5 Comparison of smartphone RTK positioning results with geodetic receiver differential positioning results using self-developed program
以测地型接收机差分定位结果作为基准,计算手机RTK定位结果的误差序列如图6所示。图6显示出手机RTK定位误差在平面和高程方向上都有具有明显的快速收敛过程,在40 s内即可获得较为良好的定位结果;平面定位误差绝大多数优于2 m;而高程方向除了100 s左右时段(靠近体育场看台的区域)出现了明显抖动外,其余时刻都有良好的定位效果,相比于动态PPP定位精度明显更高;同时平面及高程定位结果也都包含较为明显的震荡现象。
图6 自研程序手机RTK定位结果误差序列Fig.6 Positioning error sequence diagram of smartphone RTK positioning results using self-developed program
将平面定位误差小于3 m且后续历元平面误差不再超过3 m视作动态定位达到较为稳定的状态,据此计算双频智能手机实时动态PPP和RTK稳定后的定位精度,如表2所示。表2显示出试验手机实时动态PPP定位能够在2 min内达到稳定状态,稳定后平面中误差为1.51 m,高程中误差为2.79 m;RTK定位能够在1 min内达到稳定的状态,稳定后平面中误差为0.73 m,高程中误差为0.78 m。
表2 自研程序手机动态实时GNSS定位精度统计
为了验证本文所采用定位方法的有效性,使用RTKLIB软件解算相同的手机GNSS数据(已转换为RINEX格式)。在动态PPP模式下,RTKLIB软件不能获得有效的定位解(解算状态Q为0)。在RTK模式下,定位结果如图7所示。图7中的运动轨迹显示出了明显的不连贯性,经计算其平面中误差超过1.5 m,高程中误差超过4.0 m,定位效果明显差于自研程序解算结果。说明本文所述定位策略更加适用于手机GNSS定位。
图7 使用RTKLIB解算的手机RTK定位结果误差序列Fig.7 Positioning error sequence diagram of smartphone RTK positioning results used RTKLIB software
值得注意的是,试验当天的WHU超快速星历中因故只包含了GPS和GLONASS星历,因此以上试验是使用双系统GNSS数据展开的,当星历中包含更多GNSS系统卫星时(尤其是BDS),手机实时动态定位精度可能会有进一步提升。
3 结论与建议
目前关于智能手机实时动态GNSS定位的相关研究较少。本文根据智能手机GNSS观测值特性及其质量较差的现状,设计了适用于智能手机的实时动态PPP定位方法和RTK载波相位双差定位方法,给出了针对手机GNSS数据的粗差处理方案,并以一组试验验证定位方法的实际效果。
(1) PPP和RTK中都采用不固定载波相位整周模糊度的常加速度动态单频Kalman滤波模型,并通过观测值星间单差法消除智能手机伪距与载波相位观测值差值不固定特性的影响。基于载波相位观测值不确定度及卫星高度角对观测值进行筛选,同时通过观测值噪声调整滤波过程中的观测值权值,达到有效削弱粗差影响的效果。
(2) 实际测试结果表明,双频智能手机实时动态单频PPP定位平面中误差为1.51 m,高程中误差为2.79 m,定位结果达到稳定状态需要99 s;单频RTK定位平面中误差为0.73 m,高程中误差为0.78 m,定位结果达到稳定状态需要27 s。
(3) 目前的智能手机能够在不借助差分基准站的情况下实现平面精度优于2 m的实时动态定位,而在引入差分站数据之后,能够获得优于1 m的实时平面定位精度。这样的定位精度为智能手机进一步提升应用体验带来理论支持,同时表明智能手机具有进入传统测绘领域完成部分精度需求较低的测量任务的潜能[25],将来甚至能够助力自动驾驶、智慧城市和物联网等重大前沿技术的发展。
本文动态PPP定位试验中,定位结果明显受未完全修正的大气误差影响严重,导致精度受限(尤其是高程方向)。后续将从合理利用手机双频GNSS数据、区域大气误差反演实时预报等方向尝试有效削弱大气延迟误差影响,以获得更优的无差分站实时动态定位性能。