馮文生,高譽
(華南理工大學建筑設計研究院,廣東 廣州 510641)
人類正常活動的一大部分信息都與地理位置有著密不可分的關系[1]。定位系統是為確定或估計某一人或物的位置而設計、開發和部署的系統。由于非視距離及復雜多變的室內環境等因素導致室內定位技術具有很大的局限性,其應考慮工業施工時人員的安全監測、對信息和軌跡的把控、設備的運維及管理、維護時間的判斷及預警等。研究基于WiFi的室內定位技術有重要的現實意義。
隨著不同的定位方法和算法得到社會人士的深入研究,如何選取合適的定位方法和算法,通過怎樣的實驗才能篩選數據,提高精度,是我們需要關注的方向。
室內定位技術可以以多種形式實現。到目前為止,幾種常見的定位技術主要包括:WiFi定位技術,射頻識別(RFID)定位技術,藍牙(Bluetooth)定位技術,紅外(Infrared)定位技術,超寬帶(UWB)定位技術等[2]。
根據是否需要在定位實驗中劃分每個節點之間的距離,將算法分為兩種:基于距離測量的定位算法和與距離無關的定位算法[5]。基于距離測量的定位算法需要將參考點與待測量的點之間的距離測量出來。相反,與距離無關的定位算法通常僅需要使用諸如網絡連接性之類的信息來計算未知節點的相對位置信息。
1.2.1 基于 TOA 的定位算法
基于TOA的定位步驟如圖1所示,主要完成了先前提出的兩個步驟:首先,測量未知節點與每個已知節點之間的距離,這可以通過信號傳播延遲估計來獲得[6]。然后使用倍數設置距離測量值建立一個圓方程組,并使用相關算法進行求解,從而可以估算出未知的節點坐標。

圖1 TOA定位流程圖
1.2.2 基于 TDOA 的定位算法
利用時間差(TDOA)定位算法的本質其實是一種數學上的雙曲線定位法。我們假設信號在待測位置與每個基站之間實驗直線的方式相互傳播的,同時已經測量了他們之間的距離,并且已知在待測位置與另外一個待測位置之間是有差異性的。如果待測位置是參考點,那么待測位置應該屬于雙曲線的重合處,這樣的話就會出現兩個焦點,因此,TDOA定位方法就需要有3個及3個以上的基站才能實現定位。在被動定位問題中,這是一種非常流行且行之有效的定位方法。
WiFi是IEE802.11標準的通用名稱。由于其傳輸距離適中,可以滿足室內定位的距離要求,這就進一步提升了它的應用性。在室外沒有任何阻擋及影響因素的情況下,WiFi擁有最大300m的通信距離,但是在室內通信距離大打折扣,只有120m。即便這樣,與其他的傳輸距離影響的無線通信技術相比他還是有比較明顯的優勢。因為WiFi的普遍存在,加上我們的電話、電腦和部分電子設備可以配備附加的無線網卡,從而進一步提高了WiFi的使用性。基于WiFi的室內定位技術具有低成本和易于部署的特點,比其他方法更具優勢。
經過以上的分析和對比,前四種分別有信號強度不如WiFi明顯、布設成本比WiFi高、技術相對不完善、適應場景不符合等缺點。與之而來的便是WiFi成為室內定位技術的優先選擇。
基于位置指紋的室內定位算法分為兩個階段,即參考庫構建階段和位置估計階段。定位指紋算法的主要部分是參考庫和定位算法[7]。參考庫的搭建我們需要在一個經過篩選和布設的實驗場所使用現有的基礎設施來監測信號強度,根據信號強度序列和智能終端與AP之間的位置指紋庫,根據一定的匹配算法確定攜帶智能終端的人員的位置,執行強度序列在序列匹配操作中,從信號中選擇與具有最近序列信息的指紋對應的位置作為攜帶智能終端的人的位置[8]。
本實驗中所選擇的區域為某城市的辦公樓。實驗區域內有12個小房間分布在辦公樓一樓的兩側,整體長約100m,寬約40m,試驗區域的東側和南側有兩個透明的門,每個小房間有一個不透明的門,房間與房間之間有墻壁遮擋。
本實驗是基于WiFi室內定位算法的研究。需要在實驗所在的區域里安裝布設若干個AP,為的是讓WiFi信號能夠覆蓋到整個試驗區域。本次試驗使用的AP是品牌為TP-LINK,型號為TL-WDR5620的路由設備,采集信號的移動終端型號為Redmi K30 5G,內置雙WiFi模塊,可以同時監測到2.4G和5G信號,每隔一個房間布設一個信號發射裝置,一共有8個信號發射裝置布設在實驗區域內。
(1)WiFi信號的采集
在定位算法研究之前應首先進行WiFi信號的采集及坐標庫的建立。基于Android的前端由微信小程序展示、后端由C#編程語言編寫、數據由MySQL數據庫存儲的完整的方法進行數據的獲取以及數據比對庫(標準庫)的建立。
微信小程序是當前使用范圍較廣的測試平臺,它的優點在于易于搭建,易于實現,操作性也比較強,在微信小程序界面需要輸入數據的采集編號和采集次數。
(2)指紋數據庫的建立
在室內定位算法的研究中,我們在采集WiFi信號數據的時候將實驗場地的走廊里以橫向(y軸)2m、豎向(x軸)1m為間隔設置網格點,在同一個點進行50次的WiFi信號采集并抽取其中的一部分數據建立指紋數據庫。
(3)實現定位算法的方法
采集到WiFi信號數據后,開始具體位置產生定位數據的階段,最重要的是對移動設備的定位確定。在這里首先介紹一下最近鄰法(NN法),最近鄰法需要首先統計在線測量的樣本數據與MySQL數據庫中各個位置信息進行確定的平均值之間的距離,叫做歐氏距離[9]。通過找出最近的數據庫里的位置坐標后進行加權平均然后得到在線設備的具體位置,計算歐氏距離的公式為:

