,
(大連海事大學 航海動態仿真和控制交通行業重點實驗室,遼寧 大連 116026)
工程船克令吊廣泛用于海上物料的起重、轉移、裝卸等作業中。目前,克令吊操作人員大多采用實物教學,存在培訓成本高、效率低且風險大的缺點。隨著虛擬現實技術的蓬勃發展,通過真實再現克令吊的各種運動形態,模擬實際作業過程中所需的天氣條件,可以提高培訓效率,縮短培訓周期,同時增強海洋工程船海上作業的安全性[1],因此,關于海洋工程設備——克令吊的模型及仿真研究逐漸受到國內外眾多學者的關注[2- 6]。有學者基于MFC-OSG框架開發了海洋工程船克令吊裝卸仿真原型系統,實現了克令吊裝卸作業過程的三維動態仿真[7]。但由于該系統未能實現上端吊臂和整體吊臂的分離,不能進行主吊和輔吊同時作業;且該系統缺乏第一人稱視角,用戶體驗效果有限。
基于前人的研究成果,分析克令吊吊臂仰俯運動過程,并借助Unity3D引擎[8]及C#語言,模擬工程船克令吊的操作,搭建工程船克令吊的三維交互仿真系統,在增加第一人稱視角的基礎上實現主吊和輔吊同時作業的功能,并將該系統與航海模擬器進行集成,改變依靠克令吊實物進行教學培訓的局面。
克令吊吊臂是克令吊作業的關鍵部分,仰俯動作可通過平移和旋轉實現,其技術原理是三維空間中的幾何變換[9]。對于一些質量較大的物體,克令吊一般使用主吊進行作業。這就要求克令吊吊臂整體運動,整體吊臂模型的簡化結構如圖1所示。

圖1 克令吊的結構分析原理
克令吊整體吊臂是以E點為中心進行轉動,點A、點C同步圍繞E點進行旋轉且模型Y軸朝向E點,所以只需要實時計算出A點、C點的位置,并根據AF、CF兩點連線的方向分別設定AF、CF段模型的朝向,即可保證模型旋轉的同步性。
設:A點到E點坐標系的平移矩陣為TA(見式(1));
C點到E點坐標系的平移矩陣為TC(見式(2));
繞E點進行仰俯時的變換矩陣為SE(見式(3))。
(1)
(2)
(3)
式中:(-xA,-yA,-zA,1)為A點偏移量;(-xC,-yC,-zC,1)為C點偏移量;β為克令吊吊臂繞E點的仰俯角度。
A點繞E點旋轉的合變換矩陣如式(4)所示,C點繞E點旋轉的合變換矩陣如式(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點、C點經過平移、旋轉再平移之后的位置。其中:(xA,yA,zA)為A點未旋轉前坐標,(xC,yC,zC)為C點未旋轉前坐標,(xA′,yA′,zA′)為A點旋轉θ1角之后的坐標, (xC′,yC′,zC′)為C點旋轉θ2角之后的坐標。
旋轉后A、F兩點連線及C、F兩點連線的方向向量之間的夾角為θ1、θ2,根據向量的內積和向量的模長,兩夾角的求解如下:
(8)
(9)
式中:FA和FA′分別為吊臂旋轉β角度前、后FA段朝向向量;FC和FC′分別表示吊臂旋轉β角度前、后FC段朝向向量。
根據以上運動過程分析,當吊臂旋轉時,前段繩索AB、CD隨著吊臂的運動而運動,后段繩索AF、CF根據吊臂旋轉角度確定自身旋轉角度,保證了運動的同步性。
測試旋轉的效果如圖2所示。

圖2 整體吊臂仰俯效果圖
在船舶克令吊作業的過程中,對于一些質量較小的物體,一般使用輔吊進行搬運及轉移,克令吊上端吊臂模型的簡化結構如圖3所示。

圖3 克令吊上端的結構分析
圖3所示結構中,上端吊臂以C點為基點旋轉,所以只需要實時計算出A點的位置,并根據AF兩點連線的方向設定AF段模型的朝向,即可保證模型旋轉的同步性。與克令吊主吊運動過程相似,當上端吊臂旋轉一定角度時,前段繩索AB隨著上端吊臂的運動而運動,后段繩索AF根據上端吊臂的旋轉角度確定自身的旋轉角度,保證了運動的同步性。上端吊臂旋轉的效果見圖4。

圖4 上端吊臂仰俯效果
通過借助HTML文件來解決航海模擬器中MFC應用程序接口與Unity3D程序的對接問題。
具體過程為:Unity3D程序通過外部調用函數Application.ExternalCall()來向HTML文件中的JavaScript函數傳遞數據,MFC接口程序通過加載IE控件的StatusTextChange()消息處理函數來接收已編輯好的HTML文件;MFC接口程序通過加載IE控件BeforeNavigate2()內部SendToUnity()函數并借助HTML文件中的SendMessage()函數向Unity3D發送消息,由此實現將克令吊三維可視化模塊與航海模擬器相結合。
克令吊仿真系統的開發流程見圖5。
1)系統的開發首先采用3DMax創建克令吊及其操作臺的三維模型,利用PhotoShop對處理好的結構圖片進行貼圖,即完成材質球的制作。
2)對需要進行人機交互的結構進行分離,使其成為獨立的模型,而對不需要進行人機交互的模型進行三角面優化,同時進行渲染烘焙生成最終的紋理貼圖[11]。
3)將模型保存為.FBX格式文件并導入到Unity3D中,導入到Unity3D中的模型還需添加攝像機、燈光以及碰撞檢測的設置,并通過CJHJ腳本的編寫實現克令吊裝配及卸載的過程仿真。
4)為了增加操作真實感,借助GUI組件在主界面上顯示克令吊各個功能模塊及其實現的操作鍵,并利用第一人稱視角及Shader編程渲染出克令吊操作臺周圍的玻璃效果,實現交互功能[12]。
5)最終通過Unity3D的跨平臺功能將其發布為網頁版,使工程船克令吊的仿真系統實現真正的跨平臺使用。

