謝 宇,何坤金,陳義仁,王江坤
(1. 河海大學(xué)物聯(lián)網(wǎng)工程學(xué)院,江蘇常州 213022;2. 河海大學(xué)疏浚技術(shù)教育部工程研究中心,江蘇常州 213022)
近年來,我國的水利工程建設(shè)逐漸成熟,國家對于近海清淤問題越來越重視。疏浚船在水利工程建設(shè)中有重要的作用,其中以絞吸式挖泥疏浚船的應(yīng)用最為廣泛,鉸吸式挖泥船的工作效率高,適應(yīng)的范圍廣,但由于疏浚過程的繁瑣,疏浚作業(yè)環(huán)境復(fù)雜多變,為疏浚船的工作人員培訓(xùn)和工程的預(yù)測帶來了不便。
以絞吸式挖泥船為代表的疏浚船,船身由船體、定樁、鉸刀及吸排泥管[1]等組成,如圖1所示,其工作時,通過主副樁固定船身以及驅(qū)動船身移動,前端的鉸刀旋轉(zhuǎn)進行挖掘工作,經(jīng)過吸排泥管將鉸刀切削的碎片輸送至排泥區(qū),完成整個疏浚的工作過程。
圖1 船體結(jié)構(gòu)
水下的地形,信息復(fù)雜,分析難度大,通過提前進行地形數(shù)據(jù)勘測,生成水下地形的模型,可以在作業(yè)前期對整個工作流程進行預(yù)估,減少實際施工的準(zhǔn)備時間。王娟,季磊等人[2]通過C#編寫CAD,以Delaunay三角網(wǎng)為理論基礎(chǔ)生成了三維地形。何坤金等人[3]提出了三維地形與疏浚鉸刀虛擬生成的方法,采用數(shù)據(jù)分塊與網(wǎng)格表示三維地形,并建立了鉸刀的三維模型及包圍盒,提出的方法能夠滿足疏浚的要求。
疏浚船的核心作業(yè)部分是位于前方的鉸刀頭,傳統(tǒng)培訓(xùn)工作在疏浚船上進行,船員無法對鉸刀的工作情景有一個直觀的感受,通過虛擬仿真技術(shù)對絞吸挖泥過程進行模擬,對水下地形在絞吸過程的變化進行模擬,降低培訓(xùn)的時間成本和消除潛在的安全的隱患。楊嘯軼[4]對鉸刀進行了有限元分析,計算并驗證鉸刀切削過程中的載荷情況及模態(tài)。蘇召斌[5]等人對挖泥船挖巖過程進行了數(shù)值模擬,提出了切層厚度及步進距離的數(shù)學(xué)表示方法。
國外對于疏浚船仿真系統(tǒng)的研究起步較早,荷蘭美國[6]設(shè)計的仿真系統(tǒng),已應(yīng)用于培訓(xùn)。國內(nèi)對于此類仿真系統(tǒng),倪福生等人[7]在絞吸挖泥船疏浚仿真研究一文中提出了采用多通道環(huán)幕投影的仿真系統(tǒng)以增強系統(tǒng)的臨場感?;赨nity3D技術(shù),姚鵬飛等人[8]針對切削流程,著重于解決挖泥船的鉸刀切削的地形變化,以及使用虛擬現(xiàn)實技術(shù)進行操作系統(tǒng)的問題。
本文設(shè)計了一種基于Unity3D的疏浚船作業(yè)仿真系統(tǒng),通過生成水下地形,疏浚船作業(yè)細(xì)節(jié)仿真,鉸刀地形交互三個方面,對整個系統(tǒng)進行設(shè)計,旨在彌補傳統(tǒng)疏浚船培訓(xùn)的不足,提高疏浚船作業(yè)流程的效率。
基于Unity3D的疏浚作業(yè)船作業(yè)仿真系統(tǒng)主要從以下三個方面來設(shè)計:地形生成模塊、船體交互模塊、鉸刀挖掘模塊,如圖2所示。
圖2 整體框架
根據(jù)組織框架,系統(tǒng)由三大模塊組成,其中重點為地形生成模塊以及鉸刀切削模塊。首先,在地形生成模塊中,利用已有的數(shù)據(jù)進行插值處理,生成高程圖,利用網(wǎng)格生成地形模型。其次,船體模型采用3ds Max建模軟件,以“天獅號”疏浚船為模板,對疏浚船進行了建模。系統(tǒng)中設(shè)計了船體和船員兩種不同的漫游視角,可自定義選取施工區(qū)域,可交互控制,同時加入了駕駛艙的設(shè)計,設(shè)置了多角度的觀察視角。最后,在鉸刀切削模塊中,通過簡化模型,添加包圍盒,細(xì)化地形網(wǎng)格,層次細(xì)節(jié)(LevelofDetail,LOD)技術(shù)[9],曲面細(xì)分技術(shù)等方法,對鉸刀與地形的交互變形進行了仿真,便于船員的觀察。
水下地形信息復(fù)雜,是影響疏浚作業(yè)工作效率的主要因素之一,通過在系統(tǒng)中生成水下地形,可以在作業(yè)前對整個作業(yè)環(huán)境做出評估,規(guī)避障礙,提升作業(yè)效率,降低作業(yè)風(fēng)險。該模塊對水下地形從數(shù)據(jù)獲取到可視化的整個處理過程進行了設(shè)計[10],提出在勘測過地形數(shù)據(jù)的區(qū)域,采用灰度值替代高程值的方法進行地形網(wǎng)格的生成。
地形數(shù)據(jù)是一組地理數(shù)據(jù),包含位置信息和對應(yīng)位置的高程值[11],其數(shù)據(jù)格式如表1所示。
表1 輸入數(shù)據(jù)
對已知數(shù)據(jù)的水下地形,生成地形的步驟總結(jié)如下:
1)將數(shù)據(jù)進行插值處理,進行數(shù)據(jù)補足,便于網(wǎng)格細(xì)節(jié)的生成;
2)對原始數(shù)據(jù)進行灰度值歸一化,將原有的高程值對應(yīng)到灰度值中,見式(1)
(1)
其中H表示高程數(shù)據(jù),Hmin表示高程數(shù)據(jù)中的最小值,Hmax表示高程數(shù)據(jù)中的最大值。
3)將處理好的數(shù)據(jù)進行灰度化處理,得到整個數(shù)據(jù)的等高線圖及地形的灰度圖。如圖3所示。
圖3 等高線圖及灰度圖
4)將灰度圖導(dǎo)入到Unity3D中進行網(wǎng)格生成,利用灰度圖生成地形的主要原理是通過網(wǎng)格表示地形[12],同時在網(wǎng)格上覆上灰度格中頂點的位置,黑色像素所對應(yīng)的灰度值為0,代表海拔最低的位置,白色像素多對應(yīng)的灰度值為255,代表海拔最高的地方。由此生成的網(wǎng)格地形如圖4所示。左圖中為數(shù)據(jù)點對應(yīng)的位置,右圖中為生成的網(wǎng)格模型。
圖4 點云轉(zhuǎn)化網(wǎng)格模型
由初始數(shù)據(jù)生成的地形,點的間距較大,生成的地形模型網(wǎng)格變化不連續(xù),地形生成的效果較差,通過插值方法,將數(shù)據(jù)進行填充,得到填充后的數(shù)據(jù)灰度圖后進行建模,如圖5所示(圖(a)為原數(shù)據(jù)建模,圖(b)為采用最近鄰插值法后建模,圖(c)為薄板樣條插值法后建模),通過對比可以發(fā)現(xiàn)填充后的數(shù)據(jù),較原數(shù)據(jù)組更具有連續(xù)性,可以很好的將地形模型進行優(yōu)化,原數(shù)據(jù)生成的模型的邊緣尖銳問題,得到了很好的解決。
圖5 地形建模
本文選擇兩種插值方法:最近鄰插值法和薄板樣條插值法,通過交叉驗證進行對比,如圖6(圖(a)為最近鄰法插值擬合結(jié)果,圖(b)為薄板樣條法插值擬合結(jié)果),薄板樣條插值法得出的插值高程與實際高程的擬合度更大,且比較穩(wěn)定,所有點都集中在正交直線上,薄板樣條插值[13]方法的擬合性能更好,數(shù)據(jù)在擬合曲線的兩側(cè)的分布更均勻,因此本文選擇薄板樣條插值方法進行插值,得到的地形插值數(shù)據(jù)與實際情況更為接近,穩(wěn)定性更好。
圖6 擬合數(shù)據(jù)對比
疏浚船的模型結(jié)構(gòu)非常復(fù)雜,組成部件眾多,忽略螺絲等較小的模型外,還有四百多個組成部件,若每次在船體運動時,都需要渲染整艘船體模型,不僅工作繁瑣,而且效率低下。而建立船體模型的目錄樹可以支持船體模型在運動渲染時,有針對性的進行選擇渲染,提高模型的加載速度。建立的目錄樹模型層次結(jié)構(gòu)取決于船體模型的層次關(guān)系。第一層是根節(jié)點,即完整的船體模型,第二層是對根節(jié)點的第一次劃分,包括船體的主要組成部分,第三層是對上一層的主要組成部分進行繼續(xù)劃分;逐層往下,每層部件的所有孩子節(jié)點組合構(gòu)成。
目錄樹的建立過程:首先,父節(jié)點建立成功后可以得到該父節(jié)點的句柄;然后,孩子節(jié)點尋找到它的父節(jié)點句柄后作為孩子節(jié)點加入父節(jié)點,即可建立父子關(guān)系。所以,目錄樹是按照層次順序建立的。如圖7所示。
圖7 船體目錄樹
疏浚船的主要運動部件組成部分如圖8所示。在該模塊中添加了多端漫游系統(tǒng),設(shè)置了兩個不同的對象進行漫游,如圖9,(a)是疏浚船的漫游,(b)為船員的漫游,以用戶交互的方式切換控制對象。
圖8 船體組成
圖9 雙視角漫游
此模塊針對疏浚船的主要運動部件,在船舶內(nèi)設(shè)置了多個漫游交互點,船員在進行漫游時可與之交互,顯示相關(guān)設(shè)施的信息[14],提供船員進行理解,如圖10(a)顯示的為船體不同位置的駕駛艙觀察視角,圖10(b)為特定位置顯示的部件信息。
圖10 駕駛艙控制鉸刀模型
駕駛艙中設(shè)計了主要的運動部件控制系統(tǒng),以實現(xiàn)一端多控的功能,可以同時觀察船體各部分的實時狀態(tài),船員在駕駛艙內(nèi)即可進行相應(yīng)的視角觀察,因此,需要對主要工作部件建立相應(yīng)的運動模型。疏浚船到達(dá)工作區(qū)域后,采用主輔樁定位橫挖施工法進行疏浚施工,將挖槽中心線上的主副樁作為船體的旋轉(zhuǎn)中心,依靠橫移的作用使鉸刀在挖槽寬度內(nèi)做左右橫向往返擺動,使鉸刀分層切削開挖斷面土層,通過臺車控制主輔樁的移動,改變船體旋轉(zhuǎn)中心,調(diào)整左右橫移絞車收放橫移線纜的速度,改變鉸刀的移動速度及鉸刀在斷面上不同的切削位置。通過橋臂中置的泥漿泵吸入絞吸物,經(jīng)排泥管線把泥水混合物輸送到指定的吹填區(qū)。不同的收纜速度決定了船舶橫移的速度,其速度關(guān)系式2如下
(2)
其中Vh表示疏浚船的橫移速度,Vz表示收纜速度,其它符號如圖11所示。
圖11 鉸刀臂運動
疏浚船的核心工作是鉸刀組和橋臂的運動,所以鉸刀切削模擬的效果至關(guān)重要[15]。在不同的地形上進行切削,鉸刀和地形的交互變化是核心部分。為了更好的模擬出鉸刀切削的效果,通過簡化鉸刀模型,網(wǎng)格和貼圖變形結(jié)合的方式來提高仿真的效果。
鉸刀頭的主體由大環(huán)、刀臂、刀齒、輪轂組成,如圖12左圖所示。鉸刀工作時,挖泥船繞主樁旋轉(zhuǎn),鉸刀頭也隨之旋轉(zhuǎn),由于鉸刀頭距離主樁距離較遠(yuǎn)[16],疏浚船轉(zhuǎn)動角度有限,鉸刀頭繞主樁的轉(zhuǎn)動可以近似看成橫移運動,鉸刀頭按一定的轉(zhuǎn)速旋轉(zhuǎn),刀齒依次切削泥土,刀齒固定在刀臂上,刀臂旋轉(zhuǎn)使得泥土聚集到內(nèi)部的吸泥口,在仿真模擬時可以將鉸刀刀臂上的刀齒進行簡化,以降低計算機的運算消耗,提高運行速率。通過在3dsMax中對鉸刀進行簡化,去掉鉸刀刀臂上的刀齒,只保留刀臂、大環(huán)和輪轂,如圖12右圖所示[15]。
圖12 鉸刀組成及簡化模型
不同的地形土質(zhì)需要配對不同類型的鉸刀,鉸刀,鉸刀的結(jié)構(gòu)形狀可以通過相應(yīng)的參數(shù)進行控制。如圖13鉸刀的結(jié)構(gòu)圖所示,刀臂輪廓1所示的鉸刀內(nèi)腔較大,適合挖掘土質(zhì)較軟的土壤,刀臂輪廓線2所示的鉸刀適合挖掘土質(zhì)中等的土壤,刀臂輪廓線3所示的鉸刀適合挖掘土質(zhì)堅硬的碎石土和巖石等。
圖13 鉸刀結(jié)構(gòu)
鉸刀的結(jié)構(gòu)及參數(shù)如圖14,15所示,根據(jù)公式(3)可以確定鉸刀的數(shù)學(xué)模型,k1為鉸刀介質(zhì)切削系數(shù),k2為鉸刀形狀參數(shù),它們的取值由土質(zhì)的力學(xué)性質(zhì)來確定,土質(zhì)越軟k的取值越小。
(3)
圖14 鉸刀平面
圖15 鉸刀軸面
使用簡化頂點面數(shù)的圓臺鉸刀包圍盒來提高碰撞檢測精度并減少碰撞檢測復(fù)雜度,提高計算的速度,如圖16所示。
圖16 鉸刀包圍盒
挖掘模塊中采取了網(wǎng)格變形和貼圖變形的形式來進行地形挖掘的仿真[17]。首先提取原始地形網(wǎng)格中的頂點位置,生成點云模型[18],將原始網(wǎng)格頂點的位置儲存在數(shù)組中,同時將每個頂點的速度也進行存儲,為了更好的仿真切削力,通過添加偏移量的方式來模擬網(wǎng)格頂點受到的力的方向。由于每個網(wǎng)格頂點受到力的大小方向不同,相應(yīng)獲得的速度不同,網(wǎng)格的變形程度也不同。通過反平方定律來模擬里的衰減效果,本文中將原始力除以平方距離,即Fv=F/d2,為了在距離為零時,力處于全強度,將公式改為Fv=F/1+d2,將獲得的力轉(zhuǎn)化為速度,a=F/m,Δv=aΔt,由于網(wǎng)格頂點的質(zhì)量為0,所以得到Δv=FΔt,同時重新計算頂點的法線方向。
實現(xiàn)步驟如下:
1)設(shè)置碰撞檢測的條件,通過在鉸刀模型的包圍盒上設(shè)置碰撞體,檢測與地形的碰撞。
2)遍歷點云集合,在三角面片相連的頂點處生成新的頂點來控制網(wǎng)格的變形。
3)根據(jù)定點獲得的力的方向和速度,改變網(wǎng)格頂點的坐標(biāo)位置。
4)將改變的頂點位置應(yīng)用到相應(yīng)的頂點處,實現(xiàn)地形網(wǎng)格的變化,如圖17所示。
為了增加地形挖掘的顯示效果,同時在地形的下方放置兩個攝像機,一個攝像機在第一幀時刻記錄下地形的初始深度,另一個相機記錄下鉸刀實時下刀的深度,通過兩個攝像機得到的深度差值信息,計算鉸刀在運動時不同的位置信息。根據(jù)計算得到的深度值,進行輪廓檢測,同時記錄顏色,根據(jù)最后深度圖的不同,將地形分為不同的通道,通過細(xì)分曲面技術(shù),將兩個通道的部分進行反方向移動頂點位置,形成鉸刀掃過后兩邊凸起的部分,如圖17所示,圖(a)和圖(b)為原地形模型和網(wǎng)格模型圖(c)和圖(d)為變形后的地形模型和網(wǎng)格模型。
圖17 網(wǎng)格變形
在利用插值生成的細(xì)化地形網(wǎng)格模型上使用曲面細(xì)分技術(shù),使得地形與鉸刀進行交互時,可以更好的模擬出地形的變化過程,加入全局的小地圖總覽,可以根據(jù)挖掘的深度不同,顯示出挖掘過的地區(qū)不同的顯示效果,通過粒子效果的加入,還可以模仿水下地形受水流作用,挖掘的地形緩慢回填的效果,增強了仿真的效果,如圖18所示。
圖18 挖掘痕跡顯示
本文通過Unity3D設(shè)計了以鉸吸式挖泥船為代表的疏浚船虛擬仿真系統(tǒng)。該系統(tǒng)使用“天獅號”絞吸挖泥船為模板,在已勘測數(shù)據(jù)的地形區(qū)域通過插值算法,補充數(shù)據(jù)點,生成高精度的地形模型,為提高培訓(xùn)的逼真性,加入了多對象切換漫游系統(tǒng),同時加入一端多控的模塊;結(jié)合船舶橫移算法公式、鉸刀切削地形公式對鉸刀切削的過程進行了仿真,提出了仿真優(yōu)化的兩種方案。該系統(tǒng)可以進一步提高疏浚仿真系統(tǒng)的逼真性,為疏浚船員的培訓(xùn)提供便利,還可以對疏浚工程進行工程預(yù)測與評估,提高了疏浚作業(yè)過程的安全性,降低了作業(yè)時的不確定性。此外,本文在后續(xù)的設(shè)計中還將加入船員權(quán)限系統(tǒng),土壤產(chǎn)量的預(yù)估,以及對土壤切削過程的塌方等細(xì)節(jié)效果。