文獻(xiàn)標(biāo)識碼: A
DOI:10.16157/j.issn.0258-7998.174959
中文引用格式: 袁正午,何格格. 一種高精度的GPS-RTK定位技術(shù)設(shè)計與實現(xiàn)[J].電子技術(shù)應(yīng)用,2018,44(6):63-67.
英文引用格式: Yuan Zhengwu,He Gege. A high precision location technology design and implementation of GPS-RTK[J]. App-
lication of Electronic Technique,2018,44(6):63-67.
0 引言
RTK定位技術(shù)是利用全球衛(wèi)星導(dǎo)航系統(tǒng)(Global Navigation Satellite System,GNSS)進(jìn)行實時動態(tài)相對定位的技術(shù),由于RTK定位技術(shù)具有實時性好、位置精度高等優(yōu)點,是地形測圖、施工放樣等領(lǐng)域中不可缺少的設(shè)備[1]。
傳統(tǒng)的RTK定位技術(shù)在作業(yè)時,首先需要手動架設(shè)基準(zhǔn)站,然后通過無線數(shù)傳電臺以數(shù)據(jù)鏈的形式在基準(zhǔn)站與流動站之間傳輸差分?jǐn)?shù)據(jù)[2]。但是,有效作業(yè)距離一般只有10 km左右,同時在作業(yè)時還容易受到樹木、建筑物的遮擋,導(dǎo)致數(shù)據(jù)傳輸不穩(wěn)定,使定位精度降低。
隨著國家信息化程度的提高及計算機(jī)網(wǎng)絡(luò)和通信技術(shù)的飛速發(fā)展,許多城市建立了連續(xù)運行參考站(Continusly Operating Reference Station,CORS)系統(tǒng)[3]。本文針對傳統(tǒng)數(shù)據(jù)傳輸方式的不足之處,結(jié)合CORS系統(tǒng)實現(xiàn)了一種高精度的RTK定位技術(shù)。該技術(shù)采用3G網(wǎng)絡(luò)通信技術(shù)建立數(shù)據(jù)傳輸鏈路,這樣數(shù)據(jù)傳輸更加穩(wěn)定可靠,傳輸距離更遠(yuǎn),同時網(wǎng)絡(luò)設(shè)備功耗低、結(jié)構(gòu)小巧,方便操作。
1 RTK定位技術(shù)的原理
RTK技術(shù)基本原理是建立在實時處理的兩個測站的載波相位基礎(chǔ)上的,首先基準(zhǔn)站通過數(shù)據(jù)鏈實時將觀測到的載波相位測量值和自身的坐標(biāo)信息一起發(fā)送給移動站。移動站接收GPS衛(wèi)星信號的載波相位和來自基準(zhǔn)站的載波相位測量值,利用基準(zhǔn)站與流動站之間觀測誤差的空間相關(guān)性,通過差分的方式減小流動站觀測數(shù)據(jù)中的大部分誤差,組成相位差分觀測值進(jìn)行實時處理,解算出觀測點的坐標(biāo)[4]。RTK定位技術(shù)的原理框圖如圖1所示。
2 系統(tǒng)結(jié)構(gòu)設(shè)計與功能概述
根據(jù)RTK終端系統(tǒng)的設(shè)計需求,系統(tǒng)結(jié)構(gòu)中的3個核心模塊分別是:微處理器模塊、GPS模塊、3G網(wǎng)絡(luò)模塊。電源模塊主要是為系統(tǒng)各模塊提供安全可靠的電源保障。各個模塊的連接如圖2所示。
2.1 S5PV210微處理器
本系統(tǒng)選用了三星公司推出的S5PV210應(yīng)用處理器[5],S5PV210采用了ARM CortexTM-A8內(nèi)核,ARM V7指令集主頻可達(dá)1 GHz,具有64/32位內(nèi)部總線,32/32 KB的數(shù)據(jù)、指令一級緩存,512 KB的二級緩存,可以實現(xiàn)2 000 DMIPS(每秒2億條指令集)的高性能運算能力。終端機(jī)使用了友善之臂公司的Tiny210核心板,其搭載了S5PV210處理器,同時具有256 MB容量的DRAM、1 GB的NAND Flash存儲芯片,其豐富的外設(shè)接口便于進(jìn)行數(shù)據(jù)處理和人機(jī)之間命令交互。
2.2 GPS模塊
本系統(tǒng)的GPS模塊采用了美國天寶公司的高性能BD970板卡,它具有原始數(shù)據(jù)質(zhì)量好、定位精度高等特點[6],主要用于接收衛(wèi)星信號并輸出接收到的衛(wèi)星星歷數(shù)據(jù)和觀測數(shù)據(jù),能夠滿足用戶對多系統(tǒng)多頻點數(shù)據(jù)處理的要求。其熱啟動時間小于8 s, 重捕時間小于0.1 s,功耗僅215 mW,結(jié)構(gòu)小巧,性能優(yōu)良,非常適合應(yīng)用在對功耗、體積要求較高的嵌入式系統(tǒng)中。
2.3 3G網(wǎng)絡(luò)模塊
數(shù)據(jù)鏈系統(tǒng)也稱為數(shù)據(jù)傳輸系統(tǒng),是實現(xiàn)RTK定位技術(shù)的關(guān)鍵部分。其主要的功能是完成RTK終端機(jī)與CORS中心的數(shù)據(jù)交互?,F(xiàn)在移動互聯(lián)網(wǎng)覆蓋面積十分廣泛,本文采用華為公司的MU709網(wǎng)絡(luò)模塊,基于低功耗設(shè)計思想,睡眠模式電流僅為1 mA,且內(nèi)部整合TCP/IP協(xié)議和擴(kuò)展TCP/IP協(xié)議,用AT命令容易操作[7]。通過在網(wǎng)絡(luò)模塊中安裝SIM卡,利用3G網(wǎng)絡(luò)通信技術(shù)實現(xiàn)與CORS中心的無線通信。
3 軟件系統(tǒng)設(shè)計
該系統(tǒng)設(shè)計的功能是用3G網(wǎng)絡(luò)傳輸技術(shù)代替?zhèn)鹘y(tǒng)的無線電傳輸技術(shù),保證數(shù)據(jù)穩(wěn)定、遠(yuǎn)距離的傳輸,提高定位精度。本系統(tǒng)運行于高穩(wěn)定性和實時性的嵌入式 Linux系統(tǒng)[8],主要包括:主控制程序、GPS數(shù)據(jù)處理軟件設(shè)計、差分?jǐn)?shù)據(jù)處理軟件設(shè)計、數(shù)據(jù)交互軟件設(shè)計。
3.1 主控制程序
系統(tǒng)上電啟動后開始執(zhí)行主控制程序,首先進(jìn)行系統(tǒng)初始化。GPS模塊初始化主要是對串口UART0進(jìn)行初始化,即設(shè)置UART0的傳輸幀格式和波特率。根據(jù) BD970板卡硬件特性,設(shè)置UART0波特率為11 520 bit/s, 8個數(shù)據(jù)位,無奇偶校驗位,1個停止位。如果接收到GPS數(shù)據(jù),則進(jìn)行數(shù)據(jù)處理;否者,重新對串口進(jìn)行設(shè)置并接收數(shù)據(jù)。
在Linux系統(tǒng)啟動時自動讀取腳本程序,啟動3G網(wǎng)絡(luò)模塊,執(zhí)行ppp撥號上網(wǎng)連接CROS系統(tǒng)中心服務(wù)器,此時需要驗證用戶信息的賬號和密碼,成功后即可以建立連接,否則重新進(jìn)行下一次的連接。初始化完成后進(jìn)入下一步的差分?jǐn)?shù)據(jù)處理部分。主控制程序的流程圖如圖3所示。
3.2 GPS數(shù)據(jù)處理模塊
該模塊的目的是實現(xiàn)定位信息解析。BD970板卡按照NEMA-0813通信標(biāo)準(zhǔn)格式輸出定位信息,輸出的數(shù)據(jù)采用ASCII碼,語句的分類含有$GPGGA、$GPGSA、$GPGSV等。其中GPGGA 語句是使用最廣的數(shù)據(jù)之一,包括17個字段:語句標(biāo)識頭、世界時間、緯度、緯度半球、經(jīng)度、經(jīng)度半球等,結(jié)束標(biāo)記為回車符和換行符,分別用14個逗號進(jìn)行分隔[9]。該系統(tǒng)主要采用的是GPGGA語句,它包含了系統(tǒng)定位所需要的信息,所以,只需要讀取GPGGA語句即可。
微處理器通過串口接收BD970的原始數(shù)據(jù),如果保存到緩沖區(qū)中的數(shù)據(jù)以“GPGGA”開頭并且以“\r\n”結(jié)尾,同時數(shù)據(jù)校驗位正確,則可以判斷為一條完整有效的數(shù)據(jù)信息,然后進(jìn)行下一步的數(shù)據(jù)解析處理。如果不符合上述規(guī)定,判斷為一條無效的數(shù)據(jù)則丟棄,并繼續(xù)對接收到的數(shù)據(jù)進(jìn)行判斷。GPS數(shù)據(jù)處理流程圖如圖4所示。
3.3 差分?jǐn)?shù)據(jù)處理模塊
Ntrip(Networked Transport of RTCM via Internet Protocal)是目前CORS系統(tǒng)主要的數(shù)據(jù)傳輸協(xié)議,可以在因特網(wǎng)上傳輸RTK數(shù)據(jù)。它是基于HTTP協(xié)議的通用協(xié)議,也是建立在網(wǎng)絡(luò)TCP/IP協(xié)議基礎(chǔ)上的協(xié)議,HTTP對象為GPS數(shù)據(jù)流[3]。
Ntrip網(wǎng)絡(luò)主要由3個部分組成:客戶端、服務(wù)器和數(shù)據(jù)處理中心。這里的Ntrip客戶和Ntrip服務(wù)器都只相當(dāng)于HTTP連接中的客戶端,Ntrip處理中心才是響應(yīng)它們的服務(wù)處理器。在CORS網(wǎng)絡(luò)中,Ntrip客戶端是指收到RTK數(shù)據(jù)流的流動站設(shè)備,使用Ntrip處理中心分配的IP地址通過互聯(lián)網(wǎng)連接到Ntrip處理中心。差分?jǐn)?shù)據(jù)處理流程圖如圖5所示,首先用戶需要發(fā)送賬號和密碼到控制中心進(jìn)行用戶接入,流動站可以請求到差分?jǐn)?shù)據(jù)。然后從緩沖區(qū)中解析差分?jǐn)?shù)據(jù)是否為有效的數(shù)據(jù),并判斷校驗位是否正確。如果符合要求則將定位信息保存起來,否者,重新向CORS中心請求差分?jǐn)?shù)據(jù)。
3.4 數(shù)據(jù)交互模塊
本部分主要使用了藍(lán)牙通信技術(shù)來實現(xiàn)RTK終端機(jī)與用戶之間的數(shù)據(jù)交互[10]:終端機(jī)實時向用戶發(fā)送最終的定位結(jié)果供用戶查閱使用,用戶也可以通過藍(lán)牙給終端機(jī)發(fā)送操作指令。
由于位板卡解算輸出定位結(jié)果的速率和藍(lán)牙的數(shù)據(jù)輸出速率是不一樣的,為了避免數(shù)據(jù)的覆蓋和丟失,設(shè)計了一個多線程模型,并結(jié)合帶鎖的循環(huán)隊列進(jìn)行數(shù)據(jù)緩存。當(dāng)有數(shù)據(jù)到來時,寫線程就在隊列尾部獲得互斥鎖并將數(shù)據(jù)寫入緩存,當(dāng)一條完整的定位數(shù)結(jié)寫完后立即釋放互斥鎖。此時讀線程會在隊列頭部獲得互斥鎖,并讀取一條完整的數(shù)據(jù),然后通過藍(lán)牙發(fā)送出去并釋放互斥鎖。數(shù)據(jù)交互流程圖如圖6所示。
4 測試結(jié)果分析
為了測試終端機(jī)在實際應(yīng)用環(huán)境中的可用性和穩(wěn)定性,選取重慶郵電大學(xué)逸夫科技樓作為測試場地。測試分為無遮擋測試和有遮擋測試兩種情況。將終端機(jī)放置在空曠地帶工作為無遮擋測試,將在逸夫科技樓頂進(jìn)行測試。將終端機(jī)放置在逸夫科技樓前的大樹旁邊工作為有遮擋測試。在室外進(jìn)行定位測量并保存最終的定位數(shù)據(jù),然后在上位機(jī)中對定位數(shù)據(jù)精度進(jìn)行分析。為了保證每次測試的獨立性,測試結(jié)束后進(jìn)行關(guān)機(jī)操作,然后開機(jī)重新啟動,再開始下一次測試。
4.1 達(dá)到固定解時間分析
RTK終端機(jī)的定位結(jié)果達(dá)到固定解時的輸出數(shù)據(jù)才是有效的,因此達(dá)到固定解需要的時間是衡量終端機(jī)性能的一個重要指標(biāo)。最終定位結(jié)果中的第6個字段表示GPS狀態(tài),“0”表示未定位,“4”表示達(dá)到固定解,“5”表示達(dá)到浮點解。
終端機(jī)觀測到一組GPS數(shù)據(jù)對應(yīng)的時刻稱為歷元,大約每隔1 s可以觀測到一組GPS數(shù)據(jù),實際測量過程中以觀測到的歷元數(shù)來表示終端機(jī)的工作時長。圖7表示在沒有遮擋的情況下達(dá)到固定解所需要的時間,終端機(jī)可以快速由浮點解狀態(tài)達(dá)到固定解狀態(tài)輸出有效數(shù)據(jù),并一直是固定解狀態(tài)。圖8表示有遮擋的情況下達(dá)到固定解所需要的時間,終端機(jī)會在浮點解狀態(tài)持續(xù)一段時間(10 s左右),然后達(dá)到固定解狀態(tài)輸出有效數(shù)據(jù),并一直是固定解狀態(tài)。結(jié)果表明在衛(wèi)星信號和數(shù)據(jù)傳輸鏈有遮擋情況下,終端機(jī)也能在較短的時間內(nèi)達(dá)到固定解,滿足實際需求。
4.2 定位精度分析
在定位精度測試時,需要分析接收機(jī)達(dá)到固定解后輸出的定位數(shù)據(jù)。將每組數(shù)據(jù)所有固定解的平均值作為位置的理論值,然后分別計算了每組數(shù)據(jù)的定位結(jié)果與理論值的偏差值和最大偏差值,將該數(shù)據(jù)用MATLAB分析后,得到如圖9和圖10所示的結(jié)果。
在不同的環(huán)境中分別測試了3組數(shù)據(jù),每組數(shù)據(jù)的采集時間約5 min(約300個歷元)。將無遮擋的測試結(jié)果通過表1統(tǒng)計分析,將有遮擋的測試結(jié)果通過表2統(tǒng)計分析。
通過分析表1和表2中的偏差均值可以看出在兩種情況下的整體定位結(jié)果比較穩(wěn)定,誤差十分接近,均在1 cm以內(nèi),在允許的誤差范圍內(nèi)。
通過分析表1中的最大偏差值可知,在沒有遮擋時出現(xiàn)的波動較小,定位精度較高,其中最大偏差值約為2 cm,但大部分歷元的誤差都為厘米級水平,在允許的誤差范圍內(nèi)。通過分析表2中的最大偏差值可知,在有遮擋時,由于會對接收的衛(wèi)星信號產(chǎn)生影響,部分時間出現(xiàn)差分?jǐn)?shù)據(jù)傳輸受到影響,導(dǎo)致定位誤差出現(xiàn)一定的波動,因此在測試的過程中有時會出現(xiàn)較大的波動,其中最大偏差值約為2.9 cm,波動幅度在測試精度允許范圍以內(nèi)。
總體而言,無論是沒有遮擋的環(huán)境還是有遮擋的環(huán)境,在測試的過程中某個歷元的定位結(jié)果中會出現(xiàn)一定的波動,但是整體的實驗結(jié)果表明,基于BD970板卡的RTK定位系統(tǒng)可以達(dá)到厘米級的定位精度,而大地測量要求位置精度也是厘米級。
5 結(jié)論
針對無線電傳輸差分?jǐn)?shù)據(jù)時容易受到地理環(huán)境、有效距離、氣象等因素影響的問題,本文基于Linux嵌入式平臺實現(xiàn)了一種實用的RTK技術(shù),將GPS定位技術(shù)與3G無線通信技術(shù)相結(jié)合開發(fā)完成了RTK終端機(jī)系統(tǒng),增強(qiáng)了差分?jǐn)?shù)據(jù)傳輸?shù)目煽啃院头€(wěn)定性,提高了定位精度。利用藍(lán)牙通信技術(shù)提供了良好的用戶體驗,實現(xiàn)了可視化功能。采用高性能嵌入式技術(shù)實現(xiàn)了小型化、集成化,提高了系統(tǒng)的智能化程度,方便操作。通過對不同環(huán)境的測試分析,結(jié)果表明本文實現(xiàn)的RTK定位系統(tǒng)是可行的,在沒有遮擋和有遮擋的應(yīng)用場景下均具有較高的穩(wěn)定性,并且能夠提供厘米級的高精度定位結(jié)果,可以滿足大地測量等實際應(yīng)用的需要。該設(shè)備體積較小、功耗低,便于安裝在小型無人機(jī)等載體上進(jìn)行定位導(dǎo)航,具有廣泛的應(yīng)用前景。
參考文獻(xiàn)
[1] 鄒璇,李宗楠,唐衛(wèi)明,等.一種適用于大規(guī)模用戶的非差網(wǎng)絡(luò)RTK服務(wù)新方法[J].武漢大學(xué)學(xué)報(信息科學(xué)版),2015,40(9):1242-1246.
[2] 張國利,時小飛,楊開偉,等.網(wǎng)絡(luò)RTK支持下的無驗潮水深測量方法及其應(yīng)用[J].測繪通報,2016(12):140-141.
[3] 秦長才,郭輝.基于CORS系統(tǒng)的網(wǎng)絡(luò)RTK技術(shù)在土地勘測定界中的應(yīng)用[J].測繪與空間地理信息,2015(3):102-103.
[4] 毛琪,潘樹國,高旺,等.RTK終端實時動態(tài)檢測技術(shù)研究[J].測繪工程,2015(3):47-52.
[5] 張毅,許勇.基于ARM的商用車信息系統(tǒng)的設(shè)計[J].電子技術(shù)應(yīng)用,2016,42(5):57-59.
[6] 鄒進(jìn)貴,李勇.GNSS天線陣列接收機(jī)數(shù)據(jù)采集與解碼的實現(xiàn)及應(yīng)用[J].測繪通報,2015(8):1-3.
[7] 程行,岳銳,金曉龍.基于ARM和3G的船舶燃料管理系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2013,39(10):22-24.
[8] 勇婭詢,劉維亭,劉懷芝,等.基于ARM9和Linux的風(fēng)暴潮監(jiān)控系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(7):30-32.
[9] 許金鋼,常計東,劉思聰,等.基于GPS定位的自動引導(dǎo)小車設(shè)計[J].電子測試,2016(19):7-8.
[10] 甘廣輝,童蕾,陳超敏.基于低功耗藍(lán)牙網(wǎng)絡(luò)的家用胎兒監(jiān)護(hù)系統(tǒng)設(shè)計[J].電子技術(shù)應(yīng)用,2015,41(8):34-36.
作者信息:
袁正午,何格格
(重慶郵電大學(xué) 移動通信技術(shù)重慶市重點實驗室,重慶400065)