許墅,戴文伯,周雨淼,季明
(中交疏浚技術(shù)裝備國家工程研究中心有限公司,上海 200082)
國外于20 世紀80 年代提出數(shù)字化的疏浚監(jiān)視系統(tǒng),提高了疏浚船舶的施工效率[1]。國外以IHC 公司為代表,其疏浚施工監(jiān)控系統(tǒng)可大大提高船舶航行與作業(yè)的安全性、可靠性和經(jīng)濟性,國內(nèi)的中交疏浚研究中心等單位都自主研發(fā)了疏浚施工監(jiān)視系統(tǒng),包含船舶定位、剖面顯示、施工狀態(tài)監(jiān)控以及歷史回放等功能,在國內(nèi)眾多挖泥船上得到廣泛應(yīng)用[2-5]。
目前的疏浚施工監(jiān)視系統(tǒng)大多是二維系統(tǒng),缺少三維施工監(jiān)視功能,導(dǎo)致系統(tǒng)監(jiān)視效果不夠直觀形象,而且系統(tǒng)都是基于C/S(Client/Server)架構(gòu),導(dǎo)致每臺客戶機都需安裝客戶端軟件,并進行調(diào)試,當有多臺客戶機時,安裝部署和維護較為麻煩,當有跨平臺需求時,對不同操作系統(tǒng)需要單獨開發(fā)客戶端軟件[6]。而基于B/S 架構(gòu)的系統(tǒng)在處理多終端需求時,只需要在服務(wù)器上部署系統(tǒng),更新較為方便,客戶端只需普通網(wǎng)頁瀏覽器即可訪問系統(tǒng)[7]。隨著網(wǎng)絡(luò)通信技術(shù)的發(fā)展,瀏覽器業(yè)務(wù)處理能力逐漸增強,基于B/S 架構(gòu)的監(jiān)控和管理系統(tǒng)已在多個領(lǐng)域得到應(yīng)用[7-8],而隨著WebGL 的逐漸成熟,也讓三維Web 開發(fā)成為未來的發(fā)展趨勢[8]。
針對目前耙吸船施工監(jiān)視系統(tǒng)存在的問題,本文設(shè)計了一套基于B/S 的耙吸船施工三維監(jiān)視系統(tǒng),利用WebGL 技術(shù)將水下地形和耙吸挖泥船模型在網(wǎng)頁中三維顯示,并根據(jù)實時獲取的傳感器數(shù)據(jù)驅(qū)動船體和耙臂模型運動,同時支持通過實時計算耙頭與水下地形接觸時的耙頭位置,對地形進行重構(gòu)并顯示。該系統(tǒng)為疏浚作業(yè)提供可交互的三維視角,為高精度施工提供新的工具,讓疏浚人員直觀了解施工區(qū)域水深情況和疏浚軌跡。
系統(tǒng)采用B/S 架構(gòu),分為數(shù)據(jù)庫、服務(wù)器和瀏覽器3 個部分(如圖1 所示)。
數(shù)據(jù)庫存放著耙吸船的船體和耙臂3D 模型、實時數(shù)據(jù)、水深數(shù)據(jù)以及由水深數(shù)據(jù)在服務(wù)器端生成的地形數(shù)據(jù)。服務(wù)器負責響應(yīng)前端瀏覽器的請求并做處理,返回3D 模型數(shù)據(jù)、地形數(shù)據(jù)和施工數(shù)據(jù),其中地形數(shù)據(jù)在服務(wù)端生成,利用地形構(gòu)建算法,由水深數(shù)據(jù)構(gòu)建生成,并保存到數(shù)據(jù)庫中,此外,前端瀏覽器會將地形重構(gòu)的結(jié)果發(fā)到服務(wù)器端,由服務(wù)器負責將地形重構(gòu)結(jié)果進行保存。前端瀏覽器根據(jù)從服務(wù)器獲取的船舶3D模型實現(xiàn)船舶3D 顯示,并添加水面模擬效果;根據(jù)從服務(wù)器獲取到的施工數(shù)據(jù)驅(qū)動船體模型運動,實時顯示船體方位、耙臂角度、耙頭姿態(tài)、吊架姿態(tài)等信息;根據(jù)從服務(wù)器獲取的地形數(shù)據(jù)構(gòu)建水下地形并渲染顯示,同時根據(jù)耙頭位置實時重構(gòu)地形,模擬挖掘效果,同時向服務(wù)器返回地形重構(gòu)結(jié)果。
本系統(tǒng)主要包含場景交互、施工可視化和場景模擬三大功能。場景交互實現(xiàn)用戶對虛擬場景的交互操作,包含視角控制、視點切換和船體透明等子功能,其中視角控制可實現(xiàn)移動觀察、靜止觀察和圍繞船體3 種漫游模式的自由切換,以適應(yīng)不同場景下漫游查看的需要。移動觀察模式下用戶可自由調(diào)整視角,且視角跟隨船體移動,從而便于觀察船舶姿態(tài)變化,防止船舶移出畫面;靜止觀察模式下用戶可自由調(diào)整視角,但視角不跟隨船體移動,從而便于觀察船舶運動狀態(tài)和周圍地形;圍繞船體模式下,視角以船為中心繞船移動,且跟隨船體移動,從而方便觀察船體四周情況。視點切換功能以畫中畫形式將小窗口視景快速定位到指定的視角位置,如耙頭、泥艙等位置,從而方便用戶觀察特定區(qū)域的狀態(tài)。施工可視化實現(xiàn)耙吸船疏浚過程的可視化監(jiān)控,基于實船數(shù)據(jù)驅(qū)動場景仿真模擬,包含航行模擬、吃水模擬、耙臂姿態(tài)模擬、地形挖掘等功能。場景模擬實現(xiàn)耙吸船施工場景的再現(xiàn),包含船舶3D 顯示、水面模擬、地形可視化和光照模擬等。整個系統(tǒng)功能如圖2 所示。
圖2 系統(tǒng)功能圖Fig.2 System function diagram
通過多波束等聲吶設(shè)備采集到的現(xiàn)場施工區(qū)域水深數(shù)據(jù)是離散點形式,數(shù)據(jù)點間距一般各不相同,適合以不規(guī)則三角網(wǎng)(TIN)構(gòu)成面片,因此,本文采用Delaunay 方法構(gòu)建地形三角網(wǎng)。先將三維空間的水深離散點集投影到XY平面,對3D 離散點集進行降維操作,變?yōu)?D 平面離散點集,將3D Delaunay 三角化變?yōu)?D Delaunay 三角化,降低了三角化的復(fù)雜性。然而Delaunay 方法具有凸包特性,針對凹包形態(tài)離散點會生成多余三角網(wǎng)[9],圖3—圖5 說明凹包形態(tài)離散點采用Delaunay 方法構(gòu)網(wǎng)存在的問題,圖3 是凹包形態(tài)的原始離散點,圖4 是期望的正確三角構(gòu)網(wǎng)結(jié)果,圖5 是采用Delaunay 方法三角構(gòu)網(wǎng)的錯誤結(jié)果,其中虛線部分三角形是生成的多余三角網(wǎng),從而使得三角網(wǎng)邊界形態(tài)與原始離散點邊界形態(tài)不一致,導(dǎo)致地形構(gòu)建的區(qū)域超過原始離散點覆蓋的區(qū)域,影響地形構(gòu)建的準確性和后期渲染的美觀性。施工現(xiàn)場采集到的水深離散點邊界不規(guī)則,形態(tài)各異,因此采用Delaunay 方法必須首先要解決生成錯誤網(wǎng)格的問題。
圖3 離散點Fig.3 Discrete point
圖4 正確構(gòu)網(wǎng)結(jié)果Fig.4 Correct triangulation results
圖5 錯誤構(gòu)網(wǎng)結(jié)果Fig.5 Error triangulation results
針對錯誤網(wǎng)格問題,本文通過在Delaunay 三角化中引入三角網(wǎng)索引和拓撲屬性,在生成的三角網(wǎng)基礎(chǔ)上借助三角形鏈表和鄰邊關(guān)系,通過遍歷三角網(wǎng)最外側(cè)三角形,即鄰邊三角形個數(shù)小于3 的三角形,從而剔除邊長超過閾值的三角形,同時更新三角形鏈表和鄰邊關(guān)系,然后重新循環(huán)此過程,直至最外側(cè)三角形邊長都小于閾值才結(jié)束,進而優(yōu)化三角網(wǎng)形態(tài)。圖6 是數(shù)字地形模型的完整構(gòu)建過程。
圖6 數(shù)字地形模型構(gòu)建過程Fig.6 Construction process of digital terrain model
本文邊長閾值根據(jù)計算的離散水深點平均間距而確定,即將平均間距乘以1 個放大系數(shù)后作為閾值,經(jīng)過測試,系數(shù)取1.5~2.0 比較合適。圖7 是未優(yōu)化的錯誤三角網(wǎng)效果,圖中方框區(qū)域可明顯看出存在的錯誤網(wǎng)格,圖8 是優(yōu)化后的正確三角網(wǎng)效果。
圖7 錯誤三角網(wǎng)效果Fig.7 Error triangulation effect
圖8 正確三角網(wǎng)效果Fig.8 Correct triangulation effect
耙吸挖泥船在疏浚施工過程中耙頭與地形相互作用,使得地形實時發(fā)生變化,耙頭作用區(qū)域地形會發(fā)生塌陷,形成挖槽,因此,耙吸船施工三維監(jiān)視需要研究實時的地形重構(gòu)技術(shù),實現(xiàn)耙頭挖掘地形的模擬。針對地形的動態(tài)修改,本質(zhì)上是對地形幾何頂點空間位置的修改,因此首先需要獲得耙頭挖掘影響區(qū)域的頂點,如圖9 所示,然后對這些頂點位置進行修改。由于需要實時展現(xiàn)耙頭挖掘地形的效果,但地形空間范圍廣,頂點數(shù)量多,因此需要一個高效的算法快速查找到耙頭挖掘過程中經(jīng)過區(qū)域的地形頂點。
圖9 耙頭影響區(qū)域內(nèi)的頂點Fig.9 Vertices within the influence area of the rake head
本文采用BVH(Bounding Volume Hierarchies,層次包圍盒)方法實現(xiàn)高效快速獲得耙頭影響區(qū)域的頂點。BVH 方法的核心思想是用體積略大而幾何特征簡單的包圍盒來近似地描述復(fù)雜的幾何對象,所有包圍盒分層逐次地再次包圍,獲得一個更大的包圍盒,直到包圍住所有物體,實際上,它是一個樹形結(jié)構(gòu),因此可以仿照樹的結(jié)構(gòu),將2 個或3 個小的包圍體包圍成1 個更大的包圍體,以此類推。圖10 是BVH 方法構(gòu)建層次包圍盒的示意圖。
圖10 層次包圍盒示意圖Fig.10 BVH schematic
本文在地形構(gòu)建過程中采用BVH 方法同步構(gòu)建地形層次包圍盒,將地形劃分為若干包圍盒包圍的細小區(qū)域,從而對耙頭與相交的區(qū)塊做進一步的相交測試,大大加速耙頭與地形相交測試的過程,更快獲得相交區(qū)域的地形頂點。圖11 是建立的地形層次包圍盒效果圖。
圖11 地形層次包圍盒Fig.11 Terrain BVH
B/S 架構(gòu)下,前端WebGL 程序需要向服務(wù)端請求大量三維場景數(shù)據(jù),而在瀏覽器中顯示高精度三維場景易受到網(wǎng)絡(luò)帶寬的限制,為將加載時間控制在可接受的范圍內(nèi),從而縮短響應(yīng)時間,提升用戶體驗感,本文使用Draco 壓縮算法對服務(wù)端存放的耙吸船模型和地形等數(shù)據(jù)進行壓縮,后傳輸給前端解壓并使用,經(jīng)過測試,耙吸船模型數(shù)據(jù)壓縮率達到50%左右,地形數(shù)據(jù)平均壓縮率為70%左右。
系統(tǒng)后端針對上傳的水深文件進行地形構(gòu)建處理,生成地形模型,前端三維窗口初始化時加載船體模型和地形模型,并根據(jù)從后臺獲取耙吸船的船位、航向、潮位、耙臂姿態(tài)角度等數(shù)據(jù)在三維場景初始化船體狀態(tài),最終利用WebGL 技術(shù)渲染顯示船體、水面和地形,其中地形根據(jù)設(shè)定的水深顏色表進行分級顯示,同時在地形上疊加上光照和陰影,使得地形渲染效果更有立體感。三維場景初始化完成后,前端從后臺定時獲取施工數(shù)據(jù),從而在三維場景中動態(tài)更新船舶施工運行狀態(tài),包括船舶航行軌跡、耙臂和耙頭姿態(tài)等,同時利用地形重構(gòu)技術(shù),結(jié)合耙頭位置信息,實現(xiàn)耙吸船疏浚過程水下泥面的實時動態(tài)更新。
圖12 是前端系統(tǒng)界面圖,在頁面上方的菜單欄中可以顯示挖泥船和周圍環(huán)境的一些基本狀態(tài)信息,如航速、船體吃水、航向、GPS 位置、潮位等,并有能控制船體透明開啟或關(guān)閉的切換按鈕,以及視角控制模式切換的按鈕,視圖窗口右側(cè)是2 個小窗口畫面,方便用戶觀察特定區(qū)域的場景畫面。
圖12 前端系統(tǒng)界面圖Fig.12 System interface diagram
圖13 是利用系統(tǒng)實現(xiàn)的耙吸船疏浚過程三維監(jiān)視效果,用戶可直觀了解施工區(qū)域水深情況和疏浚軌跡,實時查看水下地形動態(tài)重構(gòu)效果,并能直觀查看耙臂實時姿態(tài)。
圖13 耙吸船疏浚過程三維監(jiān)視效果Fig.13 3D monitoring effect of TSHD during dredging process
經(jīng)測試,系統(tǒng)在處理器I7、顯卡NVIDIA GTX1080、內(nèi)存16G 的電腦上運行,渲染幀速達到30FPS 以上,可流暢操作,而且利用相同的施工數(shù)據(jù)同步驅(qū)動二維施工監(jiān)視系統(tǒng)和三維監(jiān)視系統(tǒng),測試結(jié)果表明,三維監(jiān)視系統(tǒng)的船舶位置、耙臂姿態(tài)和施工軌跡等與二維監(jiān)視系統(tǒng)保持一致,滿足施工控制要求。圖14 是二維施工監(jiān)視系統(tǒng)和三維施工監(jiān)視系統(tǒng)同步對比的效果。
圖14 二維和三維施工監(jiān)視系統(tǒng)同步對比Fig.14 Synchronous comparison of 2D and 3D construction monitoring systems
針對基于C/S 架構(gòu)的二維施工監(jiān)視系統(tǒng)存在的不足,本文設(shè)計并開發(fā)了一套基于B/S 架構(gòu)的耙吸船三維施工監(jiān)視系統(tǒng),解決了數(shù)字地形模型構(gòu)建、地形重構(gòu)和數(shù)據(jù)壓縮等關(guān)鍵技術(shù)難題。系統(tǒng)采用WebGL 技術(shù)建立了三維可視化系統(tǒng),并接入施工數(shù)據(jù),從而對當前船體運行狀態(tài)、耙臂姿態(tài)等進行三維動態(tài)展示,并實現(xiàn)耙吸船疏浚過程水下泥面實時三維動態(tài)更新。系統(tǒng)開發(fā)成果為耙吸船疏浚作業(yè)提供全新和可交互的三維視角,將助力疏浚作業(yè)高質(zhì)量施工。