本文運用了K最近鄰法(KNN法),K最近鄰法可以說是當K≥2時的距離終端距離最短的位置,移動設備的具體位置是對應的坐標加權平均值來確定的:

式中,(x,y)表示定位坐標;(xi,yi)表示最近相鄰的某一個參考點的坐標。
通過多次測試發現,盡管KNN算法計算出來的空間位置相對于NN算法來講定位穩定性較強,但是點位精度還需要再一次的提升,所以加權最近鄰法(WKNN算法)被提了出來,他在KNN算法的基礎上添加了加權系數:

式中,di表示移動終端測量的數據與其相近點的歐式距離;δ為加權系數:ε是為避免分母為零而設置的一個較小的常數,規定加權系數值與歐氏距離成反比,如此能夠在一定程度上提高系統的定位精度。
對我們獲取的數據進行篩選,由于WiFi信號的實時變化性,引用了支持向量機(SVM)的原理。支持向量機(SupportVectorMachines,SVM)是一種二分類模型,它的基本模型是定義在特征空間上的間隔最大的線性分類器,間隔最大使它有別于感知機。SVM還包括核技巧,這使它成為實質上的非線性分類器。SVM的學習策略就是間隔最大化,可形式化為一個求解凸二次規劃的問題,也等價于正則化的合頁損失函數的最小化問題[10]。SVM的學習算法就是求解凸二次規劃的最優化算法。最后利用Python語言有規律地調用MySQL數據庫的數據進行解析定位,將其他數據作為參考數據不進行特殊處理,從而得出一個精確度較高的位置坐標并返回到MySQL數據庫中。
在我們通過支持向量機(SVM)將實時測量到的數據與建立的數據庫對比,可得出相應的精度、原始值以及加權平均值,但是由于采集到點的數據不全,無法建立數據庫導致某些點的位置數據均為0,根據最終數據就可以得到某移動設備多次不同的運動軌跡,橫坐標代表的是x軸,豎坐標代表的是y軸。軌跡如圖2至圖4所示。

圖2 移動設備運動軌跡

圖3 移動設備運動軌跡

圖4 移動設備運動軌跡
為了實現室內環境下人員的定位及安全監測,本文結合移動終端及常見的路由設備作了基于WiFi的室內定位算法研究。本文通過實驗驗證了基于WiFi的室內定位技術的可行性及其影響因素和誤差。今后應不斷優化定位算法模型,不斷減小誤差、提高精度,并通過可視化界面實時反應人員在室內的行動軌跡。使其更好地為安全生產和社會發展服務。