于茂升,韓雷,宋大雷
(1.中國海洋大學信息科學與工程學院,山東青島266100;2.中國海洋大學工程學院,山東青島266100)
?
水下滑翔機路徑顯示與規劃系統的設計與實現
于茂升1,韓雷1,宋大雷2
(1.中國海洋大學信息科學與工程學院,山東青島266100;2.中國海洋大學工程學院,山東青島266100)
摘要:本文提出了一個基于GIS引擎的水下滑翔機路徑顯示與規劃系統,介紹了經緯線柵格動態繪算法和航跡顯示與規劃算法。對實現本系統所需要的GIS引擎、shapefj1e文件結構以及墨卡托投影等也做了介紹,并給出了系統所支持的功能和操作方式。試驗結果表明,該系統設計合理,運行穩定,使用方便。
關鍵詞:路徑顯示與規劃;水下滑翔機;GIS;經緯線繪制
水下滑翔機[1]因為其在海水中的可操作性、自主性以及良好的持久力,引起了海洋學家們的廣泛關注,近年來一直研究熱點問題[2]。水下滑翔機在控制浮力的過程中利用浮力的變化、水動力外型和機翼來產生水平的移動。這種推進方式能量消耗很低,能夠在沒有人工干預的情況下在水中長時間作業。
因為這些顯著的特點,水下滑翔機已成為海洋觀測系統[3]中必不可少的組成部分。目前,國內外的學者已在機械結構、內部控制算法[4-5]、多滑翔機協同組網[6-7]等方面進行了深入的研究,S1ocum[8]、Spray[9]、SeaG1jder[10]等是國際上使用較多的水下滑翔機。航跡規劃和顯示功能在水下滑翔機的實驗[11]和使用過程中有著重要作用,航跡規劃能夠更有效的使用滑翔機,縮短滑翔機水中作業時間,降低能量消耗[12]。航跡顯示功能可以實時的反饋滑翔機的運行狀態,從而實時的糾正水下滑翔機的航向。為了提供給水下滑翔機用戶一個更加友好、更加便利、更加科學的控制系統,本文設計和實現了水下滑翔機路徑可視化和規劃系統,使得用戶可以更加直觀地看到水下滑翔機的航跡,更好地操控水下滑翔機。
該系統在實現后,應當具備以下功能:
1)顯示當前運作水域的大致地理信息,例如經緯度信息,支持經緯線柵格的動態繪制。
2)能夠對地圖進行實時的縮放和移動。
3)能夠支持多臺水下滑翔機的路徑顯示。
4)顯示岸站位置。
5)支持可視化規劃和手工規劃兩種水下滑翔機的路徑規劃方式。
6)提供路徑的長度信息,允許用戶自主測量兩地點的直線距離。
7)支持用戶自定義水下滑翔機的數據文件。
8)系統應該具有自動檢測、操作提示、錯誤提示等功能,具備對用戶友好的界面和系統穩定性。

圖1 水下滑翔機系統示意圖
因為水下滑翔機路徑顯示與規劃系統需要顯示一些地理信息,所以將該系統構建在GIS(Geographjc Informatjon System)庫之上,通過GIS引擎來表達地理信息。地理信息系統經過幾十年的發展,出現了很多成熟的GIS組件,像MapInfo公司的MapX,GEOCONCEPT Group公司的Geoconcept,ERSI公司的ArcGIS。還有一些開源的GIS組件像Geotoo1s、MapWjndow、SharpMap等等。上述GIS組件功能強大,都能夠實現GIS的所有功能,但是上面一些商業GIS價格比較昂貴,而且其GIS組件的源碼不公開,對高校師生的研究學習來說是很不方便的,所以選擇的開源的GIS組件。開源軟件可以被自由使用,其源代碼完全對外開發,任何人都可以得到并修改這些源代碼。現在很多開源項目取得了巨大的成功,像Ljnux操作系統,MySQL數據庫等等,正是因為這些開源軟件的廣泛傳播,節省了軟件開發許多的時間和成本,而且因為開源軟件是自由的,所以其可拓展性強,靈活性好,支持用戶自定義,這些特性對水下滑翔機路徑顯示與規劃系統來說都是至關重要的。
MapWjndow是開源免費的GIS控件[13]。MapWjndow提供了可定制的應用程序和ocx控件,功能豐富,界面簡潔,擴展性好。面向Wjndows平臺,采用MPL(Mozj11a Pub1jc Ljcense)開源協議。因為水下滑翔機的上位機軟件是基于wjndow、使用MFC語言編寫的,為了保持管理軟件運行平臺的一致性,選擇了面向wjndow平臺的MapWjndow開源GIS組件。利用MapWjndow讀取shapefj1e文件,在Shapefj1e上添加圖層來繪制路徑。
下面詳細介紹一個Shapefj1e文件[14],Shapefj1e文件是美國環境系統研究所(ESRI)所研制的GIS文件系統格式文件,是工業標準的矢量數據文件。Shapefj1e將空間特征表中的非拓撲幾何對象和屬性信息存儲在數據集中,特征表中的幾何對象存為以坐標點集表示的圖形文件—SHP文件,Shapefj1e文件并不含拓撲(Topo1ogjca1)數據結構。一個Shapefj1e文件包括3個文件:一個主文件(*.shp),一個索引文件(*.shx),和一個dBASE(*.dbf)表。主文件是一個直接存取,變長度記錄的文件,其中每個記錄描述構成一個地理特征(Feature)的所有vertjces坐標值。在索引文件中,每條記錄包含對應主文件記錄距離主文件頭開始的偏移量,dBASE表包含SHP文件中每一個Feature的特征屬性,表中幾何記錄和屬性數據之間的一一對應關系是基于記錄數目的ID。在dBASE文件中的屬性記錄必須和主文件中的記錄順序是相同的。圖形數據和屬性數據通過索引號建立一一對應的關系。
2.1總體功能描述
本系統可以劃分為顯示模塊和規劃模塊,如圖2所示。

