程 锋,郭际明,黄炳强,阮 明,帕尔哈提·艾则孜
(1.武汉大学 测绘学院,湖北 武汉 430079;2.南宁市勘察测绘地理信息院,广西 南宁 530022;3.新疆水利水电勘测设计研究院,新疆 乌鲁木齐 830000)
基于CORS增强的Android终端地理信息采集系统原型
程 锋1,郭际明1,黄炳强2,阮 明2,帕尔哈提·艾则孜3
(1.武汉大学 测绘学院,湖北 武汉 430079;2.南宁市勘察测绘地理信息院,广西 南宁 530022;3.新疆水利水电勘测设计研究院,新疆 乌鲁木齐 830000)
研究了CORS增强的卫星定位技术及其在地理信息采集中的应用,设计了基于CORS的Android移动终端定位方案,实现了Android移动终端的GPS通讯模块、CORS系统数据通讯模块、伪距差分定位模块,建立了利用CORS系统获得RTCM改正信息的亚m级精度Android移动终端地理信息采集系统原型,并通过实例验证了其可行性。
CORS增强;Android;地理信息采集
现有的移动终端一般采用标准单点定位(SPP)模式,其定位精度只能达到10 m左右,不能满足地理信息采集的亚m级精度要求,而高精度RTK模式下的定位精度虽能达到cm级,但设备较复杂且价格较高。针对亚m级精度要求的地理信息采集,伪距差分技术是一种合适的选择[1],其优点是设备价格适中且使用简单。随着我国大部分省市CORS的建设完成,CORS系统可为GPS用户提供实时伪距差分(real-time differential,RTD)服务,用户无需再架设参考站,可以大大提高工作效率并节省成本[2]。
智能手机是一种重要的Android终端,定位精度在10 m左右,本文在Android手机上,增加外设GPS模块,并使用RTD定位算法,开发了基于CORS增强的Android终端地理信息采集系统原型。
Android终端通过蓝牙连接外设GPS模块,获取伪距观测值,再借助网络从CORS系统获取差分数据,经解算得到高精度的定位结果,其定位方案设计如图1。
图1 基于CORS的Android终端定位方案
2.1 Android终端和外设GPS通讯模块
选择具有蓝牙功能的GPS模块,可以在Android终端和接收机之间建立连接。Android终端和GPS设备进行蓝牙通讯的具体流程分为4步[3]:
1)打开蓝牙设备。在程序中调用BluetoothAdapter类startActivityForResult()方法打开蓝牙。
2)查找蓝牙设备。调用BluetoothAdapter类中的startDiscovery()方法,将设备信息列表。找到外设GPS模块的蓝牙后,即可获取蓝牙设备的通用唯一识别码(UUID, universally unique identifier)。
3)连接蓝牙设备。Android终端通过GPS模块蓝牙的UUID与其建立Bluetoothsocket连接。
4)Android终端和GPS设备通讯。Android终端和外设GPS模块通过Bluetoothsocket建立连接后,调用getInputStream()方法得到数据流,再使用read()方法即可获取GPS设备发送的NMEA数据以及伪距、星历等观测值。
2.2 Android终端和CORS通讯模块
Android终端需要从CORS获取RTCM V2.3差分数据,这个过程通过NTRIP协议实现。Android终端和CORS通讯分以下4步[4]:
1)Android终端调用Socket和CORS建立网络连接,向CORS服务器发送请求信息,包括用户名、密码和挂载点;
2)CORS服务器对Android终端发送的用户名和密码进行验证通过后,如需要用户发送概略坐标,Android终端再发送NMEA GGA消息到CORS服务器;
3)CORS服务器从GGA消息中获取用户的概略坐标后,会源源不断地向Android终端发送RTCM V2.3差分数据;
4)在手机上对RTCM数据进行解码,具体包括字节扫描、字节滚动、取补码、跳页、电文同步和奇偶校验等[5],最终得到参考站的坐标和伪距观测值。
2.3 伪距差分定位模块
Android终端接收CORS系统发送的RTCM差分数据和外设GPS设备采集原始观测数据进行差分运算,消除卫星轨道误差、削弱传播误差、估计接收机误差、实现伪距差分定位功能。伪距双差定位的观测方程为[6]:
式中,b、r分别代表参考站和手机流动站;j代表参考卫星;i代表其他共同观测的卫星代表参考站对卫星i、j的伪距观测值代表手机流动站对卫星i、j的伪距观测值。
式中,(Xj,Yj,Zj)代表参考卫星坐标;(Xi,Yi,Zi)代表其他共同观测卫星坐标;(Xb,Yb,Zb)代表基准站坐标;(Xr,Yr,Zr)代表手机流动站坐标。
由误差传播定理得到双差模式的权阵P:
伪距差分定位的流程如下[7]:
1)根据伪距观测值历元,从RTCM V2.3差分数据中提取基准站观测值和基准站坐标;
2)计算基准站单点定位坐标,如果结果同基准站坐标差距达到阈值,则基准站坐标或基准站观测值有误,系统退出;
3)以流动站单点定位结果作为初值,计算设计矩阵、权矩阵、观测值矩阵;
4)选择高度角最大的卫星作为参考星,并结合基准站的观测值,计算双差观测值矩阵、双差设计矩阵和双差权矩阵;
5)采用最小二乘算法,计算得到平差改正数;
6)根据停止迭代的条件进行判断,若不满足条件,则更新定位结果,重复第3)~5)步,直到满足停止迭代条件。
2014-07-10,在南宁市勘察测绘地理信息院附近选择一个固定点,使用RTK设备测量该点的坐标并作为伪距差分定位的真实坐标。将外设Hemisphere GPS模块的天线放置在固定点上,GPS的采样率为1 s,进行30 min左右的静态测量。手机连接南宁CORS接收RTCM差分数据,然后进行实时伪距差分解算。如图2所示,伪距差分定位的N方向的误差为0.48 m,E方向误差为0.57 m,达到了亚m级的定位精度。
图2 静态定位误差
2014-11-14,在南宁市进行动态测试,将Hemisphere GPS模块和司南BDS/GPS模块连接到同一个外置天线上,手机连接Hemisphere GPS模块,并通过南宁CORS获取RTCM数据进行实时伪距差分解算。整个过程在移动的小汽车上进行,测试时间50 min。事后通过GrafNav软件对司南BDS/GPS模块的数据进行动态解算,由于司南模块提供的是多频多模数据,动态解算结果基本都是RTK固定解。将其作为真值和手机的解算结果进行对比,如图3所示,伪距差分定位的N方向的误差为0.60 m,
E方向误差为0.64 m,达到了亚m级的定位精度。
P208
B
1672-4623(2015)03-0032-02
10.3969/j.issn.1672-4623.2015.03.011
2014-12-15。
项目来源:国家自然科学基金资助项目(41474004);武汉大学精密工程与工业测量国家测绘地理信息局重点实验室开放基金资助项目(PF2012-13);南宁市勘察测绘地理信息院资助项目(KY-2013-27)。