肖劍波,胡大斌,胡錦暉
(海軍工程大學 船舶與動力學院,武漢 430033)
航行訓練模擬器是一種典型的人在回路仿真,人作為一個環(huán)節(jié)參與到仿真系統(tǒng)中,通過對仿真系統(tǒng)提供的各種信息進行判斷和決策,從而進行模擬操縱和控制,以實現(xiàn)船員訓練、方案論證、海事分析等目的[1]。
利用目力能見范圍內(nèi)的陸岸、島上固定物標測定艦 (船)位的方法,稱為陸標定位。陸標定位是艦船沿岸航行時保證航行安全的主要手段[2-3]。方位定位是利用羅經(jīng)觀測物標方位確定艦位的方法,其觀測方便迅速,在海圖上標繪容易,因而是沿岸航行時最常用的方法。在海船船員適任評估項目“航海儀器的正確使用”中,“方位儀的正確使用”是其中一項很重要的實訓項目,也是駕駛員必須熟練掌握的基本技能之一[4]。本文結(jié)合船舶航行操作訓練實際,在視景仿真系統(tǒng)中開發(fā)陸標定位功能,介紹了船舶航行訓練系統(tǒng)的組成及功能。針對某型船舶所用方位儀對陸標定位功能進行了模擬羅經(jīng)功能設(shè)計,基于GDI+的方式實現(xiàn)了羅經(jīng)的模擬開發(fā)。為保證系統(tǒng)中方位定位的準確性,基于實際地形高程數(shù)據(jù)對地形場景進行建模,并依據(jù)電子海圖等相關(guān)數(shù)據(jù)對助航標志和地貌特征等進行定位。通過實驗比較分析,船舶訓練模擬器中的方位定位結(jié)果符合真實地形數(shù)據(jù),可以滿足船員方位定位訓練的需求。
本文所述的船舶航行訓練模擬系統(tǒng)總體主要由船舶操縱模擬臺、二維海圖導調(diào)臺、運算控制臺、三維視景顯示臺以及投影系統(tǒng)五個部分組成。船舶操縱模擬臺采用和實船相同布置、相同手感的設(shè)計原則,并通過PLC對操縱按鈕以及手柄進行數(shù)據(jù)采集,同時將操縱解算的結(jié)果在相應(yīng)的儀表進行實時顯示,可充分模擬船員的操作環(huán)境,實現(xiàn)模擬系統(tǒng)和船員的交互。二維導調(diào)臺基于電子海圖對當前訓練海域環(huán)境進行二維顯示,并可實現(xiàn)航行訓練海域的選擇、練習的保存和設(shè)置、海區(qū)環(huán)境的設(shè)置、目標船只的航跡標繪和目標船只的設(shè)定等功能,教練員可以方便的進行訓練內(nèi)容的設(shè)置和模擬。運算控制臺主要進行實時求解船舶六自由度運動方程,并控制系統(tǒng)的仿真行為和過程,同時將解算的相關(guān)參數(shù)輸出到操縱模擬臺進行儀器儀表的動態(tài)顯示,輔助船舶操縱人員進行決策判斷。
三維視景顯示通過接收二維海圖導調(diào)臺的相關(guān)信息,調(diào)用相關(guān)的三維模型數(shù)據(jù)進行視景的渲染和驅(qū)動,并通過球幕投影系統(tǒng)進行顯示。同時,視景顯示的內(nèi)容還發(fā)送到在教練員控制站中的視景通道復(fù)現(xiàn)顯示器,供教練員進行觀察和監(jiān)視。三維模型數(shù)據(jù)包括港口地形模型、目標船只、港口設(shè)施 (房屋建筑、碼頭、港口設(shè)施等)、航行標記物 (航行燈塔、浮筒)等。實體模型采用視景建模軟件Creator完成的,采用現(xiàn)場拍攝的照片作為模型的紋理源。對于實際無法進行拍攝的模型,如敵方軍艦、潛艇等采用3D Max進行建模后,再將模型進行轉(zhuǎn)化和精簡面片數(shù),并調(diào)整模型的層級結(jié)構(gòu),以滿足視景仿真實時性的需求。系統(tǒng)的視景驅(qū)動采用MultiGen-Paradigm公司的Vega Prime軟件,視景仿真系統(tǒng)在開始運行時,通過加載ACF文件加載這些參數(shù),在運行期間,通過Vega Prime提供的API函數(shù)接口調(diào)用函數(shù)庫和核心類庫保持或不斷更改這些參數(shù)值,并分別利用繪制線程和I/O線程實現(xiàn)圖像的實時繪制和系統(tǒng)交互請求的處理和響應(yīng)。為滿足實時性的需求,視景仿真采用了雙線程設(shè)計,對用戶交互界面和繪制進行分開處理。
模擬航海羅經(jīng)由控制電腦、顯示器、模擬分羅經(jīng)安裝殼體和網(wǎng)絡(luò)數(shù)據(jù)接收驅(qū)動構(gòu)成控制系統(tǒng),采用GDI+的方式實現(xiàn)羅經(jīng)面板的繪制,并通過接收潛艇模型解算計算機的航向來更新顯示,實現(xiàn)在航行訓練模擬器中正確指示船舶的航向。分羅經(jīng)的安裝殼體采用和實船相同的面板,以增強模擬的真實感。
GDI+是對原有的GDI功能上的升級,提供的主要功能有矢量圖形輸出、光柵圖形輸出和文字排版等。與傳統(tǒng)的GDI相比,GDI+主要有漸變畫刷、獨立的路徑對象、矩陣對象、區(qū)域和多格式圖片支持等特點。運用GDI+繪制圖形時,圖形要素的輪廓更平滑,顯示效果更好。此外,GDI+將繪制輪廓、填充內(nèi)部相分離,繪制填充輪廓時顯得更加靈活[5]。本系統(tǒng)中采用GDI+對羅經(jīng)面板進行繪制,通過創(chuàng)建一個圖形對象Graphics,設(shè)置SmoothingModeHighQuality光滑繪制模式,實現(xiàn)了羅經(jīng)表盤的反走樣,確保了高質(zhì)量、高精度顯示。但是由于本系統(tǒng)中需要繪制羅經(jīng)內(nèi)中外三個刻度表盤,且表盤各自反映的數(shù)據(jù)不同,需要分別予以更新,因此提高繪圖效率也就成為一個必須解決的問題。我們對表盤采用雙緩沖進行繪制,其基本原理是首先在后臺 (內(nèi)存中)繪圖,然后再將后臺繪制的圖像“貼到”窗口上顯示。采用雙緩沖的優(yōu)點主要有兩個:第一點是能避免屏幕閃爍;第二點也是最重要的一點,就是采用采用雙緩沖技術(shù)能夠提高繪制的效率。在VC++下并不直接支持雙緩沖,需要采用間接的方法,其基本過程如下:
(1)定義一個Bitmap對象。
(2)通過當前的設(shè)備創(chuàng)建一個兼容DC。
(3)以Bitmap對象通過CreateCompatibleBitmap創(chuàng)建一幅與當前DC相兼容的位圖。
(4)將兼容位圖選入兼容DC當中,從而確定DC顯示表面的大小。
(5)為兼容DC選擇透明畫刷。
(6)通過當前DC調(diào)用繪制海圖和相應(yīng)的標繪函數(shù)進行繪制。
(7)調(diào)用Bitblt函數(shù)將Bitmap繪制顯示窗口上。
采用雙緩沖技術(shù)以后,消除了之前出現(xiàn)的閃爍現(xiàn)象,每一幀的繪制時間也明顯降低,實現(xiàn)了無閃爍平滑顯示。
本文所述羅經(jīng)中間刻度盤顯示為反向字體顯示,通過方位儀目鏡實現(xiàn)方位數(shù)據(jù)讀取。GDI+繪制時,內(nèi)部刻度的繪制采用字體函數(shù)來實現(xiàn),而對于中間刻度,我們通過TrueType來構(gòu)建相應(yīng)的反向字體庫,實現(xiàn)反向字體的方便繪制。TrueType字體是由直線和曲線命令生成的輪廓字體,可以縮放和旋轉(zhuǎn)。TrueType是一種所見即所得技術(shù),同時,可以縮放到任意大小,可以調(diào)整高度和顏色,目前有許多商用的TrueType造字工具軟件,可以方便的制作出相應(yīng)的字體。
模擬羅經(jīng)的整體效果如下圖1所示:
圖1 分羅經(jīng)顯示效果
視景仿真數(shù)據(jù)庫是海上航行船舶視景中的重要組成部分,包括地理條件 (比如地形)、助航標志信息、物標船形態(tài)信息、岸上附屬信息 (比如建筑物)等。這些為生成和顯示包括水文條件、氣象條件、地理條件、助航標志信息、物標船形態(tài)信息等視景的基本內(nèi)容提供了基本依據(jù),且對航行訓練中的導航參照、陸標定位等具有至關(guān)重要的意義。因而需要在視景仿真數(shù)據(jù)庫建模過程中保證地形地貌的真實性和數(shù)據(jù)庫中助航標志方位的準確性。
地形數(shù)據(jù)主要包括幾何數(shù)據(jù)和紋理數(shù)據(jù)兩部分。在航海模擬器中,一般通過紙質(zhì)海圖、CAD圖以及電子海圖等途徑獲取地形幾何數(shù)據(jù),但這幾種途徑對于大規(guī)模地形場景并不十分適用,且通過上述方式獲取地形數(shù)據(jù)存在處理誤差,可能影響地形建模的準確性。本文通過測量DEM數(shù)據(jù)對訓練海區(qū)進行建模,并通過克里金插值的方式對DEM數(shù)據(jù)進行插值,提高數(shù)據(jù)精度,利用Google Earth提取高清遙感照片,采用Creator、Terrain Vista等軟件進行處理,構(gòu)建了大規(guī)模地形場景,具體實現(xiàn)步驟如下:
(1)地形數(shù)據(jù)的獲取。本文采用USGS提供的SRTM90數(shù)據(jù),所用高程數(shù)據(jù)來源于中科院數(shù)據(jù)服務(wù)網(wǎng)站,預(yù)先獲得所要建模區(qū)域經(jīng)緯度坐標,根據(jù)這一坐標下載相應(yīng)區(qū)域的高程數(shù)據(jù)。
(2)高程數(shù)據(jù)截取。下載數(shù)據(jù)范圍較大,采用Global Mapper軟件進行截取目標區(qū)域內(nèi)的數(shù)據(jù)。
(3)高程數(shù)據(jù)插值。在進行插值之前需要對截取的數(shù)據(jù)進行離散化,運用Global Mapper軟件將1、2步驟獲取的數(shù)據(jù)轉(zhuǎn)化為XYZ格式的離散數(shù)據(jù)。將轉(zhuǎn)換后的離散數(shù)據(jù)導入Surfer中,采用克里金插值方法進行插值處理。
(4)插值數(shù)據(jù)處理。進行插值后所得數(shù)據(jù)為Surfer所支持的GRD格式文件,對其進行格式轉(zhuǎn)換,轉(zhuǎn)換為ASC格式。
(5)衛(wèi)星圖片獲取。衛(wèi)星圖片的獲取是通過谷歌衛(wèi)星圖片下載器所得,可以下載指定范圍內(nèi)不同級別的衛(wèi)星圖片,并可以實時查看,進而導出合并。
(6)三維地形建模。將如上所得插值后的ASC數(shù)據(jù)導入到Terra Vista中,進行三維建模,并設(shè)置LOD,實現(xiàn)細節(jié)層次劃分。
(7)紋理映射。將建立的模型進行紋理映射,加貼所下載得到的衛(wèi)星圖片紋理,以提高模型的逼真度。
通過上述步驟建立的地形,還需要添加地表特征 (包括碼頭建筑、海岸工程建筑等)和助航標志(包括航標燈、燈塔、浮標等)等,通過Creator建立模型,并依據(jù)電子海圖對其在地形中的位置進行定位。為滿足視景仿真渲染和剔除繪制的要求,對模型層級進行調(diào)整,按照邏輯結(jié)構(gòu)和空間結(jié)構(gòu)相結(jié)合的形式進行組織管理。按照模型所在區(qū)域進行分塊,對分塊中的模型采用邏輯結(jié)構(gòu)進行分類,將相同類型的模型放在相同的節(jié)點內(nèi),將具有相同屬性的面節(jié)點集中放置在一起,以減少繪制狀態(tài)變更的次數(shù)。
采用上述方法實現(xiàn)的地形模型渲染效果圖見圖2。
圖2 視景仿真渲染效果
為保證羅經(jīng)測量的準確性,在進行模擬羅經(jīng)的定位時需要將羅經(jīng)放置于球幕系統(tǒng)的球心位置,以減少羅經(jīng)在測量各個方向的物標時由于投影系統(tǒng)的弧度而引起的測量誤差。為驗證陸標定位功能的準確度,進行如下實驗:在電子海圖中,對本船進行位置設(shè)定,并讀取本船的經(jīng)緯度信息,在視景仿真系統(tǒng)中采用兩標方位定位法,通過方位儀和羅經(jīng)對孤立明顯的物標進行測定,并通過測定在紙質(zhì)海圖中進行標繪,得出本船當前的位置點信息,并與設(shè)定的本船位置點 (即模擬系統(tǒng)中的實際船舶位置點)進行比對,得出的測量結(jié)果誤差在1度左右,滿足陸標定位的要求。
[1]肖劍波,胡大斌,胡錦暉.二三維互動映射的潛望鏡視景仿真系統(tǒng)設(shè)計與實現(xiàn)[J].艦船科學技術(shù),2011,33(10):102-106.
[2]胡定軍,石紅梅,張芊.一種新型模擬航海羅經(jīng)控制[J].艦船科學技術(shù),2009,31(1):104-106.
[3]江杰,尹勇.航海模擬器中測天定位的仿真研究[J].系統(tǒng)仿真學報,2008,20(S1):63-66.
[4]趙仁余.航海學[M].北京:人民交通出版社,2009:12-23.
[5]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2007.