圖2 水下滑翔機路徑顯示與規劃系統主體模塊圖
系統運行以后,首先呈現的是一個的帶有經緯線柵格的地圖,光標所指地點的經緯度會實時精確的顯示在系統的右上角,若此時有水下滑翔機正在航行并上傳了位置信息,那么系統就會在地圖上顯示航跡。系統的運行參數:地圖文件存放位置、地圖的縮放系數、地圖焦點(由經度和緯度組成)、滑翔機路徑文件存放位置、岸站坐標點文件存放位置、規劃生成文件存放路徑都來自一個配置文件,用戶可以使用系統提供的配置文件修改頁面來對這些系統運行參數進行設置,單擊系統菜單欄“幫助”菜單下的“修改配置文件”菜單項就可以打開配置文件修改頁面,這使得我們的系統變得更加靈活、更加友好。如果用戶想查看地圖其他區域的信息,可以使用地圖移動功能,地圖區域的移動是由菜單中的“移動”菜單項實現的,單擊“操作”菜單下的“移動”菜單項,鼠標會變為常見的“移動”模式,此時使用鼠標左鍵單擊地圖并進行拖拽就可以實現對地圖的移動。移動功能與常見的地圖軟件在操作上實現了兼容,符合用戶習慣。系統還支持強大的地圖縮放功能,共有3種對地圖不同的縮放形式:
1)地圖左側的縮放柱,支持鼠標單擊和拖拽,向上是放大地圖,向下時縮小地圖。
2)選擇菜單中的“放大”菜單項,鼠標會變成“放大”樣式,此時在地圖上單擊鼠標左鍵就會放大地圖中指定的區域。同理,選擇菜單中的“縮小”菜單項,鼠標的光標會變成”縮小”樣式,在地圖上單擊鼠標左鍵就會縮小地圖中指定的區域。
3)鼠標中滑輪:鼠標的滑輪也能夠實現地圖的縮放功能,下滑是放大地圖,上滑是縮小地圖。
航跡規劃有兩種模式:一種是可視化的方式,直接在地圖上單擊鼠標左鍵,出現的點就是路徑規劃的點;另一種是精確模式在彈出的對話框中填入滑翔機所經過的點的精確經緯度。在路徑規劃模式下,系統提供了豐富的交互信息,用戶進行的每一步操作都會有相應的提示,具體的規劃過程不再贅述。
2.2經緯線柵格動態繪制算法
經緯線柵格的動態繪制是系統的一個要點和難點,周圍的地理信息系統、導航軟件、地圖web應用,很少有將經緯線標注在地圖之上的,使用的GIS控件也沒有實現這樣的接口,這個功能只能自己實現。首先地圖的投影方式采用墨卡托(Mercator)投影[15],這是一種等角正切圓柱投影。假設地球被圍在一個中空的圓柱里,其標準緯線與圓柱相切接觸,然后再假象地球中心有一盞燈,把球面上的圖像投影到圓柱體上,再把圓柱體展開,這就是一幅選定標準緯線行的墨卡托投影繪制出的地圖。墨卡托投影沒有角度變形,由每一點向個方向的長度比相等,它的經緯線都是平行直線,且相交成直角,經線間隔相等,緯線間隔從標準緯線向兩極逐漸增大。墨卡托投影的地圖上長度和面積變形明顯,但標準緯線無變形,從標準緯線向兩極變形逐漸增大,但因為它具有各個方向均等擴大的特性,保持了方向和相互位置關系的正確。在地圖上保持方向和角度的正確是墨卡托投影的優點,因此常用作航海圖和航空圖,如果循著圖上兩點間的直線航行,方向不變可以到達目的地。″海底地形圖編繪規范″(GB/T 17834-1999)中規定1:25萬及更小比例尺的海圖采用墨卡托投影,其中基本比例尺海底地形圖(1:5萬,1:25萬,1:100萬)采用統一基準緯線30°,非基本比例尺圖以制圖區域中緯為基準緯線。基準緯線取至整度或整分。墨卡托投影坐標系取零子午線或自定義原點經線(L0)與赤道交點的投影為原點,零子午線或自定義原點經線的投影為縱坐標X軸,赤道的投影為橫坐標Y軸,構成墨卡托平面直角坐標系。
算法過程描述:
1)首先在控件上新建一個圖層,新建圖層使用墨卡托投影方式。
2)獲取當前地圖的尺度,尺度系數范圍從1到13,系數越大,地圖比例尺越大。
3)根據當前地圖的尺度系數大小來確定經線、緯線之間的間隔參數和屏幕中顯示的經緯線的條數,以保證當前屏幕看到適當多的經緯線柵格。
4)以緯度90度和-90度作為經線兩個端點的Y坐標,以地圖焦點的經度來作為兩個端點的X坐標,構造出一條經線的起點和終點,在起點和終點之間使用直線連接,構造出地圖中間的一條經線,接著加上經線間隔參數構造出地圖焦點右側的經線起點和終點的X、Y坐標,使用直線連接起點和終點,同理,地圖焦點左側的經線通過減間隔參數即可構造出。以經度-180度和180度作為緯線兩個端點的X坐標,以地圖焦點的緯度來作為兩個端點的Y坐標,構造出一條緯線的起點和終點,使用直線連接起點和終點構造出地圖中間的一條緯線,起點和終點的X坐標不變,地圖焦點的緯線加減間隔參數構造出不同的X坐標,畫出地圖左右兩側對應的經緯線。
5)當用戶縮放或者移動地圖時,地圖會重新繪制,此時刪除之前創建的繪制經緯線柵格的圖層,返回步驟1)。
為了提高效率,僅繪制當前屏幕區域的經緯線,只要畫5條左右的緯線、7條左右的經線即可,經緯線的具體個數和間隔由地圖尺度確定,通過實驗找到了13個不同地圖尺度系數經緯線柵格的最優條數和間隔參數。如果這里選擇畫全地圖的經緯線柵格,當地圖尺度系數增大時,需要繪制的經緯線數量就會增加,系統的執行效率會降低,經緯線柵格在動態縮放時的響應時間會變長,影響用戶體驗。提出的經緯線柵格動態繪制算法很好地兼顧了視覺效果和系統執行效率。

