肖 廈
(中國科學(xué)院 國家授時(shí)中心,西安 710060)
Android平臺下BDS增強(qiáng)定位終端的設(shè)計(jì)與實(shí)現(xiàn)
肖廈
(中國科學(xué)院 國家授時(shí)中心,西安710060)
摘要:日常生活中,人們對位置服務(wù)信息需求的不斷提高,位置服務(wù)成了廣泛關(guān)注的熱點(diǎn)。安卓平臺作為首個為移動終端打造的真正開放和完整的移動軟件,擁有豐富的軟件資源和應(yīng)用場景。針對移動終端便攜、易操作等優(yōu)點(diǎn),結(jié)合平臺優(yōu)勢開展基于安卓系統(tǒng)移動終端的導(dǎo)航定位技術(shù)的研究;在安卓平臺上設(shè)計(jì)了一款新型移動導(dǎo)航定位終端,實(shí)現(xiàn)了基于安卓平臺的BDS高精度廣域增強(qiáng)精密單點(diǎn)定位技術(shù)。研究中,整合了終端的各功能模塊,配合相應(yīng)的軟件驅(qū)動,通過地圖匹配提供給用戶高精度的位置服務(wù),為BDS的應(yīng)用提供參考。
關(guān)鍵詞:安卓平臺;移動定位終端;精密單點(diǎn)定位;地圖匹配
0引言
隨著社會的高速發(fā)展,在日常生活中人們對位置服務(wù)信息的需求變得越來越大,特別是針對移動終端領(lǐng)域,由于其便攜、易操作等優(yōu)點(diǎn),位置服務(wù)信息得到更廣泛的應(yīng)用[1]。目前在Android系統(tǒng)上常見的移動定位方式是通過全球定位系統(tǒng)(global positioning system,GPS)模塊獲取GPS信號,利用其提供的位置信息(經(jīng)緯度坐標(biāo),包括三維向量等)來實(shí)現(xiàn)在電子地圖上的位置標(biāo)定。而在北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDou navigation satellite system,BDS)不斷發(fā)展和完善情況下,開發(fā)Android平臺下基于BDS的移動定位終端便成了當(dāng)下的發(fā)展趨勢。本文基于Android操作平臺,結(jié)合國家授時(shí)中心的BDS高精度廣域增強(qiáng)服務(wù)系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)了一款移動導(dǎo)航定位終端,以滿足移動定位領(lǐng)域在高精度定位服務(wù)方面的需要。
1Android平臺下BDS定位實(shí)現(xiàn)
1.1組成結(jié)構(gòu)
BDS定位模塊由信號接收硬件和數(shù)據(jù)處理軟件2部分組成,是實(shí)現(xiàn)Android平臺定位功能的基礎(chǔ)。信號接收硬件一般是高集成緊湊型并內(nèi)置天線的模塊,現(xiàn)在多數(shù)模塊是采用表面貼裝器件(surface mounted devices,SMD)貼片,尺寸小、功耗低,捕獲和跟蹤良好,可實(shí)現(xiàn)快速定位。數(shù)據(jù)處理軟件固化在主板芯片中,處理算法必須借助特殊設(shè)備才能夠刷寫;其主要功能是通過對BDS信號載波解調(diào)和電文解碼后得到的觀測信息和星歷的計(jì)算得到位置坐標(biāo)。
1.2功能實(shí)現(xiàn)
在上述的基礎(chǔ)下,在Android平臺中實(shí)現(xiàn)BDS定位的功能可以概括地總結(jié)為是對解算輸出模塊接口的一種調(diào)用;而在Android平臺下有一個特殊的位置功能類庫Android.location,它可以為定位服務(wù)的應(yīng)用程序開發(fā)提供支持,用來獲取當(dāng)前設(shè)備的地理位置,其中BDS模塊的定位信息來源于位置提供者BDS_PROVIDER,用于設(shè)備自身的定位。
Android.location中包含了5類,分別是Location、LocationMananger、LocationProvider、LocationListener和Criteria[2]。其中定位管理類LocationManager是最重要的一個類,它是整個定位服務(wù)的入口類,通過它可以實(shí)現(xiàn)定位跟蹤和趨近的提示功能。當(dāng)應(yīng)用程序接口(Application Programming Interface,API)定義了一個LocationManager類后,通過Binder機(jī)制開啟LocationManagerSevice,這其中的主要內(nèi)容都是圍繞著 Location Provider進(jìn)行的,之后搜索系統(tǒng)中所有的LocationProvider,從而達(dá)到獲取最新位置信息的目的,同時(shí)也可以使用監(jiān)聽器LocationListener來主動獲取位置更新通知。通過設(shè)置Criteriac=new Criteria可以創(chuàng)建一個Criteria類,并將Criteria類傳遞給LocationManager類[3]。5種類之間的關(guān)系如圖1所示。
圖1 位置服務(wù)的相關(guān)類
2Android平臺下BDS增強(qiáng)定位終端的設(shè)計(jì)
現(xiàn)階段BDS提供開放服務(wù)的定位精度為10 m,與GPS民用服務(wù)所提供的定位精度相當(dāng),這使得以BDS為依托開展增強(qiáng)定位技術(shù)的研究和自主應(yīng)用成為可能。順應(yīng)當(dāng)今對高精度便攜式移動定位終端的需求,開發(fā)了基于Andriod平臺的BDS導(dǎo)航增強(qiáng)定位終端。
2.1組成結(jié)構(gòu)
BDS增強(qiáng)定位終端在Friendly ARM Smart210-A Android平臺的基礎(chǔ)上進(jìn)行開發(fā),添加了2個串口UART1、UTRT2(TTL電平,波特率:115 200;奇偶校驗(yàn):N;數(shù)據(jù)位:8;停止位:1)的驅(qū)動,并整合了FT2232USB 轉(zhuǎn)Serial 驅(qū)動,以完成BDS實(shí)時(shí)觀測數(shù)據(jù)流的發(fā)送與接收;2套天線系統(tǒng)(C波段、L波段),增強(qiáng)系統(tǒng)接收解調(diào)模塊;BDS模塊(B1、B2頻點(diǎn))及轉(zhuǎn)接板,其主要完成系統(tǒng)電源的分配(外接電源和內(nèi)部電池)、串口電平轉(zhuǎn)換(外接調(diào)試用串口)、各種外部接口的適配(充電電路、復(fù)位按鈕、電源指示)等,其結(jié)構(gòu)如圖2所示。
圖2 終端結(jié)構(gòu)原理
2.2功能設(shè)計(jì)
在定位解算算法中,采用了基于BDS的廣域增強(qiáng)實(shí)時(shí)精密單點(diǎn)定位(precise point positioning,PPP)技術(shù)。以功能劃分BDS導(dǎo)航增強(qiáng)一體化終端主要包括3個模塊:全球衛(wèi)星導(dǎo)航系統(tǒng)(global navigation satellite system,GNSS)信號接收模塊、增強(qiáng)信息接收模塊、定位解算模塊。
GNSS接收模塊接收GNSS信號,進(jìn)行解調(diào)解擴(kuò)處理,輸出偽距和載波相位測量值;增強(qiáng)信息接收模塊可接收地球同步衛(wèi)星轉(zhuǎn)發(fā)的高精度服務(wù)信號,進(jìn)行解調(diào)解擴(kuò)處理,輸出高精度增強(qiáng)信息,同時(shí)也可直接通過3G/WiFi網(wǎng)絡(luò)直接獲取增強(qiáng)信息并輸出;定位解算模塊,接收GNSS模塊輸出的偽距和載波相位測量值,同時(shí)接收高精度增強(qiáng)信息,進(jìn)行實(shí)時(shí)精密單點(diǎn)定位解算,最終實(shí)現(xiàn)高精度的位置服務(wù)。功能流程圖如圖3所示。
圖3 功能流程圖
3Android平臺下BDS增強(qiáng)定位終端的定位實(shí)現(xiàn)
定位解算模塊是進(jìn)行BDS實(shí)時(shí)PPP解算的核心,主要包括解算核心程序SRC模塊、定位支持模塊RCV,配置模塊config和應(yīng)用模塊APP[4];其中核心解算庫libbds.so是通過NDK編譯后生成的靜態(tài)鏈接庫,config模塊通過配置文件獲得解算過程中的各種參數(shù),包括輸入、輸出數(shù)據(jù)流來源(文件、串口、網(wǎng)絡(luò))、數(shù)據(jù)流格式、解算參數(shù)等;數(shù)據(jù)流經(jīng)過RCV模塊解析后,送到SRC模塊進(jìn)行解算,解算結(jié)果再通過全局變量或者網(wǎng)絡(luò)以SOCKET方式共享到APP[5]。整個程序開發(fā)在Eclipse下完成,最后生成BDsppp.apk導(dǎo)航應(yīng)用程序,見圖4。
圖4 終端功能流程圖
3.1應(yīng)用界面
BDsppp.apk使用XML語言來描述界面的布局,并集成了地圖組件Osmdroid,完成地圖定位顯示。在main.xml中使用了LinearLayout命令進(jìn)行應(yīng)用界面布局,通過ListView列出功能按鈕列表。應(yīng)用界面主要包括狀態(tài)顯示界面、地圖顯示界面、數(shù)據(jù)流設(shè)置界面以及解算過程設(shè)置界面等,如圖5所示。
圖5 解算過程設(shè)置界面
解算過程選項(xiàng)主要包括:1)定位解算模式:PPP-Static(靜態(tài)PPP)或者PPP-Kinemaric(動態(tài));2)電離層修正:雙頻無電離層組合或者模型改正;3)對流層改正:參數(shù)估計(jì)或者模型改正;4)衛(wèi)星軌道和鐘差修正:精密星歷或者廣播星歷加國家空間表示(state space representation,SSR)信息[9]。上述這些選項(xiàng)是實(shí)時(shí)PPP定位算法的關(guān)鍵參數(shù),是進(jìn)行高精度定位和導(dǎo)航的基礎(chǔ)[10]。
在解算過程中,可顯示收星信噪比和星座圖,并在子窗口完成切換[6],如圖6所示。
圖6 應(yīng)用程序顯示界面
實(shí)時(shí)定位解算結(jié)果以經(jīng)度(Lat)、緯度(Lon)、高程(Height)和東(E)、北(N)、高(U)方向標(biāo)準(zhǔn)差的形式輸出在界面上,還包括系統(tǒng)時(shí)間,可見衛(wèi)星數(shù)和幾何精度衰減因子(geometric dilution of precision,GDOP)值,給用戶直觀的定位體驗(yàn)。
3.2定位實(shí)現(xiàn)
考慮到移動導(dǎo)航定位系統(tǒng)的高實(shí)時(shí)性,通過創(chuàng)建和使用MySQL數(shù)據(jù)庫[8],以log文件形式完成數(shù)據(jù)的存儲;同時(shí)在輸入端可完成歷史數(shù)據(jù)的回放。圖7是2013年在廈門市的動態(tài)演示試驗(yàn)結(jié)果:在實(shí)現(xiàn)軌跡記錄的設(shè)計(jì)中,設(shè)置位置監(jiān)聽周期為1 s,通過OverLay類在地圖上打點(diǎn)并連線,其中GeoPoint是終端移動前后2點(diǎn)的軌跡,在地圖上以可以移動小人為標(biāo)志,代表當(dāng)前車輛的移動方位。
定位地圖匹配時(shí),使用Mobile Atlas Creator軟件制作OpenStreetMap離線地圖[7];同時(shí)保證地圖通過網(wǎng)絡(luò)可以實(shí)時(shí)下載更新并顯示當(dāng)前位置,可進(jìn)行大小縮放和顯示模式切換,
在地圖模式下,放置1個TextView組件用來更新實(shí)時(shí)定位信息,包括定位模式、定位坐標(biāo)、定位誤差及參數(shù)等;同時(shí)提供了工作狀態(tài)提示燈,使定位顯示更為直觀和豐富。
圖7 廈門市試驗(yàn)結(jié)果及地圖顯示
從圖中可以看到1條清晰的定位軌跡,當(dāng)前參與解算的BDS衛(wèi)星數(shù)目為9顆,ENU方向的標(biāo)準(zhǔn)差分別為0.288、0.238和0.639 m,滿足高精度實(shí)時(shí)定位的需求。
在本終端的設(shè)計(jì)中,充分考慮了Android系統(tǒng)易操作性、擴(kuò)展性和高效率等優(yōu)點(diǎn),結(jié)合已有的BDS高精度廣域增強(qiáng)PPP定位技術(shù),開發(fā)和擴(kuò)展
了Android系統(tǒng)各應(yīng)用程序接口(application pro-gramming interface,API)模塊,開拓了BDS手持終端高精度定位的新思路,在多款A(yù)ndroid平臺上進(jìn)行了試驗(yàn),具有很強(qiáng)的適應(yīng)性;在性能方面,程序的運(yùn)行效率和穩(wěn)定性與市面上其他定位軟件相當(dāng),而且在定位精度上較傳統(tǒng)Android定位終端有顯著的提高,達(dá)到車道級別的分辨能力,同時(shí)為其他導(dǎo)航應(yīng)用保留了相應(yīng)的接口,尤其在車載和船載導(dǎo)航應(yīng)用領(lǐng)域,具有很大的擴(kuò)展空間。
4結(jié)束語
本文在對Android平臺定位應(yīng)用特點(diǎn)、Android平臺下BDS定位技術(shù)、地圖匹配等關(guān)鍵技術(shù)研究的基礎(chǔ)上,提出了一種移動導(dǎo)航定位新終端的設(shè)計(jì)思路:實(shí)現(xiàn)了基于Android平臺的BDS高精度廣域增強(qiáng)PPP定位技術(shù);利用終端各功能模塊的整合,并配合相應(yīng)的驅(qū)動開發(fā),很好地提供給了用戶高精度的定位服務(wù),為BDS的應(yīng)用開拓了新的平臺。對于Android平臺上成熟的導(dǎo)航定位產(chǎn)品,在定位相關(guān)功能上的開發(fā)不夠,像雷達(dá)功能、地點(diǎn)列表和導(dǎo)航規(guī)劃等功能還在完善中;今后的開發(fā)目標(biāo)是逐步形成一套完整的從定位導(dǎo)航、衛(wèi)星授時(shí)到路徑規(guī)劃的服務(wù)體系。本終端的開發(fā)可為BDS移動導(dǎo)航定位系統(tǒng)新的應(yīng)用場景研究及其他平臺的移動導(dǎo)航定位系統(tǒng)研究與設(shè)計(jì)等方面提供參考價(jià)值。高精度定位技術(shù)與便攜終端的有效結(jié)合將有廣闊的應(yīng)用前景,能夠?yàn)橛脩籼峁└喔咝У奈恢眯畔⒎?wù)。
參考文獻(xiàn)
[1]高峻嘉.基于Android手機(jī)平臺移動定位原型系統(tǒng)設(shè)計(jì)與應(yīng)用[D].成都:電子科技大學(xué),2012,11:4-8.
[2]強(qiáng)波.Android 系統(tǒng)中Location Service的實(shí)現(xiàn)與架構(gòu)[EB/OL].(2013-03-20)[2015-07-22].http://www.ibm.com/developerworks/cn/opensource/os-cn-android-location.
[3]劉正,陳強(qiáng).基于Android的GPS應(yīng)用中的研究與開發(fā)[J].中國西部科技,2010(32):15-16.
[4]DIMARZIO J J.Android:a programmer’s guide[M].New York:McGraw-Hill,2008:85-120.
[5]鄧亞明,楊邦榮.基于ECLIPSE圖形插件開發(fā)的研究[J].電腦開發(fā)與應(yīng)用,2009(2):19-21.
[6]NICHOLAS C.JavaScript高級程序設(shè)計(jì)[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]劉志強(qiáng),王解先.廣播星歷 SSR 改正的實(shí)時(shí)精密單點(diǎn)定位及精度分析[J].測繪科學(xué),2014,39(1):15-19.
[10]劉經(jīng)南,葛茂榮.廣域差分GPS的數(shù)據(jù)處理方法及結(jié)果分析[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—),男,陜西西安人,博士研究生,研究方向?yàn)樾l(wèi)星導(dǎo)航定位算法。
中圖分類號:P228
文獻(xiàn)標(biāo)志碼:A
文章編號:2095-4999(2016)02-0087-04
引文格式:肖廈.Android平臺下BDS增強(qiáng)定位終端的設(shè)計(jì)與實(shí)現(xiàn)[J].導(dǎo)航定位學(xué)報(bào),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.