蒙笑陽
(北京全路通信信號研究設計院集團有限公司,北京 100070)
隨著軌道交通的覆蓋面積不斷增大,各個區域軌道交通系統的壓力都在不斷增加,同時在復雜的大型軌道交通站點如何獲得工作人員、重要物資的準確位置及其導航成為難題。本研究主要解決區域軌道交通站點的乘客行程規劃、出行指導、站內三維模型查看、AR 導航、工作人員定位及其輔助導航等問題。
針對此問題所開發的基于SSM 框架的室內定位導航系統(簡稱系統)是區域軌道交通協同運輸與服務系統重要的應用子系統之一,主要負責跨制式行程規劃、出行引導、地鐵站三維模型查看、電子票務、便捷登程、行程查詢、在途信息服務、消息智能推送等功能。
系統的核心技術主要體現在以下幾方面:三維模型構建、基于UWB 的室內定位、路徑規劃、AR導航和消息推送等。
在三維建模方面,系統是采用基于HTML5 和WebGL 標準開發的三維可視化模型,可以基本實現在3D 場景中顯示需要定位的人員位置,并且可以隨意切換視角,視角也可以跟隨任何一個人。同時,開發環境的自身特點使可視化界面具備很好的設備兼容性,可以輕松適應PC、Android、IOS,不需要在設備中安裝任何插件即可在瀏覽器中流暢查看軌道交通站點的三維場景。
在定位技術方面,本系統采用超帶寬(UWB)技術,結合信號到達時間差(TDOA)技術可以在室內精確定位相關人員位置,其精度可以達到50 cm。同時,為了更好的適應室內環境的復雜性,系統采取3D 定位的方法。首先需要在具體的建筑中構建與之相匹配的3D 模型,進而在其基礎上加入定位所獲取到的三維數據,從而實現室內的實時3D 定位。
在路徑規劃方面,本系統采用A*算法實現起始點到目標點的路徑規劃。A*算法具有良好的性能與準確性,算法穩定,魯棒性高,對室內不同環境反應迅速,可擴展節點,算法參數調優方便,能夠在占用較少的硬件性能情況下,更加快速的計算出室內最優路徑。
智能出行信息服務系統構成如圖1 所示。

圖1 系統總計設計框架Fig.1 Overall design framework of the system
應用層包括系統應用軟件和AR 導航,系統應用軟件主要實現3D 模型的展示及其3D 定位數據的圖形化顯示;同時在顯示界面上提示相應的報警;在手機端部分還將提供AR 導航。
服務層由定位引擎軟件、三維模型、路徑規劃算法、數據存儲軟件組成,將上述軟件及其算法安裝于服務層。定位引擎依靠整個通信網絡傳輸的感知層的基礎數據完成人員位置數據的計算,從而得到被定位人員的詳細位置坐標;3D 模型為系統提供良好的三維模型,方便定位數據在三維場景中進行顯示;路徑規劃算法為系統提供最優的路徑指示;數據存儲可以保存整個系統產生的所有需要保存的信息。
傳輸層使用兩種方式,即有、無線傳輸網。其中無線網依靠WLAN 的通信模式將感知層傳感器的基礎定位數據傳送到主干網絡中;有線網則通過光纖和以太網進行數據傳輸,將定位基礎數據直接傳達到對應的服務器中,而這些基礎定位數據有的是從無線網中匯集的,有的是直接從有線網中接入的POE 類型的傳感器中獲取的。
感知層包括定位基站、通信基站、通信定位基站、定位標簽、視頻接口以及視頻傳感器(攝像頭)。主要是用于獲取系統所需的基礎數據,包括定位數據和現場實時場景信息。為系統其他層級的進一步運算以及顯示提供強有力的支持。
系統整體采用B/S 架構,B/S 架構是一種不同于之前C/S 架構模式的新的結構構造技術,主要具有以下優勢。
B/S 可以使軟件具有很好的系統分布性;
瀏覽器到數據庫的連接方式轉換為多對多的連接,因此在用戶使用時將會具有很強的信息共享性;
在使用B/S 架構時,數據可以集中存放在專用服務器中,很大程度上保障數據的一致性;
B/S 架構由多個具有較高獨立性的構件組合而成,因此在必要時,可以通過對單個組件的替換實現對整個系統的快速升級,此方法可以有效降低系統維護成本,提高工程盈利;
業務拓展簡單,由于功能之間的獨立性較高,所以可以直接增加服務器的數量,使系統的整體性能提高,從而解決服務器負載超標的問題;
無需客戶端,這在一定程度上可以確保服務器數據庫的安全。
技術平臺采用J2EE 的三層架構,開發語言采用JAVA,系統設計符合J2EE 標準,基于最流行的開發架構(Spring+SpringMVC+Mybatis),系統支持分布式部署,可7×24 h 不間斷運行;具有良好的系統兼容特性,支持主流Windows、Linux 等常見的操作系統平臺。支持MySQL 等主流數據庫的任何常規操作,對Tomcat 也有良好的兼容性。
系統整體架構使用B/S 結構開發,用戶對系統的維護和使用不會因為場所和地點而受到不必要的限制;為了后期功能的進一步拓展,通常會在系統中預留再次開發的Web service 接口,擴充軟件功能以及與其他信息系統的整合。
網頁端的開發主要依靠Vue,它可以使開發人員的開發過程變得簡潔,而且它還提供了一些可與第三方庫接入的組件,使開發過程更加方便。Vue 響應式原理如圖2 所示。

