肖 厦
(中国科学院 国家授时中心,西安 710060)
Android平台下BDS增强定位终端的设计与实现
肖厦
(中国科学院 国家授时中心,西安710060)
摘要:日常生活中,人们对位置服务信息需求的不断提高,位置服务成了广泛关注的热点。安卓平台作为首个为移动终端打造的真正开放和完整的移动软件,拥有丰富的软件资源和应用场景。针对移动终端便携、易操作等优点,结合平台优势开展基于安卓系统移动终端的导航定位技术的研究;在安卓平台上设计了一款新型移动导航定位终端,实现了基于安卓平台的BDS高精度广域增强精密单点定位技术。研究中,整合了终端的各功能模块,配合相应的软件驱动,通过地图匹配提供给用户高精度的位置服务,为BDS的应用提供参考。
关键词:安卓平台;移动定位终端;精密单点定位;地图匹配
0引言
随着社会的高速发展,在日常生活中人们对位置服务信息的需求变得越来越大,特别是针对移动终端领域,由于其便携、易操作等优点,位置服务信息得到更广泛的应用[1]。目前在Android系统上常见的移动定位方式是通过全球定位系统(global positioning system,GPS)模块获取GPS信号,利用其提供的位置信息(经纬度坐标,包括三维向量等)来实现在电子地图上的位置标定。而在北斗卫星导航系统(BeiDou navigation satellite system,BDS)不断发展和完善情况下,开发Android平台下基于BDS的移动定位终端便成了当下的发展趋势。本文基于Android操作平台,结合国家授时中心的BDS高精度广域增强服务系统设计实现了一款移动导航定位终端,以满足移动定位领域在高精度定位服务方面的需要。
1Android平台下BDS定位实现
1.1组成结构
BDS定位模块由信号接收硬件和数据处理软件2部分组成,是实现Android平台定位功能的基础。信号接收硬件一般是高集成紧凑型并内置天线的模块,现在多数模块是采用表面贴装器件(surface mounted devices,SMD)贴片,尺寸小、功耗低,捕获和跟踪良好,可实现快速定位。数据处理软件固化在主板芯片中,处理算法必须借助特殊设备才能够刷写;其主要功能是通过对BDS信号载波解调和电文解码后得到的观测信息和星历的计算得到位置坐标。
1.2功能实现
在上述的基础下,在Android平台中实现BDS定位的功能可以概括地总结为是对解算输出模块接口的一种调用;而在Android平台下有一个特殊的位置功能类库Android.location,它可以为定位服务的应用程序开发提供支持,用来获取当前设备的地理位置,其中BDS模块的定位信息来源于位置提供者BDS_PROVIDER,用于设备自身的定位。
Android.location中包含了5类,分别是Location、LocationMananger、LocationProvider、LocationListener和Criteria[2]。其中定位管理类LocationManager是最重要的一个类,它是整个定位服务的入口类,通过它可以实现定位跟踪和趋近的提示功能。当应用程序接口(Application Programming Interface,API)定义了一个LocationManager类后,通过Binder机制开启LocationManagerSevice,这其中的主要内容都是围绕着 Location Provider进行的,之后搜索系统中所有的LocationProvider,从而达到获取最新位置信息的目的,同时也可以使用监听器LocationListener来主动获取位置更新通知。通过设置Criteriac=new Criteria可以创建一个Criteria类,并将Criteria类传递给LocationManager类[3]。5种类之间的关系如图1所示。
图1 位置服务的相关类
2Android平台下BDS增强定位终端的设计
现阶段BDS提供开放服务的定位精度为10 m,与GPS民用服务所提供的定位精度相当,这使得以BDS为依托开展增强定位技术的研究和自主应用成为可能。顺应当今对高精度便携式移动定位终端的需求,开发了基于Andriod平台的BDS导航增强定位终端。
2.1组成结构
BDS增强定位终端在Friendly ARM Smart210-A Android平台的基础上进行开发,添加了2个串口UART1、UTRT2(TTL电平,波特率:115 200;奇偶校验:N;数据位:8;停止位:1)的驱动,并整合了FT2232USB 转Serial 驱动,以完成BDS实时观测数据流的发送与接收;2套天线系统(C波段、L波段),增强系统接收解调模块;BDS模块(B1、B2频点)及转接板,其主要完成系统电源的分配(外接电源和内部电池)、串口电平转换(外接调试用串口)、各种外部接口的适配(充电电路、复位按钮、电源指示)等,其结构如图2所示。
图2 终端结构原理
2.2功能设计
在定位解算算法中,采用了基于BDS的广域增强实时精密单点定位(precise point positioning,PPP)技术。以功能划分BDS导航增强一体化终端主要包括3个模块:全球卫星导航系统(global navigation satellite system,GNSS)信号接收模块、增强信息接收模块、定位解算模块。
GNSS接收模块接收GNSS信号,进行解调解扩处理,输出伪距和载波相位测量值;增强信息接收模块可接收地球同步卫星转发的高精度服务信号,进行解调解扩处理,输出高精度增强信息,同时也可直接通过3G/WiFi网络直接获取增强信息并输出;定位解算模块,接收GNSS模块输出的伪距和载波相位测量值,同时接收高精度增强信息,进行实时精密单点定位解算,最终实现高精度的位置服务。功能流程图如图3所示。
图3 功能流程图
3Android平台下BDS增强定位终端的定位实现
定位解算模块是进行BDS实时PPP解算的核心,主要包括解算核心程序SRC模块、定位支持模块RCV,配置模块config和应用模块APP[4];其中核心解算库libbds.so是通过NDK编译后生成的静态链接库,config模块通过配置文件获得解算过程中的各种参数,包括输入、输出数据流来源(文件、串口、网络)、数据流格式、解算参数等;数据流经过RCV模块解析后,送到SRC模块进行解算,解算结果再通过全局变量或者网络以SOCKET方式共享到APP[5]。整个程序开发在Eclipse下完成,最后生成BDsppp.apk导航应用程序,见图4。
图4 终端功能流程图
3.1应用界面
BDsppp.apk使用XML语言来描述界面的布局,并集成了地图组件Osmdroid,完成地图定位显示。在main.xml中使用了LinearLayout命令进行应用界面布局,通过ListView列出功能按钮列表。应用界面主要包括状态显示界面、地图显示界面、数据流设置界面以及解算过程设置界面等,如图5所示。
图5 解算过程设置界面
解算过程选项主要包括:1)定位解算模式:PPP-Static(静态PPP)或者PPP-Kinemaric(动态);2)电离层修正:双频无电离层组合或者模型改正;3)对流层改正:参数估计或者模型改正;4)卫星轨道和钟差修正:精密星历或者广播星历加国家空间表示(state space representation,SSR)信息[9]。上述这些选项是实时PPP定位算法的关键参数,是进行高精度定位和导航的基础[10]。
在解算过程中,可显示收星信噪比和星座图,并在子窗口完成切换[6],如图6所示。
图6 应用程序显示界面
实时定位解算结果以经度(Lat)、纬度(Lon)、高程(Height)和东(E)、北(N)、高(U)方向标准差的形式输出在界面上,还包括系统时间,可见卫星数和几何精度衰减因子(geometric dilution of precision,GDOP)值,给用户直观的定位体验。
3.2定位实现
考虑到移动导航定位系统的高实时性,通过创建和使用MySQL数据库[8],以log文件形式完成数据的存储;同时在输入端可完成历史数据的回放。图7是2013年在厦门市的动态演示试验结果:在实现轨迹记录的设计中,设置位置监听周期为1 s,通过OverLay类在地图上打点并连线,其中GeoPoint是终端移动前后2点的轨迹,在地图上以可以移动小人为标志,代表当前车辆的移动方位。
定位地图匹配时,使用Mobile Atlas Creator软件制作OpenStreetMap离线地图[7];同时保证地图通过网络可以实时下载更新并显示当前位置,可进行大小缩放和显示模式切换,
在地图模式下,放置1个TextView组件用来更新实时定位信息,包括定位模式、定位坐标、定位误差及参数等;同时提供了工作状态提示灯,使定位显示更为直观和丰富。
图7 厦门市试验结果及地图显示
从图中可以看到1条清晰的定位轨迹,当前参与解算的BDS卫星数目为9颗,ENU方向的标准差分别为0.288、0.238和0.639 m,满足高精度实时定位的需求。
在本终端的设计中,充分考虑了Android系统易操作性、扩展性和高效率等优点,结合已有的BDS高精度广域增强PPP定位技术,开发和扩展
了Android系统各应用程序接口(application pro-gramming interface,API)模块,开拓了BDS手持终端高精度定位的新思路,在多款Android平台上进行了试验,具有很强的适应性;在性能方面,程序的运行效率和稳定性与市面上其他定位软件相当,而且在定位精度上较传统Android定位终端有显著的提高,达到车道级别的分辨能力,同时为其他导航应用保留了相应的接口,尤其在车载和船载导航应用领域,具有很大的扩展空间。
4结束语
本文在对Android平台定位应用特点、Android平台下BDS定位技术、地图匹配等关键技术研究的基础上,提出了一种移动导航定位新终端的设计思路:实现了基于Android平台的BDS高精度广域增强PPP定位技术;利用终端各功能模块的整合,并配合相应的驱动开发,很好地提供给了用户高精度的定位服务,为BDS的应用开拓了新的平台。对于Android平台上成熟的导航定位产品,在定位相关功能上的开发不够,像雷达功能、地点列表和导航规划等功能还在完善中;今后的开发目标是逐步形成一套完整的从定位导航、卫星授时到路径规划的服务体系。本终端的开发可为BDS移动导航定位系统新的应用场景研究及其他平台的移动导航定位系统研究与设计等方面提供参考价值。高精度定位技术与便携终端的有效结合将有广阔的应用前景,能够为用户提供更多高效的位置信息服务。
参考文献
[1]高峻嘉.基于Android手机平台移动定位原型系统设计与应用[D].成都:电子科技大学,2012,11:4-8.
[2]强波.Android 系统中Location Service的实现与架构[EB/OL].(2013-03-20)[2015-07-22].http://www.ibm.com/developerworks/cn/opensource/os-cn-android-location.
[3]刘正,陈强.基于Android的GPS应用中的研究与开发[J].中国西部科技,2010(32):15-16.
[4]DIMARZIO J J.Android:a programmer’s guide[M].New York:McGraw-Hill,2008:85-120.
[5]邓亚明,杨邦荣.基于ECLIPSE图形插件开发的研究[J].电脑开发与应用,2009(2):19-21.
[6]NICHOLAS C.JavaScript高级程序设计[M].李松峰,曹力,译.3版.北京:人民邮电出版社.2012:50-200.
[7]HAKLAY M,WEBER P.Openstreetmap:user-generated street maps[J].Pervasive Computing,IEEE,2008,7(4):12-18.
[8]FAROULT S,ROBSON P.The art of SQL[M].Sebastopol:O’Reilly Media,Inc.,2006:72-280.
[9]刘志强,王解先.广播星历 SSR 改正的实时精密单点定位及精度分析[J].测绘科学,2014,39(1):15-19.
[10]刘经南,葛茂荣.广域差分GPS的数据处理方法及结果分析[J].测绘工程,1998,7(1):1-5.
Design and implementation of BDS enhanced positioning terminal based on Android platform
XIAO Xia
(National Time Service Center,Chinese Academy of Sciences,Xi’an 710060,China)
Abstract:In daily life,the demand to position service information is constantly improving and people pay widespread attention to location services.Android platform,as the first mobile terminal to create a truly open and complete mobile software,has rich software resources and application scenarios.Taking into account its portability and easy operability,based on the terminal of Android combined with the platform advantages,this paper carried out the research on mobile navigation and positioning technology system.Based on the Android platform,a design method was presented for terminal of mobile navigation and positioning that realized the wide area high precision enhanced PPP technology.With the use of integrated terminal of each functional module and software driven,it could provide location service to users with high precision.It would develop a new platform for the application of Beidou satellite navigation system.
Keywords:Android;mobile positioning terminal;PPP;map matching
收稿日期:2015-06-15
作者简介:肖厦(1989—),男,陕西西安人,博士研究生,研究方向为卫星导航定位算法。
中图分类号:P228
文献标志码:A
文章编号:2095-4999(2016)02-0087-04
引文格式:肖厦.Android平台下BDS增强定位终端的设计与实现[J].导航定位学报,2016,4(2):87-90.(XIAO Xia.Design and implementation of BDS enhanced positioning terminal based on android platform[J].Journal of Navigation and Positioning,2016,4(2):87-90.)DOI:10.16547/j.cnki.10-1096.20160218.