孔勇平 鐘致民 楊廣龍 張玉良
1 引言
近年來,隨著無線通信技術和移動智能終端的廣泛應用,基于移動的LBS應用服務發展迅猛。早期的LBS系統主要應用于快速救援,比較典型的有美國的E911系統和歐洲的E112系統。隨著GPS的普及,LBS的應用范圍擴至軍事、交通、物流、醫療、民生等領域,用戶可以查出到興趣點的最優路徑等信息[1]。近兩年來在3G寬帶移動互聯網和智能手機的帶動下,以手機為移動載體的LBS系統被廣泛應用。其主要特點是室內室外都可以進行定位,定位精度高。
目前市場上應用于手機平臺的室內LBS軟件較少,本文將基于Android平臺創建一個應用于室內環境的LBS系統平臺,可以根據客戶的位置提供相應的服務,該系統可以應用于眾多的室內場所,如超市、書店、博物館、火車站和商店等[2]。
2 基于Android的室內定位系統結構
2.1 移動端平臺的選擇
Android平臺是谷歌并購Android后在2007年11月發布的一款新的手機操作平臺。Android基于Linux內核,采用了軟件疊層的架構。最底層是Linux核心層,以C語言進行開發,它作為軟硬件之間的抽象層,隱藏了硬件細節而為其上層提供了統一服務。在核心層之上,是由函數庫Libraries和運行時Runtime構成的中間層,用C++開發而成。其中Runtime中包括了Android核心庫和Dalvik虛擬機。核心庫主要提供Java編程語言核心庫中可能用的功能,Dalvik虛擬機的作用則是為每一個Android應用程序提供一個運行環境。中間層之上是Android的應用層,它包括了應用軟件及框架設計。通過這個開放的平臺,開發者們可以通過框架API盡情發揮自己的想象力,利用Java語言編寫出各種各樣的應用軟件[3]。
正是由于Android采用了上述軟件分層結構,開發者無需過多了解其他層次,而只需把應用層作為一個有機整體對其進行理解并作進一步開發。與此同時Android的下層體系又能對上層提供很多服務,非常有利于標準化工作。同其他的手機平臺相比,Android擁有的Linux內核在網絡性能方面更為出色,對硬件平臺的適應性更好。另外,Android手機提供的無線Wi-Fi以及GPS等功能,使用戶可以非常方便地聯網(本系統的設計就是應用了Android平臺自帶的Wi-Fi無線網絡連接設備,在程序中可以非常方便地調用及停止此功能[4])?;贏ndroid平臺的以上特點,本系統選擇Android為LBS系統的底層平臺。
2.2 定位技術的選擇
這幾年室內無線定位技術迅速發展,一些新型定位技術在商場、大型樓宇、工廠等場景中得到了廣泛應用,比如Wi-Fi技術、藍牙技術、ZigBee技術等。通過對比,本文選擇Wi-Fi技術作為室內定位的主要技術手段,配合手機的GPS功能,可以實現室內外全覆蓋定位。與其他技術相比,Wi-Fi技術具有諸多優點,如:無線電波的覆蓋范圍廣,可以在整棟大樓中使用;傳輸速度快,利于實時交互;成本低,無需額外設備。
當前,Wi-Fi定位技術主要分為四種:TOA(基于信號到達時間的定位)、TDOA(基于信號到達時間差的定位)、AOA(基于信號到達角度的定位)、RSSI(基于信號強度的定位方法)。這四種方法中,RSSI方法不需要增加額外的硬件設備就可以進行定位,在室內網絡環境穩定時,其定位結果較為穩定精確,因此本文采用RSSI定位算法。
2.3 定位流程
利用RSSI進行定位,需要在區域內布置多個AP,然后將區域劃分成多個子區域,分別采集子區域內的AP信號強度,采集時可以根據區域大小決定采集數據的密度[5],然后將信號強度數據上傳到服務端,這樣就可以據此繪制出位置-信號強度分布圖。
當客戶端進入這些區域時,手機將會自動實時采集這些AP信息點發出信號的強度,將這些數據傳到服務端,在服務端將客戶端傳來的每個AP點的信號強度值與已經采集的信號值進行比對,通過一定的算法得到最接近于實際信號強度值附近的目標區域,從而對用戶進行定位,并將定位結果返回給客戶端。
定位流程如圖1所示。
3 室內定位系統的結構設計
本文的LBS室內定位系統可以分為三大部分:客戶端、服務端、數據庫??蛻舳擞糜诓杉覂刃盘枏姸刃畔?、位置信息,被定位端實時上傳數據,定位端請求定位。服務端用于管理客戶端的設備信息、位置信息,查看狀態信息,并完成定位算法。數據庫用于存儲信號強度信息和室內位置信息。
系統結構如圖2所示:
圖2 系統結構圖
4 室內定位系統的實現
如前所述,本系統主要分為客戶端、服務端、數據庫三部分,其中客戶端主要實現用戶數據采集和定位顯示,服務端主要實現設備管理、位置管理等管理功能,數據用于存儲數據信息。系統的物理結構如圖3所示,軟件結構圖如圖4所示。
圖3 物理結構圖
圖4 系統模塊圖
根據功能的不同將系統劃分為以下幾個模塊:終端設備管理模塊,指紋數據管理模塊,位置信息管理模塊,運行時管理模塊,定位服務管理模塊。
4.1 終端設備管理模塊
在使用系統時,終端設備第一次與平臺建立連接后,需要在平臺上注冊,并在平臺端生成一個注冊碼,對設備類型進行授權。當完成這些操作后,平臺向終端發送注冊碼以及設備參數。
4.2 指紋數據管理模塊
當終端采集設備連接到平臺時,采集端可以通過Wi-Fi、寬帶網絡等通信方式,將采集到的指紋數據直接上傳至平臺,省去人工上傳的附加動作。如果采集終端由于某些原因不能和平臺建立連接,無法保證數據實時的傳送到平臺中心,那就可以通過平臺提供的離線導入功能,將采集到的指紋數據上傳至平臺。endprint
4.3 位置信息管理模塊
位置信息是對實體建筑物在平臺上的模型進行轉換,平臺將一個位置劃分為建筑物信息、樓層信息、樓層內部房間及公共空間等。通過對位置信息的管理,可以將一個實體建筑物劃分為可分開管理與維護的位置單元,從而可以在各個細分位置單元進行如數據采集與定位結果展示等操作。每個建筑物都有對應的樓層平面圖,為了在平臺端更直接地細分位置單元、建立更為詳細的位置信息,平臺支持在樓層平面圖上直接標注房間及公共空間等細粒度維度信息。
樓層平面圖需為標準SVG格式,在建立樓層時可同步上傳對應的樓層平面圖SVG文件。位置信息添加是建立位置信息的基礎,通過手工建立位置信息及位置鄰接關系,將現實實體模型轉換為平臺可識別的數據模型。位置信息是進行數據采集及定位結果顯示的基礎。由于用戶可能不能及時上傳樓層平面圖SVG文件,該模塊可以直接通過手工輸入的形式進行位置信息的添加。
可以對已經添加的位置信息進行修改與刪除操作,同時可以添加新建筑物,選擇對應的建筑物可以添加新的樓層信息,選擇建筑物樓層信息可以添加新的房間及公共空間信息。
當進行刪除操作時,如果選擇刪除建筑物信息,那么該建筑物下的樓層、房間及公共空間信息也將隨之刪除;如果選擇刪除樓層信息,則該樓層下的房間及公共空間信息也隨之刪除??蓡为殑h除房間及公共空間信息。
終端采集設備在進行采集數據工作時,需要先下載對應的位置信息;當終端采集設備首次下載位置信息或者需要更新位置信息時,終端采集設備需要連接到平臺。
4.4 運行時管理模塊
運行時管理主要針對當前連接到平臺且正在運行的終端設備,包含采集端、定位端、被定位端等終端設備,其功能包括手工刪除在線設備、重置在線設備、修改在線設備參數等。它是定位端查詢可被定位終端設備、向平臺發起定位請求的基礎模塊。
為有效管理終端設備,每個終端設備在啟動、運行和關閉過程中,都會在指定時間范圍內向平臺發送心跳包信息,以便平臺動態掌握終端運行狀態。平臺在接收到心跳信息后會及時更新運行時數據,以便更有效查看當前終端設備的運行狀況。
如果平臺端對該部分參數做出調整,平臺會啟動androidPN推送更新后的參數信息到指定的終端設備。平臺端推送消息到特定終端設備的數據結構為JSONObject格式:
{"result":"0x0001","contLocInteval":00,"maxLocWaitTime":00,"heartbeat":00}
平臺端可以人工管理正在運行的終端設備,若終端設備運行時數據異常,可以讓其從平臺端斷開連接。手工刪除指定運行時設備后,該設備將與平臺端停止通信,下次通信時間點為該終端設備再次啟動終端設備軟件時。手工刪除終端設備后,平臺會啟動androidPN推送停止消息到指定的終端設備,當前僅限于Android終端設備。平臺端推送消息到特定終端設備的數據結構為JSONObject格式:
{"result":"0x0003","destImei":""}
平臺端可對當前運行時設備正在進行的工作進行重置,此處主要針對終端設備定位端及終端設備被定位端而設立,可以使當前正在進行的定位活動停止并重新啟動。終端設備重置后,會根據實際運行情況,主動再次連接平臺并進行通信;而平臺則會啟動androidPN推送停止消息到指定的終端設備,當前僅限于Android終端設備。平臺端推送消息到特定終端設備的數據結構為JSONObject格式:
{"result":"0x0002","destImei":""}
4.5 定位服務管理模塊
該模塊管理與維護定位算法及更新定位模型庫,在更新指紋數據或者更新位置信息時暫停或者停止定位服務,以便定位算法更新相關數據模型。定位服務分為運行和停止兩種狀態,只有定位服務處于運行狀態時,終端設備定位端發出的定位請求才是有效的。當指紋數據更新時,可通過平臺直接更新定位模型,加快數據更新,減少手工操作的繁瑣。
定位是建立在指紋數據、位置信息、定位算法、定位服務和運行時設備基礎之上的。當終端設備定位端向平臺提出定位請求時,平臺會根據實際情況來確認該定位請求是否有效。平臺根據終端設備被定位端提交的指紋數據運行定位算法,將定位結果推送到終端設備定位端。定位類型分為單次定位和多次定位即連續定位。
平臺端根據提交的請求確認是否有效,如有效,平臺通知終端設備定位端定位請求成功,并通知終端設備被定位端按定位類型向平臺發送指紋數據;如無效,平臺通知終端設備定位端定位請求無效。平臺接收終端設備被定位端返回的指紋數據運行定位算法,獲取定位結果,并利用androidPN技術推送定位結果到終端設備定位端。
選擇終端設備被定位端及定位類型后,終端設備定位端向平臺發出定位申請,由于獲取終端設備被定位端數據列表到定位申請發出有時間間隔,平臺會檢測相應的被定位端當前工作狀態。同時,針對每次定位申請,平臺都會檢測當前定位服務狀態,只有當前定位服務狀態為運行時才可以執行定位算法。
當終端設備被定位端接收到定位類型數據時,會自動在指定時間范圍內向平臺發送指紋數據,平臺根據被定位端發送的指紋數據運行定位算法,將定位結果利用androidPN推送到指定定位端。平臺運行定位算法得到定位結果后,會利用androidPN推送定位結果到指定的定位端完成定位流程。
4.6 數據表
本系統數據庫主要包括以下數據表:終端設備表,主要用于記錄終端設備信息;位置信息表,主要用于記錄室內采集的位置信息;指紋數據表,主要用于記錄采集的信號強度信息;定位日志表,主要用于記錄定位結果信息;運行時設備表,主要用于記錄正在運行的設備信息;系統用戶表,用于記錄當前管理用戶信息。endprint
5 實驗結果分析
本次選擇一個展覽館作為測試地點,此展覽館有很多Wi-Fi點滿足系統對Wi-Fi點的要求。首先使用采集端在室內選擇不同的位置點進行數據采集,在服務端將這些數據通過一定的算法生成位置模型記錄到數據庫中。然后切換到定位端和被定位端,此時需要兩部手機,一部作為定位端,另一部作為被定位端,在被定位端上運行應用程序,應用程序將會把實時采集到的信號強度信息發送到服務端,在服務端通過跟以后的模型進行對照確定被定位端所處的位置,將結果返回給定位端。定位端根據需要選擇被定位的設備,向服務端發送定位請求,服務端根據定位端發送過來的請求將定位結果返回給定位端手機。定位結果如圖5所示:
(a)定位請求選擇 (b)顯示定位結果和室內圖
圖5 室內定位結果圖
經過測試本系統的定位精度可以達到1m,反應時間在3s以內,能滿足大多數室內定位要求。
6 結語
本文利用Android操作平臺,結合RSSI室內定位技術設計了一個室內定位系統,該系統可以在多種場合使用,比如商場、車站、工廠、學校等地。在此基礎上,可以根據不同的應用環境開發出基于室內定位的各種應用系統。此系統具有實現成本低廉、應用廣泛的特點,將能給消費者帶來很好的體驗。
參考文獻:
[1] 楊東勇,顧東袁,傅曉婕. 一種基于RSSI相似度的室內定位算法[J]. 傳感技術學報, 2009,22(2): 264-268.
[2] 侯振堂,梁博,張建,等. Wi-Fi技術與傳統礦井無線通信技術對比[J]. 科技信息,2012(3): 152,174.
[3] 顧聰,陳毅強,劉軍發,等. 基于Android平臺的室內LBS系統設計與實現[J]. 計算機工程與設計, 2012,33(1): 396-401.
[4] 朱明輝,張會清. 基于RSSI的室內測距模型的研究[J]. 傳感器與微系統, 2010,29(8): 19-22.
[5] 康會娜,張琦. 大型場館游客定位誘導系統的研究[J]. 信息技術, 2010,34(8): 65-69.
[6] 宋杰,王書菊,曹竹東,等. 基于ARM2440平臺的Android操作系統的移植[J]. 計算機技術與發展, 2011,21(1): 66-69.
[7] 虞志飛,鄔家偉. ZigBee技術及其安全性研究[J]. 計算機技術與發展, 2008,18(8): 144-147.
[8] 任秀麗,于海濱. ZigBee無線通信協議實現技術的研究[J]. 計算機工程與應用, 2007,43(6): 143-145.
[9] LIU Xiaodan, LUAN Ruoxing, HUANG Cuicui. A novel encoding method for visual two-dimensional barcode using pattern substitution[C]. International Conference on Machine Vision and Human-machine Interface. USA: IEEE Computer Society, 2010: 662-628.
[10] Ono S, Morinaga K, Nakayama S. Barcode design by evolutionary computation[J]. Artificial Life and Robotics, 2009,13(1): 238-241.endprint
5 實驗結果分析
本次選擇一個展覽館作為測試地點,此展覽館有很多Wi-Fi點滿足系統對Wi-Fi點的要求。首先使用采集端在室內選擇不同的位置點進行數據采集,在服務端將這些數據通過一定的算法生成位置模型記錄到數據庫中。然后切換到定位端和被定位端,此時需要兩部手機,一部作為定位端,另一部作為被定位端,在被定位端上運行應用程序,應用程序將會把實時采集到的信號強度信息發送到服務端,在服務端通過跟以后的模型進行對照確定被定位端所處的位置,將結果返回給定位端。定位端根據需要選擇被定位的設備,向服務端發送定位請求,服務端根據定位端發送過來的請求將定位結果返回給定位端手機。定位結果如圖5所示:
(a)定位請求選擇 (b)顯示定位結果和室內圖
圖5 室內定位結果圖
經過測試本系統的定位精度可以達到1m,反應時間在3s以內,能滿足大多數室內定位要求。
6 結語
本文利用Android操作平臺,結合RSSI室內定位技術設計了一個室內定位系統,該系統可以在多種場合使用,比如商場、車站、工廠、學校等地。在此基礎上,可以根據不同的應用環境開發出基于室內定位的各種應用系統。此系統具有實現成本低廉、應用廣泛的特點,將能給消費者帶來很好的體驗。
參考文獻:
[1] 楊東勇,顧東袁,傅曉婕. 一種基于RSSI相似度的室內定位算法[J]. 傳感技術學報, 2009,22(2): 264-268.
[2] 侯振堂,梁博,張建,等. Wi-Fi技術與傳統礦井無線通信技術對比[J]. 科技信息,2012(3): 152,174.
[3] 顧聰,陳毅強,劉軍發,等. 基于Android平臺的室內LBS系統設計與實現[J]. 計算機工程與設計, 2012,33(1): 396-401.
[4] 朱明輝,張會清. 基于RSSI的室內測距模型的研究[J]. 傳感器與微系統, 2010,29(8): 19-22.
[5] 康會娜,張琦. 大型場館游客定位誘導系統的研究[J]. 信息技術, 2010,34(8): 65-69.
[6] 宋杰,王書菊,曹竹東,等. 基于ARM2440平臺的Android操作系統的移植[J]. 計算機技術與發展, 2011,21(1): 66-69.
[7] 虞志飛,鄔家偉. ZigBee技術及其安全性研究[J]. 計算機技術與發展, 2008,18(8): 144-147.
[8] 任秀麗,于海濱. ZigBee無線通信協議實現技術的研究[J]. 計算機工程與應用, 2007,43(6): 143-145.
[9] LIU Xiaodan, LUAN Ruoxing, HUANG Cuicui. A novel encoding method for visual two-dimensional barcode using pattern substitution[C]. International Conference on Machine Vision and Human-machine Interface. USA: IEEE Computer Society, 2010: 662-628.
[10] Ono S, Morinaga K, Nakayama S. Barcode design by evolutionary computation[J]. Artificial Life and Robotics, 2009,13(1): 238-241.endprint
5 實驗結果分析
本次選擇一個展覽館作為測試地點,此展覽館有很多Wi-Fi點滿足系統對Wi-Fi點的要求。首先使用采集端在室內選擇不同的位置點進行數據采集,在服務端將這些數據通過一定的算法生成位置模型記錄到數據庫中。然后切換到定位端和被定位端,此時需要兩部手機,一部作為定位端,另一部作為被定位端,在被定位端上運行應用程序,應用程序將會把實時采集到的信號強度信息發送到服務端,在服務端通過跟以后的模型進行對照確定被定位端所處的位置,將結果返回給定位端。定位端根據需要選擇被定位的設備,向服務端發送定位請求,服務端根據定位端發送過來的請求將定位結果返回給定位端手機。定位結果如圖5所示:
(a)定位請求選擇 (b)顯示定位結果和室內圖
圖5 室內定位結果圖
經過測試本系統的定位精度可以達到1m,反應時間在3s以內,能滿足大多數室內定位要求。
6 結語
本文利用Android操作平臺,結合RSSI室內定位技術設計了一個室內定位系統,該系統可以在多種場合使用,比如商場、車站、工廠、學校等地。在此基礎上,可以根據不同的應用環境開發出基于室內定位的各種應用系統。此系統具有實現成本低廉、應用廣泛的特點,將能給消費者帶來很好的體驗。
參考文獻:
[1] 楊東勇,顧東袁,傅曉婕. 一種基于RSSI相似度的室內定位算法[J]. 傳感技術學報, 2009,22(2): 264-268.
[2] 侯振堂,梁博,張建,等. Wi-Fi技術與傳統礦井無線通信技術對比[J]. 科技信息,2012(3): 152,174.
[3] 顧聰,陳毅強,劉軍發,等. 基于Android平臺的室內LBS系統設計與實現[J]. 計算機工程與設計, 2012,33(1): 396-401.
[4] 朱明輝,張會清. 基于RSSI的室內測距模型的研究[J]. 傳感器與微系統, 2010,29(8): 19-22.
[5] 康會娜,張琦. 大型場館游客定位誘導系統的研究[J]. 信息技術, 2010,34(8): 65-69.
[6] 宋杰,王書菊,曹竹東,等. 基于ARM2440平臺的Android操作系統的移植[J]. 計算機技術與發展, 2011,21(1): 66-69.
[7] 虞志飛,鄔家偉. ZigBee技術及其安全性研究[J]. 計算機技術與發展, 2008,18(8): 144-147.
[8] 任秀麗,于海濱. ZigBee無線通信協議實現技術的研究[J]. 計算機工程與應用, 2007,43(6): 143-145.
[9] LIU Xiaodan, LUAN Ruoxing, HUANG Cuicui. A novel encoding method for visual two-dimensional barcode using pattern substitution[C]. International Conference on Machine Vision and Human-machine Interface. USA: IEEE Computer Society, 2010: 662-628.
[10] Ono S, Morinaga K, Nakayama S. Barcode design by evolutionary computation[J]. Artificial Life and Robotics, 2009,13(1): 238-241.endprint