圖3 經緯線柵格動態繪制算法流程圖
2.3航跡、岸站顯示算法與航跡規劃實現方式
2.3.1航跡、岸站顯示算法描述
首先獲取進行航跡顯示的圖層句柄,若不存在航跡顯示的圖層,就新建一個圖層,讀取水下滑翔機返回的記錄坐標點的數據文件,忽略掉已標示處理過的坐標點,尋找到最后一個被處理的點,以此點為下一段路徑線段的起點開始畫線,畫線結束后在線段的中點上標示出這段路徑的實際距離,計算公式見公式(1),接著將地圖焦點設定為數據文件的最后一個點。在航跡線段繪制完畢以后,開啟一個計時器,在20 s后重復上述操作。
距離計算公式的推導:地球是一個近乎標準的橢球體,它的赤道半徑為6 378.140千米,極半徑為6 356.755千米,平均半徑6 371.004千米。如果假設地球是一個完美的球體,那么它的半徑就是地球的平均半徑,記為R。如果以0度經線為基準,那么根據地球表面任意兩點的經緯度就可以計算出這兩點間的地表距離(這里忽略地球表面地形對計算帶來的誤差,僅僅是理論上的估算值)。設第一點A的經緯度為(LonA,LatA),第二點B的經緯度為(LonB,LatB),按照0度經線的基準,東經取經度的正值(Longjtude),西經取經度負值(-Longjtude),北緯取90-緯度值(90- Latjtude),南緯取90+緯度值(90+Latjtude),則經過上述處理過后的兩點被計為(MLonA,MLatA)和(MLonB,MLatB)。那么根據三角推導,可以得到計算兩點距離的如下公式:
C=sjn(MLatA)*sjn(MLatB)*cos(MLonA-MLonB)+cos(MLatA)*cos (MLatB)(1)Djstance=R*raccos(C)*π/180(2)通過上述公式,就可以計算出路徑線段的直線距離。
考慮到水下滑翔機只有在刨面運動結束上浮至水面時才會借助衛星通信,回傳數據文件,數據文件的更新速率較慢,為了提高效率系統采用輪詢的方式來查詢水下滑翔機的數據文件,從而確定軌跡線段是否需要更新,當一次輪詢發現數據文件并沒有更新時,我們就靜默處理,不采取任何操作。為了能夠支持多水下滑翔機的路徑顯示,系統采用多線程技術,對于每一臺水下滑翔機系統都開啟一個線程,來執行航跡顯示算法。
岸站的繪制算法與航跡繪制算法略有不同:岸站的軌跡不要求顯示,系統只需要顯示岸站的最新位置即可。所以本系統在讀取岸站衛星回傳的數據文件時,會自動查詢到最后一個坐標點,最后一個在坐標點就是岸站的最新位置。找到岸站的最新坐標以后,系統會擦除之前繪制的岸站位置,重新繪制岸站坐標。除此以外,岸站等同于一臺滑翔機,系統會開啟一個新線程來執行岸站繪制過程,在繪制之后也會開啟一個20 s間隔的計時器,來輪詢岸站數據文件。航跡與岸站顯示運行效果圖如圖4所示。

