程 鋒,郭際明,黃炳強(qiáng),阮 明,帕爾哈提·艾則孜
(1.武漢大學(xué) 測(cè)繪學(xué)院,湖北 武漢 430079;2.南寧市勘察測(cè)繪地理信息院,廣西 南寧 530022;3.新疆水利水電勘測(cè)設(shè)計(jì)研究院,新疆 烏魯木齊 830000)
基于CORS增強(qiáng)的Android終端地理信息采集系統(tǒng)原型
程 鋒1,郭際明1,黃炳強(qiáng)2,阮 明2,帕爾哈提·艾則孜3
(1.武漢大學(xué) 測(cè)繪學(xué)院,湖北 武漢 430079;2.南寧市勘察測(cè)繪地理信息院,廣西 南寧 530022;3.新疆水利水電勘測(cè)設(shè)計(jì)研究院,新疆 烏魯木齊 830000)
研究了CORS增強(qiáng)的衛(wèi)星定位技術(shù)及其在地理信息采集中的應(yīng)用,設(shè)計(jì)了基于CORS的Android移動(dòng)終端定位方案,實(shí)現(xiàn)了Android移動(dòng)終端的GPS通訊模塊、CORS系統(tǒng)數(shù)據(jù)通訊模塊、偽距差分定位模塊,建立了利用CORS系統(tǒng)獲得RTCM改正信息的亞m級(jí)精度Android移動(dòng)終端地理信息采集系統(tǒng)原型,并通過實(shí)例驗(yàn)證了其可行性。
CORS增強(qiáng);Android;地理信息采集
現(xiàn)有的移動(dòng)終端一般采用標(biāo)準(zhǔn)單點(diǎn)定位(SPP)模式,其定位精度只能達(dá)到10 m左右,不能滿足地理信息采集的亞m級(jí)精度要求,而高精度RTK模式下的定位精度雖能達(dá)到cm級(jí),但設(shè)備較復(fù)雜且價(jià)格較高。針對(duì)亞m級(jí)精度要求的地理信息采集,偽距差分技術(shù)是一種合適的選擇[1],其優(yōu)點(diǎn)是設(shè)備價(jià)格適中且使用簡(jiǎn)單。隨著我國大部分省市CORS的建設(shè)完成,CORS系統(tǒng)可為GPS用戶提供實(shí)時(shí)偽距差分(real-time differential,RTD)服務(wù),用戶無需再架設(shè)參考站,可以大大提高工作效率并節(jié)省成本[2]。
智能手機(jī)是一種重要的Android終端,定位精度在10 m左右,本文在Android手機(jī)上,增加外設(shè)GPS模塊,并使用RTD定位算法,開發(fā)了基于CORS增強(qiáng)的Android終端地理信息采集系統(tǒng)原型。
Android終端通過藍(lán)牙連接外設(shè)GPS模塊,獲取偽距觀測(cè)值,再借助網(wǎng)絡(luò)從CORS系統(tǒng)獲取差分?jǐn)?shù)據(jù),經(jīng)解算得到高精度的定位結(jié)果,其定位方案設(shè)計(jì)如圖1。
圖1 基于CORS的Android終端定位方案
2.1 Android終端和外設(shè)GPS通訊模塊
選擇具有藍(lán)牙功能的GPS模塊,可以在Android終端和接收機(jī)之間建立連接。Android終端和GPS設(shè)備進(jìn)行藍(lán)牙通訊的具體流程分為4步[3]:
1)打開藍(lán)牙設(shè)備。在程序中調(diào)用BluetoothAdapter類startActivityForResult()方法打開藍(lán)牙。
2)查找藍(lán)牙設(shè)備。調(diào)用BluetoothAdapter類中的startDiscovery()方法,將設(shè)備信息列表。找到外設(shè)GPS模塊的藍(lán)牙后,即可獲取藍(lán)牙設(shè)備的通用唯一識(shí)別碼(UUID, universally unique identifier)。
3)連接藍(lán)牙設(shè)備。Android終端通過GPS模塊藍(lán)牙的UUID與其建立Bluetoothsocket連接。
4)Android終端和GPS設(shè)備通訊。Android終端和外設(shè)GPS模塊通過Bluetoothsocket建立連接后,調(diào)用getInputStream()方法得到數(shù)據(jù)流,再使用read()方法即可獲取GPS設(shè)備發(fā)送的NMEA數(shù)據(jù)以及偽距、星歷等觀測(cè)值。
2.2 Android終端和CORS通訊模塊
Android終端需要從CORS獲取RTCM V2.3差分?jǐn)?shù)據(jù),這個(gè)過程通過NTRIP協(xié)議實(shí)現(xiàn)。Android終端和CORS通訊分以下4步[4]:
1)Android終端調(diào)用Socket和CORS建立網(wǎng)絡(luò)連接,向CORS服務(wù)器發(fā)送請(qǐng)求信息,包括用戶名、密碼和掛載點(diǎn);
2)CORS服務(wù)器對(duì)Android終端發(fā)送的用戶名和密碼進(jìn)行驗(yàn)證通過后,如需要用戶發(fā)送概略坐標(biāo),Android終端再發(fā)送NMEA GGA消息到CORS服務(wù)器;
3)CORS服務(wù)器從GGA消息中獲取用戶的概略坐標(biāo)后,會(huì)源源不斷地向Android終端發(fā)送RTCM V2.3差分?jǐn)?shù)據(jù);
4)在手機(jī)上對(duì)RTCM數(shù)據(jù)進(jìn)行解碼,具體包括字節(jié)掃描、字節(jié)滾動(dòng)、取補(bǔ)碼、跳頁、電文同步和奇偶校驗(yàn)等[5],最終得到參考站的坐標(biāo)和偽距觀測(cè)值。
2.3 偽距差分定位模塊
Android終端接收CORS系統(tǒng)發(fā)送的RTCM差分?jǐn)?shù)據(jù)和外設(shè)GPS設(shè)備采集原始觀測(cè)數(shù)據(jù)進(jìn)行差分運(yùn)算,消除衛(wèi)星軌道誤差、削弱傳播誤差、估計(jì)接收機(jī)誤差、實(shí)現(xiàn)偽距差分定位功能。偽距雙差定位的觀測(cè)方程為[6]:
式中,b、r分別代表參考站和手機(jī)流動(dòng)站;j代表參考衛(wèi)星;i代表其他共同觀測(cè)的衛(wèi)星代表參考站對(duì)衛(wèi)星i、j的偽距觀測(cè)值代表手機(jī)流動(dòng)站對(duì)衛(wèi)星i、j的偽距觀測(cè)值。
式中,(Xj,Yj,Zj)代表參考衛(wèi)星坐標(biāo);(Xi,Yi,Zi)代表其他共同觀測(cè)衛(wèi)星坐標(biāo);(Xb,Yb,Zb)代表基準(zhǔn)站坐標(biāo);(Xr,Yr,Zr)代表手機(jī)流動(dòng)站坐標(biāo)。
由誤差傳播定理得到雙差模式的權(quán)陣P:
偽距差分定位的流程如下[7]:
1)根據(jù)偽距觀測(cè)值歷元,從RTCM V2.3差分?jǐn)?shù)據(jù)中提取基準(zhǔn)站觀測(cè)值和基準(zhǔn)站坐標(biāo);
2)計(jì)算基準(zhǔn)站單點(diǎn)定位坐標(biāo),如果結(jié)果同基準(zhǔn)站坐標(biāo)差距達(dá)到閾值,則基準(zhǔn)站坐標(biāo)或基準(zhǔn)站觀測(cè)值有誤,系統(tǒng)退出;
3)以流動(dòng)站單點(diǎn)定位結(jié)果作為初值,計(jì)算設(shè)計(jì)矩陣、權(quán)矩陣、觀測(cè)值矩陣;
4)選擇高度角最大的衛(wèi)星作為參考星,并結(jié)合基準(zhǔn)站的觀測(cè)值,計(jì)算雙差觀測(cè)值矩陣、雙差設(shè)計(jì)矩陣和雙差權(quán)矩陣;
5)采用最小二乘算法,計(jì)算得到平差改正數(shù);
6)根據(jù)停止迭代的條件進(jìn)行判斷,若不滿足條件,則更新定位結(jié)果,重復(fù)第3)~5)步,直到滿足停止迭代條件。
2014-07-10,在南寧市勘察測(cè)繪地理信息院附近選擇一個(gè)固定點(diǎn),使用RTK設(shè)備測(cè)量該點(diǎn)的坐標(biāo)并作為偽距差分定位的真實(shí)坐標(biāo)。將外設(shè)Hemisphere GPS模塊的天線放置在固定點(diǎn)上,GPS的采樣率為1 s,進(jìn)行30 min左右的靜態(tài)測(cè)量。手機(jī)連接南寧CORS接收RTCM差分?jǐn)?shù)據(jù),然后進(jìn)行實(shí)時(shí)偽距差分解算。如圖2所示,偽距差分定位的N方向的誤差為0.48 m,E方向誤差為0.57 m,達(dá)到了亞m級(jí)的定位精度。
圖2 靜態(tài)定位誤差
2014-11-14,在南寧市進(jìn)行動(dòng)態(tài)測(cè)試,將Hemisphere GPS模塊和司南BDS/GPS模塊連接到同一個(gè)外置天線上,手機(jī)連接Hemisphere GPS模塊,并通過南寧CORS獲取RTCM數(shù)據(jù)進(jìn)行實(shí)時(shí)偽距差分解算。整個(gè)過程在移動(dòng)的小汽車上進(jìn)行,測(cè)試時(shí)間50 min。事后通過GrafNav軟件對(duì)司南BDS/GPS模塊的數(shù)據(jù)進(jìn)行動(dòng)態(tài)解算,由于司南模塊提供的是多頻多模數(shù)據(jù),動(dòng)態(tài)解算結(jié)果基本都是RTK固定解。將其作為真值和手機(jī)的解算結(jié)果進(jìn)行對(duì)比,如圖3所示,偽距差分定位的N方向的誤差為0.60 m,
E方向誤差為0.64 m,達(dá)到了亞m級(jí)的定位精度。
P208
B
1672-4623(2015)03-0032-02
10.3969/j.issn.1672-4623.2015.03.011
2014-12-15。
項(xiàng)目來源:國家自然科學(xué)基金資助項(xiàng)目(41474004);武漢大學(xué)精密工程與工業(yè)測(cè)量國家測(cè)繪地理信息局重點(diǎn)實(shí)驗(yàn)室開放基金資助項(xiàng)目(PF2012-13);南寧市勘察測(cè)繪地理信息院資助項(xiàng)目(KY-2013-27)。