楊春媚 王峰 邱文添 劉立程 李學(xué)易 劉怡俊
摘要:目前大多數(shù)Android智能移動終端主要使用單點定位技術(shù),它的定位誤差大約在7m左右或者更大。該項目基于Android 7.0及以上系統(tǒng)平臺,在智能移動終端設(shè)計專用的高精度實時動態(tài)定位軟件GNSSRTK GDUT,該軟件基于智能移動終端內(nèi)置的廉價GNSS導(dǎo)航芯片API輸出的原始測量值,配合差分參考基站和差分服務(wù)器獲取的參考基站測量的原始信息,在智能移動終端進(jìn)行雙差方法修正誤差,進(jìn)行高精度實時動態(tài)定位解算,從而達(dá)到2m以內(nèi)的定位精度。
關(guān)鍵詞:智能移動終端;RTK;解算軟件;誤差分析
中圖分類號:TN967 文獻(xiàn)標(biāo)識碼: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 背景
伴隨著科技快速發(fā)展的步伐,目前智能移動用戶數(shù)也在日益增加,2017年中國智能手機(jī)用戶已經(jīng)超越7億。如果有技術(shù)可以 為智能手機(jī)提供高精度的位置服務(wù),它一定有很大的應(yīng)用市場。目前采用Android智能移動終端進(jìn)行的服務(wù)種類也越來越多[1],如監(jiān)護(hù)人定位走失老人或者患病人員以及被拐賣兒童;企業(yè)對公司內(nèi)部的車輛分配管理、集裝箱卸裝定位、掃地機(jī)器人定位導(dǎo)航、汽車救援以及醫(yī)療急救等許多方面,所以用戶對智能終端的功能以及性能需求不斷增強(qiáng)。其中,現(xiàn)有的定位精度較高的Android移動智能終端主要分為2種:第一種是使用移動智能終端本身衛(wèi)星導(dǎo)航GNSS(Global Navigation Satellite System,全球衛(wèi)星導(dǎo)航系統(tǒng))[2]芯片,而是采用了藍(lán)牙模塊與手機(jī)進(jìn)行通訊,外接串口,輸入外置的高精度板卡和天線獲取的定位信息進(jìn)行解算,實現(xiàn)實時高精度差分定位。這樣的方法可以實現(xiàn)高精度實時動態(tài)定位,但用戶需要購買昂貴的高精度板卡;第二種是使用移動智能終端GNSS導(dǎo)航芯片API輸出的位置信息,進(jìn)行位置差分定位,定位誤差在5m左右[3]。最近谷歌的安卓系統(tǒng)開放了部分衛(wèi)星導(dǎo)航芯片的原始測量數(shù)據(jù)、它包含衛(wèi)星導(dǎo)航芯片的偽距離、多普勒頻移,和載波相位測量值。這樣的輸出為高精度定位提供了基礎(chǔ)。該項目開發(fā)的APP可以通過調(diào)取安卓API獲得這些數(shù)據(jù),再結(jié)合衛(wèi)星導(dǎo)航參考基站和差分服務(wù)器,實現(xiàn)高精度的實時動態(tài)定位。本項目采用了基于Android 7.0的谷歌平板手機(jī)進(jìn)行測試。
DGNSS (Differential Global Navigation Satellite System,差分GNSS技術(shù)) 可以很有效地消除衛(wèi)星星歷、衛(wèi)星時鐘、部分電離層和對流層的偏差,達(dá)到更精確的定位精度[4]。該文提出的系統(tǒng)為在Android7.0及以上系統(tǒng)的智能移動終端設(shè)計專用的廣東工業(yè)大學(xué)(GDUT)衛(wèi)星高精度實時動態(tài)定位軟件GNSSRTK GDUT,該軟件基于智能移動終端GNSS導(dǎo)航芯片API輸出的原始測量值,配合差分參考基站和差分服務(wù)器獲取的參考基站測量的原始信息,在智能移動終端進(jìn)行雙差方法修正誤差,進(jìn)行實時高精度差分定位解算。該系統(tǒng)結(jié)構(gòu)簡單,在硬件上,只需要搭建接收機(jī)環(huán)境,如參考基站NovAtel[5]和參考路線移動站硬件環(huán)境;在軟件上,設(shè)計專用的高精度實時動態(tài)定位軟件GNSSRTK GDUT,可以在不改變智能手機(jī)硬件條件下,首次應(yīng)用在安卓智能終端上,利用智能終端自帶的廉價衛(wèi)星導(dǎo)航模塊,不增加任何硬件,使用的時候只需要在智能移動終端安裝一個APP,配合附近的差分參考基站和差分服務(wù)器,就能實現(xiàn)實時動態(tài)定位,很大程度地提高智能移動終端的定位精度,使其定位誤差在2 米以內(nèi),具備廣泛的應(yīng)用前景。
2 差分定位原理與技術(shù)實現(xiàn)
為了獲得更好的定位精度,一般選擇可根據(jù)參考基站的差分校正量修正智能移動終端定位誤差的差分GNSS技術(shù),如采用差分GNSS技術(shù)中定位精度較高的載波相位差分技術(shù) (real time kinematic,RTK) [2]進(jìn)行實時定位,其原理如圖1所示。在RTK解算中應(yīng)用LAMBDA算法快速計算出雙差載波相位的整周模糊度[6]以及采用卡爾曼濾波算法[7]校正誤差和預(yù)測下一個歷元智能移動終端位置信息。
其中,[I(i)r]為參考基站對衛(wèi)星[i]觀測方向向量;[I(j)r]為參考基站對衛(wèi)星[j]觀測方向向量[?(i)ur]為用戶接收機(jī)[u]與參考基站接收機(jī)[r]之間對衛(wèi)星[i]的單差載波相位測量值;[?(j)ur]為用戶接收機(jī)[u]與參考基站接收機(jī)[r]之間對衛(wèi)星[j]的單差載波相位測量值;[λ]為載波波長;[r(ij)ur]為用戶與參考基站到衛(wèi)星[i]和[j]的幾何距離;衛(wèi)星[N(ij)ur]為雙差周整模糊度;[ρ(i)ur]為用戶接收機(jī)[u]與參考基站接收機(jī)[r]之間對衛(wèi)星[i]的單差偽距;[ρ(j)ur]為用戶接收機(jī)[u]與參考基站接收機(jī)[r]之間對衛(wèi)星[j]的單差偽距;[ε(ij)?,ur]為雙差載波相位測量噪聲;[ε(ij)ρ,ur]為雙差偽距測量噪聲。
平板手機(jī)智能移動終端根據(jù)自身的原始測量值和衛(wèi)星導(dǎo)航芯片模塊收到衛(wèi)星電文信號,將成功捕獲跟蹤到的GNSS衛(wèi)星的衛(wèi)星信號和自身定位解算得到的位置信息通過移動通信模塊發(fā)送至差分服務(wù)器;差分服務(wù)器根據(jù)智能移動終端的大概位置獲取該位置附近參考基站原始測量值和接收到的衛(wèi)星導(dǎo)航電文信號,并通過移動通信模塊傳輸至平板手機(jī)智能移動終端;安卓智能移動終端的專用導(dǎo)航定位軟件GNSSRTK GDUT結(jié)合自身衛(wèi)星導(dǎo)航芯片模塊的信息和移動通信模塊傳輸?shù)膮⒖蓟拘畔⑦M(jìn)行RTK解算并輸出解算結(jié)果,整個系統(tǒng)的工作流程如圖2所示。
3 高精度差分軟件的設(shè)計
該項目設(shè)計的軟件[8]是能在手機(jī)、智能穿戴或者平板等Android智能移動終端運(yùn)行的第三方應(yīng)用程序,基于Android7.0及以上系統(tǒng)平臺,在智能移動終端設(shè)計了一款可以根據(jù)自身原始測量值和GNSS導(dǎo)航芯片API輸出的原始導(dǎo)航電文信號,配合差分服務(wù)器發(fā)送的參考基站差分校正原始信息進(jìn)行RTK解算的專用的高精度實時動態(tài)定位軟件GNSSRTK GDUT。該軟件根據(jù)參考基站和移動站的相關(guān)性,修正部分衛(wèi)星星歷誤差、電離層、對流層延時以及衛(wèi)星鐘差等誤差影響,可以很大程度提高智能移動終端的定位精度。GNSSRTK GDUT軟件系統(tǒng)的工作原理如圖3所示,整個軟件可以劃分為三大部分:GNSSRTK GDUT軟件的用戶界面顯示(Activity)、GNSSRTK GDUT軟件的后臺服務(wù)(Service)以及GNSSRTK GDUT軟件的RTK解算庫數(shù)據(jù)處理部分。其中,軟件的用戶界面顯示和軟件的后臺服務(wù)主要采用廣播的通信方式。
3.1 GNSSRTK GDUT軟件的用戶界面顯示
本項目設(shè)計的GNSSRTK GDUT軟件用戶界面內(nèi)部設(shè)計主要包括四大模塊,如圖4所示,分別是界面配置模塊(settings)、GNSS數(shù)據(jù)顯示模塊(status)、軟件日模塊(log)以及地圖顯示模塊(map)。
界面配置模塊(settings)首先在GNSSRTK GDUT軟件進(jìn)行默認(rèn)的配置,而之后軟件界面根據(jù)配置進(jìn)行輸出顯示,如設(shè)置差分服務(wù)器IP、設(shè)置參考基站原生數(shù)據(jù)輸出的文件格式、設(shè)置移動站接收數(shù)據(jù)的輸出的文件格式、設(shè)置衛(wèi)星導(dǎo)航定位解算方式優(yōu)選為RTK解算、設(shè)置接收機(jī)導(dǎo)航定位數(shù)據(jù)輸出格式為經(jīng)緯高格式、設(shè)置解算結(jié)果的文件格式、設(shè)置GNSS衛(wèi)星數(shù)據(jù)記錄的格式為經(jīng)轉(zhuǎn)換的RTCM3、NIBEX、RINEX等格式[9-11]。
GNSS數(shù)據(jù)顯示模塊(status)可人為選擇右上角的raw和RTK按鈕,分別顯示參考基站和智能移動終端所捕獲使用的GNSS衛(wèi)星號和衛(wèi)星數(shù)量,顯示輸出智能移動終端定位狀態(tài)是Single、Float或者Fix,以及相應(yīng)輸出經(jīng)緯高格式的解算結(jié)果。
軟件日志模塊(log)分兩部分,上半部分是記錄輸出智能移動終端原本的解算結(jié)果,如經(jīng)度、緯度及水平高度等信息;下半部分是輸出與RTK解算相關(guān)的數(shù)據(jù),如移動站的輸入輸出數(shù)據(jù)流,參考基站的輸入輸出數(shù)據(jù)流、服務(wù)器的IP等等。
地圖模塊(map)是指GNSSRTK GDUT軟件根據(jù)軟件日志模塊(log)的RTK定位解算結(jié)果調(diào)用百度地圖,在百度地圖中實時顯示智能移動終端的位置。同時,可以調(diào)用百度地圖各種功能,如瀏覽地圖、搜索地點、查詢公交駕車線路、查看實時路況等。
3.2 GNSSRTK GDUT軟件的后臺服務(wù)
當(dāng)用戶啟動RTK解算服務(wù)后,GNSSRTK GDUT軟件后臺記錄GNSS衛(wèi)星導(dǎo)航芯片API輸出的衛(wèi)星星歷、偽距、載波相位[12-13],并將這些原始信息轉(zhuǎn)換成RTCM3、NIBEX、RINEX等國際標(biāo)準(zhǔn)格式。同時,GNSSRTK GDUT軟件后臺獲取差分服務(wù)器上的參考基站數(shù)據(jù)。根據(jù)GNSS衛(wèi)星導(dǎo)航芯片API輸出的數(shù)據(jù)以及參考基站數(shù)據(jù),后臺調(diào)用使用NDK提供的工具編譯的RTK解算庫中的函數(shù)模塊進(jìn)行RTK解算,并將衛(wèi)星相關(guān)信息及結(jié)算結(jié)果通過廣播的形式發(fā)到用戶顯示界面。
3.3 GNSSRTK GDUT軟件的RTK解算庫數(shù)據(jù)處理部分
GNSSRTK GDUT軟件后臺調(diào)用RTK計算庫函數(shù)模塊,RTK計算庫函數(shù)模塊根據(jù)GNSS衛(wèi)星導(dǎo)航芯片API輸出的衛(wèi)星星歷、載波相位、偽距等信息以及由差分服務(wù)器獲取的參考基站的差分校正信息做相應(yīng)的RTK數(shù)據(jù)處理,如應(yīng)用LAMBDA算法計算載波相位觀測值的整周模糊度、卡爾曼濾波算法校正誤差和預(yù)測下一個歷元位置信息等。
4 RTK效果與實驗結(jié)果分析
該實驗的智能移動終端為基于Android 7.0系統(tǒng)的Google nexus9 平板手機(jī)、NovAtel公司的OEM615高精度辦卡作為衛(wèi)星導(dǎo)航參考基站、Ublox公司的ublox 8t 作為參考路線的移動站;其中,靜態(tài)和動態(tài)分別實測了20米左右的短基線。
將平板手機(jī)放在廣東工業(yè)大學(xué)一號館樓頂固定點A點采集靜態(tài)數(shù)據(jù)20 分鐘,同時輸出平板手機(jī)本身單點解算的定位數(shù)據(jù)和經(jīng)GNSSRTK GDUT軟件解算的定位數(shù)據(jù) 。其中,該A點位置的實際坐標(biāo)為(23.03743731,113.39289985)。圖5是平板手機(jī)本身單點解算的定位數(shù)據(jù),經(jīng)分析,大致95%的點落在以紅色中心點為半徑6.7467m的圓內(nèi),其紅色中心點經(jīng)緯坐標(biāo)為(23.03743707, 113.39289782),距離A點0.2099m;圖6是經(jīng)GNSSRTK GDUT軟件解算的平板手機(jī)的數(shù)據(jù),經(jīng)分析,大致95%的點落在以紅色中心點為半徑0.3952m的圓內(nèi),其紅色中心點經(jīng)緯坐標(biāo)為(23.03743750, 113.39290143),距離A點0.1631m。效果圖如下:
在廣東工業(yè)大學(xué)一號館樓頂固定點A點進(jìn)行nexus9 平板手機(jī)靜態(tài)數(shù)據(jù)采集,其中,圖7是平板手機(jī)本身單點靜態(tài)采集了2小時的數(shù)據(jù),經(jīng)分析,大致95%的點落在以紅色中心點為半徑6.0806m的圓內(nèi),其紅色中心點經(jīng)緯坐標(biāo)為(23.03743688,113.39289782),距離A點0.2138m;圖8是采集24 小時經(jīng)GNSSRTK GDUT軟件解算的平板手機(jī)靜態(tài)數(shù)據(jù),其中很多的數(shù)據(jù)點是相互重合的,經(jīng)分析,大致95%的點落在以紅色中心點為半徑1.4868m的圓內(nèi),其紅色中心點經(jīng)緯坐標(biāo)為(23.03743632,113.39290130),距離A點0.1843m。
上述分析得出,經(jīng)GNSSRTK GDUT軟件解算的平板手機(jī)靜態(tài)定位精度比平板手機(jī)本身單點靜態(tài)定位精度高。
在樓頂動態(tài)測試,選一塊區(qū)域繞行一周,效果圖如圖9所示,其中紅色軌跡為平板手機(jī)本身單點的解算結(jié)果、綠色軌跡為平板手機(jī)進(jìn)行RTK的解算結(jié)果,藍(lán)色軌跡為參考路線移動站ublox 8t 的解算結(jié)果。在GNSSRTK GDUT軟件RTK解算中的大部分點的解都為Float,有少量解為Fix。
對上述每個歷元的定位數(shù)據(jù)進(jìn)行對應(yīng)的誤差分析,如圖10所示,其中紅色的曲線為平板手機(jī)單點和參考路徑ublox 8t的每個歷元定位距離曲線;綠色的曲線為平板手機(jī)RTK解算和參考路徑ublox 8t的每個歷元定位距離曲線。經(jīng)分析可知,平板手機(jī)單點和參考路徑ublox 8t的定位誤差較大且不穩(wěn)定,最高可接近6.5m左右誤差,最低可達(dá)0.5m左右誤差;平板手機(jī)RTK解算和參考路徑ublox 8t的定位誤差較小且穩(wěn)定,最高可接近1.5m左右誤差,最低可達(dá)0.8m左右誤差。
5 結(jié)束語
由實驗結(jié)果分析得出,在靜態(tài)分析中,當(dāng)平板手機(jī)采用了GNSSRTK GDUT軟件解算服務(wù)后,定位精度明顯高于平板手機(jī)本身單點定位精度;在動態(tài)分析中,當(dāng)平板手機(jī)采用了GNSSRTK GDUT軟件解算服務(wù)后,其走過的路徑也比平板手機(jī)本身單點路徑更接近參考路徑。所以,該平板手機(jī)基本滿足了正常的定位需求并且比原來手機(jī)單點定位的精度高,但由于平板手機(jī)所使用的天線[14-15]并沒有ublox 8t的天線性能高,并且晶振可靠性不高,時鐘不夠精確,所以目前并達(dá)不到ublox 8t的精度要求。如果手機(jī)的天線和載波相位的穩(wěn)定性得以提高,定位精度也會進(jìn)一步提高,亞米級定位精度是可以達(dá)到的。隨著Android 7.0及以上系統(tǒng)普及,并且現(xiàn)在的手機(jī)天線也越做越好,所以大部分的安卓系統(tǒng)都可能成為該GNSSRTK GDUT軟件載體,這是必然趨勢。
參考文獻(xiàn):
[1] 袁新強(qiáng). 淺談差分GPS(DGPS)技術(shù)的廣泛應(yīng)用[J]. 山西建筑, 2009, 35(14): 359-360.
[2] 謝鋼. 全球?qū)Ш叫l(wèi)星系統(tǒng)原理[M]. 北京: 電子工業(yè)出版社, 2013.
[3] 梅琪, 楊春媚,邱文添,等. 基于智能手機(jī)的位置差分系統(tǒng)研究[J]. 電腦知識與技術(shù), 2017, 13(19): 21-24.
[4] 高須, 知二. GNSS Precise Positioning with RTKLIB[R]. 日本東京: 東京海洋大學(xué), 2011.
[5] NovAtel Inc. OEM 6 Family Installation and Operation User Manual Rev 8[Z]. Canada, 2014.
[6] 陳樹新. GPS整周模糊度動態(tài)確定的算法及性能研究[D]. 西安: 西北工業(yè)大學(xué), 2002.
[7] Chui C K, Chen G K. Kalman Filtering with Real time Application[M]. Berlin: Springer verlag, 1987: 230-310.
[8] 陳興鵬. 手機(jī)精確定位系統(tǒng)的設(shè)計與實現(xiàn)[D]. 重慶: 重慶大學(xué), 2009.
[9] RTCM Recommended Standards for Differential NAVSTAR GPS Service[Z]. Ver2.1 Jan, 1004.
[10] 郭洪濤. 差分GPS數(shù)據(jù)通訊格式RTCM3.0及應(yīng)用發(fā)展[J]. 全球定位系統(tǒng) GNSS World of China, 2010(3).
[11] 肖遠(yuǎn)亮. NMEA-0183數(shù)據(jù)標(biāo)準(zhǔn)在GPS技術(shù)中的應(yīng)用[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] 李瑞, 郭曉棟, 吳多龍, 等. 一種層疊結(jié)構(gòu)雙頻圓極化GPS天線的設(shè)計[J].廣東工業(yè)大學(xué)學(xué)報, 2015, 28(1): 28-31.
[15] 皮姣, 劉立程, 王峰, 等. 基于陣列天線處理的GPS信號抗干擾研究[J].廣東工業(yè)大學(xué)學(xué)報, 2015, 32(4): 67-71.