周 玲,陳 強(qiáng)
上海工程技術(shù)大學(xué) 電子電氣工程學(xué)院,上海201620
城市地下管網(wǎng)主要由8種管道組成,其鋪設(shè)范圍遍及水下和路面下,起到傳遞信息、輸送能源、減災(zāi)排澇、排棄廢物等作用,城市地下管網(wǎng)管理系統(tǒng)是智慧城市建設(shè)的基礎(chǔ)。隨著城市的高速發(fā)展,提高管網(wǎng)建設(shè)的信息化和科學(xué)化是城市高效運(yùn)行的必然要求,傳統(tǒng)依靠二維“平面圖+剖面圖”的規(guī)劃設(shè)計,畫面空間感不強(qiáng),不利于準(zhǔn)確掌握管網(wǎng)詳細(xì)信息,可能出現(xiàn)管道鋪設(shè)沖突,發(fā)生施工事故,甚至導(dǎo)致規(guī)劃失敗等問題。
目前,國內(nèi)有不少學(xué)者采用基于計算機(jī)的虛擬地理環(huán)境(Virtual Geographic Environments,VGE)[1]來解決上述問題并實(shí)現(xiàn)管網(wǎng)的可視化,例如,吳學(xué)明[2]等基于SuperMap GIS 開發(fā)了二維、三維管網(wǎng)智能信息系統(tǒng)和成圖系統(tǒng);陶迎春等[3]設(shè)計了基于場景圖進(jìn)行三維場景組織管理系統(tǒng)。但基于計算機(jī)的VGE無法為決策提供及時和直觀的參考,且需渲染地面建筑的模型數(shù)據(jù)[4],這些海量數(shù)據(jù)的存儲、細(xì)節(jié)處理、快速顯示等問題,仍然是不可規(guī)避的難題,對硬件設(shè)備性能也有較高要求。近年來,在地下管網(wǎng)建設(shè)方面,國際上的學(xué)者對增強(qiáng)現(xiàn)實(shí)技術(shù)(Augmented Reality,AR)與地理信息系統(tǒng)(Geographic Information System,GIS)相結(jié)合的研究較為廣泛,例如,Soria[5]利用AR技術(shù)在移動端實(shí)現(xiàn)地下管網(wǎng)設(shè)施生命周期管理過程中的主要功能,該研究利用增強(qiáng)現(xiàn)實(shí)的硬件設(shè)備Tango 實(shí)現(xiàn)對真實(shí)世界的三維注冊和動態(tài)跟蹤;Lee[6]開發(fā)了檢索并可視化鉆井日志的AR系統(tǒng),在鋪設(shè)地下管線過程中有利于地面打孔的實(shí)地工作;Schubert[7]基于地下管網(wǎng)、城市和交通等數(shù)據(jù)通過定位和AR技術(shù)對城市建設(shè)進(jìn)行規(guī)劃和設(shè)計等。在移動設(shè)備中將AR 可視化與GIS 相結(jié)合,可滿足地下管網(wǎng)可視化、實(shí)時交互、自由導(dǎo)航等需求,將三維模型顯示到現(xiàn)實(shí)場景中沉浸感更強(qiáng),同時為工作者提供了更加直觀的理解。根據(jù)上述問題和分析,本文設(shè)計了一種城市地下管網(wǎng)增強(qiáng)現(xiàn)實(shí)系統(tǒng),實(shí)現(xiàn)管網(wǎng)的虛實(shí)融合和實(shí)時交互等功能,有效解決VGE決策不靈活、海量數(shù)據(jù)存儲和顯示的問題。
如圖1 是移動端的地下管道實(shí)時定位增強(qiáng)現(xiàn)實(shí)系統(tǒng)的硬件架構(gòu)和整體邏輯結(jié)構(gòu),主要由微處理器單元、信號采集單元、傳輸單元、通信單元和顯示單元這5 部分組成。系統(tǒng)硬件設(shè)備的微處理單元主要是由ARM(Advanced RISC Machine)微處理器組成,用于整個系統(tǒng)協(xié)調(diào)和控制各個單元的工作。通信單元通過無線網(wǎng)絡(luò)和通信協(xié)議與遠(yuǎn)程服務(wù)中心通信,用于手機(jī)向服務(wù)中心發(fā)送包傳輸請求和獲取管道屬性數(shù)據(jù)。顯示單元主要由手機(jī)屏幕組成,用于顯示虛擬管道模型疊加在真實(shí)場景中的AR效果。傳輸單元主要由藍(lán)牙模塊組成,用于GNSS(Global Navigation Satellite System)接收機(jī)在CORS(Continuously Operating Reference Stations)模式下與微處理器單元的連接工作,天線和接收模塊構(gòu)成了GNSS接收機(jī)的主要功能,用于接收導(dǎo)航信息并轉(zhuǎn)發(fā)處理后的導(dǎo)航信號。
手機(jī)的位置信息、移動速度、仰俯旋轉(zhuǎn)等角度信息是管道AR 系統(tǒng)實(shí)現(xiàn)實(shí)時定位和管道模型跟蹤的關(guān)鍵信息,它們由多種傳感器進(jìn)行采集。信號采集單元主要包括手機(jī)攝像頭、陀螺儀、重力加速度計、GPS(Global Positioning System)等多種傳感器,手機(jī)攝像頭用于獲取現(xiàn)實(shí)環(huán)境的影像并渲染成虛擬攝像頭的背景影像,通過視頻處理模塊,管道模型被疊加到攝像頭獲取的影像上;陀螺儀、重力加速度計用于采集手機(jī)六軸姿態(tài)信息,通常在高頻率下進(jìn)行平移和旋轉(zhuǎn)加速;GPS用于獲取手機(jī)的經(jīng)緯度信息進(jìn)行實(shí)時定位。
本設(shè)計基于上海地區(qū)已有的3個參考站,利用多基站網(wǎng)絡(luò)實(shí)時動態(tài)差分(Real-Time kinematic,RTK)技術(shù)建立的連續(xù)運(yùn)行參考站進(jìn)行位置測量,根據(jù)3個已知參考站的坐標(biāo)可求得移動設(shè)備的精確位置坐標(biāo),測量精度可達(dá)到厘米級甚至毫米級,通過藍(lán)牙將測地型GNSS接收機(jī)與小米8 智能手機(jī)連接,導(dǎo)出精確坐標(biāo)文件。AR系統(tǒng)讀取定位信息,并通過手機(jī)攝像頭識別真實(shí)場景的平面和興趣點(diǎn)[8],確保管道模型疊加到真實(shí)世界的確定位置,實(shí)現(xiàn)虛實(shí)融合效果。
圖1 總體設(shè)計方案框圖
表1 AR SDK比較
2.2.1 軟件環(huán)境
針對移動端能根據(jù)用戶位置實(shí)時定位,本設(shè)計選擇基于移動端設(shè)備進(jìn)行開發(fā)。目前AR設(shè)備在移動端的應(yīng)用主要分為兩類[9]:頭戴式和手持式,實(shí)際場景中智能手機(jī)要比頭戴式設(shè)備更適用,主要是智能手機(jī)的普及性、便攜性、移動網(wǎng)絡(luò)基礎(chǔ)設(shè)施方面等優(yōu)勢更為突出。因此,采用Android 系統(tǒng)的智能手機(jī)作為地下管道實(shí)時定位AR系統(tǒng)的應(yīng)用平臺,采用ARCore SDK(Software Development Kit)進(jìn)行AR 功能開發(fā),基于Unity3D 和Visual Studio 2017 開發(fā)平臺運(yùn)用C#語言進(jìn)行AR 系統(tǒng)的邏輯和交互功能開發(fā),服務(wù)器選用是Apache Tomcat 7.0,使用MySQL關(guān)系型數(shù)據(jù)庫。
系統(tǒng)的管道增強(qiáng)現(xiàn)實(shí)功能通過增強(qiáng)現(xiàn)實(shí)軟件開發(fā)包進(jìn)行二次開發(fā),表1比較了市面上應(yīng)用較廣泛的六款增強(qiáng)現(xiàn)實(shí)開發(fā)包。其中免費(fèi)的開源SDK主要是ARCore、ARKit 和ARToolKit,但ARKit 不支持Android 系 統(tǒng)、ARToolKit[10]在環(huán)境光預(yù)估處理沒有ARCore真實(shí),總體評估后ARCore更適用本系統(tǒng)。
2.2.2 系統(tǒng)的主要軟件設(shè)計
系統(tǒng)的功能模塊主要體現(xiàn)在三方面:多方位實(shí)時查看管道模型,模型與攝像頭不存在直接關(guān)聯(lián),模型可隨用戶位置的變換而實(shí)時更新、動態(tài)跟蹤;沉浸式體驗(yàn),在不同光照條件下,管道模型與現(xiàn)實(shí)環(huán)境中物體的明暗度、陰影方向和角度保持一致;實(shí)時交互,點(diǎn)擊屏幕中的模型,可實(shí)時顯示管道存檔時的相關(guān)屬性,再次點(diǎn)擊UI界面任意位置則隱藏UI,能為用戶決策提供及時、直觀的參考。軟件設(shè)計流程如圖2所示。
圖2 軟件設(shè)計流程圖
(1)初始化。用戶開啟地下管道AR系統(tǒng),系統(tǒng)初始化,主程序自動啟動攝像頭并調(diào)用攝像頭接口,將攝像頭拍攝的真實(shí)世界渲染為附加的Unity攝像頭組件的背景,保證了現(xiàn)實(shí)場景的實(shí)時呈現(xiàn)。
(2)實(shí)時定位。GPS 探測到手機(jī)目前所在位置,羅盤判斷攝像頭對準(zhǔn)的方向,將兩者相結(jié)合實(shí)現(xiàn)跟蹤配準(zhǔn),程序獲取相關(guān)傳感器接口的數(shù)據(jù)進(jìn)行處理和轉(zhuǎn)換,讀取GNSS接收機(jī)導(dǎo)出的手機(jī)定位數(shù)據(jù)文件,通過微處理器的數(shù)據(jù)計算將兩部分?jǐn)?shù)據(jù)建立連接,利用七參數(shù)坐標(biāo)變換法得到Unity3D所需數(shù)據(jù)。
(3)虛實(shí)融合。OpenGL實(shí)現(xiàn)管道模型繪制,根據(jù)讀取的定位數(shù)據(jù)查詢MySQL 數(shù)據(jù)庫,檢索出經(jīng)緯度小數(shù)點(diǎn)后第5 位數(shù)值的變化幅度在3~4 之間的管線測量數(shù)據(jù),即檢索出用戶周圍10 m左右的管線數(shù)據(jù),將平面坐標(biāo)和高程轉(zhuǎn)換成Unity3D的數(shù)據(jù),進(jìn)而將管線數(shù)據(jù)利用Unity3D引擎進(jìn)行可視化處理,并呈現(xiàn)在手機(jī)屏幕上,利用VIO算法來計算位置變化并實(shí)現(xiàn)對管線模型的跟蹤。
(4)實(shí)時交互。為增加沉浸式體驗(yàn)、實(shí)時交互等功能,還設(shè)計了用戶與管線模型的交互方案,通過Unity3D在每個管線模型上都添加了碰撞器組件,在Update方法中每幀監(jiān)測觸發(fā)事件是否發(fā)生,若檢測到屏幕被點(diǎn)擊,則從屏幕點(diǎn)擊處發(fā)出射線并指向管線模型,觸發(fā)事件并顯示UI界面。
3.1.1 基于RTK的定位設(shè)計
本文設(shè)計是基于位置的增強(qiáng)現(xiàn)實(shí)的[11],利用GPS、加速度計等傳感器獲取的信息在真實(shí)場景顯示AR 對象,即管線模型?,F(xiàn)有移動端定位方式[12-13]主要有移動基站、A-GPS、Wi-Fi 等定位方式,但移動基站和A-GPS定位精度在百米級和十米級,Wi-Fi 適用于室內(nèi)定位。由于本系統(tǒng)對定位精度要求較高,故采用北斗衛(wèi)星導(dǎo)航系統(tǒng)(BeiDou navigation Satellite system,BDS)和網(wǎng)絡(luò)傳輸獲得手機(jī)的精確位置,定位精度可達(dá)到厘米級甚至毫米級。圖3 簡單示意了高精度實(shí)時定位[14]的架構(gòu),衛(wèi)星為全球定位導(dǎo)航系統(tǒng)的空間部分,用于發(fā)送導(dǎo)航定位的衛(wèi)星信號;地面增強(qiáng)系統(tǒng)為CORS 系統(tǒng)的地面參考站,負(fù)責(zé)采集和處理導(dǎo)航衛(wèi)星觀測數(shù)據(jù),實(shí)時向用戶提供載波相位、偽距、改正數(shù)等信息;GNSS接收機(jī)用于測量所在位置點(diǎn)的高精度位置坐標(biāo),可依據(jù)精確位置通過服務(wù)器在數(shù)據(jù)庫中檢索附近管道信息。
圖3 高精度實(shí)時定位示意圖
定位信息的傳輸流程是首先將接收機(jī)的數(shù)據(jù)輸出方式設(shè)置為GGA(Global Positioning System Fix Data)數(shù)據(jù),然后登錄CORS賬號,接入CORS網(wǎng)開始測量,通過接收到的衛(wèi)星星歷及CORS 網(wǎng)解算的差分改正信息解算出高精度坐標(biāo),最后接收機(jī)通過串口將精確坐標(biāo)傳輸?shù)剿{(lán)牙模塊,并導(dǎo)出到已經(jīng)配對的手機(jī)端。通過此方法,提高了手機(jī)的定位精度。
3.1.2 基于七參數(shù)坐標(biāo)變換的管道數(shù)據(jù)設(shè)計
通過網(wǎng)絡(luò)傳輸從GIS(Geographic Information System)服務(wù)器[15]輸出到客戶端的管道位置的測量數(shù)據(jù)主要包括空間數(shù)據(jù)和屬性數(shù)據(jù)。空間數(shù)據(jù)用于Unity3D 中對象坐標(biāo)、角度、比例和紋理的轉(zhuǎn)換,屬性數(shù)據(jù)用于數(shù)據(jù)檢索。如表2體現(xiàn)了管道的空間數(shù)據(jù)結(jié)構(gòu)。
表2 管道的空間數(shù)據(jù)結(jié)構(gòu)
利用七參數(shù)坐標(biāo)變換方法[16],將管道的經(jīng)緯度坐標(biāo)(B,L,H)先轉(zhuǎn)換成空間直角坐標(biāo)系下的坐標(biāo)(X,Y,Z),然后將(X,Y,Z)轉(zhuǎn)換成世界坐標(biāo)(X1,Y1,Z1)。七參數(shù)坐標(biāo)轉(zhuǎn)換方法采用至少3個點(diǎn)來計算7個參數(shù),分別是3個平移參數(shù)即世界坐標(biāo)系和空間直角坐標(biāo)系的坐標(biāo)原點(diǎn)(X1,Y1,Z1)和(X,Y,Z)之間差值,3個旋轉(zhuǎn)參數(shù)為兩個坐標(biāo)系的XYZ 軸重合在一起的角度,1 個尺度變化參數(shù)m 可實(shí)現(xiàn)管道尺度的比例轉(zhuǎn)換。通過測試得知,ARCore 初始化時,世界坐標(biāo)系和攝像機(jī)坐標(biāo)系具有相同的原點(diǎn)和軸,攝像頭的當(dāng)前位置和旋轉(zhuǎn)都為(0,0,0)。添加C#腳本可通過手機(jī)的傳感器獲取位置O1(X0,Y0,Z0)和滾動、仰俯、方位角這3個姿態(tài)參數(shù),姿態(tài)參數(shù)可表示為(rx,ry,rz)。若將世界坐標(biāo)視為現(xiàn)實(shí)世界中的局部坐標(biāo),則要求O1是世界坐標(biāo)的原點(diǎn)并且其坐標(biāo)軸與空間直角坐標(biāo)系的坐標(biāo)軸大致平行,所以在初始化導(dǎo)出的ARCore 項(xiàng)目時,需要保持智能手機(jī)屏幕的垂直方向與北方平行,然后根據(jù)七參數(shù)坐標(biāo)轉(zhuǎn)換將空間直角坐標(biāo)系中的管道坐標(biāo)數(shù)據(jù)轉(zhuǎn)換為世界坐標(biāo)。等式(1)~(4)是從空間直角坐標(biāo)系中的(X,Y,Z)到世界坐標(biāo)中的(X1,Y1,Z1)的轉(zhuǎn)換。
依據(jù)公式(1)~(4)對原始數(shù)據(jù)進(jìn)行計算,得到管道起始點(diǎn)(X1b,Y1b,Z1b)和終點(diǎn)(X1e,Y1e,Z1e)的世界坐標(biāo),對象渲染由網(wǎng)格的樞軸位置、旋轉(zhuǎn)、尺度變化和材質(zhì)決定。其中,樞軸點(diǎn)即管道的中點(diǎn),樞軸點(diǎn)、長度和直徑是Unity3D中管道模型的3個組成部分,如等式(5)~(8)所示,Unity3D 中對象的樞軸坐標(biāo)為(X1p,Y1p,Z1p),由管道世界坐標(biāo)下的起點(diǎn)和終點(diǎn)計算得到,管道長度為R,管道直徑即數(shù)據(jù)庫中Diameter參數(shù),可直接讀取。
增強(qiáng)現(xiàn)實(shí)技術(shù)[17]是一種將真實(shí)世界信息和虛擬世界信息“無縫”集成的新技術(shù)。ARCore SDK 無須任何額外的硬件,就可擴(kuò)展到Android 生態(tài)系統(tǒng),其中,ARCore 主要通過構(gòu)建地圖實(shí)現(xiàn)對模型的動態(tài)跟蹤。它可將現(xiàn)實(shí)世界的環(huán)境信息存儲在內(nèi)存中實(shí)現(xiàn)地圖構(gòu)建,追蹤器根據(jù)已存儲的部分圖中的“關(guān)鍵幀”進(jìn)行現(xiàn)實(shí)世界與圖的匹配,利用VIO算法和追蹤器完成環(huán)境感知。當(dāng)移動設(shè)備位置變化越大,則構(gòu)建的地圖越大,易產(chǎn)生內(nèi)容丟失等情況,導(dǎo)致追蹤效果變差。但利用ARCore 創(chuàng)建錨點(diǎn)可將地圖內(nèi)容進(jìn)行固定,且可多次設(shè)定錨點(diǎn)以擴(kuò)大地圖覆蓋的物理面積,保證環(huán)境內(nèi)容不被丟棄,從而提高了系統(tǒng)動態(tài)跟蹤的魯棒性。
通過ARCore SDK 進(jìn)行C#編程開發(fā)時,利用不同的API(Application Programming Interface)讓手機(jī)感知其周圍環(huán)境、管道模型虛實(shí)融合以及交互等功能。例如,通過ARCoreBackgroundRenderer接口將手機(jī)攝像頭拍攝的現(xiàn)實(shí)環(huán)境渲染為附加的Unity 攝像頭組件的背景,Anchor 接口將管道模型附加到現(xiàn)實(shí)環(huán)境中,并將該點(diǎn)的環(huán)境信息存儲到內(nèi)存中,DetectedPlane接口用來檢測和跟蹤現(xiàn)實(shí)環(huán)境中的平面,完成平面識別。ARCore將虛擬管道模型與手機(jī)攝像頭看到的真實(shí)世界融合,通過以下3 個主要功能構(gòu)建對周圍環(huán)境的理解:運(yùn)動跟蹤,手機(jī)通過攝像頭標(biāo)識興趣點(diǎn),將這些點(diǎn)的移動與手機(jī)慣性傳感器的讀數(shù)進(jìn)行組合,讓手機(jī)可以確定它的位置和姿態(tài),并保持管道模型在確定位置;環(huán)境理解,讓手機(jī)可以檢測平坦的表面(例如地面)的大小和位置,放置醒目的標(biāo)記,作為觀察管道模型的參照點(diǎn);光估測,讓手機(jī)估測環(huán)境當(dāng)前的光照條件,使得管道模型的明暗程度與真實(shí)世界相協(xié)調(diào),增強(qiáng)管道模型的沉浸感。
為了測試虛擬管道在現(xiàn)實(shí)環(huán)境中的可視化效果,做了以下兩組對比實(shí)驗(yàn)。
(1)評估管道模型漂移情況。在世界坐標(biāo)系中(1,-1.5,1)處放置一個醒目的標(biāo)記模型,記錄標(biāo)記模型的平移距離來定量的評估管道模型漂移長度。實(shí)驗(yàn)過程是手持移動設(shè)備在5 m×5 m的區(qū)域中走動,保持移動設(shè)備的攝像頭高度距離地面1.5 m,實(shí)驗(yàn)時長為10分鐘,分別在第1分鐘、4分鐘、7分鐘、10分鐘記錄標(biāo)記模型的位置。由于手機(jī)長時間運(yùn)行會發(fā)熱,影響位置數(shù)據(jù)的精準(zhǔn)度,因此將實(shí)驗(yàn)時長定為10分鐘。以標(biāo)記模型為中心,從標(biāo)記模型的前后左右4個角度進(jìn)行觀察,前方和后方兩個視角的測試圖如圖4 所示。由于現(xiàn)實(shí)環(huán)境光線的存在入射傾角,標(biāo)記模型在前后視角下呈現(xiàn)明暗程度不同的效果且漂移范圍較小。
圖4 前方和后方視角的漂移測試圖
上述4 組實(shí)驗(yàn),每組實(shí)驗(yàn)做了20 次,每組實(shí)驗(yàn)結(jié)束后,退出AR程序并關(guān)閉后臺運(yùn)行程序,等到手機(jī)冷卻下來再進(jìn)行下次實(shí)驗(yàn)。實(shí)驗(yàn)時長越長,X 軸和Y 軸坐標(biāo)產(chǎn)生的漂移越大,10 分鐘內(nèi)產(chǎn)生的漂移值在0.1 m 左右。實(shí)驗(yàn)結(jié)果如表3所示,該偏差主要由VIO算法產(chǎn)生的漂移誤差造成,統(tǒng)計20次實(shí)驗(yàn)的X 軸和Y 軸位置的偏差范圍是0.01~0.02 m。
表3 標(biāo)記模型15 min內(nèi)的漂移長度
(2)測試對管道模型的跟蹤情況。圖5展示了每天同一時刻測試的從左前方、右后方、正視、俯視4個不同角度觀察的管道模型,管道位置和軸向基本符合實(shí)際情況。手持移動設(shè)備可在管網(wǎng)中穿行,能夠清楚知道管道之間的空間關(guān)系。
本設(shè)計根據(jù)城市地下管網(wǎng)的管理需求設(shè)計了用戶與管道模型之間的交互方式,用戶通過移動設(shè)備的屏幕可看到虛擬管道疊加在現(xiàn)實(shí)環(huán)境中,用戶需了解附近管道的詳細(xì)信息時,可點(diǎn)擊手機(jī)屏幕中的管道模型,在被點(diǎn)擊的管道旁邊會出現(xiàn)一個虛擬的UI 界面,顯示了從服務(wù)器獲取到的管道屬性數(shù)據(jù),通過添加C#腳本可控制UI 界面始終正對著用戶屏幕,當(dāng)用戶從不同角度觀察管道模型時,可清楚看到UI 界面的內(nèi)容??牲c(diǎn)擊UI界面的其他按鈕來實(shí)現(xiàn)更多交互,點(diǎn)擊界面的任意位置即可關(guān)閉UI界面。交互測試結(jié)果如圖6所示。
圖5 管道模型的空間關(guān)系
圖6 交互界面
本設(shè)計利用AR 技術(shù),提出了新的地下管道可視化管理方式,并且是一種基于智能手機(jī)的實(shí)時定位系統(tǒng),通過采用虛實(shí)融合的設(shè)計,極大提高了沉浸感和交互體驗(yàn),且提供了管網(wǎng)管理的空間決策支持能力。通過ARCore SDK開發(fā)管道虛實(shí)融合的功能,提高了管道模型渲染和跟蹤的魯棒性;采用基于BDS 的定位服務(wù)和七參數(shù)坐標(biāo)轉(zhuǎn)換法,實(shí)時獲取用戶的高精度位置坐標(biāo);采用人機(jī)交互設(shè)計理念實(shí)現(xiàn)管道模型的交互方式,可靈活觀察管道的空間和屬性信息。本設(shè)計有效解決了用戶依靠傳統(tǒng)管道圖紙和VGE進(jìn)行城市地下管道設(shè)計和施工過程中,決策不靈活、管道數(shù)據(jù)查詢不便捷、管道空間感不強(qiáng)等問題,為城市地下管道智慧化管理提供了技術(shù)方案探索,可更好地服務(wù)于智慧城市建設(shè)。