圖4 航跡與岸站顯示效果圖
2.3.2航跡規劃實現方式
航跡規劃算法分為可視化和手動兩種方式。可視化規劃的處理方式是:支持用戶鼠標左鍵點擊地圖,點擊的點會自動連成線形成規劃的軌跡,點的坐標值會自動存儲在航跡規劃文件中,水下滑翔機在執行任務之前讀取規劃文件即可。手動規劃方式的出現是因為考慮到可視化的規劃方式不能精確的給定航跡上的坐標點,為此設計了一個規劃的頁面,頁面有五組文本框,用戶可以在文本框中輸入航跡點的精確坐標值,系統使用正則表達式來檢查所輸入的數據是否合理,如果不合理系統會給出提示。手動規劃方式也是將規劃的點存放到規劃文件中。規劃頁面效果圖如圖5所示。
2.3.3系統接口設計
系統接口分為圖形用戶接口和通信接口兩個方面。對于圖形用戶接口,采用C#的Wjnforn框架來構建用戶操作界面,并響應用戶的鼠標和鍵盤事件。通信接口采用文件形式,水下滑翔機向數據文件中寫入坐標數據,系統從數據文件中讀取相應的坐標數據。系統向規劃文件中寫入坐標數據,水下滑翔機從規劃文件中讀取規劃的坐標數據。文件的讀寫操作是互斥的,讀寫操作不能同步進行。系統規定文件寫操作比讀優先級高。這樣就能夠保證系統在運行過程中不會因為讀寫文件失敗而崩潰。

