馮文生,高譽(yù)
(華南理工大學(xué)建筑設(shè)計(jì)研究院,廣東 廣州 510641)
人類正?;顒?dòng)的一大部分信息都與地理位置有著密不可分的關(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)測(cè)、對(duì)信息和軌跡的把控、設(shè)備的運(yùn)維及管理、維護(hù)時(shí)間的判斷及預(yù)警等。研究基于WiFi的室內(nèi)定位技術(shù)有重要的現(xiàn)實(shí)意義。
隨著不同的定位方法和算法得到社會(huì)人士的深入研究,如何選取合適的定位方法和算法,通過怎樣的實(shí)驗(yàn)才能篩選數(shù)據(jù),提高精度,是我們需要關(guān)注的方向。
室內(nèi)定位技術(shù)可以以多種形式實(shí)現(xiàn)。到目前為止,幾種常見的定位技術(shù)主要包括:WiFi定位技術(shù),射頻識(shí)別(RFID)定位技術(shù),藍(lán)牙(Bluetooth)定位技術(shù),紅外(Infrared)定位技術(shù),超寬帶(UWB)定位技術(shù)等[2]。
根據(jù)是否需要在定位實(shí)驗(yàn)中劃分每個(gè)節(jié)點(diǎn)之間的距離,將算法分為兩種:基于距離測(cè)量的定位算法和與距離無關(guān)的定位算法[5]?;诰嚯x測(cè)量的定位算法需要將參考點(diǎn)與待測(cè)量的點(diǎn)之間的距離測(cè)量出來。相反,與距離無關(guān)的定位算法通常僅需要使用諸如網(wǎng)絡(luò)連接性之類的信息來計(jì)算未知節(jié)點(diǎn)的相對(duì)位置信息。
1.2.1 基于 TOA 的定位算法
基于TOA的定位步驟如圖1所示,主要完成了先前提出的兩個(gè)步驟:首先,測(cè)量未知節(jié)點(diǎn)與每個(gè)已知節(jié)點(diǎn)之間的距離,這可以通過信號(hào)傳播延遲估計(jì)來獲得[6]。然后使用倍數(shù)設(shè)置距離測(cè)量值建立一個(gè)圓方程組,并使用相關(guān)算法進(jìn)行求解,從而可以估算出未知的節(jié)點(diǎn)坐標(biāo)。
圖1 TOA定位流程圖
1.2.2 基于 TDOA 的定位算法
利用時(shí)間差(TDOA)定位算法的本質(zhì)其實(shí)是一種數(shù)學(xué)上的雙曲線定位法。我們假設(shè)信號(hào)在待測(cè)位置與每個(gè)基站之間實(shí)驗(yàn)直線的方式相互傳播的,同時(shí)已經(jīng)測(cè)量了他們之間的距離,并且已知在待測(cè)位置與另外一個(gè)待測(cè)位置之間是有差異性的。如果待測(cè)位置是參考點(diǎn),那么待測(cè)位置應(yīng)該屬于雙曲線的重合處,這樣的話就會(huì)出現(xiàn)兩個(gè)焦點(diǎn),因此,TDOA定位方法就需要有3個(gè)及3個(gè)以上的基站才能實(shí)現(xiàn)定位。在被動(dòng)定位問題中,這是一種非常流行且行之有效的定位方法。
WiFi是IEE802.11標(biāo)準(zhǔn)的通用名稱。由于其傳輸距離適中,可以滿足室內(nèi)定位的距離要求,這就進(jìn)一步提升了它的應(yīng)用性。在室外沒有任何阻擋及影響因素的情況下,WiFi擁有最大300m的通信距離,但是在室內(nèi)通信距離大打折扣,只有120m。即便這樣,與其他的傳輸距離影響的無線通信技術(shù)相比他還是有比較明顯的優(yōu)勢(shì)。因?yàn)閃iFi的普遍存在,加上我們的電話、電腦和部分電子設(shè)備可以配備附加的無線網(wǎng)卡,從而進(jìn)一步提高了WiFi的使用性?;赪iFi的室內(nèi)定位技術(shù)具有低成本和易于部署的特點(diǎn),比其他方法更具優(yōu)勢(shì)。
經(jīng)過以上的分析和對(duì)比,前四種分別有信號(hào)強(qiáng)度不如WiFi明顯、布設(shè)成本比WiFi高、技術(shù)相對(duì)不完善、適應(yīng)場(chǎng)景不符合等缺點(diǎn)。與之而來的便是WiFi成為室內(nèi)定位技術(shù)的優(yōu)先選擇。
基于位置指紋的室內(nèi)定位算法分為兩個(gè)階段,即參考庫構(gòu)建階段和位置估計(jì)階段。定位指紋算法的主要部分是參考庫和定位算法[7]。參考庫的搭建我們需要在一個(gè)經(jīng)過篩選和布設(shè)的實(shí)驗(yàn)場(chǎng)所使用現(xiàn)有的基礎(chǔ)設(shè)施來監(jiān)測(cè)信號(hào)強(qiáng)度,根據(jù)信號(hào)強(qiáng)度序列和智能終端與AP之間的位置指紋庫,根據(jù)一定的匹配算法確定攜帶智能終端的人員的位置,執(zhí)行強(qiáng)度序列在序列匹配操作中,從信號(hào)中選擇與具有最近序列信息的指紋對(duì)應(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信號(hào)能夠覆蓋到整個(gè)試驗(yàn)區(qū)域。本次試驗(yàn)使用的AP是品牌為TP-LINK,型號(hào)為TL-WDR5620的路由設(shè)備,采集信號(hào)的移動(dòng)終端型號(hào)為Redmi K30 5G,內(nèi)置雙WiFi模塊,可以同時(shí)監(jiān)測(cè)到2.4G和5G信號(hào),每隔一個(gè)房間布設(shè)一個(gè)信號(hào)發(fā)射裝置,一共有8個(gè)信號(hào)發(fā)射裝置布設(shè)在實(shí)驗(yàn)區(qū)域內(nèi)。
(1)WiFi信號(hào)的采集
在定位算法研究之前應(yīng)首先進(jìn)行WiFi信號(hào)的采集及坐標(biāo)庫的建立?;贏ndroid的前端由微信小程序展示、后端由C#編程語言編寫、數(shù)據(jù)由MySQL數(shù)據(jù)庫存儲(chǔ)的完整的方法進(jìn)行數(shù)據(jù)的獲取以及數(shù)據(jù)比對(duì)庫(標(biāo)準(zhǔn)庫)的建立。
微信小程序是當(dāng)前使用范圍較廣的測(cè)試平臺(tái),它的優(yōu)點(diǎn)在于易于搭建,易于實(shí)現(xiàn),操作性也比較強(qiáng),在微信小程序界面需要輸入數(shù)據(jù)的采集編號(hào)和采集次數(shù)。
(2)指紋數(shù)據(jù)庫的建立
在室內(nèi)定位算法的研究中,我們?cè)诓杉疻iFi信號(hào)數(shù)據(jù)的時(shí)候?qū)?shí)驗(yàn)場(chǎng)地的走廊里以橫向(y軸)2m、豎向(x軸)1m為間隔設(shè)置網(wǎng)格點(diǎn),在同一個(gè)點(diǎn)進(jìn)行50次的WiFi信號(hào)采集并抽取其中的一部分?jǐn)?shù)據(jù)建立指紋數(shù)據(jù)庫。
(3)實(shí)現(xiàn)定位算法的方法
采集到WiFi信號(hào)數(shù)據(jù)后,開始具體位置產(chǎn)生定位數(shù)據(jù)的階段,最重要的是對(duì)移動(dòng)設(shè)備的定位確定。在這里首先介紹一下最近鄰法(NN法),最近鄰法需要首先統(tǒng)計(jì)在線測(cè)量的樣本數(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í)的距離終端距離最短的位置,移動(dòng)設(shè)備的具體位置是對(duì)應(yīng)的坐標(biāo)加權(quán)平均值來確定的:
式中,(x,y)表示定位坐標(biāo);(xi,yi)表示最近相鄰的某一個(gè)參考點(diǎn)的坐標(biāo)。
通過多次測(cè)試發(fā)現(xiàn),盡管KNN算法計(jì)算出來的空間位置相對(duì)于NN算法來講定位穩(wěn)定性較強(qiáng),但是點(diǎn)位精度還需要再一次的提升,所以加權(quán)最近鄰法(WKNN算法)被提了出來,他在KNN算法的基礎(chǔ)上添加了加權(quán)系數(shù):
式中,di表示移動(dòng)終端測(cè)量的數(shù)據(jù)與其相近點(diǎn)的歐式距離;δ為加權(quán)系數(shù):ε是為避免分母為零而設(shè)置的一個(gè)較小的常數(shù),規(guī)定加權(quán)系數(shù)值與歐氏距離成反比,如此能夠在一定程度上提高系統(tǒng)的定位精度。
對(duì)我們獲取的數(shù)據(jù)進(jìn)行篩選,由于WiFi信號(hào)的實(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í)測(cè)量到的數(shù)據(jù)與建立的數(shù)據(jù)庫對(duì)比,可得出相應(yīng)的精度、原始值以及加權(quán)平均值,但是由于采集到點(diǎn)的數(shù)據(jù)不全,無法建立數(shù)據(jù)庫導(dǎo)致某些點(diǎn)的位置數(shù)據(jù)均為0,根據(jù)最終數(shù)據(jù)就可以得到某移動(dòng)設(shè)備多次不同的運(yùn)動(dòng)軌跡,橫坐標(biāo)代表的是x軸,豎坐標(biāo)代表的是y軸。軌跡如圖2至圖4所示。
圖2 移動(dòng)設(shè)備運(yùn)動(dòng)軌跡
圖3 移動(dòng)設(shè)備運(yùn)動(dòng)軌跡
圖4 移動(dòng)設(shè)備運(yùn)動(dòng)軌跡
為了實(shí)現(xiàn)室內(nèi)環(huán)境下人員的定位及安全監(jiān)測(cè),本文結(jié)合移動(dòng)終端及常見的路由設(shè)備作了基于WiFi的室內(nèi)定位算法研究。本文通過實(shí)驗(yàn)驗(yàn)證了基于WiFi的室內(nèi)定位技術(shù)的可行性及其影響因素和誤差。今后應(yīng)不斷優(yōu)化定位算法模型,不斷減小誤差、提高精度,并通過可視化界面實(shí)時(shí)反應(yīng)人員在室內(nèi)的行動(dòng)軌跡。使其更好地為安全生產(chǎn)和社會(huì)發(fā)展服務(wù)。