圖5 系統開發流程
用戶體驗設計包括信息架構、內容文本、視覺設計、交互設計等[13],原有基于MFC- OSG框架開發的海洋工程船克令吊裝卸仿真原型系統中缺乏第一人稱視角,用戶體驗效果有待提高。船舶克令吊仿真系統的用戶主要是海事院校的師生及參加評估培訓的社會船員,這些用戶群體對航海操作實踐有著較高的要求,這就使得所開發的系統需要緊密結合航海操作實踐,充分考慮用戶使用需求。基于Unity3D開發出的克令吊仿真系統增加了第一人稱視角,當用戶在操作仿真系統時,可以根據自身的需求進行調整,使得在增強仿真系統的真實感和靈活性的同時提升用戶體驗效果。例如,用戶在利用鍵盤進行人機交互的前提下,不僅可以通過鼠標點擊操作臺的按鈕來控制克令吊的運動,也可以使用主界面中GUI組件顯示的克令吊功能模塊的操作鍵來控制克令吊的運動。此外,采用Shader編程渲染出克令吊操作臺周圍的玻璃效果,起到了增強克令吊三維仿真系統的操作真實感的作用。
基于對克令吊吊臂仰俯運動過程的研究,通過不同的變換矩陣實現克令吊作業過程中吊臂模型運動效果的模擬;采用經典的三維變換理論實現繩索的收繳與放出效果的模擬。在克令吊三維交互設計中,碰撞檢測是其中的關鍵部分,是保障三維仿真系統真實感的必要條件,利用Unity3D引擎中自帶的碰撞檢測組件實現碰撞檢測;添加相應的碰撞檢測組件后,通過編寫包含碰撞檢測函數的C#腳本,實現相應的碰撞檢測以及控制碰撞檢測后的行為。通過在包含碰撞檢測的腳本中對“父子關系”的設定來實現主吊裝配及卸載貨物的過程仿真。
基于虛擬現實技術設計并開發了海洋工程船挺桿式克令吊的仿真系統,模擬了克令吊裝卸貨物時吊臂及繩索的運動過程,并從用戶體驗角度出發,增加第一人稱視角,提升了用戶的體驗效果,實現了克令吊仿真系統的人機交互。該仿真系統界面友好、性能穩定,使用效果良好,基本可以滿足使用仿真系統訓練克令吊操作人員的要求,對于航海仿真用戶海上物料的裝卸轉移的虛擬培訓具有一定的實用價值。由于文中模型并未考慮外界環境(如風流干擾)對吊物運動的影響,因此目前該克令吊仿真系統只適用于理想海況下的虛擬訓練;為了擴大該仿真系統的使用范圍,在后續研究中需要進一步完善克令吊的運動模型,使得克令吊仿真系統可應用于更多不同海況環境下的培訓。
[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] 姜銀方,姬勝杰,潘凌云,等.回轉式起重機吊擺系統的建模與仿真分析[J].電子科技,2015,28(10):22- 26.
[6] 呂宏松.起重船吊物系統動態特性分析及模型實驗研究[D].武漢:華中科技大學,2009.
[7] 王秀杰.海洋工程船克令吊裝卸作業數學模型研究[D].大連:大連海事大學,2015.
[8] 吳亞峰,于復興.Unity3D游戲開發技術詳解與典型案例分析[M].北京:人民郵電出版社,2012.
[9] SCHNEIDER P J, EBERLY D. Geometric tools for computer graphics[M]. Elsevier Science Inc. 2002.
[10] 梁民倉.基于虛擬現實技術的深潛器收放操作仿真[D].大連:大連海事大學,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].艦船科學技術,2017,39(6):110- 114.