許墅,戴文伯,周雨淼,季明
(中交疏浚技術裝備國家工程研究中心有限公司,上海 200082)
國外于20 世紀80 年代提出數字化的疏浚監視系統,提高了疏浚船舶的施工效率[1]。國外以IHC 公司為代表,其疏浚施工監控系統可大大提高船舶航行與作業的安全性、可靠性和經濟性,國內的中交疏浚研究中心等單位都自主研發了疏浚施工監視系統,包含船舶定位、剖面顯示、施工狀態監控以及歷史回放等功能,在國內眾多挖泥船上得到廣泛應用[2-5]。
目前的疏浚施工監視系統大多是二維系統,缺少三維施工監視功能,導致系統監視效果不夠直觀形象,而且系統都是基于C/S(Client/Server)架構,導致每臺客戶機都需安裝客戶端軟件,并進行調試,當有多臺客戶機時,安裝部署和維護較為麻煩,當有跨平臺需求時,對不同操作系統需要單獨開發客戶端軟件[6]。而基于B/S 架構的系統在處理多終端需求時,只需要在服務器上部署系統,更新較為方便,客戶端只需普通網頁瀏覽器即可訪問系統[7]。隨著網絡通信技術的發展,瀏覽器業務處理能力逐漸增強,基于B/S 架構的監控和管理系統已在多個領域得到應用[7-8],而隨著WebGL 的逐漸成熟,也讓三維Web 開發成為未來的發展趨勢[8]。
針對目前耙吸船施工監視系統存在的問題,本文設計了一套基于B/S 的耙吸船施工三維監視系統,利用WebGL 技術將水下地形和耙吸挖泥船模型在網頁中三維顯示,并根據實時獲取的傳感器數據驅動船體和耙臂模型運動,同時支持通過實時計算耙頭與水下地形接觸時的耙頭位置,對地形進行重構并顯示。該系統為疏浚作業提供可交互的三維視角,為高精度施工提供新的工具,讓疏浚人員直觀了解施工區域水深情況和疏浚軌跡。
系統采用B/S 架構,分為數據庫、服務器和瀏覽器3 個部分(如圖1 所示)。
數據庫存放著耙吸船的船體和耙臂3D 模型、實時數據、水深數據以及由水深數據在服務器端生成的地形數據。服務器負責響應前端瀏覽器的請求并做處理,返回3D 模型數據、地形數據和施工數據,其中地形數據在服務端生成,利用地形構建算法,由水深數據構建生成,并保存到數據庫中,此外,前端瀏覽器會將地形重構的結果發到服務器端,由服務器負責將地形重構結果進行保存。前端瀏覽器根據從服務器獲取的船舶3D模型實現船舶3D 顯示,并添加水面模擬效果;根據從服務器獲取到的施工數據驅動船體模型運動,實時顯示船體方位、耙臂角度、耙頭姿態、吊架姿態等信息;根據從服務器獲取的地形數據構建水下地形并渲染顯示,同時根據耙頭位置實時重構地形,模擬挖掘效果,同時向服務器返回地形重構結果。
本系統主要包含場景交互、施工可視化和場景模擬三大功能。場景交互實現用戶對虛擬場景的交互操作,包含視角控制、視點切換和船體透明等子功能,其中視角控制可實現移動觀察、靜止觀察和圍繞船體3 種漫游模式的自由切換,以適應不同場景下漫游查看的需要。移動觀察模式下用戶可自由調整視角,且視角跟隨船體移動,從而便于觀察船舶姿態變化,防止船舶移出畫面;靜止觀察模式下用戶可自由調整視角,但視角不跟隨船體移動,從而便于觀察船舶運動狀態和周圍地形;圍繞船體模式下,視角以船為中心繞船移動,且跟隨船體移動,從而方便觀察船體四周情況。視點切換功能以畫中畫形式將小窗口視景快速定位到指定的視角位置,如耙頭、泥艙等位置,從而方便用戶觀察特定區域的狀態。施工可視化實現耙吸船疏浚過程的可視化監控,基于實船數據驅動場景仿真模擬,包含航行模擬、吃水模擬、耙臂姿態模擬、地形挖掘等功能。場景模擬實現耙吸船施工場景的再現,包含船舶3D 顯示、水面模擬、地形可視化和光照模擬等。整個系統功能如圖2 所示。

