呂建軍, 張旭斌, 楊山林, 徐仁桐
(1.上海船舶工藝研究所,上海 200032;2.滬東中華造船集團高級技工學(xué)校,上海 200136)
船舶管系制作是船舶建造的重要組成部分[1],管系的生產(chǎn)進度和整船的建造計劃緊密關(guān)聯(lián)。船舶管系主要包括管子、法蘭、閥泵、通艙管件、支撐架等,分布于船體的各部位。船舶管路布置復(fù)雜,連接方式多樣,需要結(jié)合周邊實際環(huán)境確定管路走向。形狀較規(guī)則的管路通常在放樣階段已確定布局,對于一些難以放樣的管路,一般在現(xiàn)場采用校管機校管方式和平臺校管方式解決問題。與校管機校管方式相比,平臺校管方式具有適用范圍廣、測量準(zhǔn)確、用時少等優(yōu)點。
目前,三維仿真技術(shù)[2]在船舶行業(yè)應(yīng)用越來越廣泛,在研究中針對平臺校管出現(xiàn)的裝配誤差問題,采用該技術(shù)對校管進行虛擬裝配驗證,為后續(xù)實際工作提供可操作性保障。Unity3D[3]作為專業(yè)的三維仿真引擎,自帶路徑動畫、碰撞檢測、物理引擎[4]等功能模塊,可滿足仿真驗證功能開發(fā)。在研究中主要對校管模型進行三維數(shù)字化建模,采用Unity3D對工藝順序進行路徑規(guī)劃[5],實現(xiàn)校管零部件的動態(tài)交互行為,并對在運動模擬過程中出現(xiàn)的仿真干涉及時發(fā)現(xiàn)并處理。
校管裝配驗證涉及管件三維模型、安裝工藝、安裝工具等內(nèi)容。采用3Dmax軟件進行管子、法蘭、工具等三維建模并貼圖[6],將模型導(dǎo)入Unity3D三維仿真引擎。在引擎中定義管子、法蘭的工藝屬性,定義工具的安裝機制,并設(shè)計合理的工藝路徑。隨后模擬運行虛擬裝配過程,檢查仿真干涉,查找模型穿插問題。主要包括如下功能:
(1)工具庫??蓮墓ぞ邘熘羞x擇目標(biāo)工具進行安裝操作,在選擇目標(biāo)工具后,工具會加載至三維場景執(zhí)行相應(yīng)的安裝動作仿真。
(2)工藝屬性。對管子、法蘭、工具等模型定義工藝屬性,用戶通過鼠標(biāo)點擊可查看模型的相關(guān)信息。
(3)工藝路徑規(guī)劃??赏ㄟ^算法得出合理的安裝工藝路徑,節(jié)省安裝時間。
(4)干涉檢查??蓪Π惭b過程模型交疊等問題進行干涉檢查。
整個仿真驗證邏輯功能設(shè)計如圖1所示。
圖1 總體功能設(shè)計
在實際安裝過程中,由于管系之間緊密連接,若不按照設(shè)定的工藝路徑安裝,則可能出現(xiàn)浪費時間、安裝困難、無法安裝等情況,因此需要事先進行工藝路徑規(guī)劃,確定管件安裝路徑和順序。首先對裝配零部件結(jié)構(gòu)樹綁定工藝組件,并設(shè)置零部件之間的關(guān)系。為得到合理的運動路徑,設(shè)計路徑優(yōu)化算法,使零部件運動路徑達到最優(yōu)。
在Unity3D三維空間坐標(biāo)系中,常見的仿射變換為平移、旋轉(zhuǎn)、縮放等[7]。由于3×3矩陣不能表示三維空間的變換,因此需要將其擴展為四維空間,用4×4矩陣表示,即齊次坐標(biāo)空間[8]。四維空間設(shè)定如下:
(1)
式中:M3×3為模型旋轉(zhuǎn)和縮放操作;T1×3為模型平移操作;03×1為零矩陣;右下角為標(biāo)量1。
仿射變換不涉及模型縮放,設(shè)平移矩陣為T,旋轉(zhuǎn)矩陣為Rx、Ry、Rz,則公式如下:
(2)
(3)
(4)
(5)
設(shè)定管件的初始位置為Pi,經(jīng)過平移(a,b,c),再繞x軸、y軸、z軸分別旋轉(zhuǎn)θ1、θ2、θ3,變成Pe。考慮Unity3D的歐拉角萬向節(jié)旋轉(zhuǎn)自鎖問題,需要按照繞z軸→x軸→y軸的旋轉(zhuǎn)順序,則表示路徑變化的仿射復(fù)合變換公式為
Pe=TRy(θ2)Rx(θ1)Rz(θ3)Pi
(6)
在設(shè)定矩陣變換式后,需要算出路徑最優(yōu)值。在研究中采用有限空間網(wǎng)格分析算法得出最優(yōu)路徑。在確定初始位置和目標(biāo)位置后,將三維空間抽象為有限單元網(wǎng)格,并定義一些無法越過的障礙物單元,然后通過迭代求得最小路徑。每個單元稱為1個節(jié)點,該節(jié)點會向周邊8個節(jié)點移動,并約定該節(jié)點為周圍8個節(jié)點的父節(jié)點。單元節(jié)點向相鄰節(jié)點移動的距離為10個單位距離,向?qū)枪?jié)點移動的距離為14個單位距離。采用公式F=G+H表示,其中:F為起始節(jié)點至目標(biāo)節(jié)點的總單位距離;G為起始節(jié)點至當(dāng)前節(jié)點的單位距離;H為當(dāng)前節(jié)點至目標(biāo)節(jié)點的單位距離。有限元網(wǎng)格劃分路徑計算如圖2所示,其中:A為初始位置;B為目標(biāo)位置;圓形為障礙物;三角形為最優(yōu)路徑。
圖2 路徑計算
設(shè)定2個單元列表:待檢查列表、已檢查列表。待檢查列表保存待計算的單元節(jié)點,每次迭代函數(shù)均從開放列表中選取F值最小的節(jié)點作為當(dāng)前節(jié)點,然后將當(dāng)前節(jié)點的鄰居節(jié)點添加至待檢查列表中作為待計算節(jié)點。在選出新的當(dāng)前節(jié)點后,原來的節(jié)點不再加入計算,為避免重復(fù)計算,將其移入已檢查列表。在鄰居節(jié)點循環(huán)時,若該節(jié)點不
在待檢查列表中,則需要設(shè)置F、G、H和父節(jié)點并將其加入待檢查列表。若當(dāng)前節(jié)點為目標(biāo)位置,則循環(huán)結(jié)束,根據(jù)當(dāng)前節(jié)點的父節(jié)點進行追溯,得出最小路徑。有限空間網(wǎng)格分析流程如圖3所示。
圖3 有限空間網(wǎng)格分析流程
在確定最優(yōu)路徑后,需要進行路徑模擬運動,在研究中采用DOTween組件[9]對路徑進行模擬仿真。DOTween是在Unity中常用的運動工具組件,通過設(shè)定過渡點、運動速度、運行時間等參數(shù)[10],即可插值模擬整個運動流程。
在管子實際安裝過程中,有時由于考慮不周而出現(xiàn)模型無法安裝的現(xiàn)象。為避免該問題,可在虛擬環(huán)境中進行碰撞檢查[11],提前查出干涉問題。Unity支持碰撞檢測功能,常見的碰撞體組件為Box Collider、Capsule Collider等,由于這些組件只是在模型表面添加1個包圍盒,因此精確程度不高。針對管件等形狀不規(guī)則的物體,在研究中主要采用Mesh Collider碰撞組件,可精確表現(xiàn)外輪廓。模型在虛擬場景中運動時,可給碰撞體定義觸發(fā)函數(shù)OnTriggerEnter(Collision cln)、OnTriggerStay(Collision cln)、OnTriggerExit(Collision cln);在其他物體與其發(fā)生干涉時,觸碰停止,同時受碰撞的模型突出顯示。
為驗證管件裝配情況,對實際應(yīng)用場景進行1∶1建模。首先,搭建虛擬三維場景,導(dǎo)入待校管的管件,設(shè)定管件裝配順序,綁定碰撞體組件,進行路徑規(guī)劃。然后,模擬整個過程運動,若在運動過程中出現(xiàn)干涉碰撞,則程序自動判斷并算出發(fā)生碰撞的模型。仿真效果如圖4所示。
圖4 仿真效果
船舶管系平臺校管是在主管上裝配搭焊式法蘭的一種方式,通過轉(zhuǎn)動法蘭確保管子和法蘭的螺孔相對位置,在完成校管后,將管段搬至工程現(xiàn)場進行安裝連接。在實際工程應(yīng)用中,由于工人經(jīng)驗不足、螺孔轉(zhuǎn)角計算錯誤或管子尺寸裕量不足等原因,使制作完成的管端累計誤差過大,導(dǎo)致管段無法安裝,浪費時間和成本。為提高平臺校管的可靠性,可采用虛擬仿真技術(shù)對校管工藝進行虛擬裝配可行性驗證,及早發(fā)現(xiàn)裝配問題,減少返工,提高生產(chǎn)效率。