蔡旭瑩 陳小瀚
(廣東海洋大學數學與計算機學院 廣東省湛江市 524088)
隨著經濟發展和生活水平的提高,人們精神層面的需求不斷提高,各類主題的展館也隨之孕育而生。在滿足觀展需求的同時,人們對觀展服務也有了更高的要求,展館定位與導覽服務便是其中之一。在室內位置相關的服務中,常見的主要定位技術包括Wi-Fi 定位、藍牙定位、紅外定位、超寬帶定位、超聲波定位、LED 定位、ZigBee 定位、射頻識別定位等[1]。不同的技術以及配置方案,其定位精度、穩定性、實施成本也不盡相同。隨著藍牙技術的普及,目前絕大多移動端設備均裝載了該項通信功能,用以實現數據傳輸。利用藍牙信號技術實現定位的最大優點在于用戶適用程度高,有很好的普遍性。藍牙定位基于RSSI(Received Signal Strength Indication,接收信號強度指示)值進行定位,通過在展館、商城等室內環境中部署低能耗藍牙設備,即藍牙iBeacon,利用用戶移動設備中的藍牙接收端接收發射端廣播的RSSI 場強信號,以此判斷出用戶的室內位置[2]。相比其他技術,藍牙室內定位技術優勢更為突出,部署在室內環境的藍牙信標iBeacon 設備不僅體積小,而且功耗也小、工作時間長。iBeacon 采用電池供電,在默認功率的情況下,設備的電池電量可持續3 至5年(如E5 定位型iBeacon),且部署藍牙iBeacon 不需要額外布設電纜[3],這些優點使得藍牙定位在室內定位技術中更具實用性;同時,相比Wi-Fi 定位技術,藍牙受周圍環境的干擾比較小[4]。因此將其作為展館定位的主要技術可以以最低的成本大幅提升用戶在展館中的體驗。
低能耗藍牙(Bluetooth Low Energy)是藍牙技術聯盟設計和銷售的一種個人局域網技術。相比于經典藍牙,低能耗藍牙旨在保持同等通信范圍的同時顯著降低功耗和成本。藍牙技術聯盟的低能耗技術面向包括智能家庭、健康、運動等多個市場。其主要優點包括能耗低、體積小、成本低,且與現有的大部分手機、平板電腦和計算機兼容。藍牙技術聯盟沿用經典藍牙的規范內容,為低能耗藍牙定義了一些設備描述(Profile),這些描述定義了一個設備在特定應用情景下的工作方式。當前所有低功耗應用描述都基于通用屬性規范(Generic Attribute Profile,GATT)。GATT 定義的多層數據結構,簡要概括就是服務(service)可以包含多個特征(characteristic),每個特征包含屬性(properties)和值(value),還可以包含多個描述(descriptor)。
iBeacon 是蘋果公司發布的IOS7 系統中所配備的新功能。它是低能耗藍牙技術的應用,iBeacon 通過配置低能耗藍牙中名為“通告幀”(Advertising)的廣播幀,實現在通告幀的有效負載部分將自主格式的數據嵌入其中并進行廣播。周邊設備只要支持低能耗藍牙,便能接收到iBeacon 所廣播的數據,并讀取其中特有的ID加以利用。iBeacon 的數據包含四個部分,分別是UUID、Major、Minor 和RSSI。其中UUID 是iBeacon 的通用唯一識別碼,是獨一無二的;Major 和Minor 為iBeacon 的標識信息,Major 為主要字段,而Minor 為次要字段;RSSI 則是接收iBeacon 設備發射的信號強度指標,可用于計算iBeacon 設備與接收端設備之間的距離[5]。
蜂鳥地圖主要用于三維室內地圖制作,為消防、工業、商業、交通等領域提供了良好的室內地圖解決方案[6]。蜂鳥云平臺是蜂鳥視圖產品(Fengmap)平臺,提供室內地圖、跨平臺地圖SDK、室內定位、在線地圖編輯工具等云端工具。在蜂鳥云平臺上可以獲得室內地圖制作、跨平臺應用開發、室內定位集成、行業地圖解決方案定制等室內地圖全流程服務和支持,并且可以通過用戶控制臺管理私有應用、私有地圖等。通過蜂鳥云平臺云端服務,可將室內地圖功能與移動APP集成,并發布到公眾號或加入Web應用管理系統。
3.1.1 信標距離計算模型
藍牙信號的空間傳播與其它無線信號的傳播一樣,存在著無線信號衰減的現象。接收端獲取到發射端RSSI 強度值通常與兩者之間的距離存在一定的函數關系,稱之為傳播損耗模型。本文采用了經典的對數距離路徑損耗模型作為RSSI 強度與距離之間的換算模型[7]。對數距離路徑損耗模型如公式(1)所示:

其中,LP(·)為某一距離的RSSI 信號強度;d0為發射端至參考點的距離,d 則為實際接收端與發射端的距離;n 是路徑損失比例系數,其表示信號隨距離增加的損失程度,于室內定位而言,該系數取值3.5[7];χ 是均值為零的高斯分布隨機變量,根據文獻[7]此處取值為零。如果以單位1 作為近距離參考點的距離d0,公式(1)則可表示為:

其中A 為發射端與接收端的實時RSSI 信號強度,R 為參考點的RSSI 信號強度。因此,根據公式(2)則可得到接收端與某一藍牙信標(發射端)的相對距離。
3.1.2 三邊測量定位算法
三邊測量定位算法利用三個已知位置坐標的輔助定位點來計算待測點的實際位置[8]。如圖1所示,設P1,P2,P3為三個已知的輔助定位點,其坐標分別為(x1,y1),(x2,y2),(x3,y3),則待測點PD的坐標xD=(xD,yD)可由公式(3)計算得到:

