杨春媚 王峰 邱文添 刘立程 李学易 刘怡俊
摘要:目前大多数Android智能移动终端主要使用单点定位技术,它的定位误差大约在7m左右或者更大。该项目基于Android 7.0及以上系统平台,在智能移动终端设计专用的高精度实时动态定位软件GNSSRTK GDUT,该软件基于智能移动终端内置的廉价GNSS导航芯片API输出的原始测量值,配合差分参考基站和差分服务器获取的参考基站测量的原始信息,在智能移动终端进行双差方法修正误差,进行高精度实时动态定位解算,从而达到2m以内的定位精度。
关键词:智能移动终端;RTK;解算软件;误差分析
中图分类号:TN967 文献标识码:A 文章编号:1009-3044(2018)09-0100-04
Abstract: Currently, most Android smart mobile terminals use single-point positioning technology, and its positioning accuracy is about 7m or even worse. Based on the Android 7.0 or above system platform, this system designs a dedicated high-performance positioning solution software GNSSRTK GDUT for the intelligent mobile terminal. Based on output by the inexpensive built-in GNSS navigation chip API of the raw measurement values, the software corrects the error in the intelligent mobile terminal by combining the original information of the differential correction of the GNSS reference station obtained by the differential server to perform real-time kinematic high-precision solution, so as to achieve a positioning accuracy of 2 meter or better.
Key words: intelligent mobile terminal; RTK; solving software; error analysis
1 背景
伴隨着科技快速发展的步伐,目前智能移动用户数也在日益增加,2017年中国智能手机用户已经超越7亿。如果有技术可以 为智能手机提供高精度的位置服务,它一定有很大的应用市场。目前采用Android智能移动终端进行的服务种类也越来越多[1],如监护人定位走失老人或者患病人员以及被拐卖儿童;企业对公司内部的车辆分配管理、集装箱卸装定位、扫地机器人定位导航、汽车救援以及医疗急救等许多方面,所以用户对智能终端的功能以及性能需求不断增强。其中,现有的定位精度较高的Android移动智能终端主要分为2种:第一种是使用移动智能终端本身卫星导航GNSS(Global Navigation Satellite System,全球卫星导航系统)[2]芯片,而是采用了蓝牙模块与手机进行通讯,外接串口,输入外置的高精度板卡和天线获取的定位信息进行解算,实现实时高精度差分定位。这样的方法可以实现高精度实时动态定位,但用户需要购买昂贵的高精度板卡;第二种是使用移动智能终端GNSS导航芯片API输出的位置信息,进行位置差分定位,定位误差在5m左右[3]。最近谷歌的安卓系统开放了部分卫星导航芯片的原始测量数据、它包含卫星导航芯片的伪距离、多普勒频移,和载波相位测量值。这样的输出为高精度定位提供了基础。该项目开发的APP可以通过调取安卓API获得这些数据,再结合卫星导航参考基站和差分服务器,实现高精度的实时动态定位。本项目采用了基于Android 7.0的谷歌平板手机进行测试。
DGNSS (Differential Global Navigation Satellite System,差分GNSS技术) 可以很有效地消除卫星星历、卫星时钟、部分电离层和对流层的偏差,达到更精确的定位精度[4]。该文提出的系统为在Android7.0及以上系统的智能移动终端设计专用的广东工业大学(GDUT)卫星高精度实时动态定位软件GNSSRTK GDUT,该软件基于智能移动终端GNSS导航芯片API输出的原始测量值,配合差分参考基站和差分服务器获取的参考基站测量的原始信息,在智能移动终端进行双差方法修正误差,进行实时高精度差分定位解算。该系统结构简单,在硬件上,只需要搭建接收机环境,如参考基站NovAtel[5]和参考路线移动站硬件环境;在软件上,设计专用的高精度实时动态定位软件GNSSRTK GDUT,可以在不改变智能手机硬件条件下,首次应用在安卓智能终端上,利用智能终端自带的廉价卫星导航模块,不增加任何硬件,使用的时候只需要在智能移动终端安装一个APP,配合附近的差分参考基站和差分服务器,就能实现实时动态定位,很大程度地提高智能移动终端的定位精度,使其定位误差在2 米以内,具备广泛的应用前景。
2 差分定位原理与技术实现
为了获得更好的定位精度,一般选择可根据参考基站的差分校正量修正智能移动终端定位误差的差分GNSS技术,如采用差分GNSS技术中定位精度较高的载波相位差分技术 (real time kinematic,RTK) [2]进行实时定位,其原理如图1所示。在RTK解算中应用LAMBDA算法快速计算出双差载波相位的整周模糊度[6]以及采用卡尔曼滤波算法[7]校正误差和预测下一个历元智能移动终端位置信息。
其中,[I(i)r]为参考基站对卫星[i]观测方向向量;[I(j)r]为参考基站对卫星[j]观测方向向量[?(i)ur]为用户接收机[u]与参考基站接收机[r]之间对卫星[i]的单差载波相位测量值;[?(j)ur]为用户接收机[u]与参考基站接收机[r]之间对卫星[j]的单差载波相位测量值;[λ]为载波波长;[r(ij)ur]为用户与参考基站到卫星[i]和[j]的几何距离;卫星[N(ij)ur]为双差周整模糊度;[ρ(i)ur]为用户接收机[u]与参考基站接收机[r]之间对卫星[i]的单差伪距;[ρ(j)ur]为用户接收机[u]与参考基站接收机[r]之间对卫星[j]的单差伪距;[ε(ij)?,ur]为双差载波相位测量噪声;[ε(ij)ρ,ur]为双差伪距测量噪声。
平板手机智能移动终端根据自身的原始测量值和卫星导航芯片模块收到卫星电文信号,将成功捕获跟踪到的GNSS卫星的卫星信号和自身定位解算得到的位置信息通过移动通信模块发送至差分服务器;差分服务器根据智能移动终端的大概位置获取该位置附近参考基站原始测量值和接收到的卫星导航电文信号,并通过移动通信模块传输至平板手机智能移动终端;安卓智能移动终端的专用导航定位软件GNSSRTK GDUT结合自身卫星导航芯片模块的信息和移动通信模块传输的参考基站信息进行RTK解算并输出解算结果,整个系统的工作流程如图2所示。
3 高精度差分软件的设计
该项目设计的软件[8]是能在手机、智能穿戴或者平板等Android智能移动终端运行的第三方应用程序,基于Android7.0及以上系统平台,在智能移动终端设计了一款可以根据自身原始测量值和GNSS导航芯片API输出的原始导航电文信号,配合差分服务器发送的参考基站差分校正原始信息进行RTK解算的专用的高精度实时动态定位软件GNSSRTK GDUT。该软件根据参考基站和移动站的相关性,修正部分卫星星历误差、电离层、对流层延时以及卫星钟差等误差影响,可以很大程度提高智能移动终端的定位精度。GNSSRTK GDUT软件系统的工作原理如图3所示,整个软件可以划分为三大部分:GNSSRTK GDUT软件的用户界面显示(Activity)、GNSSRTK GDUT软件的后台服务(Service)以及GNSSRTK GDUT软件的RTK解算库数据处理部分。其中,软件的用户界面显示和软件的后台服务主要采用广播的通信方式。
3.1 GNSSRTK GDUT软件的用户界面显示
本项目设计的GNSSRTK GDUT软件用户界面内部设计主要包括四大模块,如图4所示,分别是界面配置模块(settings)、GNSS数据显示模块(status)、软件日模块(log)以及地图显示模块(map)。
界面配置模块(settings)首先在GNSSRTK GDUT软件进行默认的配置,而之后软件界面根据配置进行输出显示,如设置差分服务器IP、设置参考基站原生数据输出的文件格式、设置移动站接收数据的输出的文件格式、设置卫星导航定位解算方式优选为RTK解算、设置接收机导航定位数据输出格式为经纬高格式、设置解算结果的文件格式、设置GNSS卫星数据记录的格式为经转换的RTCM3、NIBEX、RINEX等格式[9-11]。
GNSS数据显示模块(status)可人为选择右上角的raw和RTK按钮,分别显示参考基站和智能移动终端所捕获使用的GNSS卫星号和卫星数量,显示输出智能移动终端定位狀态是Single、Float或者Fix,以及相应输出经纬高格式的解算结果。
软件日志模块(log)分两部分,上半部分是记录输出智能移动终端原本的解算结果,如经度、纬度及水平高度等信息;下半部分是输出与RTK解算相关的数据,如移动站的输入输出数据流,参考基站的输入输出数据流、服务器的IP等等。
地图模块(map)是指GNSSRTK GDUT软件根据软件日志模块(log)的RTK定位解算结果调用百度地图,在百度地图中实时显示智能移动终端的位置。同时,可以调用百度地图各种功能,如浏览地图、搜索地点、查询公交驾车线路、查看实时路况等。
3.2 GNSSRTK GDUT软件的后台服务
当用户启动RTK解算服务后,GNSSRTK GDUT软件后台记录GNSS卫星导航芯片API输出的卫星星历、伪距、载波相位[12-13],并将这些原始信息转换成RTCM3、NIBEX、RINEX等国际标准格式。同时,GNSSRTK GDUT软件后台获取差分服务器上的参考基站数据。根据GNSS卫星导航芯片API输出的数据以及参考基站数据,后台调用使用NDK提供的工具编译的RTK解算库中的函数模块进行RTK解算,并将卫星相关信息及结算结果通过广播的形式发到用户显示界面。
3.3 GNSSRTK GDUT软件的RTK解算库数据处理部分
GNSSRTK GDUT软件后台调用RTK计算库函数模块,RTK计算库函数模块根据GNSS卫星导航芯片API输出的卫星星历、载波相位、伪距等信息以及由差分服务器获取的参考基站的差分校正信息做相应的RTK数据处理,如应用LAMBDA算法计算载波相位观测值的整周模糊度、卡尔曼滤波算法校正误差和预测下一个历元位置信息等。
4 RTK效果与实验结果分析
该实验的智能移动终端为基于Android 7.0系统的Google nexus9 平板手机、NovAtel公司的OEM615高精度办卡作为卫星导航参考基站、Ublox公司的ublox 8t 作为参考路线的移动站;其中,静态和动态分别实测了20米左右的短基线。
将平板手机放在广东工业大学一号馆楼顶固定点A点采集静态数据20 分钟,同时输出平板手机本身单点解算的定位数据和经GNSSRTK GDUT软件解算的定位数据 。其中,该A点位置的实际坐标为(23.03743731,113.39289985)。图5是平板手机本身单点解算的定位数据,经分析,大致95%的点落在以红色中心点为半径6.7467m的圆内,其红色中心点经纬坐标为(23.03743707, 113.39289782),距离A点0.2099m;图6是经GNSSRTK GDUT软件解算的平板手机的数据,经分析,大致95%的点落在以红色中心点为半径0.3952m的圆内,其红色中心点经纬坐标为(23.03743750, 113.39290143),距离A点0.1631m。效果图如下:
在广东工业大学一号馆楼顶固定点A点进行nexus9 平板手机静态数据采集,其中,图7是平板手机本身单点静态采集了2小时的数据,经分析,大致95%的点落在以红色中心点为半径6.0806m的圆内,其红色中心点经纬坐标为(23.03743688,113.39289782),距离A点0.2138m;图8是采集24 小时经GNSSRTK GDUT软件解算的平板手机静态数据,其中很多的数据点是相互重合的,经分析,大致95%的点落在以红色中心点为半径1.4868m的圆内,其红色中心点经纬坐标为(23.03743632,113.39290130),距离A点0.1843m。
上述分析得出,经GNSSRTK GDUT软件解算的平板手机静态定位精度比平板手机本身单点静态定位精度高。
在楼顶动态测试,选一块区域绕行一周,效果图如图9所示,其中红色轨迹为平板手机本身单点的解算结果、绿色轨迹为平板手机进行RTK的解算结果,蓝色轨迹为参考路线移动站ublox 8t 的解算结果。在GNSSRTK GDUT软件RTK解算中的大部分点的解都为Float,有少量解为Fix。
对上述每个历元的定位数据进行对应的误差分析,如图10所示,其中红色的曲线为平板手机单点和参考路径ublox 8t的每个历元定位距离曲线;绿色的曲线为平板手机RTK解算和参考路径ublox 8t的每个历元定位距离曲线。经分析可知,平板手机单点和参考路径ublox 8t的定位误差较大且不稳定,最高可接近6.5m左右误差,最低可达0.5m左右误差;平板手机RTK解算和参考路径ublox 8t的定位误差较小且稳定,最高可接近1.5m左右误差,最低可达0.8m左右误差。
5 结束语
由实验结果分析得出,在静态分析中,当平板手机采用了GNSSRTK GDUT软件解算服务后,定位精度明显高于平板手机本身单点定位精度;在動态分析中,当平板手机采用了GNSSRTK GDUT软件解算服务后,其走过的路径也比平板手机本身单点路径更接近参考路径。所以,该平板手机基本满足了正常的定位需求并且比原来手机单点定位的精度高,但由于平板手机所使用的天线[14-15]并没有ublox 8t的天线性能高,并且晶振可靠性不高,时钟不够精确,所以目前并达不到ublox 8t的精度要求。如果手机的天线和载波相位的稳定性得以提高,定位精度也会进一步提高,亚米级定位精度是可以达到的。随着Android 7.0及以上系统普及,并且现在的手机天线也越做越好,所以大部分的安卓系统都可能成为该GNSSRTK GDUT软件载体,这是必然趋势。
参考文献:
[1] 袁新强. 浅谈差分GPS(DGPS)技术的广泛应用[J]. 山西建筑, 2009, 35(14): 359-360.
[2] 谢钢. 全球导航卫星系统原理[M]. 北京: 电子工业出版社, 2013.
[3] 梅琪, 杨春媚,邱文添,等. 基于智能手机的位置差分系统研究[J]. 电脑知识与技术, 2017, 13(19): 21-24.
[4] 高须, 知二. GNSS Precise Positioning with RTKLIB[R]. 日本东京: 东京海洋大学, 2011.
[5] NovAtel Inc. OEM 6 Family Installation and Operation User Manual Rev 8[Z]. Canada, 2014.
[6] 陈树新. GPS整周模糊度动态确定的算法及性能研究[D]. 西安: 西北工业大学, 2002.
[7] Chui C K, Chen G K. Kalman Filtering with Real time Application[M]. Berlin: Springer verlag, 1987: 230-310.
[8] 陈兴鹏. 手机精确定位系统的设计与实现[D]. 重庆: 重庆大学, 2009.
[9] RTCM Recommended Standards for Differential NAVSTAR GPS Service[Z]. Ver2.1 Jan, 1004.
[10] 郭洪涛. 差分GPS数据通讯格式RTCM3.0及应用发展[J]. 全球定位系统 GNSS World of China, 2010(3).
[11] 肖远亮. NMEA-0183数据标准在GPS技术中的应用[J]. 物探装备, 2016(6).
[12] Hatch R R. Current Issue in Kinematic Navigation[C]. Proc. ION-GPS-92, 1992.
[13] Taveira-Blomenhofer E and Hein. G. W. Investigations on Carrier Phase Corrections for high Precision DGPS Navigation[C]. Proc. ion-gps-93, 1993.
[14] 李瑞, 郭晓栋, 吴多龙, 等. 一种层叠结构双频圆极化GPS天线的设计[J].广东工业大学学报, 2015, 28(1): 28-31.
[15] 皮姣, 刘立程, 王峰, 等. 基于阵列天线处理的GPS信号抗干扰研究[J].广东工业大学学报, 2015, 32(4): 67-71.