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