圖1:三邊測量定位原理

其中d1,d2,d3分別為PD到P1,P2,P3的距離。就本文研究的實際應用場景而言,展館中通常部署了與展品同數量的信標,因此在一定的有效信號距離內,可獲得的信標數量通常多于3 個。因此,為了提高定位的效果,本文將接收端可獲得的藍牙信標全部用于待測點PD的位置估計,由此構成了一個由多邊定位的超定方程組。假設n×2 矩陣P 為n 個輔助定位點的坐標,則PD的位置可通過最優化求解公式(3)得到:

其中d=(d1,d2,…,dn)T,dn為由公式(2)計算得到的待測點PD到第n 個輔助定位點Pn的距離。
3.2.1 藍牙相關配置
根據三邊測量定位算法的設計,本文基于微信小程序開發接口實現了定位功能。首先使用微信API wx.openBluetoothAdapter()方法開啟藍牙適配器,再調用wx.startBeaconDiscovery()方法開啟iBeacon 設備的掃描,并通過UUID 參數篩選出指定的設備。開啟掃描iBeacon 設備成功后,使用wx.onBeaconUpdate()方法監聽iBeacon 設備的信息變化,并在該方法的回調函數中處理返回的iBeacon 信息。
3.2.2 用戶定位分析
創建一個IBeacon 類用于存儲iBeacon 信息,同時在數據庫中存儲了每個展品上部署的iBeacon 設備信息,信息結構與該類結構相同。

在app 實例的globalData 中聲明全局變量currentiBeaconList 數組用于存儲當前周圍的iBeacon 設備信息。在wx.onBeaconUpdate()的回調函數中會返回用戶周圍iBeacon 設備信息的更新值,并對每次更新的iBeacon 信息處理,若currentiBeaconList 中存在iBeacon則更新其值,若不存在則加入到數組中。


RSSI 數值單位為dBm,用以表示信號強度[9],根據公式(2),則通過該值可計算設備與用戶之間的距離。程序獲取當前iBeacon設備列表中距離用戶最近的設備,將其與數據庫中的iBeacon 庫進行匹配,得到該iBeacon 設備對應的展品以及該展品所在的區域,以此對用戶進行定位。
在全局變量中定義一個locationArea 用于存儲當前用戶所在的區域,在每次周圍iBeacon 設備的信息更新后對currentiBeaconList數組中的iBeacon 按RSSI 值從小到大排序,讀取數組中iBeacon 設備的歸屬區域并賦值給locationArea。在用戶移動的過程中會實時的更新周圍iBeacon 設備信息,因此用戶附近的設備列表和用戶所在區域都將得到實時更新。

3.2.3 展品定位分析
iBeacon 設備的RSSI 值越小,距離設備越遠,反之越近。通過實際測試,當RSSI 值大于-45 時,能夠較為精準的區分兩個距離較近的iBeacon,定位到相應的位置并展示相關展品的信息。
從currentiBeaconList 中獲取到RSSI 值最大的iBeacon 設備,并對RSSI 值進行驗證,就能在用戶靠近展品時準確獲取到該展品的信息。

小程序首頁頂部設計為展館圖片輪播,用戶可在此查看展館大致布局,圖2 為首頁界面。其次用戶可查看展館公告獲取展館最近發布的信息列表,并查看不同公告的詳情。在幫助中心中用戶可以獲取展館相關服務,如獲取預約講解服務的相關流程等。

圖2:展館信息界面
在系統中,展館的展品匯總為列表展示給用戶,用戶可在列表頁面中查看不同區域的展品列表。展品列表中還可以通過關鍵詞或展品編號搜索展品,程序將篩選出相應的展品展示給用戶。用戶進入展品詳情頁后可以獲取展品更多的詳細信息,如展品圖片、展品所在區域、展品的詳細介紹以及顯示展品定位功能等。
展館地圖為用戶展示展館的整體結構以及展品的分布狀況。系統可以通過地圖的指南針獲取朝向信息并在使用過程中為用戶顯示地圖朝向。地圖分2D 和3D 兩種顯示模式,并為用戶提供自行切換顯示模式。圖3 (a)為地圖界面的2D 模式,圖3 (b)為地圖界面的3D 模式。地圖中的展品將顯示品名標簽,用戶可通過地圖控件切換地圖中的標簽顯示,使地圖界面更為簡潔。在展品詳情頁面中用戶可以通過展品定位功能跳轉至地圖中相應展品的位置,且通過該展品查看其相關信息。

圖3:地圖相關界面
系統根據周圍展品的iBeacon 信號展示用戶附近的展品列表,列表中的展品按距離從近到遠排序。同時根據展品iBeacon 設備的RSSI 值,分析與用戶周圍距離最近的展品,通過三邊測量定位算法,判定用戶所在區域位置,并在周圍展品列表的上方顯示用戶所在區域。當點擊地圖界面定位按鈕時,則高亮顯示其所在區域。而當用戶接近展品到一定距離時,地圖頁面則會移動到相應展品的位置并自動彈出該展品的信息。
本文結合低能耗藍牙iBeacon 設備、蜂鳥視圖API 和微信小程序實現了一款用于展館導覽及定位的小程序。通過展品上的藍牙設備信號對用戶進行區域定位,并使用蜂鳥云開發繪制展館地圖供用戶使用。在本文設計的系統中,用戶可通過地圖查看展品位置,并與地圖中的展品交互,查看展品詳細信息,滿足了展館用戶的定位與導覽需求。