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