圖2 Vue響應式原理Fig.2 Principle of Vue response
Vue 工作原理:將JavaScript 對象發送到Vue 的data 中,且所有Vue 中都存在對應的watcher。若是其中的data 屬性情況改變,則需要對watcher 進行重構并賦予新的內容,進而將與其關聯的屬性予以同步。使用Vue 進行前端頁面的開發能夠大大的減少開發時的難度,特別是在與后端數據的交互中尤為明顯。
使用Vue 進行網頁的開發可以感受到以下優點:具有很好的靈活度和開放性;易學易用,有更多成熟工具和第三方資源庫的強力支持;性能好,易優化,相對于其他開發方式,Vue 具有較好的穩定性,網頁優化比較簡單;有功能強大的路由機制;有多種方式實現過渡效果。
iView 是一套基于Vue 的高質量UI 組件庫,主要服務于PC 界面的中后臺業務。該組件庫具有以下特點:使用單文件的Vue 組件化開發模式;基于 npm+webpack+babel 開發;豐富的組件和功能,滿足絕大部分網站場景;友好的 API,自由靈活地使用空間;詳細、友好的文檔,事無巨細;細致、漂亮的 UI。部分組件如圖3 所示。

圖3 iView部分組件截圖Fig.3 Screenshots of some of the iView components
SSH 為流行的Web 應用程序開源框架,SSM則是在SSH 完善之后的更加偏向企業級的主流Java EE 框架。SSH 和 SSM 這兩種框架都使用Spring 的依靠灌注DI 的形式來控制各個層級的控件,同時采用面向切面編程AOP 以完成對日志的管理、認證權限、切入事件等通用的類似功能。
對于這兩種框架的區別方面,主要的體現位置在頁面層(View)和持久層(DAO)。因為當系統在運行的過程中,在頁面層的某些操作,需要借助Ajax 調用后臺的服務,從而獲取其返回的json 數值,有了這個數值以后才可以進行后續的操作。
在本文所采用的SSM 框架中,Spring 可以看做一個具有管理性質的協調者。它將在整個軟件系統的運行過程中直接管理Bean 的活動,直到Bean 的屬性發生變化,即現在的Bean 已經消失。因此,在整個軟件系統的運行過程中Spring 具有非常高的權力,能夠控制所有的對象操作。
與Spring 這樣一個系統的領導兼協調執行者不同的是MyBatis,它是在Dao 層做基層實事的實現者,將直接多數據庫進行操作,并支持各種數據庫的操作,對于定制化SQL 等數據庫也有比較強大的支持力。其優點可以總結為:
MyBatis 的體量小,操作比較簡單,具有較好的獨立性,不需要依存于其他軟件的支持,系統的程序開發者僅僅需要安裝兩個 Jar,同時設置相關的文件映射即可,不需要進行其他的文件編譯,系統環境配置等;
MyBatis 具有較高的獨立以及兼容性,它的操作過程中不會對既有的任何軟件產生影響;
使用標簽完成對SQL 命令的編寫,實現對數據庫中的所有字段的賦值和其他操作。
數據庫為任何軟件系統中不可或缺的部分,從某種意義上說這也是系統中的核心要素。而且數據庫的結構也在一定程度上影響系統的響應速度,一個好的設計結構將對數據操作起到至關重要的地步。首先根據系統中需要的各種數據之間的關系,對數據字段進行定義并將數據庫中的數表關聯關系做好,特別是表中涉及到與其他表進行關聯的外鍵時尤為重要,需要仔細考慮,最好在做數據庫結構時先對整個系統的數表內容進行整理,得到一個角色、字段、屬性的相關關系圖,并按照這個關系圖進行數據庫的設計。這樣可以有效提高數據庫的管理效率,同時在后期出現部分問題時可以從關系圖中比較快速的分析出問題所在,加快解決問題的速度,減少系統軟件的開發周期。系統軟件開發使用比較多的數據庫有SQL Serve、Oracle、SYBASE、Informix 以及My SQL 等。在這之中,My SQL比較輕巧便捷,擁有較高的靈活度,所以系統在經過一定的考慮之后決定使用My SQL,并為這些功能的實現建立了包含用戶信息表、定位數據位置表、報警狀態表、卡片信息表、卡片使用狀態表等在內的30 多個數據表。
系統結合UWB 技術、TDOA 技術、三維建模技術將軌道交通站點的人員狀況、站內場景狀況以可視化的方式展現出來,并在此基礎上結合軌道交通的特點進行一系列的應用測試,并在測試過程中取得較好的實驗效果。