張新宇,陳 強,李 睿
(上海工程技術大學 電子電氣工程學院,上海 201620)
近年來,隨著城市不斷規劃發展,地下管線建設發展迅猛[1],所面臨的難題也越來越凸顯。地下管線包擴排污管線、燃氣石油管線、供水管線、電力通訊管線等[2],其具有分布錯綜復雜、種類多樣、鋪設更新速度快等特性,地下管線是一個城市賴以生存發展和打造全新現代化智慧城市的重要基礎,是城市的“生命線”。當前工業化城市發展已逐漸步入數字智能時代,傳統地下管線信息系統的二維數據表達早已不能滿足當前的用戶需求,由于畫面空間感不足,用戶不能及時準確的判斷地下管線的分布信息情況,所以非常容易在開挖施工過程中造成重大事故的發生,并帶來不可挽回的嚴重損失。
目前,國內多名學者對城市地下管線的三維可視化進行了深入研究[3],以求解決上述問題。例如羅強以ArcGIS、SQL Server、.NET Framework為應用支撐平臺,構建地下管線服務系統[4],王順利等以ArcGIS Runtime SDK for Android、Super Map iMobile for Android為引擎搭建管線管理系統[5],藍貴文等基于CSG方法和3DS Max構建了各種造型管件及附屬物的精細三維模型,在此基礎上利用Super Map渲染大規模三維管網場景[6]。雖然有效解決了三維可視化問題,但是基于計算機進行三維展示,不僅依賴部署于本地的插件或軟件,而且可攜帶性差,同時無法做出準確的實時決策。陳林等提出一種基于Three.js的三維管線建模可視化方法[7],有效解決了以上問題,但是無法實時定位查看管線。隨著智能移動終端硬件設備性能和網絡通信技術的提高,基于以上問題和分析,本文研究設計一種融合定位的移動Web端地下管線系統,并提出一種基于圓參數方程法的管線三維建模方法,實現高精度自動化建模。根據定位實時查看當前位置的地下管線分布情況,有效解決了硬件配置要求性高、軟件依賴性強和實時決策難等問題。
考慮方便性和普及性,本文采用基于Android系統的智能手機作為地下管線系統的應用平臺。該系統的整體方案設計如圖1所示,硬件設計主要有定位模塊、數據傳輸模塊、網絡通信模塊、數據處理模塊、顯示模塊組成。其中GNSS(Global Navigation Satellite System)[8]接收機和手機的GPS作為定位模塊,用于獲取高精度定位坐標;數據傳輸模塊是手機上的藍牙設備,用于將GNSS接收機與手機建立連接,在CORS(Continuously Operating Reference Stations)模式下獲取坐標數據;網絡通信模塊為無線網絡和通信協議組成,用于向服務器發送請求和接收響應;手機端數據處理模塊由基于ARM(Advanced RISC Machine)架構的微處理器組成,用于本地數據處理和協調控制工作。

圖1 整體設計方案框圖
1.2.1 軟件環境
該系統的功能是根據定位使當前地下管線三維可視化[9]。三維模型渲染使用的是基于WebGL框架進行封裝的Three.js技術[10],結合JavaScript、HTML5、CSS3、Node.js用WebStorm工具進行系統開發,采用MongoDB作為地下管網數據的存儲數據庫,系統部署在阿里云服務器ECS(Elastic Compute Sercive)。在當今的各種瀏覽器版本中,基本已經對Three.js、H5技術兼容。
1.2.2 軟件架構設計
系統的軟件部分主要涉及到三個方面,第一個是用戶在使用系統時獲取當前位置的精準定位坐標,第二個是對地下管線數據的篩選并進行處理,第三個是對當前位置地下管線三維建模并渲染,實時展示給用戶查看。軟件設計流程如圖2所示。

