,
(大連海事大學(xué) 航海動(dòng)態(tài)仿真和控制交通行業(yè)重點(diǎn)實(shí)驗(yàn)室,遼寧 大連 116026)
工程船克令吊廣泛用于海上物料的起重、轉(zhuǎn)移、裝卸等作業(yè)中。目前,克令吊操作人員大多采用實(shí)物教學(xué),存在培訓(xùn)成本高、效率低且風(fēng)險(xiǎn)大的缺點(diǎn)。隨著虛擬現(xiàn)實(shí)技術(shù)的蓬勃發(fā)展,通過真實(shí)再現(xiàn)克令吊的各種運(yùn)動(dòng)形態(tài),模擬實(shí)際作業(yè)過程中所需的天氣條件,可以提高培訓(xùn)效率,縮短培訓(xùn)周期,同時(shí)增強(qiáng)海洋工程船海上作業(yè)的安全性[1],因此,關(guān)于海洋工程設(shè)備——克令吊的模型及仿真研究逐漸受到國內(nèi)外眾多學(xué)者的關(guān)注[2- 6]。有學(xué)者基于MFC-OSG框架開發(fā)了海洋工程船克令吊裝卸仿真原型系統(tǒng),實(shí)現(xiàn)了克令吊裝卸作業(yè)過程的三維動(dòng)態(tài)仿真[7]。但由于該系統(tǒng)未能實(shí)現(xiàn)上端吊臂和整體吊臂的分離,不能進(jìn)行主吊和輔吊同時(shí)作業(yè);且該系統(tǒng)缺乏第一人稱視角,用戶體驗(yàn)效果有限。
基于前人的研究成果,分析克令吊吊臂仰俯運(yùn)動(dòng)過程,并借助Unity3D引擎[8]及C#語言,模擬工程船克令吊的操作,搭建工程船克令吊的三維交互仿真系統(tǒng),在增加第一人稱視角的基礎(chǔ)上實(shí)現(xiàn)主吊和輔吊同時(shí)作業(yè)的功能,并將該系統(tǒng)與航海模擬器進(jìn)行集成,改變依靠克令吊實(shí)物進(jìn)行教學(xué)培訓(xùn)的局面。
克令吊吊臂是克令吊作業(yè)的關(guān)鍵部分,仰俯動(dòng)作可通過平移和旋轉(zhuǎn)實(shí)現(xiàn),其技術(shù)原理是三維空間中的幾何變換[9]。對(duì)于一些質(zhì)量較大的物體,克令吊一般使用主吊進(jìn)行作業(yè)。這就要求克令吊吊臂整體運(yùn)動(dòng),整體吊臂模型的簡化結(jié)構(gòu)如圖1所示。
圖1 克令吊的結(jié)構(gòu)分析原理
克令吊整體吊臂是以E點(diǎn)為中心進(jìn)行轉(zhuǎn)動(dòng),點(diǎn)A、點(diǎn)C同步圍繞E點(diǎn)進(jìn)行旋轉(zhuǎn)且模型Y軸朝向E點(diǎn),所以只需要實(shí)時(shí)計(jì)算出A點(diǎn)、C點(diǎn)的位置,并根據(jù)AF、CF兩點(diǎn)連線的方向分別設(shè)定AF、CF段模型的朝向,即可保證模型旋轉(zhuǎn)的同步性。
設(shè):A點(diǎn)到E點(diǎn)坐標(biāo)系的平移矩陣為TA(見式(1));
C點(diǎn)到E點(diǎn)坐標(biāo)系的平移矩陣為TC(見式(2));
繞E點(diǎn)進(jìn)行仰俯時(shí)的變換矩陣為SE(見式(3))。
(1)
(2)
(3)
式中:(-xA,-yA,-zA,1)為A點(diǎn)偏移量;(-xC,-yC,-zC,1)為C點(diǎn)偏移量;β為克令吊吊臂繞E點(diǎn)的仰俯角度。
A點(diǎn)繞E點(diǎn)旋轉(zhuǎn)的合變換矩陣如式(4)所示,C點(diǎn)繞E點(diǎn)旋轉(zhuǎn)的合變換矩陣如式(5)所示。
M1=TA·SE·(-TA)
(4)
M2=TC·SE·(-TC)
(5)
則有:
(xA′,yA′,zA′,1)=(xA,yA,zA,1)·M1
(6)
(xC′,yC′,zC′,1)=(xC,yC,zC,1)·M2
(7)
通過式(6)、式(7)可得到A點(diǎn)、C點(diǎn)經(jīng)過平移、旋轉(zhuǎn)再平移之后的位置。其中:(xA,yA,zA)為A點(diǎn)未旋轉(zhuǎn)前坐標(biāo),(xC,yC,zC)為C點(diǎn)未旋轉(zhuǎn)前坐標(biāo),(xA′,yA′,zA′)為A點(diǎn)旋轉(zhuǎn)θ1角之后的坐標(biāo), (xC′,yC′,zC′)為C點(diǎn)旋轉(zhuǎn)θ2角之后的坐標(biāo)。
旋轉(zhuǎn)后A、F兩點(diǎn)連線及C、F兩點(diǎn)連線的方向向量之間的夾角為θ1、θ2,根據(jù)向量的內(nèi)積和向量的模長,兩夾角的求解如下:
(8)
(9)
式中:FA和FA′分別為吊臂旋轉(zhuǎn)β角度前、后FA段朝向向量;FC和FC′分別表示吊臂旋轉(zhuǎn)β角度前、后FC段朝向向量。
根據(jù)以上運(yùn)動(dòng)過程分析,當(dāng)?shù)醣坌D(zhuǎn)時(shí),前段繩索AB、CD隨著吊臂的運(yùn)動(dòng)而運(yùn)動(dòng),后段繩索AF、CF根據(jù)吊臂旋轉(zhuǎn)角度確定自身旋轉(zhuǎn)角度,保證了運(yùn)動(dòng)的同步性。
測試旋轉(zhuǎn)的效果如圖2所示。
圖2 整體吊臂仰俯效果圖
在船舶克令吊作業(yè)的過程中,對(duì)于一些質(zhì)量較小的物體,一般使用輔吊進(jìn)行搬運(yùn)及轉(zhuǎn)移,克令吊上端吊臂模型的簡化結(jié)構(gòu)如圖3所示。
圖3 克令吊上端的結(jié)構(gòu)分析
圖3所示結(jié)構(gòu)中,上端吊臂以C點(diǎn)為基點(diǎn)旋轉(zhuǎn),所以只需要實(shí)時(shí)計(jì)算出A點(diǎn)的位置,并根據(jù)AF兩點(diǎn)連線的方向設(shè)定AF段模型的朝向,即可保證模型旋轉(zhuǎn)的同步性。與克令吊主吊運(yùn)動(dòng)過程相似,當(dāng)上端吊臂旋轉(zhuǎn)一定角度時(shí),前段繩索AB隨著上端吊臂的運(yùn)動(dòng)而運(yùn)動(dòng),后段繩索AF根據(jù)上端吊臂的旋轉(zhuǎn)角度確定自身的旋轉(zhuǎn)角度,保證了運(yùn)動(dòng)的同步性。上端吊臂旋轉(zhuǎn)的效果見圖4。
圖4 上端吊臂仰俯效果
通過借助HTML文件來解決航海模擬器中MFC應(yīng)用程序接口與Unity3D程序的對(duì)接問題。
具體過程為:Unity3D程序通過外部調(diào)用函數(shù)Application.ExternalCall()來向HTML文件中的JavaScript函數(shù)傳遞數(shù)據(jù),MFC接口程序通過加載IE控件的StatusTextChange()消息處理函數(shù)來接收已編輯好的HTML文件;MFC接口程序通過加載IE控件BeforeNavigate2()內(nèi)部SendToUnity()函數(shù)并借助HTML文件中的SendMessage()函數(shù)向Unity3D發(fā)送消息,由此實(shí)現(xiàn)將克令吊三維可視化模塊與航海模擬器相結(jié)合。
克令吊仿真系統(tǒng)的開發(fā)流程見圖5。
1)系統(tǒng)的開發(fā)首先采用3DMax創(chuàng)建克令吊及其操作臺(tái)的三維模型,利用PhotoShop對(duì)處理好的結(jié)構(gòu)圖片進(jìn)行貼圖,即完成材質(zhì)球的制作。
2)對(duì)需要進(jìn)行人機(jī)交互的結(jié)構(gòu)進(jìn)行分離,使其成為獨(dú)立的模型,而對(duì)不需要進(jìn)行人機(jī)交互的模型進(jìn)行三角面優(yōu)化,同時(shí)進(jìn)行渲染烘焙生成最終的紋理貼圖[11]。
3)將模型保存為.FBX格式文件并導(dǎo)入到Unity3D中,導(dǎo)入到Unity3D中的模型還需添加攝像機(jī)、燈光以及碰撞檢測的設(shè)置,并通過CJHJ腳本的編寫實(shí)現(xiàn)克令吊裝配及卸載的過程仿真。
4)為了增加操作真實(shí)感,借助GUI組件在主界面上顯示克令吊各個(gè)功能模塊及其實(shí)現(xiàn)的操作鍵,并利用第一人稱視角及Shader編程渲染出克令吊操作臺(tái)周圍的玻璃效果,實(shí)現(xiàn)交互功能[12]。
5)最終通過Unity3D的跨平臺(tái)功能將其發(fā)布為網(wǎng)頁版,使工程船克令吊的仿真系統(tǒng)實(shí)現(xiàn)真正的跨平臺(tái)使用。
圖5 系統(tǒng)開發(fā)流程
用戶體驗(yàn)設(shè)計(jì)包括信息架構(gòu)、內(nèi)容文本、視覺設(shè)計(jì)、交互設(shè)計(jì)等[13],原有基于MFC- OSG框架開發(fā)的海洋工程船克令吊裝卸仿真原型系統(tǒng)中缺乏第一人稱視角,用戶體驗(yàn)效果有待提高。船舶克令吊仿真系統(tǒng)的用戶主要是海事院校的師生及參加評(píng)估培訓(xùn)的社會(huì)船員,這些用戶群體對(duì)航海操作實(shí)踐有著較高的要求,這就使得所開發(fā)的系統(tǒng)需要緊密結(jié)合航海操作實(shí)踐,充分考慮用戶使用需求?;赨nity3D開發(fā)出的克令吊仿真系統(tǒng)增加了第一人稱視角,當(dāng)用戶在操作仿真系統(tǒng)時(shí),可以根據(jù)自身的需求進(jìn)行調(diào)整,使得在增強(qiáng)仿真系統(tǒng)的真實(shí)感和靈活性的同時(shí)提升用戶體驗(yàn)效果。例如,用戶在利用鍵盤進(jìn)行人機(jī)交互的前提下,不僅可以通過鼠標(biāo)點(diǎn)擊操作臺(tái)的按鈕來控制克令吊的運(yùn)動(dòng),也可以使用主界面中GUI組件顯示的克令吊功能模塊的操作鍵來控制克令吊的運(yùn)動(dòng)。此外,采用Shader編程渲染出克令吊操作臺(tái)周圍的玻璃效果,起到了增強(qiáng)克令吊三維仿真系統(tǒng)的操作真實(shí)感的作用。
基于對(duì)克令吊吊臂仰俯運(yùn)動(dòng)過程的研究,通過不同的變換矩陣實(shí)現(xiàn)克令吊作業(yè)過程中吊臂模型運(yùn)動(dòng)效果的模擬;采用經(jīng)典的三維變換理論實(shí)現(xiàn)繩索的收繳與放出效果的模擬。在克令吊三維交互設(shè)計(jì)中,碰撞檢測是其中的關(guān)鍵部分,是保障三維仿真系統(tǒng)真實(shí)感的必要條件,利用Unity3D引擎中自帶的碰撞檢測組件實(shí)現(xiàn)碰撞檢測;添加相應(yīng)的碰撞檢測組件后,通過編寫包含碰撞檢測函數(shù)的C#腳本,實(shí)現(xiàn)相應(yīng)的碰撞檢測以及控制碰撞檢測后的行為。通過在包含碰撞檢測的腳本中對(duì)“父子關(guān)系”的設(shè)定來實(shí)現(xiàn)主吊裝配及卸載貨物的過程仿真。
基于虛擬現(xiàn)實(shí)技術(shù)設(shè)計(jì)并開發(fā)了海洋工程船挺桿式克令吊的仿真系統(tǒng),模擬了克令吊裝卸貨物時(shí)吊臂及繩索的運(yùn)動(dòng)過程,并從用戶體驗(yàn)角度出發(fā),增加第一人稱視角,提升了用戶的體驗(yàn)效果,實(shí)現(xiàn)了克令吊仿真系統(tǒng)的人機(jī)交互。該仿真系統(tǒng)界面友好、性能穩(wěn)定,使用效果良好,基本可以滿足使用仿真系統(tǒng)訓(xùn)練克令吊操作人員的要求,對(duì)于航海仿真用戶海上物料的裝卸轉(zhuǎn)移的虛擬培訓(xùn)具有一定的實(shí)用價(jià)值。由于文中模型并未考慮外界環(huán)境(如風(fēng)流干擾)對(duì)吊物運(yùn)動(dòng)的影響,因此目前該克令吊仿真系統(tǒng)只適用于理想海況下的虛擬訓(xùn)練;為了擴(kuò)大該仿真系統(tǒng)的使用范圍,在后續(xù)研究中需要進(jìn)一步完善克令吊的運(yùn)動(dòng)模型,使得克令吊仿真系統(tǒng)可應(yīng)用于更多不同海況環(huán)境下的培訓(xùn)。
[1] DONG X Y. Research on the virtual reality training simulation technology based on key technology of physical simulation[J]. Advanced materials research, 2013,791- 793:1208- 1213.
[2] ELLING R, MCCLINTON A. Dynamic loading of shipboard cranes[C]Engineering in the Ocean Environment, Ocean 73 - IEEE International Conference on. IEEE, 1973:174- 177.
[3] MALEKI E A. Dynamics and control of a small- scale boom crane[J]. Journal of computational & nonlinear dynamics, 2011,6(3):921- 928.
[4] WILSON B H, MOURANT R R, LI M, et al. A virtual environment for training overhead crane operators: real- time implementation[J]. Iie transactions, 1998,30(7):589- 595.
[5] 姜銀方,姬勝杰,潘凌云,等.回轉(zhuǎn)式起重機(jī)吊擺系統(tǒng)的建模與仿真分析[J].電子科技,2015,28(10):22- 26.
[6] 呂宏松.起重船吊物系統(tǒng)動(dòng)態(tài)特性分析及模型實(shí)驗(yàn)研究[D].武漢:華中科技大學(xué),2009.
[7] 王秀杰.海洋工程船克令吊裝卸作業(yè)數(shù)學(xué)模型研究[D].大連:大連海事大學(xué),2015.
[8] 吳亞峰,于復(fù)興.Unity3D游戲開發(fā)技術(shù)詳解與典型案例分析[M].北京:人民郵電出版社,2012.
[9] SCHNEIDER P J, EBERLY D. Geometric tools for computer graphics[M]. Elsevier Science Inc. 2002.
[10] 梁民倉.基于虛擬現(xiàn)實(shí)技術(shù)的深潛器收放操作仿真[D].大連:大連海事大學(xué),2016.
[11] XIAO J. Design and implementation of 3D virtual digital campus - based on Unity3D[C] Eighth International Conference on Measuring Technology and Mechatronics Automation. IEEE, 2016:187- 190.
[12] 符斌,任鴻翔,李小濤.觸控式航海模擬器人機(jī)交互系統(tǒng)優(yōu)化設(shè)計(jì)[J].艦船科學(xué)技術(shù),2017,39(6):110- 114.