圖2 系統功能圖Fig.2 System function diagram
通過多波束等聲吶設備采集到的現場施工區域水深數據是離散點形式,數據點間距一般各不相同,適合以不規則三角網(TIN)構成面片,因此,本文采用Delaunay 方法構建地形三角網。先將三維空間的水深離散點集投影到XY平面,對3D 離散點集進行降維操作,變為2D 平面離散點集,將3D Delaunay 三角化變為2D Delaunay 三角化,降低了三角化的復雜性。然而Delaunay 方法具有凸包特性,針對凹包形態離散點會生成多余三角網[9],圖3—圖5 說明凹包形態離散點采用Delaunay 方法構網存在的問題,圖3 是凹包形態的原始離散點,圖4 是期望的正確三角構網結果,圖5 是采用Delaunay 方法三角構網的錯誤結果,其中虛線部分三角形是生成的多余三角網,從而使得三角網邊界形態與原始離散點邊界形態不一致,導致地形構建的區域超過原始離散點覆蓋的區域,影響地形構建的準確性和后期渲染的美觀性。施工現場采集到的水深離散點邊界不規則,形態各異,因此采用Delaunay 方法必須首先要解決生成錯誤網格的問題。

圖3 離散點Fig.3 Discrete point

圖4 正確構網結果Fig.4 Correct triangulation results

圖5 錯誤構網結果Fig.5 Error triangulation results
針對錯誤網格問題,本文通過在Delaunay 三角化中引入三角網索引和拓撲屬性,在生成的三角網基礎上借助三角形鏈表和鄰邊關系,通過遍歷三角網最外側三角形,即鄰邊三角形個數小于3 的三角形,從而剔除邊長超過閾值的三角形,同時更新三角形鏈表和鄰邊關系,然后重新循環此過程,直至最外側三角形邊長都小于閾值才結束,進而優化三角網形態。圖6 是數字地形模型的完整構建過程。

圖6 數字地形模型構建過程Fig.6 Construction process of digital terrain model
本文邊長閾值根據計算的離散水深點平均間距而確定,即將平均間距乘以1 個放大系數后作為閾值,經過測試,系數取1.5~2.0 比較合適。圖7 是未優化的錯誤三角網效果,圖中方框區域可明顯看出存在的錯誤網格,圖8 是優化后的正確三角網效果。

圖7 錯誤三角網效果Fig.7 Error triangulation effect

圖8 正確三角網效果Fig.8 Correct triangulation effect
耙吸挖泥船在疏浚施工過程中耙頭與地形相互作用,使得地形實時發生變化,耙頭作用區域地形會發生塌陷,形成挖槽,因此,耙吸船施工三維監視需要研究實時的地形重構技術,實現耙頭挖掘地形的模擬。針對地形的動態修改,本質上是對地形幾何頂點空間位置的修改,因此首先需要獲得耙頭挖掘影響區域的頂點,如圖9 所示,然后對這些頂點位置進行修改。由于需要實時展現耙頭挖掘地形的效果,但地形空間范圍廣,頂點數量多,因此需要一個高效的算法快速查找到耙頭挖掘過程中經過區域的地形頂點。

圖9 耙頭影響區域內的頂點Fig.9 Vertices within the influence area of the rake head
本文采用BVH(Bounding Volume Hierarchies,層次包圍盒)方法實現高效快速獲得耙頭影響區域的頂點。BVH 方法的核心思想是用體積略大而幾何特征簡單的包圍盒來近似地描述復雜的幾何對象,所有包圍盒分層逐次地再次包圍,獲得一個更大的包圍盒,直到包圍住所有物體,實際上,它是一個樹形結構,因此可以仿照樹的結構,將2 個或3 個小的包圍體包圍成1 個更大的包圍體,以此類推。圖10 是BVH 方法構建層次包圍盒的示意圖。

