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

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

本文運(yùn)用了K最近鄰法(KNN法),K最近鄰法可以說是當(dāng)K≥2時(shí)的距離終端距離最短的位置,移動設(shè)備的具體位置是對應(yīng)的坐標(biāo)加權(quán)平均值來確定的:

式中,(x,y)表示定位坐標(biāo);(xi,yi)表示最近相鄰的某一個(gè)參考點(diǎn)的坐標(biāo)。
通過多次測試發(fā)現(xiàn),盡管KNN算法計(jì)算出來的空間位置相對于NN算法來講定位穩(wěn)定性較強(qiáng),但是點(diǎn)位精度還需要再一次的提升,所以加權(quán)最近鄰法(WKNN算法)被提了出來,他在KNN算法的基礎(chǔ)上添加了加權(quán)系數(shù):

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

圖2 移動設(shè)備運(yùn)動軌跡

圖3 移動設(shè)備運(yùn)動軌跡

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