圖2 系統軟件設計方案
1)系統初始化
用戶打開移動端瀏覽器輸入系統網址后,登陸該系統,將會自動讀取本地對應路徑下的定位坐標文件,獲取精確的定位坐標。
2)數據請求與處理
在MongoDB數據庫中,通過獲取的精確定位坐標,將其作為搜索范圍圓心,規定以自定義距離為半徑對地下管網數據進行篩選[11],然后將數據處理為可三維建模渲染的數據。
3)三維建模與渲染
通過管線坐標數據建立三維模型,并利用Three.js技術對地下管線模型進行渲染,并根據不同類型的管線進行不同材質的設置,使管線更容易區分類型和逼真展示。
該系統由于基于實時定位獲取數據庫中的地下管線信息自動化建模并渲染[12],所以對定位的要求非常高,現有的移動端室內外的定位方法主要有GPS、A-GPS、Wi-Fi、移動基站等,但是移動基站和A-GPS[13]定位經度在百米級和十米級,Wi-Fi多數情況適用于室內定位。手機本身自帶的GPS定位模塊方便快捷、成本低,但是定位精度較低,無法滿足系統要求。本文采用RTK(Real-timekinematic)技術獲取高精度的定位坐標以滿足系統需求,精度可達到厘米級,甚至毫米級。
RTK技術的基礎是載波相位觀測值,在實時測量過程中至少需要使用兩臺GNSS接收機,分別作為參考站和移動站,參考站將接收到的衛星信號數據和基準站坐標發送給移動站,移動站結合接自身接收到的衛星信號數據和參考站發送來的數據通過差分處理實時獲取精確定位坐標。本文采用一臺GNSS接收機在CORS模式下作為移動站進行測量定位,并將Android手機代替為RTK手薄通過藍牙與GNSS接收機相連接收高精度定位坐標,定位示意圖如圖3所示,手機端可以根據用戶需要導出所需要格式的坐標文件保存。

圖3 移動端高精度定位示意圖
本文選用MongoDB作為存儲數據庫,其適用于敏捷開發,使用和存儲數據方便,性能強大,數據模式靈活更新,部署便捷,可擴展性強。對系統的進一步開發和未來龐大數據存儲提供了很好的便利條件。本文采用Node.js的Express框架在服務器端搭建Web應用系統,與數據庫連接,實現根據移動端請求進行數據交互。數據庫中存儲的管線數據分為屬性數據和空間數據,其中空間數據用于系統三維建模。空間數據結構[14]如表1所示,本文系統的管線數據由本團隊研制的基于旋轉式IMU地下管線探測儀測得,坐標數據均為管道中心位置。

表1 管線段的空間數據結構
當獲取高精度定位坐標后首先篩選數據,搜索出用戶所在位置附近的地下管網坐標,使移動端自身定位坐標O(BO,LO,HO)作為范圍中心點,將所選地區的數據庫中的管線段起始和終點的中心點坐標P(BPi,LPi,HPi)分別相減得到相對經緯度差值,篩選出管線起始點和終點的經緯度小數點后第4位變化幅值均在2~4之間的數據,即半徑為30米圓周范圍內的地下管線坐標數據。
然后將篩選出的數據從大地坐標系轉換為空間直角坐標系下的數據,如式(1)所示:

其中a=6378.137km和b=6356.752314km分別為地球橢球的長半軸和短半軸,N為卯酉圈曲率半徑,e為地球橢球的第一偏心率,
最終將空間直角坐標系下的管線數據轉換為Three.js中三維建模的數據。
在該系統的地下管線三維建模中提出一種基于圓參數方程的矢量微分法,主要思路為利用管道中心線建立標架[15](建模時的局部坐標系),通過截線方程和設置的管道半徑與精細度(微分程度)計算得出模型表面頂點坐標,按照順序連接頂點形成多個三角形擬合表面[16],如圖4所示。該系統依據管道中心線建模,可以直接利用處理過的數據連接成中心線并建立標架。

圖4 管線建模示意圖


設管線段橫截面上的點坐標為Ai,則Ai=(x(θi),y(θi),z(θi)),系統中可以根據對模型精細化程度的要求和管線類型對橫截面微分,圓管一般為8個點,即圓截線上每隔45度取一點,如圖5所示。注意在獲取管線段兩端截面線上點時,為了保證管線不出現扭曲形態,需要保持標架不圍繞旋轉。

圖5 截線分段示意圖
在管線建模過程中,分段管線中心線之間連接部分若具有拐角,此時的三維模型將會出現嚴重折疊的現象非常影響建模效果,可以對此部分做倒圓角處理[18],利用微分的思想將圓弧分成多個小直線段組成,再利用上述建模方法依次建模,最終將直線段與折線段拼接在一起形成一條完整的三維管線模型,如圖6所示。

圖6 倒圓角建模示意圖
假設Pi-1、Pi、Pi+1為管線兩段中心線的端點,在Pi點處做倒圓角處理,圓弧半徑為Ri(可根據規范設計需求進行設定),圓弧兩端點為Ti-1、Ti,分別是與線段Pi-1Pi和PiPi+1的切點。倒圓角的參數計算如下:

