韓一石,曾祥威,李 賢,陳佳瀚,洪遠(yuǎn)霖
(廣東工業(yè)大學(xué) 信息工程學(xué)院,廣東 廣州 510006)
針對室內(nèi)定位技術(shù)研究,近年來中外學(xué)者提出了多種定位方法,例如基于ZigBee、超聲波、紅外線、RFID、藍(lán)牙、無線局域網(wǎng)、超寬帶(Ultra-Wideband,UWB)、可見光通信、計(jì)算機(jī)視覺、地磁等技術(shù)研究,這些定位算法普遍聚焦于二維平面的定位[1-3],對三維樓層識別的關(guān)注度相對較少[4],難以應(yīng)對當(dāng)前建筑環(huán)境下室內(nèi)三維定位需求。精準(zhǔn)的樓層識別可以減少空間搜索域并提高本地化準(zhǔn)確性,在緊急情況下,準(zhǔn)確的樓層信息對救援人員至關(guān)重要,可提供有效的緊急服務(wù)。
針對室內(nèi)樓層定位問題,目前所提出的解決方案大多是基于Wi-Fi 信號衰減判別[5-6]和氣壓差分技術(shù)[7-8]等。文獻(xiàn)[9]通過Wi-Fi 信號指紋匹配實(shí)現(xiàn)樓層識別,離線階段將不同樓層的AP(Access Point)地址和信號范圍作為指紋建立指紋庫,在線階段掃描AP 信息與指紋庫匹配識別樓層,識別準(zhǔn)確率有96%;文獻(xiàn)[10]針對指紋庫作出改進(jìn),在線階段基于KNN(K-Nearest-Neighbor)算法進(jìn)行樓層識別,識別準(zhǔn)確率優(yōu)于96%,但文獻(xiàn)[9]-[10]的樓層識別方法在動(dòng)態(tài)活動(dòng)下識別準(zhǔn)確率僅為88%。文獻(xiàn)[11]提出在建筑物頂層與底層安設(shè)AP,將不同樓層中兩個(gè)AP的信號差作為識別依據(jù),接收來自不同樓層信號,識別準(zhǔn)確率為95%,但Wi-Fi 等近距離通信技術(shù)存在通信距離短的劣勢,若想實(shí)現(xiàn)室內(nèi)信號全覆蓋則設(shè)備成本較高。文獻(xiàn)[12]-[13]通過上下樓活動(dòng)識別記錄上下樓的氣壓差分計(jì)算高度,但特殊情況下(如發(fā)生火災(zāi)時(shí))室內(nèi)氣壓不穩(wěn)定,魯棒性較差。文獻(xiàn)[14]提出一種基于貝葉斯網(wǎng)絡(luò)的樓層定位方法,利用貝葉斯網(wǎng)絡(luò)融合擴(kuò)展卡爾曼濾波算法[15]對慣性傳感器數(shù)據(jù)和氣壓計(jì)數(shù)據(jù)進(jìn)行融合推測行人在某一層的概率,準(zhǔn)確率達(dá)99.3%,但該方法中的算法相當(dāng)復(fù)雜,且須穿戴多種傳感器,設(shè)備成本高且增加了穿戴人員的負(fù)重。
針對以上文獻(xiàn)存在的問題,本文提出一種更易實(shí)現(xiàn)的、精準(zhǔn)度高的、基于LoRa-RSSI(Received Signal Strength Indication,接收信號強(qiáng)度指示)的動(dòng)態(tài)識別和樓層判定方法。近年來LoRa 技術(shù)在室內(nèi)定位中有了許多應(yīng)用[16]。LoRa-RSSI 樓層判定方法通過在各層樓梯口建立LoRa離線信號指紋庫,區(qū)分不同樓層信號強(qiáng)度特征劃分判定閾值,該閾值對應(yīng)各樓層信號強(qiáng)度關(guān)鍵特征值,捕捉物體室內(nèi)活動(dòng)時(shí)無線信號接收強(qiáng)度的實(shí)時(shí)變化,最后實(shí)現(xiàn)上下樓活動(dòng)快速精準(zhǔn)的動(dòng)態(tài)識別和樓層判定,解決了室內(nèi)三維定位中垂直方向的樓層判定算法復(fù)雜度高、準(zhǔn)確率低、易受外界環(huán)境影響等問題。
用于衡量定位性能的指標(biāo)有定位規(guī)模、功耗、魯棒性、實(shí)時(shí)性、部署成本等,常見的幾種指紋技術(shù)指標(biāo)比較如表1 所示。
表1 幾種指紋技術(shù)指標(biāo)比較
樓層判定常見場景的設(shè)備部署面積往往較大,信號衰減快,所以最佳指紋技術(shù)需同時(shí)考慮覆蓋規(guī)模、魯棒性、實(shí)時(shí)性和部署成本等。綜合表1 信號指紋技術(shù)對比,LoRa 通信功耗低,定位規(guī)模大,部署成本更低,處于免頻段,滿足大小型室內(nèi)樓層判定的正常需求,因此LoRa更適合用于大型室內(nèi)信號指紋庫技術(shù)。
LoRa 指紋庫建立如圖1 所示。信號指紋法包含離線和在線兩個(gè)階段。其中,離線階段采用仿射傳播聚類算法對采集的RSSI 指紋數(shù)據(jù)進(jìn)行聚類,并將每個(gè)聚類確定為一個(gè)子數(shù)據(jù)庫;在線階段則將采集的待定位點(diǎn)處RSSI數(shù)據(jù)與每個(gè)子數(shù)據(jù)庫的聚類中心進(jìn)行匹配,選擇最優(yōu)匹配子數(shù)據(jù)庫用于樓層識別,由此建立各樓層樓梯口的判定閾值指紋庫,最后結(jié)合LoRa-RSSI 動(dòng)態(tài)識別和樓層判定算法,獲得樓層判定結(jié)果。
圖1 LoRa 指紋庫建立及樓層判定流程圖
此外,在實(shí)際研究中了解到,人員室內(nèi)動(dòng)態(tài)活動(dòng)狀態(tài)下室內(nèi)所測得的RSSI 值存在抖動(dòng)性,需對LoRa 信號指紋數(shù)據(jù)庫進(jìn)行去噪處理,主要通過遍歷RSSI 數(shù)據(jù)聚類后的每個(gè)子數(shù)據(jù)庫,對每個(gè)數(shù)據(jù)點(diǎn)進(jìn)行相對密度的離群點(diǎn)檢測[17],當(dāng)某數(shù)據(jù)點(diǎn)對應(yīng)的離群系數(shù)大于給定門限時(shí),則判定為離群點(diǎn),從而達(dá)到去噪效果。
圖2 為本文提出的LoRa-RSSI 動(dòng)態(tài)識別和樓層判定算法判定流程圖。
圖2 LoRa-RSSI 動(dòng)態(tài)識別樓層判定算法
以圖3 作為樓層判定的基本模型對圖2 算法做詳細(xì)的說明。在每層樓梯口處放置LoRa 信號發(fā)送節(jié)點(diǎn),人員在室內(nèi)水平或上下樓活動(dòng)時(shí)接收來自不同樓層的RSSI。各層樓梯口建立離線信號指紋庫劃分判定閾值。假設(shè)人員當(dāng)前在L2,分別接收L1rssi(L1的RSSI)、L2rssi(L2的RSSI)和L3rssi(L3的RSSI)。若 接收到L2rssi和L3rssi均在不斷增強(qiáng),可判斷此時(shí)人員仍在L2,正靠近樓梯口;若接收到的L2rssi和L3rssi均在不斷減弱,可判斷此時(shí)仍在L2,正遠(yuǎn)離樓梯口;若接收到L2rssi不斷減弱,而L3rssi不斷增強(qiáng),可判斷正在上樓,當(dāng)達(dá)到L3 判定閾值時(shí),可判定抵達(dá)L3;若接收到L2rssi不斷減弱,而L1rssi不斷增強(qiáng),可判斷正在上樓,當(dāng)達(dá)到L1 判定閾值時(shí),可判定抵達(dá)L1,其他情況同理。
圖3 樓層判定基本模型
實(shí)驗(yàn)設(shè)備發(fā)送接收節(jié)點(diǎn)結(jié)構(gòu)如圖4 所示,實(shí)物連接如圖5 所示。實(shí)驗(yàn)發(fā)送和接收節(jié)點(diǎn)均采用Arduino 開發(fā)板作為MCU。無線通信模塊采用SX1278-LoRa 擴(kuò)頻芯片,天線是433 MHz 彈簧天線,UAST/USB 串口用于代碼錄入。另外,接收端主板以I2C 通信方式接入一個(gè)LCD顯示屏,可顯示當(dāng)前樓層。
圖4 發(fā)送/接收節(jié)點(diǎn)結(jié)構(gòu)圖
圖5 實(shí)物連接圖
LoRa 信號實(shí)時(shí)監(jiān)測自組網(wǎng)節(jié)點(diǎn)設(shè)計(jì)如圖6 所示。首先開啟LoRa 接收指令后產(chǎn)生入網(wǎng)隨機(jī)時(shí)間延時(shí),隨后判斷無線是否入網(wǎng),入網(wǎng)后獲取數(shù)據(jù)包發(fā)送時(shí)長和節(jié)點(diǎn)時(shí)間片,然后判斷信號數(shù)據(jù)是否接收成功,若未接收成功判斷是否達(dá)到定時(shí)數(shù)據(jù)發(fā)送時(shí)間,當(dāng)數(shù)據(jù)接收完成,解析數(shù)據(jù)。
圖6 RSSI 監(jiān)測系統(tǒng)自組網(wǎng)節(jié)點(diǎn)設(shè)計(jì)
不同樓宇對信號造成的衰減影響不同,為驗(yàn)證方法的精準(zhǔn)度,實(shí)驗(yàn)分別選擇Build-I、Build-II 進(jìn)行分析,如圖7 所示。其中,Build-I 建筑面積S 為30×100 m2,層高H 為3 m,樓板厚度T 為150 mm;Build-II 建筑面積S 為50×150 m2,每層高度H 為4 m,樓板厚度T 為200 mm2。在Build-I 和Build-II 1~4 層樓梯口處各放置一個(gè)LoRa信號發(fā)送端,設(shè)置波特率為9 600 b/s,接收端不斷監(jiān)測來自發(fā)送端的信號強(qiáng)度。實(shí)驗(yàn)者攜信號接收器,分別模擬同層遠(yuǎn)離樓梯口、同層靠近樓梯口、上一層樓、下一層樓、跨多層樓等多組實(shí)驗(yàn),每組各進(jìn)行100 次實(shí)驗(yàn),共1 000組實(shí)驗(yàn)。
圖7 實(shí)驗(yàn)環(huán)境
建立判定閾值指紋庫用于判定樓層,去噪后得指紋庫值作為樓層判定算法中的判定閾值庫。根據(jù)閾值指紋庫建立的流程分別建立Build-I、Build-II 各為4 層的樓梯口的判定閾值區(qū)間,圖8 為Build-I 各層樓梯口的判定閾值,圖9 為Build-II 各層樓梯口的判定閾值(F1~F4:第1 層~第4 層),其中X、Y 軸表示平面坐標(biāo),Z 軸表示坐標(biāo)對應(yīng)信號強(qiáng)度。
圖8 Build-I 閾值指紋庫
圖9 Build-II 閾值指紋庫
由圖8、圖9 可得,不同樓宇的不同樓層指紋庫閾值數(shù)據(jù)呈現(xiàn)信號遞減的特征,Build-I 中F1~F4 樓梯口的信號閾值均值分別為45 dBm、63 dBm、78 dBm、100 dBm,Build-I 每層樓遞減信號強(qiáng)度幅度約為18 dBm;Build-II中F1~F4的樓梯口的信號閾值均值分別為46 dBm、70 dBm、92 dBm、110 dBm,Build-II 每層樓遞減信號強(qiáng)度幅度約為23 dBm。已知RSSI 測距公式[18],分析如下:
其中,d 為距離,單位是m;RSSI 為信號強(qiáng)度;A 為距離信號源1 m 時(shí)RSSI 值絕對值,最佳范圍在45~49 之間;n 為環(huán)境衰減因子,最佳范圍在3.25~4.5 之間。根據(jù)式(1),在垂直方向上相應(yīng)高度的理論值與本文的實(shí)際測量值相符,證明了該判定閾值具有可行性。Build-I與Build-II的建筑面積(S)、層高(H)、樓板厚度(T)等建筑結(jié)構(gòu)不同,是導(dǎo)致兩組實(shí)驗(yàn)樓層判定準(zhǔn)確率有所差異的主要原因。
分析表面,人員在Build-I 正常行走狀態(tài)下,上一層樓時(shí)間約需12 s,下一層樓約10 s;Build-II 上一層樓約需15 s,下一層樓約12 s。以Build-II 室內(nèi)定位(H=4 m)為例,設(shè)定IDE 程序中delay=400,即每0.4 s 接收端接收一次信號強(qiáng)度(單位:dBm),上樓時(shí)信號強(qiáng)度變化趨勢如圖10 所示,圖中上樓時(shí),信號接收節(jié)點(diǎn)接收到來自同層的信號不斷減弱,接收到L+1 層的信號不斷增強(qiáng),實(shí)際信號變化趨勢符合理論變化值。下樓時(shí)信號強(qiáng)度變化趨勢如圖11 所示。結(jié)合判定閾值,最終通過實(shí)驗(yàn)獲得的Build-I、Build-II 樓層判定準(zhǔn)確率如表2 所示。
圖10 行走上樓信號變化(Build-II)
圖11 行走下樓信號變化(Build-II)
表2 行走狀態(tài)實(shí)驗(yàn)組
由表2 可得,正常行走狀態(tài)Build-I 組平均準(zhǔn)確率達(dá)98.3%,Build-II 組平均準(zhǔn)確率達(dá)98.1%。
另外,考慮到特殊情況下(例如發(fā)生火災(zāi)警情)出警人員速度較快,實(shí)驗(yàn)研究跑步狀態(tài)樓層判斷分析,其中Build-I 上一層樓約6 s,下一層樓約5 s;Build-II 上一層樓約需7 s,下一層樓約5 s。這里,仍以Build-II 為例,設(shè)定IDE 中的程序中delay=200,即每0.2 s 接收端接收一次信號強(qiáng)度,跑步上樓信號強(qiáng)度變化趨勢如圖12 所示,跑步下樓信號強(qiáng)度變化趨勢圖13 所示。結(jié)合判定閾值,最終通過實(shí)驗(yàn)獲得的樓層判定準(zhǔn)確率如表3 所示。
圖12 跑步上樓信號變化(Build-II)
圖13 跑步下樓信號變化(Build-II)
表3 跑步狀態(tài)實(shí)驗(yàn)組
由表3 可得,跑步狀態(tài)下Build-I 組平均準(zhǔn)確率達(dá)97.4%,Build-II 組的平均準(zhǔn)確率達(dá)97.8%。實(shí)驗(yàn)結(jié)果表明,基于無線信號強(qiáng)度值在動(dòng)態(tài)活動(dòng)下能實(shí)現(xiàn)高準(zhǔn)確率的樓層判定,且跑步和行走狀態(tài)下均能保持較高的準(zhǔn)確率,在1 000 組實(shí)驗(yàn)中,平均判定準(zhǔn)確率為97.9%。分析發(fā)現(xiàn),存在少量誤判的主要原因是:跨多層時(shí)建筑物障礙物增多,尤其是在室內(nèi)人員快速移動(dòng)情況下,信號強(qiáng)度穩(wěn)定度下降。此外還包括設(shè)備自身偶然誤差等因素造成。
將本文的樓層識別方法與文獻(xiàn)[9]-[14]中其他方法進(jìn)行對比,結(jié)果統(tǒng)計(jì)如表4 所示??梢姡琇oRa-RSSI 樓層識別方法準(zhǔn)確率高于指紋匹配KNN 算法、指紋匹配差分手機(jī)及基站氣壓法、信號氣壓混合法,但低于貝葉斯網(wǎng)絡(luò)法。由文獻(xiàn)[14]知道,貝葉斯網(wǎng)絡(luò)法算法復(fù)雜度過高,且測試人員需佩戴多種可穿戴式傳感器設(shè)備,不適合普通大眾場合及人員密集情況。
表4 識別方法結(jié)果對比
本文提出一種基于LoRa 信號的樓層判定方法,該方法基于LoRa 傳輸距離遠(yuǎn)和穿透性強(qiáng)的特點(diǎn),建立離線信號指紋庫測得判定閾值,然后結(jié)合樓層判定動(dòng)態(tài)識別算法,實(shí)現(xiàn)物體室內(nèi)上下樓活動(dòng)的動(dòng)態(tài)識別和樓層判定。實(shí)驗(yàn)結(jié)果表明,基于LoRa-RSSI的樓層判定方法可通過實(shí)時(shí)追蹤信號強(qiáng)度值變化實(shí)現(xiàn)動(dòng)態(tài)識別和樓層判定,識別判定準(zhǔn)確率高,算法復(fù)雜度低,且不受外界環(huán)境場合影響,可快速按需部署。此外,將本方法與成熟的室內(nèi)二維定位技術(shù)結(jié)合,可簡單實(shí)現(xiàn)人、物的快速室內(nèi)三維定位,為室內(nèi)三維定位技術(shù)提供了一種新的方法與思路。