佘建國,高軍豐,范曉衛(wèi)
(江蘇科技大學(xué)機(jī)械工程學(xué)院,江蘇 鎮(zhèn)江 212003)
基于Vega的雙通道船舶甲板重吊視景仿真系統(tǒng)
佘建國,高軍豐,范曉衛(wèi)
(江蘇科技大學(xué)機(jī)械工程學(xué)院,江蘇 鎮(zhèn)江 212003)
針對船舶甲板重吊貨物吊裝的操作使用,以三維建模軟件MultiGen-Creator、實(shí)時仿真驅(qū)動軟件Vega及VC++為平臺,創(chuàng)建碼頭地形、吊車及船舶等三維模型?;赩ega API函數(shù)與C++相結(jié)合編程實(shí)現(xiàn)船舶貨物吊裝視景仿真系統(tǒng)的驅(qū)動。仿真結(jié)果表明,該系統(tǒng)具有較高的真實(shí)度,能解決船舶貨物裝卸的運(yùn)動模擬、吊裝方案設(shè)計等諸多問題。
Creator/Vega;雙通道;甲板重吊;視景仿真
隨著科學(xué)技術(shù)的發(fā)展,三維建模軟件MultiGen-Creator和視景驅(qū)動軟件Vega近年來在視景仿真領(lǐng)域得到廣泛的應(yīng)用。由于其本身側(cè)重視覺效果模擬,對要求復(fù)雜精確的工程模擬有一定的缺陷?;诙嗤ǖ里@示的視景仿真系統(tǒng)受到了越來越多的關(guān)注。該系統(tǒng)的主要特點(diǎn)是利用1個或多個計算機(jī)的多個顯示通道拼合生成1個完整的視景,為用戶提供1個具有高度沉浸感的虛擬環(huán)境[1]。隨著計算機(jī)硬件技術(shù)的發(fā)展,普通PC的圖形計算能力有了極大的提高,基于PC的多通道視景仿真系統(tǒng)已成為1個熱門的研究方向[2]。
創(chuàng)建雙通道船舶甲板重吊視景仿真系統(tǒng),重點(diǎn)是精確建立相關(guān)的三維模型,如碼頭地形、船舶及吊車等以及根據(jù)貨物吊裝的實(shí)際情況創(chuàng)建運(yùn)動模型。Creator支持多種模型格式相互轉(zhuǎn)化,所以可采用多種建模相結(jié)合的方式來創(chuàng)建仿真系統(tǒng)需要的三維模型,經(jīng)過Creator軟件相關(guān)技術(shù)優(yōu)化,最后由Vega創(chuàng)建系統(tǒng)程序框架,以此解決船舶貨物吊裝模擬問題。
MultiGen-Creator對很多工程軟件都有支持的特殊格式,它可以輸入的圖形格式有3ds,dxf,obj,stl等,可以輸出的格式有 flt,dxf,wrl,obj,stl等。從MultiGen-Creator可以輸入的格式可以看出,它支持UG軟件中的stl格式,也就是說在UG中繪圖完成后,以stl和dxf/dwg格式保存,再以同樣的格式輸入到 Creator中。同理,AutoCAD導(dǎo)出的 3ds,dxf,stl,3D Studio Max導(dǎo)出的3ds,stl,dxf,Pro/Engineer導(dǎo)出的obj和dxf等,都可以直接輸入到Creator進(jìn)行處理。
同樣,UG的prt、cgm、stl、dxf/dwg格式可以輸入到Pro/Engineer,然后再變換格式輸入到Creator,有時候可以獲得出乎意料的良好結(jié)果。在該視景仿真系統(tǒng)中所用模型的建立就采用了此種方法。為了能找到較好的轉(zhuǎn)換途徑,將所有的轉(zhuǎn)換路徑用圖1表示。
圖1 建模軟件之間互用路徑Fig.1 Interwork path diagram of modeling sofwares
1.2.1 吊車模型的建立
吊車模型數(shù)據(jù)庫的內(nèi)容主要由塔身、吊臂、底座、操縱艙等組成。創(chuàng)建模型時主要用到的建模工具是Creator,輔之以3dsmax,然后將生成的.max格式文件轉(zhuǎn)化為.flt格式文件。吊車模型數(shù)據(jù)庫建模需要處理好各個部分對象之間的層次關(guān)系,合理地組織數(shù)據(jù)庫的層次結(jié)構(gòu)便于場景的管理及視景的生成。采用分層表示法把吊車模型分成4個主要的層次:第1層底座、第2層塔身、第3層操縱艙以及第4層吊臂,并且每個層次都包含具體的細(xì)節(jié)內(nèi)容。創(chuàng)建好的吊車三維模型如圖2所示。
1.2.2 三維船舶模型的創(chuàng)建
圖2 吊車三維模型Fig.2 Three-dimensional model diagram of crane
船舶三維模型數(shù)據(jù)庫是主要采用Auto CAD,3ds Max以及MultiGen Creator相結(jié)合創(chuàng)建,由AutoCAD創(chuàng)建的實(shí)體模型無法直接導(dǎo)入Creator軟件中,必須先導(dǎo)入3ds Max生成.max格式文件,再導(dǎo)入Creator中生成.flt格式文件。由于Creator和AutoCAD這2種軟件建模時默認(rèn)計量單位不一致,當(dāng)把CAD創(chuàng)建的模型導(dǎo)入到Creator中時,他們之間默認(rèn)單位是一對一原則,CAD中默認(rèn)單位是mm,而在Creator中默認(rèn)單位是m,所以模型導(dǎo)入轉(zhuǎn)換后將放大1 000倍。圖3和圖4分別為在AutoCAD中創(chuàng)建和經(jīng)過Creator處理過的船舶三維模型。
1.2.3 碼頭地形三維模型的創(chuàng)建
碼頭地形三維模型數(shù)據(jù)庫主要采用MultiGen-Creator建模工具,輔之以建模軟件3ds Max和Auto CAD,由.max或者.dxf格式導(dǎo)入 Creator生成.flt格式。然后在碼頭地形模型表面添加RGB以及RGBA格式的紋理,如山脈、樹木、水面等圖片紋理,使虛擬場景看起來更加接近現(xiàn)實(shí)的碼頭場景。完成之后的碼頭地形模型數(shù)據(jù)庫如圖5所示。
圖5 碼頭地形場景模型數(shù)據(jù)庫Fig.5 Scene model database of terminal
為了增強(qiáng)仿真系統(tǒng)的實(shí)時性及真實(shí)性,需要對三維模型進(jìn)行優(yōu)化。該系統(tǒng)主要用到的優(yōu)化技術(shù)包括細(xì)節(jié)層次模型(LOD)、紋理映射和實(shí)例技術(shù)等[3]。
1)LOD技術(shù)
根據(jù)實(shí)際需要設(shè)定一定的判斷條件,仿真過程中實(shí)時地選擇不同細(xì)節(jié)層次的模型,在既不影響視覺畫面的同時也能實(shí)現(xiàn)虛擬場景顯示的實(shí)時性,減少仿真系統(tǒng)的開銷,協(xié)調(diào)仿真系統(tǒng)的實(shí)時性和逼真性的關(guān)系[4],如圖6 所示。
圖6 吊車滑輪的層次細(xì)節(jié)模型Fig.6 The level of detail crane pulley
2)紋理映射
采用紋理映射技術(shù)不但能表達(dá)出模型細(xì)節(jié),賦予模型鮮明的材質(zhì)和貼圖特征等,而且不會增加模型的復(fù)雜程度[5]。它可以增加三維模型細(xì)節(jié)水平,增強(qiáng)虛擬場景的真實(shí)性;提高模型對象的三維像素水平;模型多邊形數(shù)量大大減少,提高了仿真系統(tǒng)的實(shí)時渲染性能。
3)實(shí)例技術(shù)
通過實(shí)例化創(chuàng)建的模型副本并不會增加模型數(shù)據(jù)庫的多邊形數(shù)量。因此,創(chuàng)建模型對象的過程中,適當(dāng)?shù)夭捎脤?shí)例化技術(shù)創(chuàng)建模型實(shí)例,可以節(jié)省仿真系統(tǒng)的內(nèi)存空間以及磁盤存儲的空間,與此同時,還能提高實(shí)時仿真系統(tǒng)的處理性能。實(shí)例化技術(shù)是簡化模型數(shù)據(jù)庫的有效手段,特別是對于模型數(shù)據(jù)庫中簡單的、具有重復(fù)性的模型對象更是如此,如圖7所示。
圖7 實(shí)例技術(shù)的應(yīng)用Fig.7 Application of instance technic
根據(jù)視景仿真系統(tǒng)實(shí)時互動的特點(diǎn),本文采用手動操作鼠標(biāo)和鍵盤的輸入方式來控制克令吊的各種運(yùn)動,達(dá)到實(shí)時互動的要求。根據(jù)克令吊的運(yùn)動特性,把克令吊的運(yùn)動分為回轉(zhuǎn)和提升2個主要運(yùn)動,如圖8所示。在建立克令吊模型時,定義相應(yīng)的DOF節(jié)點(diǎn),如以塔身與底座的聯(lián)接處的中心為局部坐標(biāo)系的原點(diǎn),塔身中心線為z軸、吊臂方向?yàn)閤軸、由xz面確定y軸。通過VC++編程,調(diào)用Vega函數(shù)庫中的vgFindPart()函數(shù)找到之前定義好的DOF節(jié)點(diǎn)即可,如圖9所示。首先定義吊車正向旋轉(zhuǎn)、反向旋轉(zhuǎn)、貨物提升及貨物下降4個函數(shù):Rotate(),RevRotate(),StepUp()及StepDown(),然后在主循環(huán)程序中調(diào)用相應(yīng)的函數(shù),采用鍵盤上的A,D,W,S鍵分別控制吊車的4種運(yùn)動。這樣1個完整的運(yùn)動模型就建立了,可以通過基于VC++的Vega應(yīng)用程序來驅(qū)動各個部件,使其產(chǎn)生運(yùn)動[6]。
代碼如下:
Vega具有多通道(Multi_Channels)顯示功能,不但可以1個窗口顯示多個通道,甚至可以多個窗口顯示多個通道,通道與通道之間實(shí)現(xiàn)無縫拼接,相互重疊等功能。因此,本仿真系統(tǒng)預(yù)先設(shè)定的雙通道顯示功能可以輕松實(shí)現(xiàn),即可以同時顯示從操縱艙正前方向、斜前下方向的視景,從而進(jìn)行監(jiān)視和控制,雙通道視景的目的是為仿真中的觀察者或參與者提供大視場,如圖10所示。
圖10 Vega雙通道顯示Fig.10 Vega dual-channel display
從程序員的角度看,Vega本質(zhì)上是1套與圖形硬件無關(guān)的開發(fā)高級視景仿真應(yīng)用的軟件接口,它包含上百個用C語言編寫的應(yīng)用程序編程接口(API)函數(shù),可以通過這些函數(shù)高效地對虛擬場景進(jìn)行實(shí)時的交互控制。Vega結(jié)合先進(jìn)的模擬技術(shù)通過簡單可利用的應(yīng)用工具,提供了一種能快速準(zhǔn)確地建立復(fù)雜應(yīng)用模型的方法,并且能提供復(fù)雜的虛擬模擬原型[7]。Vega內(nèi)部含有多種用途的模塊,可以方便實(shí)現(xiàn)仿真系統(tǒng)中要求的功能[8]。
雖然Vega三維圖形開發(fā)庫功能強(qiáng)大,但它畢竟不是萬能的,當(dāng)需要建立完整、靈活多變并且具有校核功能的視景仿真系統(tǒng),就體現(xiàn)出了它的局限性。此時,基于C++的應(yīng)用程序編程接口(Vega API)函數(shù)可以方便地解決相應(yīng)問題。仿真系統(tǒng)進(jìn)行貨物吊裝時,有復(fù)雜的數(shù)學(xué)運(yùn)算、貨物的吊裝點(diǎn)選擇計算等,這些都可以通過VC++平臺編程實(shí)現(xiàn)。在船舶貨物吊裝過程中,貨物是被動的,它的空間位置也在實(shí)時變化,并跟繩子端點(diǎn)相連接,繩子與船舶吊車所受的力也在不斷變化,仿真系統(tǒng)需要對這些變化實(shí)時控制。在VC++自帶的函數(shù)庫中可以進(jìn)行編程計算,實(shí)現(xiàn)上述功能。應(yīng)用程序框架圖如圖11所示。
圖11 應(yīng)用程序框架Fig.11 Application framework chart
本文根據(jù)船舶甲板重吊吊裝貨物的特點(diǎn),利用多種建模軟件相結(jié)合的方式分別創(chuàng)建地形碼頭、船舶、吊車等對象的三維模型,并利用C++語言基于Vega三維圖形開發(fā)庫開發(fā)此仿真系統(tǒng),本文主要完成了以下工作:
1)根據(jù)甲板重吊的運(yùn)動特性,建立了吊車的運(yùn)動模型;
2)以視景驅(qū)動軟件Vega,實(shí)現(xiàn)了吊車視景仿真系統(tǒng),解決了仿真過程中模擬操作吊車的控制、雙通道顯示等問題。
仿真結(jié)果表明,該仿真系統(tǒng)具有較高的逼真度,達(dá)到了良好的視景仿真效果,符合人們的操作習(xí)慣,可以滿足甲板重吊模擬培訓(xùn)的要求。但仿真細(xì)節(jié)還不夠完善,在吊裝貨物時吊鉤與貨物不能完全聯(lián)動,這將通過進(jìn)一步的分析來完善此仿真系統(tǒng)。
[1]肖鵬,劉更代,徐明亮.OpenSceneGraph三維渲染引擎編程指南[M].北京:清華大學(xué)出版社,2010.
[2]王銳,錢學(xué)雷.OpenSceneGraph三維渲染引擎設(shè)計與實(shí)踐[M].北京:清華大學(xué)出版社,2010.
[3]洪光,李洪儒,牟建國.基于Creator的三維模型的簡化研究[J].計算機(jī)仿真,2004,21(1):57-58,115.
HONGGuang, LIHong - ru, MU Jian-guo.The simplification of the 3D model based on creator[J].Computer Simulation,2004,21(1):57-58,115.
[4]官巍,蔡曉琳,陳海.細(xì)節(jié)層次技術(shù)在場景建模中的應(yīng)用[J].系統(tǒng)仿真學(xué)報,2006,18(S2):427-429.GUAN Wei,CAI Xiao-lin,CHEN Hai.Application of level of detail technique in scene modeling[J].Journal of System Simulation,2006,18(S2):427-429.
[5]王延紅,袁媛,楊平利,等.建模軟件Creator中的紋理映射技術(shù)[J].中國體視學(xué)與圖像分析,2008,13(1):63-66.
WANG Yan-hong,YUAN Yuan,YANG Ping-li,et al.Texture mapping technology in modeling software Creator[J].Chinese Journal of Stereology and Image Analysis,2008,13(1):63-66.
[6]龔卓蓉.Vega程序設(shè)計[M].北京:國防工業(yè)出版社,2002.
[7]MultiGen-paradigm Inc.Vega diguy help[M].Dallas:MultiGen-Paradigm,Inc,2001.
[8]和平鴿工作室.OpenGL三維圖形系統(tǒng)開發(fā)與實(shí)用技術(shù)[M].重慶:重慶大學(xué)出版社,2003.
Research on dual-channel ship crane visual simulation system based on Vega
SHE Jian-guo,GAO Jun-feng,F(xiàn)AN Xiao-wei
(School of Mechanical Engineering,Jiangsu University of Science and Technology,Zhenjiang 212003,China)
For the operation of ship crane hoisting,this study constructs 3D models of wharf terrain,crane and ship et al.Based on three-dimension modeling software MultiGen-Creator,the real-time visual driving software Vega and VC++,realized ship's cargo hoisting visual simulation system driving based on Vega API combined with C++ .Simulation results show that the system is highly realistic,can solve many problems about hoisting including the moving simulation and the hoisting project.
Creator/Vega;dual-channel;ship crane;visual simulation
U663.6;TP31
A
1672-7649(2012)05-0062-05
10.3404/j.issn.1672-7649.2012.05.014
2011-05-11;
2011-07-19
佘建國(1963-),男,碩士,副教授,研究方向?yàn)闄C(jī)構(gòu)學(xué)和視景仿真。