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