圖5 規劃頁面運行效果圖
通過這個系統用戶可以查看水下滑翔機當前工作水域的部分地理信息,標示水下滑翔機的航行軌跡,同時用戶還可以規劃水下滑翔機的路徑,本系統很好的完成了現階段水下滑翔機的使用需求。隨著水下滑翔機課題研究的深入,未來的研究包括多水下滑翔機協同組網算法的研究和實現,并利用這些算法來實現路徑的智能規劃方式。
參考文獻:
[1]Jenkjns S A,Humphreys D E,Sherman J,et a1.Underwater g1-jder system study[J].Scrjpps Instjtutjon of Oceanography,2003.
[2]Bachmayer R,Leonard N E,Graver J,et a1. Underwater g1jders:recent deve1opments and future app1jcatjons[C]//Underwater Techno1ogy,2004. UT'04. 2004 Internatjona1 Symposjum on. IEEE,2004:195-200.
[3]Erjksen C C,Osse T J,Ljght R D,et a1. Seag1jder:A 1ongrange autonomous underwater vehjc1e for oceanographjc research[J].IEEE Journa1 of Oceanjc Engjneerjng,2001,26(4):424-436.
[4]Asakawa K,Hyakudome T,Ishjhara Y,et a1. Headjng -contro1 tests of an underwater g1jder for vjrtua1 moorjng[C]// OCEANS 2015-Genova. IEEE,2015:1-4.
[5]Graver J G,Bachmayer R,Leonard N E,et a1. Underwater g1jder mode1 parameter jdentjfjcatjon[C]//Proc. 13th Int. Symp. on Unmanned Untethered Submersjb1e Techno1ogy (UUST). 2003,1:12-13.
[6]Leonard N E,Pa1ey D A,Davjs R E,et a1. Coordjnated contro1 of an underwater g1jder f1eet jn an adaptjve ocean samp1jng fje1d experjment jn Monterey Bay[J]. Journa1 of Fje1d Robotjcs,2010,27(6):718-740.
[7]Bhatta P,Fjore11j E,Lekjen F,et a1.Coordjnatjon of an underwater g1jder f1eet for adaptjve samp1jng[J]. 2005.
[8]Webb D C,Sjmonettj P J,Jones C P.SLOCUM:An underwater g1jder prope11ed by envjronmenta1 energy[J]. IEEE Journa1 of Oceanjc Engjneerjng,2001,26(4):447-452.
[9]Sherman J,Davjs R E,Owens W B,et a1.The autonomous underwater g1jder″Spray″[J].IEEE Journa1 of Oceanjc Engjneerjng,2001,26(4):437-446.
[10]Erjksen C C,Osse T J,Ljght R D,et a1. Seag1jder:A 1ongrange autonomous underwater vehjc1e for oceanographjc research[J].IEEE Journa1 of Oceanjc Engjneerjng,2001,26(4):424-436.
[11]Kan L,Zhang Y,Fan H,et a1. MATLAB-based sjmu1atjon of buoyancy-drjven underwater g1jder motjon[J]. Journa1 of Ocean Unjversjty of Chjna,2008,7(1):113-118.
[12]Mahmoudjan N,Woo1sey C. Underwater g1jder motjon contro1[C]//Decjsjon and Contro1,2008. CDC 2008. 47th IEEE Conference on. IEEE,2008:552-557.
[13]Ames D P,Mjchae1js C,Dunsford T. Introducjng the MapWjjndow GIS project[J]. OSGeo Journa1,2007,2(1).
[14]Xja K,Wej C.Study on rea1 -tjme navjgatjon data mode1 based on ESRI shapefj1e[C]//Embedded Software and Systems Symposja,2008. ICESS Symposja'08. Internatjona1 Conference on.IEEE,2008:174-178.
[15]Grafarend E.The optjma1 unjversa1 transverse Mercator projectjon[C]//Geodetjc Theory Today. Sprjnger Ber1jn Hejde1-berg,1995:51.
Deslgn and lmPlementatlon of Path dlsPlay and Plannlng system for underwater gllder
YU Mao-sheng1,HAN Lej1,SONG Da-1ej2
(1.School of Information Science and Engineering,Ocean University of China,Qingdao 266100,China;2.College of Engineering Ocean University of China,Qingdao 266100,China)
Abstract:A desjgn jdea of path djsp1ay and p1annjng system for underwater g1jder based on GIS js proposed jn the paper.Dynamjc grjd drawjng a1gorjthm and path djsp1ay and p1annjng a1gorjthm js our jnnovatjve pojnts.Genera1 framework and key techno1ogjes are descrjbed.Descrjptjon GIS,the Mercator projectjon and fj1e ca11ed shape fj1e.The functjon and operatjon method of the system are a1so gjven. To jntroduce the who1e desjgn process of path djsp1ay and p1annjng system for underwater g1jder and app1jcatjon mode jn actua1 envjronment are the majn purposes of the paper. After actua1 jnvestjgatjon,app1jcatjon effect js satjsfactory.
Key words:path djsp1ay and p1annjng;underwater g1jder;GIS;dynamjc grjd drawjng
中圖分類號:TN02
文獻標識碼:A
文章編號:1674-6236(2016)07-0004-04
收稿日期:2015-11-11稿件編號:201511108
基金項目:國家863計劃(2012AA091004)
作者簡介:于茂升(1992—),男,山東青島人,碩士研究生。研究方向:人工智能規劃。