劉 慧,楊書(shū)凱,劉 敏,魯成杰,楊俊賢
(山東省科學(xué)院海洋儀器儀表研究所,山東 青島 266001)
基于GLScene的潛標(biāo)姿態(tài)回放系統(tǒng)
劉 慧,楊書(shū)凱,劉 敏,魯成杰,楊俊賢
(山東省科學(xué)院海洋儀器儀表研究所,山東 青島 266001)
論述了三維可視化場(chǎng)景建立過(guò)程中如何應(yīng)用GLScene實(shí)現(xiàn)上浮下潛浮標(biāo)模型的建立、調(diào)入和姿態(tài)回放過(guò)程。建立了上浮下潛浮標(biāo)的模型,顯示了上浮下潛浮標(biāo)的運(yùn)動(dòng)軌跡和在各階段的運(yùn)動(dòng)姿態(tài),最后給出了上浮下潛浮標(biāo)運(yùn)動(dòng)過(guò)程中的場(chǎng)景效果圖。
GLScene;潛標(biāo);姿態(tài)
上浮下潛浮標(biāo)系統(tǒng)(以下簡(jiǎn)稱(chēng)潛標(biāo)系統(tǒng))是一種可以搭載多種傳感器進(jìn)行海洋剖面數(shù)據(jù)調(diào)查的重要技術(shù)裝備。潛標(biāo)裝備有絞車(chē)和水下電機(jī),平時(shí)工作在水下,利用自身動(dòng)力按設(shè)定時(shí)間定時(shí)下潛和上浮,并在上浮或下潛過(guò)程中采集海洋剖面的數(shù)據(jù),如圖1所示。由于潛標(biāo)系統(tǒng)一般不具備與用戶(hù)實(shí)時(shí)通信功能,因此潛標(biāo)回收后,對(duì)潛標(biāo)記錄姿態(tài)數(shù)據(jù)的回放非常重要,它是確認(rèn)潛標(biāo)是否正常工作和進(jìn)行故障分析的重要依據(jù)[1]。利用潛標(biāo)姿態(tài)變化曲線可以對(duì)潛標(biāo)的工作過(guò)程進(jìn)行分析研究,但由于潛標(biāo)運(yùn)動(dòng)過(guò)程具有多個(gè)自由度[2],會(huì)同時(shí)進(jìn)行橫搖、縱搖、旋轉(zhuǎn)和位置變化,所以單獨(dú)使用曲線進(jìn)行姿態(tài)分析還并不夠直觀。因此筆者提出了利用潛標(biāo)姿態(tài)數(shù)據(jù)通過(guò)三維圖形技術(shù)在三維空間重建潛標(biāo)工作過(guò)程的方法,該方法對(duì)于分析潛標(biāo)的工作過(guò)程,驗(yàn)證潛標(biāo)系統(tǒng)的設(shè)計(jì),研究潛標(biāo)姿態(tài)變化規(guī)律與波浪、潮汐和海流的關(guān)系都有重要的意義。
圖1 潛標(biāo)系統(tǒng)結(jié)構(gòu)示意圖
當(dāng)前三維圖形技術(shù)已經(jīng)非常成熟,并廣泛應(yīng)用在軍事、航海、航天等領(lǐng)域。它以一種更為直觀有效的方式極大地提高了效率并節(jié)省了資源,例如美國(guó)著名的毒刺導(dǎo)彈虛擬訓(xùn)練系統(tǒng)[3]。但是直接進(jìn)行三維圖形的編程非常復(fù)雜,技術(shù)人員通常通過(guò)3D圖形編程接口進(jìn)行編程。其中最為人熟知的3D圖形編程接口是OpenGL和Direct3D。雖然通過(guò)OpenGL和Direct3D等3D圖形編程接口編程已經(jīng)減少了編程人員的大量工作量,但三維圖形編程仍然十分復(fù)雜。GLScene是一套基于OpenGL圖形編程接口的3D圖形引擎,它對(duì)OpenGL的API進(jìn)行了進(jìn)一步的封裝,提供了豐富的圖形接口資源。GLScene圖形引擎使得三維圖形編程更加簡(jiǎn)單,也使編程人員可以將精力更專(zhuān)注于實(shí)際應(yīng)用,而不是三維圖形編程本身。文中使用Delphi和GLScene圖形引擎完成潛標(biāo)姿態(tài)回放系統(tǒng)的軟件設(shè)計(jì),不僅降低了三維圖形編程的復(fù)雜度,也縮短了開(kāi)發(fā)周期。
GLScene場(chǎng)景主要包括基本場(chǎng)景、攝像機(jī)、燈光系統(tǒng)、基本物體、材質(zhì)貼圖和場(chǎng)景觀察器等要素。
首先需要建立基本場(chǎng)景,基本場(chǎng)景是所有其它物體的父容器,構(gòu)建的所有可視物體或特效都將在場(chǎng)景中顯示;然后需要建立潛標(biāo)系統(tǒng)的三維模型,目前建立三維模型的專(zhuān)業(yè)軟件有 AutoCAD、3DS Max、Creator等,GLScene 自帶的場(chǎng)景編輯器也提供一些基本的幾何形狀用于創(chuàng)建較簡(jiǎn)單的模型[4],由于潛標(biāo)的幾何形狀比較簡(jiǎn)單,實(shí)際應(yīng)用中采用了GLScene場(chǎng)景編輯器創(chuàng)建潛標(biāo)的三維模型,潛標(biāo)的三維模型如圖2所示。其次需要添加攝像機(jī),攝像機(jī)是場(chǎng)景和用戶(hù)之間的視覺(jué)接口,用戶(hù)只有通過(guò)攝像機(jī)才能觀察場(chǎng)景中的內(nèi)容,攝像機(jī)的類(lèi)型可設(shè)為默認(rèn)的透視攝像機(jī),其他的參數(shù)如景深、焦距、方向和場(chǎng)景縮放等屬性也可根據(jù)要求設(shè)置。再次需要添加燈光并設(shè)置相應(yīng)屬性,燈光的設(shè)置很大程度上決定了場(chǎng)景效果,一個(gè)OpenGL場(chǎng)景中最多支持8盞燈光,過(guò)多的燈光將使渲染速度降低。最后需要設(shè)置場(chǎng)景觀察器相關(guān)屬性,它的主要屬性是攝像機(jī)的選擇。
圖2 潛標(biāo)的三維模型圖
上述過(guò)程只是建立了GLScene的三維場(chǎng)景,實(shí)際程序還需要通過(guò)編程建立場(chǎng)景中三維潛標(biāo)模型與姿態(tài)數(shù)據(jù)的關(guān)聯(lián)。三維場(chǎng)景中主要通過(guò)以下6個(gè)屬性控制潛標(biāo)模型的6個(gè)自由 度 變 化 :Position.X,Position.Y,Position.Z,PitchAngle,TurnAngle,RollAngle,即潛標(biāo)的位置和潛標(biāo)的橫搖、縱搖、旋轉(zhuǎn)的角度。
潛標(biāo)姿態(tài)回放系統(tǒng)是國(guó)際合作項(xiàng)目“自升沉式上浮下潛浮標(biāo)系統(tǒng)”中數(shù)據(jù)回放系統(tǒng)的一個(gè)子模塊,主要負(fù)責(zé)完成對(duì)潛標(biāo)運(yùn)動(dòng)姿態(tài)數(shù)據(jù)的回放和分析,為用戶(hù)提供一個(gè)簡(jiǎn)潔友好的人機(jī)界面。
潛標(biāo)姿態(tài)動(dòng)態(tài)回放系統(tǒng)的主界面如圖3所示。主要包括潛標(biāo)姿態(tài)三維場(chǎng)景顯示窗口1、深度顯示標(biāo)尺2、儀表盤(pán)窗口3、動(dòng)態(tài)曲線顯示窗口4、回放速率選擇旋鈕5和回放控制面板6。
圖3 潛標(biāo)姿態(tài)回放系統(tǒng)主界面
潛標(biāo)姿態(tài)三維場(chǎng)景顯示窗口可以根據(jù)回放的潛標(biāo)姿態(tài)數(shù)據(jù)以三維圖形方式同步顯示潛標(biāo)的姿態(tài)和深度變化。而且用戶(hù)可以用鼠標(biāo)拖動(dòng)潛標(biāo)模型旋轉(zhuǎn)到任意角度,可以模擬用戶(hù)在各個(gè)角度觀察潛標(biāo)姿態(tài)的變化,如圖4所示。
儀表盤(pán)窗口動(dòng)態(tài)顯示潛標(biāo)姿態(tài)的橫搖傾角X和縱搖傾角Y和上浮下潛速度V。儀表盤(pán)可以以比較直觀的方式顯示潛標(biāo)姿態(tài)傾角變化和速度變化的幅度,超過(guò)正常范圍的傾角值和深度值在儀表盤(pán)上以紅色表示,可以給用戶(hù)以醒目的提示。
圖4 在不同視角下潛標(biāo)三維模型圖
曲線顯示窗口可以通過(guò)選擇分別顯示潛標(biāo)姿態(tài)、深度、速度、加速度曲線。曲線相比儀表盤(pán)顯示可以更直觀地顯示潛標(biāo)姿態(tài)在一定時(shí)間段內(nèi)的變化趨勢(shì),有儀表盤(pán)和直接數(shù)據(jù)顯示無(wú)法取代的作用。潛標(biāo)姿態(tài)和深度曲線可直接由三維電子羅盤(pán)和壓力傳感器的數(shù)據(jù)獲得,速度和加速度曲線可以由深度數(shù)據(jù)間接獲得。
由于主界面的顯示區(qū)域有限,用戶(hù)通過(guò)用鼠標(biāo)雙擊曲線顯示窗口還可以顯示對(duì)應(yīng)參數(shù)的頻譜曲線,信號(hào)的頻譜通過(guò)對(duì)信號(hào)進(jìn)行快速傅立葉變換獲得,如圖5所示為X傾角變化曲線及對(duì)其傅立葉變換后的頻譜曲線。信號(hào)的頻譜可以幫助使用者觀察信號(hào)中隱含的頻率信息。從圖5中曲線可獲知X傾角信號(hào)角度變化在±3°范圍內(nèi),存在周期分別為13 s和6 s的兩個(gè)較大的頻率分量。上述理論分析結(jié)果結(jié)合潛標(biāo)三維圖形的動(dòng)態(tài)顯示,可以使用戶(hù)對(duì)潛標(biāo)工作狀態(tài)有更清楚直觀的了解。
圖5 姿態(tài)信號(hào)及其頻譜曲線
表1 姿態(tài)數(shù)據(jù)文件記錄
圖6 潛標(biāo)姿態(tài)回放系統(tǒng)程序流程圖
回放控制窗口主要完成潛標(biāo)姿態(tài)數(shù)據(jù)回放的控制功能,包括加載數(shù)據(jù)文件、回放、暫停和回放速率選擇等功能,并且可以顯示數(shù)據(jù)回放的進(jìn)度和時(shí)刻。
潛標(biāo)姿態(tài)動(dòng)態(tài)回放系統(tǒng)的程序流程圖如圖6所示,潛標(biāo)姿態(tài)回放系統(tǒng)的操作過(guò)程是首先加載回放的數(shù)據(jù)文件,數(shù)據(jù)文件中記錄有潛標(biāo)運(yùn)行時(shí)每秒鐘的姿態(tài)數(shù)據(jù),主要包括橫搖傾角X、縱搖傾角Y和深度D,文件采用二進(jìn)制記錄文件格式,具有操作方便,占用空間小等優(yōu)點(diǎn),文件記錄如表1所示。然后點(diǎn)擊控制面板上的回放按鈕,系統(tǒng)就以設(shè)定速率(默認(rèn)是實(shí)際采集速率)開(kāi)始回放。首先系統(tǒng)讀取回放當(dāng)前時(shí)刻對(duì)應(yīng)的潛標(biāo)姿態(tài)數(shù)據(jù)和深度數(shù)據(jù),然后把上述數(shù)據(jù)賦值給基本場(chǎng)景中的潛標(biāo)模型,讓潛標(biāo)模型旋轉(zhuǎn)相應(yīng)的角度或移動(dòng)相應(yīng)比例的距離。下1 s來(lái)到時(shí),程序移動(dòng)文件指針去讀取下一時(shí)刻的姿態(tài)數(shù)據(jù),并判斷是否已經(jīng)到了文件尾,未到文件尾則繼續(xù)播放。
由于以實(shí)際速度回放潛標(biāo)1 d記錄的姿態(tài)數(shù)據(jù)就需要1 d的時(shí)間,所以實(shí)際回放時(shí)也可以通過(guò)控制面板上的回放速率旋鈕選擇較快的回放速率。例如選擇回放速率10,則回放1 d的姿態(tài)數(shù)據(jù)只需要大約2.5 h。用戶(hù)也可以直接拖動(dòng)控制面板上的回放進(jìn)度條從某一時(shí)刻開(kāi)始回放。系統(tǒng)在回放潛標(biāo)姿態(tài)的同時(shí)在儀表盤(pán)窗口和曲線顯示窗口同步顯示對(duì)應(yīng)的姿態(tài)數(shù)據(jù),便于用戶(hù)進(jìn)行數(shù)據(jù)分析。
GLScene是一套基于OpenGL圖形編程接口的高效3D圖形引擎,它降低了三維圖形程序開(kāi)發(fā)的難度,縮短了潛標(biāo)姿態(tài)動(dòng)態(tài)回放程序的開(kāi)發(fā)周期,也給用戶(hù)分析潛標(biāo)的工作狀態(tài)提供了更直觀、有效的工具。由于潛標(biāo)拖纜的動(dòng)力學(xué)計(jì)算比較復(fù)雜[2],目前在回放系統(tǒng)的三維場(chǎng)景中沒(méi)有增加潛標(biāo)拖纜的三維模型,在今后的應(yīng)用中還可以繼續(xù)完善。GLScene是一個(gè)功能非常強(qiáng)大的3D圖形引擎,文中的應(yīng)用只是GLScene功能的非常小的一部分,除此之外,GLScene還提供聲音處理接口、操縱桿處理接口和GeForce顯卡處理接口等許多功能接口,充分利用這些功能可以極大地提高工作效率。
[1]侯廣利,張穎,等.一種潛標(biāo)的水下姿態(tài)變化規(guī)律分析[J].海洋技術(shù),2010,29(3):1-5.
[2]朱剛,杜月中.波浪作用下潛標(biāo)拖纜動(dòng)力學(xué)分析[J].海洋工程,2007,25(4):15-20.
[3]祝志兵,董奇帥,等.基于GLScene的空空導(dǎo)彈視景仿真技術(shù)研究[J].彈箭與制導(dǎo)學(xué)報(bào),2008,28(5):74-82.
[4]李林珊,張春華.基于GLScene的仿真圖像系統(tǒng)[J].兵工自動(dòng)化,2007,26(3):28-41.
Attitude Replay System of Submersible Buoy Based on GLScene
LIU Hui,YANG Shu-kai,LIU Min,LU Cheng-jie,YANG Jun-xian
(Shandong Academy of Sciences Institute of Oceanographic Instrumentation,Qingdao Shandong 266001,China)
The construction and replay of a submarine buoy model using GLScene were discussed firstly.The motion model of submarine buoy was built and the tracks and attitudes in different status of the submarine buoy were displayed.Finally,the motion effects of submarine buoy were given.
GLScene;submersible buoy;attitude
TP391.41
B
1003-2029(2011)04-0029-03
2011-04-08
國(guó)際科技合作項(xiàng)目資助(2007DFR90130)
劉慧,女,助理研究員,研究方向?yàn)楹Q髢x器儀表研究。