圖10 層次包圍盒示意圖Fig.10 BVH schematic
本文在地形構建過程中采用BVH 方法同步構建地形層次包圍盒,將地形劃分為若干包圍盒包圍的細小區域,從而對耙頭與相交的區塊做進一步的相交測試,大大加速耙頭與地形相交測試的過程,更快獲得相交區域的地形頂點。圖11 是建立的地形層次包圍盒效果圖。

圖11 地形層次包圍盒Fig.11 Terrain BVH
B/S 架構下,前端WebGL 程序需要向服務端請求大量三維場景數據,而在瀏覽器中顯示高精度三維場景易受到網絡帶寬的限制,為將加載時間控制在可接受的范圍內,從而縮短響應時間,提升用戶體驗感,本文使用Draco 壓縮算法對服務端存放的耙吸船模型和地形等數據進行壓縮,后傳輸給前端解壓并使用,經過測試,耙吸船模型數據壓縮率達到50%左右,地形數據平均壓縮率為70%左右。
系統后端針對上傳的水深文件進行地形構建處理,生成地形模型,前端三維窗口初始化時加載船體模型和地形模型,并根據從后臺獲取耙吸船的船位、航向、潮位、耙臂姿態角度等數據在三維場景初始化船體狀態,最終利用WebGL 技術渲染顯示船體、水面和地形,其中地形根據設定的水深顏色表進行分級顯示,同時在地形上疊加上光照和陰影,使得地形渲染效果更有立體感。三維場景初始化完成后,前端從后臺定時獲取施工數據,從而在三維場景中動態更新船舶施工運行狀態,包括船舶航行軌跡、耙臂和耙頭姿態等,同時利用地形重構技術,結合耙頭位置信息,實現耙吸船疏浚過程水下泥面的實時動態更新。
圖12 是前端系統界面圖,在頁面上方的菜單欄中可以顯示挖泥船和周圍環境的一些基本狀態信息,如航速、船體吃水、航向、GPS 位置、潮位等,并有能控制船體透明開啟或關閉的切換按鈕,以及視角控制模式切換的按鈕,視圖窗口右側是2 個小窗口畫面,方便用戶觀察特定區域的場景畫面。

圖12 前端系統界面圖Fig.12 System interface diagram
圖13 是利用系統實現的耙吸船疏浚過程三維監視效果,用戶可直觀了解施工區域水深情況和疏浚軌跡,實時查看水下地形動態重構效果,并能直觀查看耙臂實時姿態。

圖13 耙吸船疏浚過程三維監視效果Fig.13 3D monitoring effect of TSHD during dredging process
經測試,系統在處理器I7、顯卡NVIDIA GTX1080、內存16G 的電腦上運行,渲染幀速達到30FPS 以上,可流暢操作,而且利用相同的施工數據同步驅動二維施工監視系統和三維監視系統,測試結果表明,三維監視系統的船舶位置、耙臂姿態和施工軌跡等與二維監視系統保持一致,滿足施工控制要求。圖14 是二維施工監視系統和三維施工監視系統同步對比的效果。

圖14 二維和三維施工監視系統同步對比Fig.14 Synchronous comparison of 2D and 3D construction monitoring systems
針對基于C/S 架構的二維施工監視系統存在的不足,本文設計并開發了一套基于B/S 架構的耙吸船三維施工監視系統,解決了數字地形模型構建、地形重構和數據壓縮等關鍵技術難題。系統采用WebGL 技術建立了三維可視化系統,并接入施工數據,從而對當前船體運行狀態、耙臂姿態等進行三維動態展示,并實現耙吸船疏浚過程水下泥面實時三維動態更新。系統開發成果為耙吸船疏浚作業提供全新和可交互的三維視角,將助力疏浚作業高質量施工。