- 相關(guān)推薦
定位系統(tǒng)軟件設(shè)計(jì)
定位系統(tǒng)軟件設(shè)計(jì)
【摘要】分析定位系統(tǒng)軟件IPS設(shè)計(jì)的幾個(gè)問題,包括建模,及對(duì)異常處理、通訊信號(hào)處理、繪制圖像的部分探討。
【關(guān)鍵詞】水下定位;軟件;C#
1.概述
隨著社會(huì)的發(fā)展,海洋資源顯得越來越重要。
而人類探索、開發(fā)海洋資源的主要工具之一就是水下機(jī)器人。
有纜遙控水下機(jī)器人(ROV)、無纜水下機(jī)器人(AUV)是兩大發(fā)展方向。
當(dāng)ROV潛入水下時(shí)通過電纜可以傳輸它的方位信息,但AUV沒有電纜就難以知道它在水下的方位了。
一般水下機(jī)器人下水時(shí)都會(huì)帶上一個(gè)聲信標(biāo),并通過費(fèi)倫蒂公司海洋研究設(shè)備部(Ferr-
anti O.R.E)研制的綜合超短基線聲跟蹤系統(tǒng)Trackpoint之類的設(shè)備,獲得水下目標(biāo)相對(duì)母船的位置。
如果把這個(gè)信息輸入到計(jì)算機(jī),并利用GPS獲得母船的經(jīng)緯度,就可以計(jì)算出水下目標(biāo)的經(jīng)緯度。
Integrated Positioning System(IPS)是創(chuàng)新水下技術(shù)有限公司(Creative Underwater Technology Inc.)開發(fā)的一套軟件,就可以進(jìn)行這樣的計(jì)算。
但I(xiàn)PS是一個(gè)獨(dú)立的程序,使用時(shí)需要占用一臺(tái)主機(jī),并且購(gòu)買IPS的價(jià)格不菲。
如果研究自主的類似IPS的定位系統(tǒng)(MyIPS),不僅節(jié)約采購(gòu)經(jīng)費(fèi),還可以把程序嵌入到AUV的水面監(jiān)控系統(tǒng)中。
MyIPS綜合了多門學(xué)科,主要用到計(jì)算機(jī)圖像、通訊、信號(hào)處理、大地測(cè)量等。
2.系統(tǒng)結(jié)構(gòu)
2.1 硬件
工控機(jī)一臺(tái),有25針和9針RS-232串口各一個(gè);
4410D型TrackpointⅡ,帶發(fā)聲器,應(yīng)答器;
NovAtel公司OEM4型GPS卡。
2.2 系統(tǒng)結(jié)構(gòu)
MyIPS利用4410D型TrackpointⅡ獲取水下目標(biāo)的相對(duì)位置,用GPS卡獲得母船的大地坐標(biāo)。
然后計(jì)算出水下目標(biāo)的大地坐標(biāo)。
其結(jié)構(gòu)如圖1所示:
3.數(shù)學(xué)模型
從系統(tǒng)結(jié)構(gòu)圖可以看到,MyIPS有兩個(gè)數(shù)據(jù)源:TrackpointⅡ數(shù)據(jù)和GPS數(shù)據(jù)。
MyIPS的關(guān)鍵就是從這兩組數(shù)據(jù)計(jì)算出所需。
如果歸結(jié)成數(shù)學(xué)問題就是已知橢球面上一點(diǎn)的經(jīng)度緯度(母船的經(jīng)度緯度,由GPS獲得),橢球面上另外一點(diǎn)至該點(diǎn)的大地線長(zhǎng)度和大地線的方位角(水下目標(biāo)相對(duì)母船位置,由TrackpointⅡ獲得),推求另外一點(diǎn)的經(jīng)度緯度。
這是高等大地測(cè)量學(xué)中的大地主題正解問題。
如圖2所示:橢球面極三角形PAB,P為極點(diǎn),A點(diǎn)為橢球面上一已知點(diǎn),大地線AB的大地方位角A1.2亦為已知值,且已知A及B兩點(diǎn)間的大地長(zhǎng)度S1。
求B點(diǎn)的經(jīng)度緯度。
對(duì)這個(gè)問題我國(guó)著名大地測(cè)量專家張志新曾于六○年代提出過計(jì)算公式,見參考文獻(xiàn)[1、2]。
這里根據(jù)實(shí)際的需求情況,在允許的誤差范圍內(nèi)進(jìn)行簡(jiǎn)化,以便于計(jì)算。
當(dāng)聲信標(biāo)的類型為TRANSPONDER或RESPON-DER4410D型TrackpointⅡ的絕對(duì)精度如下表所示:
實(shí)際上4410D型TrackpointⅡ的有效距離為2km,當(dāng)距離為2km時(shí)TrackpointⅡ的誤差至少為2km×0.5%=10m。
參考“國(guó)際橢球”的參數(shù),取地球的曲率半徑=6,371,228米,在以為半徑的球體中,弦長(zhǎng)L=2km對(duì)應(yīng)的弧長(zhǎng)S為:
S=2×arcsin=2×6371228×acsin ()≈2000.0188m
S-L=0.0188<<10m.
S和L的值相差不大,遠(yuǎn)小于Trackpoint的10m誤差,因此就把TrackpointⅡ測(cè)量的距離當(dāng)做兩點(diǎn)間的大地線長(zhǎng)。
同時(shí)以平面坐標(biāo)系來計(jì)算B點(diǎn)的坐標(biāo)。
同樣采用“國(guó)際橢球”的參數(shù)。
如圖3所示,A點(diǎn)為母船位置,用GPS獲取該點(diǎn)的經(jīng)緯度,B點(diǎn)為水下目標(biāo)的位置。
當(dāng)Trackpoint系統(tǒng)連接上COMPASS后,將COMPASS/RS232 DATA設(shè)置為以正北為基準(zhǔn),Trackpoint輸出的BRG(BEARING,目標(biāo)方向)就是∠NAB,X就是△x,Y就是△y。
則:
緯度差為:360°×;
經(jīng)度差為:360°×。
若COMPASS/RS232 DATA沒被設(shè)置為以正北為基準(zhǔn),則∠NAB=HDG(HEADING,母船方向)+BRG(BEARING,目標(biāo)方向),又因?yàn)锳B=S.R.(SLANT RANGE,斜距),則△x=S.R*sin∠NAB,△y=S.R*cos∠NAB。
用A點(diǎn)(母船)的經(jīng)緯度相應(yīng)加上經(jīng)度緯度差就得到B點(diǎn)(目標(biāo))的經(jīng)緯度。
在距離不遠(yuǎn)的情況下,這樣計(jì)算的精度就可以滿足要求了。
4.軟件設(shè)計(jì)
4.1 設(shè)計(jì)概要
本人使用的是Visual C#.NET,所以以下舉例是基于C#語言。
MyIPS具有可視化的界面,有便捷的操作菜單和工具條,其界面如圖4所示:
MyIPS不僅以數(shù)字的形式反映數(shù)據(jù),還可以圖形的方式直觀的反映出,母船與水下目標(biāo)的位置關(guān)系。
程序簡(jiǎn)要流程圖如圖5所示:
4.2 主要技術(shù)及算法
①異常處理
當(dāng)要從COM1和COM2讀取數(shù)據(jù),及試圖和數(shù)據(jù)庫連接時(shí)可能出現(xiàn)異常情況。
因此使用try-catch 語句對(duì)可能出現(xiàn)的異常進(jìn)行處理,以增強(qiáng)軟件的健壯性。
實(shí)際使用中COM端口可能會(huì)被占用或其它故障,以致無法使用。
將打開COM端口的命令放到try語句塊中,則當(dāng)出現(xiàn)以上可能時(shí),程序轉(zhuǎn)到catch語句,執(zhí)行異常情況下的處理程序。
、跀(shù)據(jù)處理
Trackpoint輸出的數(shù)據(jù)格式有九種,而GPS輸出的數(shù)據(jù)也有好幾種。
以GPS的GPGGA格式數(shù)據(jù)為例: $GPGGA,082631.00,3041.4634,N,11118.4636,E,1,06,1.5,128.29,M,-24.23,M,,*46
這是一條完整的GPGGA格式的GPS數(shù)據(jù),可以看到數(shù)據(jù)的開頭有一個(gè)標(biāo)識(shí)符號(hào)$,當(dāng)從緩沖區(qū)讀取數(shù)據(jù)時(shí),讀到$字符就表示后面的數(shù)據(jù)就是要提取的有用信息。
對(duì)于Trackpoint輸出的NMEA ORE、NMEA TTM格式的數(shù)據(jù)也是以“$”符號(hào)作為開始標(biāo)志。
NCSC格式以“J”符號(hào)作為開始標(biāo)志,其它格式的數(shù)據(jù)雖然沒有特殊的符號(hào)作為開始標(biāo)志,但它們的開頭都包含時(shí)間信息如“16:55:32”,但讀到相隔兩個(gè)字符長(zhǎng)度的“:”時(shí),就表示一條數(shù)據(jù)開始了。
數(shù)據(jù)處理的代碼如下:
取出各有效字段后,還要將其類型由字符串型轉(zhuǎn)化成浮點(diǎn)小數(shù)型,再進(jìn)行數(shù)據(jù)計(jì)算,并把結(jié)果存儲(chǔ)到數(shù)據(jù)庫文件中去。
③繪圖
假設(shè)以母船為中心,在800*600的矩形中心畫上船的標(biāo)記,同時(shí)定義一個(gè)變量Tick作為放大倍數(shù)。
母船的位置在屏幕上以像素表示為點(diǎn)(400,300),經(jīng)度和緯度差的數(shù)值很小,在距離近時(shí)可能只有0.0001°的差別,因此需要將經(jīng)緯度差乘上Tick,比如:當(dāng)Tick=10000時(shí),則經(jīng)緯度每變化0.0001°,在屏幕上的變化就是一個(gè)像素的位移。
屏幕的像素是以左上角為原點(diǎn)的,如果按上北下南左西右東的方向在屏幕上建立坐標(biāo)系,則目標(biāo)B點(diǎn)的像素坐標(biāo)表示成如下(在東北半球時(shí)):
=+Tick×△x(=400,為A點(diǎn)像素的X坐標(biāo));
=-Tick×△y(=300,為A點(diǎn)像素的Y坐標(biāo));
當(dāng)在其它半球時(shí)需相應(yīng)變換正負(fù)號(hào)。
若定義兩個(gè)變量WE和NS,當(dāng)在東半球時(shí)WE=1,在西半球時(shí)WE=-1;
當(dāng)在南半球時(shí)NS=1,在北半球時(shí)NS=-1;
修改上面公式成:
=+WE×NS×Tick×△x(=400,為A點(diǎn)像素的X坐標(biāo));
=+WE×NS×Tick×△y(=300,為A點(diǎn)像素的Y坐標(biāo));
WE和NS的取值可由GPS數(shù)據(jù)判斷。
如:
$GPGGA,082631.00,3041.4634,N,11118.4636,E,1,06,1.5,128.29,M,-24.23,M,,*46
通過數(shù)據(jù)分析函數(shù)可以提出第3和第4個(gè)逗號(hào)之間的字符“N”,表示在北半球,所以NS=-1,同樣“E”表示在東半球,所以WE=1。
另外,視圖的放大和縮小按鈕可以改變Tick的大小,然后刷新視圖,這樣可以滿足目標(biāo)和母船距離遠(yuǎn)近不同時(shí)在屏幕上的反映。
5.結(jié)論和建議
從上述可以看出,設(shè)計(jì)IPS的主要技術(shù)并不復(fù)雜,但實(shí)際中因?yàn)門rackpointⅡ和GPS發(fā)送數(shù)據(jù)的速率不同,要想更快的分析數(shù)據(jù),還必須研究?jī)?yōu)化的算法。
為了提高在遠(yuǎn)距離時(shí)計(jì)算結(jié)果的精度,還要對(duì)數(shù)學(xué)模型進(jìn)行改進(jìn),添加修正參數(shù)。
參考文獻(xiàn)
[1]張志新.大地坐標(biāo)計(jì)算公式[J].測(cè)繪通報(bào),1956,2(4).
[2]張志新.遠(yuǎn)距離大地坐標(biāo)正反解公式[J].測(cè)量制圖學(xué)報(bào),1958,2(3).
[3]OPERATION AND MAINTENANCE MANUAL FOR THE ORE MODEL 4410D-01 TRACKPOINT Ⅱ Plus SYSTEM.
【定位系統(tǒng)軟件設(shè)計(jì)】相關(guān)文章:
個(gè)人禮儀形象的定位10-14
定位好自己的角色10-06
簡(jiǎn)歷的重點(diǎn)定位12-09
求職個(gè)人簡(jiǎn)歷定位12-09
確定位置教學(xué)教案10-08
市場(chǎng)定位策劃書03-05
計(jì)算機(jī)病毒游戲型軟件設(shè)計(jì)論文10-09
論“排除合理懷疑”的法律定位10-06