兩段管線中心線夾角為φi,計算如式(6)所示:


計算兩個切點與拐點之間Ti-1Pi與Pi Ti的長度如式(8)

獲取兩切點Ti-1和Ti坐標如式(9)所示:

假設圓弧所在圓的圓心坐標為Oi,求圓心坐標的方法是通過倒圓角的原理中,切點與弧形所在圓的圓心連線垂直于中心線,所以可以依據切點坐標(已知)和中心線的垂直矢量計算。如式(10)所示。其中 為Pi-1、Pi、Pi+1所在平面的法向量,的叉乘結果即為的垂直向量。

該系統由于為了滿足容易跨平臺、平臺要求低等特性,通過移動端Web實現系統應用,在網頁上進行三維模型渲染,在2.3節中得到三維建模參數后,通過基于Three.js技術實現模型渲染,過程如圖7所示。

圖7 Three.js渲染過程
為了對本文提出的地下管線信息管理系統進行測試,在校園中搭建了一條地下管線模型,該管線長50米,直徑為10厘米,管壁厚度大約0.5厘米,材質為PVC,采用上海華測RTK i80對管線的起始點和終點進行了實地測量,并且測量過程中盡可能保證了測量點在管線中心位置。利用地下管線探測儀測量出模擬管線的相對坐標,依次疊加RTK測量的管線起始點和終點坐標,并做優化處理得到管線的坐標數據,保存到系統數據庫中,測量數據如表2所示。

表2 模擬管線實地測量位置分布數據表
整個系統搭建在服務器上,方便利用移動端隨時定位查看地下管線分布情況。本實驗移動端所用手機為榮耀20,系統為Android 10,處理器為Huawei Kirin980,運行內存為8GB。當手持手機步行到管線中間附近時,開啟RTK i80,手機端打開測地通軟件,開啟藍牙與RTK建立連接,設置好配置,登陸CORS賬號,待獲取精確坐標后,通過瀏覽器打開系統進行定位并查看。
為了比對系統所建三維模型是否較為準確,通過Smar3D軟件利用采集的真實模擬管線照片進行三維建模,與通過管線坐標數據建立的模型進行對比如圖8所示。從圖中可以看出,Web端的三維管線模型與Smart3D建立的模型基本一致。

圖8 三維管線建模精度對比圖
在用移動端Web進行查看管線時,用戶可以根據圖像中棱錐的位置變化判斷自身與管線的相對位置,在測試中分別在距管線的不同位置進行定位查看,效果如圖9所示,當用戶移動后刷新定位信息,可以觀察到界面中棱錐也隨之變化。

圖9 定位查看管線示意圖
圖9(a)與圖9(c)分別為實測照片,圖9(b)和圖9(d)中棱錐位置代表用戶實測位置,從圖中可以看出模擬管線與棱錐的相對位置與實際情況相符。
上述實驗成功地實現了實時定位查看地下管線,圖形刷新率為基本在60FPS,為了進一步對系統兼容性和渲染性能測試,模擬9條管線渲染,根據管線類型設置不同材質,并在不同瀏覽器和系統上實驗,其中在Android系統手機不同瀏覽器上實驗測試效果如圖10所示,在IOS系統上實驗測試效果如圖11所示。

圖10 Android手機多條管線模型渲染

圖11 IOS手機多條管線模型渲染
針對系統性能測試,分別對1、5、9條管線模型渲染,逐漸增加管線時的性能變化如表3所示。

表3 移動Web端渲染性能情況
實驗測試表明本文設計的系統在Android和IOS系統上,使用不同瀏覽器均可以流暢渲染管線模型。
本文依據定位技術與Web三維建模技術,研究設計了融合LBS的移動Web端三維地下管線系統,利用移動Web端實現系統展示,增強了查看管線的便利性;采用RTK定位技術提高了系統定位準確性,使用戶可以準確獲取管網分布情況;高精度自動化三維建模增強了管線真實性,使用戶擁有更好的感官體驗。本系統可以有效解決用戶實時決策難、查看管線空間感不強烈以及系統對本地軟件程序和應用平臺依賴性高等問題,為數字化智慧城市發展提供良好的服務,特別是在地下施工過程中,可以良好的避免因管線位置不明確而造成的嚴重危害。