張新宇,陳 強(qiáng),李 睿
(上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海 201620)
近年來,隨著城市不斷規(guī)劃發(fā)展,地下管線建設(shè)發(fā)展迅猛[1],所面臨的難題也越來越凸顯。地下管線包擴(kuò)排污管線、燃?xì)馐凸芫€、供水管線、電力通訊管線等[2],其具有分布錯(cuò)綜復(fù)雜、種類多樣、鋪設(shè)更新速度快等特性,地下管線是一個(gè)城市賴以生存發(fā)展和打造全新現(xiàn)代化智慧城市的重要基礎(chǔ),是城市的“生命線”。當(dāng)前工業(yè)化城市發(fā)展已逐漸步入數(shù)字智能時(shí)代,傳統(tǒng)地下管線信息系統(tǒng)的二維數(shù)據(jù)表達(dá)早已不能滿足當(dāng)前的用戶需求,由于畫面空間感不足,用戶不能及時(shí)準(zhǔn)確的判斷地下管線的分布信息情況,所以非常容易在開挖施工過程中造成重大事故的發(fā)生,并帶來不可挽回的嚴(yán)重?fù)p失。
目前,國內(nèi)多名學(xué)者對城市地下管線的三維可視化進(jìn)行了深入研究[3],以求解決上述問題。例如羅強(qiáng)以ArcGIS、SQL Server、.NET Framework為應(yīng)用支撐平臺,構(gòu)建地下管線服務(wù)系統(tǒng)[4],王順利等以ArcGIS Runtime SDK for Android、Super Map iMobile for Android為引擎搭建管線管理系統(tǒng)[5],藍(lán)貴文等基于CSG方法和3DS Max構(gòu)建了各種造型管件及附屬物的精細(xì)三維模型,在此基礎(chǔ)上利用Super Map渲染大規(guī)模三維管網(wǎng)場景[6]。雖然有效解決了三維可視化問題,但是基于計(jì)算機(jī)進(jìn)行三維展示,不僅依賴部署于本地的插件或軟件,而且可攜帶性差,同時(shí)無法做出準(zhǔn)確的實(shí)時(shí)決策。陳林等提出一種基于Three.js的三維管線建模可視化方法[7],有效解決了以上問題,但是無法實(shí)時(shí)定位查看管線。隨著智能移動終端硬件設(shè)備性能和網(wǎng)絡(luò)通信技術(shù)的提高,基于以上問題和分析,本文研究設(shè)計(jì)一種融合定位的移動Web端地下管線系統(tǒng),并提出一種基于圓參數(shù)方程法的管線三維建模方法,實(shí)現(xiàn)高精度自動化建模。根據(jù)定位實(shí)時(shí)查看當(dāng)前位置的地下管線分布情況,有效解決了硬件配置要求性高、軟件依賴性強(qiáng)和實(shí)時(shí)決策難等問題。
考慮方便性和普及性,本文采用基于Android系統(tǒng)的智能手機(jī)作為地下管線系統(tǒng)的應(yīng)用平臺。該系統(tǒng)的整體方案設(shè)計(jì)如圖1所示,硬件設(shè)計(jì)主要有定位模塊、數(shù)據(jù)傳輸模塊、網(wǎng)絡(luò)通信模塊、數(shù)據(jù)處理模塊、顯示模塊組成。其中GNSS(Global Navigation Satellite System)[8]接收機(jī)和手機(jī)的GPS作為定位模塊,用于獲取高精度定位坐標(biāo);數(shù)據(jù)傳輸模塊是手機(jī)上的藍(lán)牙設(shè)備,用于將GNSS接收機(jī)與手機(jī)建立連接,在CORS(Continuously Operating Reference Stations)模式下獲取坐標(biāo)數(shù)據(jù);網(wǎng)絡(luò)通信模塊為無線網(wǎng)絡(luò)和通信協(xié)議組成,用于向服務(wù)器發(fā)送請求和接收響應(yīng);手機(jī)端數(shù)據(jù)處理模塊由基于ARM(Advanced RISC Machine)架構(gòu)的微處理器組成,用于本地?cái)?shù)據(jù)處理和協(xié)調(diào)控制工作。
圖1 整體設(shè)計(jì)方案框圖
1.2.1 軟件環(huán)境
該系統(tǒng)的功能是根據(jù)定位使當(dāng)前地下管線三維可視化[9]。三維模型渲染使用的是基于WebGL框架進(jìn)行封裝的Three.js技術(shù)[10],結(jié)合JavaScript、HTML5、CSS3、Node.js用WebStorm工具進(jìn)行系統(tǒng)開發(fā),采用MongoDB作為地下管網(wǎng)數(shù)據(jù)的存儲數(shù)據(jù)庫,系統(tǒng)部署在阿里云服務(wù)器ECS(Elastic Compute Sercive)。在當(dāng)今的各種瀏覽器版本中,基本已經(jīng)對Three.js、H5技術(shù)兼容。
1.2.2 軟件架構(gòu)設(shè)計(jì)
系統(tǒng)的軟件部分主要涉及到三個(gè)方面,第一個(gè)是用戶在使用系統(tǒng)時(shí)獲取當(dāng)前位置的精準(zhǔn)定位坐標(biāo),第二個(gè)是對地下管線數(shù)據(jù)的篩選并進(jìn)行處理,第三個(gè)是對當(dāng)前位置地下管線三維建模并渲染,實(shí)時(shí)展示給用戶查看。軟件設(shè)計(jì)流程如圖2所示。
圖2 系統(tǒng)軟件設(shè)計(jì)方案
1)系統(tǒng)初始化
用戶打開移動端瀏覽器輸入系統(tǒng)網(wǎng)址后,登陸該系統(tǒng),將會自動讀取本地對應(yīng)路徑下的定位坐標(biāo)文件,獲取精確的定位坐標(biāo)。
2)數(shù)據(jù)請求與處理
在MongoDB數(shù)據(jù)庫中,通過獲取的精確定位坐標(biāo),將其作為搜索范圍圓心,規(guī)定以自定義距離為半徑對地下管網(wǎng)數(shù)據(jù)進(jìn)行篩選[11],然后將數(shù)據(jù)處理為可三維建模渲染的數(shù)據(jù)。
3)三維建模與渲染
通過管線坐標(biāo)數(shù)據(jù)建立三維模型,并利用Three.js技術(shù)對地下管線模型進(jìn)行渲染,并根據(jù)不同類型的管線進(jìn)行不同材質(zhì)的設(shè)置,使管線更容易區(qū)分類型和逼真展示。
該系統(tǒng)由于基于實(shí)時(shí)定位獲取數(shù)據(jù)庫中的地下管線信息自動化建模并渲染[12],所以對定位的要求非常高,現(xiàn)有的移動端室內(nèi)外的定位方法主要有GPS、A-GPS、Wi-Fi、移動基站等,但是移動基站和A-GPS[13]定位經(jīng)度在百米級和十米級,Wi-Fi多數(shù)情況適用于室內(nèi)定位。手機(jī)本身自帶的GPS定位模塊方便快捷、成本低,但是定位精度較低,無法滿足系統(tǒng)要求。本文采用RTK(Real-timekinematic)技術(shù)獲取高精度的定位坐標(biāo)以滿足系統(tǒng)需求,精度可達(dá)到厘米級,甚至毫米級。
RTK技術(shù)的基礎(chǔ)是載波相位觀測值,在實(shí)時(shí)測量過程中至少需要使用兩臺GNSS接收機(jī),分別作為參考站和移動站,參考站將接收到的衛(wèi)星信號數(shù)據(jù)和基準(zhǔn)站坐標(biāo)發(fā)送給移動站,移動站結(jié)合接自身接收到的衛(wèi)星信號數(shù)據(jù)和參考站發(fā)送來的數(shù)據(jù)通過差分處理實(shí)時(shí)獲取精確定位坐標(biāo)。本文采用一臺GNSS接收機(jī)在CORS模式下作為移動站進(jìn)行測量定位,并將Android手機(jī)代替為RTK手薄通過藍(lán)牙與GNSS接收機(jī)相連接收高精度定位坐標(biāo),定位示意圖如圖3所示,手機(jī)端可以根據(jù)用戶需要導(dǎo)出所需要格式的坐標(biāo)文件保存。
圖3 移動端高精度定位示意圖
本文選用MongoDB作為存儲數(shù)據(jù)庫,其適用于敏捷開發(fā),使用和存儲數(shù)據(jù)方便,性能強(qiáng)大,數(shù)據(jù)模式靈活更新,部署便捷,可擴(kuò)展性強(qiáng)。對系統(tǒng)的進(jìn)一步開發(fā)和未來龐大數(shù)據(jù)存儲提供了很好的便利條件。本文采用Node.js的Express框架在服務(wù)器端搭建Web應(yīng)用系統(tǒng),與數(shù)據(jù)庫連接,實(shí)現(xiàn)根據(jù)移動端請求進(jìn)行數(shù)據(jù)交互。數(shù)據(jù)庫中存儲的管線數(shù)據(jù)分為屬性數(shù)據(jù)和空間數(shù)據(jù),其中空間數(shù)據(jù)用于系統(tǒng)三維建模??臻g數(shù)據(jù)結(jié)構(gòu)[14]如表1所示,本文系統(tǒng)的管線數(shù)據(jù)由本團(tuán)隊(duì)研制的基于旋轉(zhuǎn)式IMU地下管線探測儀測得,坐標(biāo)數(shù)據(jù)均為管道中心位置。
表1 管線段的空間數(shù)據(jù)結(jié)構(gòu)
當(dāng)獲取高精度定位坐標(biāo)后首先篩選數(shù)據(jù),搜索出用戶所在位置附近的地下管網(wǎng)坐標(biāo),使移動端自身定位坐標(biāo)O(BO,LO,HO)作為范圍中心點(diǎn),將所選地區(qū)的數(shù)據(jù)庫中的管線段起始和終點(diǎn)的中心點(diǎn)坐標(biāo)P(BPi,LPi,HPi)分別相減得到相對經(jīng)緯度差值,篩選出管線起始點(diǎn)和終點(diǎn)的經(jīng)緯度小數(shù)點(diǎn)后第4位變化幅值均在2~4之間的數(shù)據(jù),即半徑為30米圓周范圍內(nèi)的地下管線坐標(biāo)數(shù)據(jù)。
然后將篩選出的數(shù)據(jù)從大地坐標(biāo)系轉(zhuǎn)換為空間直角坐標(biāo)系下的數(shù)據(jù),如式(1)所示:
其中a=6378.137km和b=6356.752314km分別為地球橢球的長半軸和短半軸,N為卯酉圈曲率半徑,e為地球橢球的第一偏心率,
最終將空間直角坐標(biāo)系下的管線數(shù)據(jù)轉(zhuǎn)換為Three.js中三維建模的數(shù)據(jù)。
在該系統(tǒng)的地下管線三維建模中提出一種基于圓參數(shù)方程的矢量微分法,主要思路為利用管道中心線建立標(biāo)架[15](建模時(shí)的局部坐標(biāo)系),通過截線方程和設(shè)置的管道半徑與精細(xì)度(微分程度)計(jì)算得出模型表面頂點(diǎn)坐標(biāo),按照順序連接頂點(diǎn)形成多個(gè)三角形擬合表面[16],如圖4所示。該系統(tǒng)依據(jù)管道中心線建模,可以直接利用處理過的數(shù)據(jù)連接成中心線并建立標(biāo)架。
圖4 管線建模示意圖
設(shè)管線段橫截面上的點(diǎn)坐標(biāo)為Ai,則Ai=(x(θi),y(θi),z(θi)),系統(tǒng)中可以根據(jù)對模型精細(xì)化程度的要求和管線類型對橫截面微分,圓管一般為8個(gè)點(diǎn),即圓截線上每隔45度取一點(diǎn),如圖5所示。注意在獲取管線段兩端截面線上點(diǎn)時(shí),為了保證管線不出現(xiàn)扭曲形態(tài),需要保持標(biāo)架不圍繞旋轉(zhuǎn)。
圖5 截線分段示意圖
在管線建模過程中,分段管線中心線之間連接部分若具有拐角,此時(shí)的三維模型將會出現(xiàn)嚴(yán)重折疊的現(xiàn)象非常影響建模效果,可以對此部分做倒圓角處理[18],利用微分的思想將圓弧分成多個(gè)小直線段組成,再利用上述建模方法依次建模,最終將直線段與折線段拼接在一起形成一條完整的三維管線模型,如圖6所示。
圖6 倒圓角建模示意圖
假設(shè)Pi-1、Pi、Pi+1為管線兩段中心線的端點(diǎn),在Pi點(diǎn)處做倒圓角處理,圓弧半徑為Ri(可根據(jù)規(guī)范設(shè)計(jì)需求進(jìn)行設(shè)定),圓弧兩端點(diǎn)為Ti-1、Ti,分別是與線段Pi-1Pi和PiPi+1的切點(diǎn)。倒圓角的參數(shù)計(jì)算如下:
兩段管線中心線夾角為φi,計(jì)算如式(6)所示:
計(jì)算兩個(gè)切點(diǎn)與拐點(diǎn)之間Ti-1Pi與Pi Ti的長度如式(8)
獲取兩切點(diǎn)Ti-1和Ti坐標(biāo)如式(9)所示:
假設(shè)圓弧所在圓的圓心坐標(biāo)為Oi,求圓心坐標(biāo)的方法是通過倒圓角的原理中,切點(diǎn)與弧形所在圓的圓心連線垂直于中心線,所以可以依據(jù)切點(diǎn)坐標(biāo)(已知)和中心線的垂直矢量計(jì)算。如式(10)所示。其中 為Pi-1、Pi、Pi+1所在平面的法向量,的叉乘結(jié)果即為的垂直向量。
該系統(tǒng)由于為了滿足容易跨平臺、平臺要求低等特性,通過移動端Web實(shí)現(xiàn)系統(tǒng)應(yīng)用,在網(wǎng)頁上進(jìn)行三維模型渲染,在2.3節(jié)中得到三維建模參數(shù)后,通過基于Three.js技術(shù)實(shí)現(xiàn)模型渲染,過程如圖7所示。
圖7 Three.js渲染過程
為了對本文提出的地下管線信息管理系統(tǒng)進(jìn)行測試,在校園中搭建了一條地下管線模型,該管線長50米,直徑為10厘米,管壁厚度大約0.5厘米,材質(zhì)為PVC,采用上海華測RTK i80對管線的起始點(diǎn)和終點(diǎn)進(jìn)行了實(shí)地測量,并且測量過程中盡可能保證了測量點(diǎn)在管線中心位置。利用地下管線探測儀測量出模擬管線的相對坐標(biāo),依次疊加RTK測量的管線起始點(diǎn)和終點(diǎn)坐標(biāo),并做優(yōu)化處理得到管線的坐標(biāo)數(shù)據(jù),保存到系統(tǒng)數(shù)據(jù)庫中,測量數(shù)據(jù)如表2所示。
表2 模擬管線實(shí)地測量位置分布數(shù)據(jù)表
整個(gè)系統(tǒng)搭建在服務(wù)器上,方便利用移動端隨時(shí)定位查看地下管線分布情況。本實(shí)驗(yàn)移動端所用手機(jī)為榮耀20,系統(tǒng)為Android 10,處理器為Huawei Kirin980,運(yùn)行內(nèi)存為8GB。當(dāng)手持手機(jī)步行到管線中間附近時(shí),開啟RTK i80,手機(jī)端打開測地通軟件,開啟藍(lán)牙與RTK建立連接,設(shè)置好配置,登陸CORS賬號,待獲取精確坐標(biāo)后,通過瀏覽器打開系統(tǒng)進(jìn)行定位并查看。
為了比對系統(tǒng)所建三維模型是否較為準(zhǔn)確,通過Smar3D軟件利用采集的真實(shí)模擬管線照片進(jìn)行三維建模,與通過管線坐標(biāo)數(shù)據(jù)建立的模型進(jìn)行對比如圖8所示。從圖中可以看出,Web端的三維管線模型與Smart3D建立的模型基本一致。
圖8 三維管線建模精度對比圖
在用移動端Web進(jìn)行查看管線時(shí),用戶可以根據(jù)圖像中棱錐的位置變化判斷自身與管線的相對位置,在測試中分別在距管線的不同位置進(jìn)行定位查看,效果如圖9所示,當(dāng)用戶移動后刷新定位信息,可以觀察到界面中棱錐也隨之變化。
圖9 定位查看管線示意圖
圖9(a)與圖9(c)分別為實(shí)測照片,圖9(b)和圖9(d)中棱錐位置代表用戶實(shí)測位置,從圖中可以看出模擬管線與棱錐的相對位置與實(shí)際情況相符。
上述實(shí)驗(yàn)成功地實(shí)現(xiàn)了實(shí)時(shí)定位查看地下管線,圖形刷新率為基本在60FPS,為了進(jìn)一步對系統(tǒng)兼容性和渲染性能測試,模擬9條管線渲染,根據(jù)管線類型設(shè)置不同材質(zhì),并在不同瀏覽器和系統(tǒng)上實(shí)驗(yàn),其中在Android系統(tǒng)手機(jī)不同瀏覽器上實(shí)驗(yàn)測試效果如圖10所示,在IOS系統(tǒng)上實(shí)驗(yàn)測試效果如圖11所示。
圖10 Android手機(jī)多條管線模型渲染
圖11 IOS手機(jī)多條管線模型渲染
針對系統(tǒng)性能測試,分別對1、5、9條管線模型渲染,逐漸增加管線時(shí)的性能變化如表3所示。
表3 移動Web端渲染性能情況
實(shí)驗(yàn)測試表明本文設(shè)計(jì)的系統(tǒng)在Android和IOS系統(tǒng)上,使用不同瀏覽器均可以流暢渲染管線模型。
本文依據(jù)定位技術(shù)與Web三維建模技術(shù),研究設(shè)計(jì)了融合LBS的移動Web端三維地下管線系統(tǒng),利用移動Web端實(shí)現(xiàn)系統(tǒng)展示,增強(qiáng)了查看管線的便利性;采用RTK定位技術(shù)提高了系統(tǒng)定位準(zhǔn)確性,使用戶可以準(zhǔn)確獲取管網(wǎng)分布情況;高精度自動化三維建模增強(qiáng)了管線真實(shí)性,使用戶擁有更好的感官體驗(yàn)。本系統(tǒng)可以有效解決用戶實(shí)時(shí)決策難、查看管線空間感不強(qiáng)烈以及系統(tǒng)對本地軟件程序和應(yīng)用平臺依賴性高等問題,為數(shù)字化智慧城市發(fā)展提供良好的服務(wù),特別是在地下施工過程中,可以良好的避免因管線位置不明確而造成的嚴(yán)重危害。