唐周益丹 姜寧康
(華東師范大學(xué)計(jì)算機(jī)科學(xué)與軟件工程學(xué)院 上海 200062)
近年來,出行導(dǎo)航、智能服務(wù)等行業(yè)的需求日益增加,室內(nèi)位置的價(jià)值再次體現(xiàn)。已有的室外定位技術(shù)如全球定位系統(tǒng)(GPS)等由于受到建筑物的遮擋和多徑效應(yīng)的影響[1],定位精度急劇降低,無法滿足室內(nèi)位置服務(wù)需要?,F(xiàn)有的室內(nèi)定位主要通過Wi-Fi、Bluetooth、ZigBee、藍(lán)牙、紅外線以及可見光等實(shí)現(xiàn)。這些技術(shù)在傳輸距離、定位精度和抗干擾能力方面等方面都有各自的優(yōu)缺點(diǎn)。
本文使用LoRa(一種低功耗廣域網(wǎng)(LPWAN)中的長距離、低功耗的無線通信技術(shù))來實(shí)現(xiàn)室內(nèi)定位。其技術(shù)特點(diǎn)是遠(yuǎn)距離、低功耗,信噪比(SNR)較強(qiáng),并且擁有高于常用的無線通信技術(shù)的接收靈敏度。Semtech公司在2013年8月提出LoRa,同時(shí)發(fā)布了基于1 GHz以下的LoRa芯片——SX1276/77/78/79。本文中使用SX1276搭建LoRa環(huán)境,實(shí)現(xiàn)長距離室內(nèi)定位。
在無線傳感器網(wǎng)絡(luò)中,定位節(jié)點(diǎn)接收到參考節(jié)點(diǎn)的接收信號強(qiáng)度指示RSSI可以用于計(jì)算位置。本文使用位置指紋庫以及距離損耗模型實(shí)現(xiàn)LoRa環(huán)境下的室內(nèi)定位。
在一個(gè)特定的區(qū)域內(nèi)放置若干個(gè)信號發(fā)射裝置(信號源),由于無線電波受周圍環(huán)境的影響,RSSI與位置形成一一對應(yīng)的關(guān)系,即“指紋”。位置指紋定位就是通過位置與RSSI進(jìn)行匹配,從已有的指紋庫中找出與待測位置RSSI最接近的位置指紋,從而得出待測點(diǎn)的位置。由于信號在傳播過程中受到反射、衍射等情況的影響[2],在采集RSSI之后,需要對波動(dòng)較大的跳變數(shù)據(jù)進(jìn)行處理。本文采集一個(gè)參考點(diǎn)處連續(xù)采集30 s內(nèi)的RSSI值,取中間20 s內(nèi)穩(wěn)定的一段數(shù)據(jù),再進(jìn)行濾波處理,去除產(chǎn)生跳變的RSSI值。假設(shè)一組RSSI值為RSSI(rssi1,rssi2,…,rssim,…,rssin),計(jì)算每兩個(gè)相鄰RSSI的差值Δm=rssim-rssim-1,并求這些差值的平均值Δ。然后將每個(gè)Δm與Δ比較,大于Δ的部分為產(chǎn)生跳變的RSSI值,需要將這些值剔除。最后將剩下的RSSI取平均值,作為該參考點(diǎn)的位置指紋存入指紋數(shù)據(jù)庫。
本文使用樸素貝葉斯分類作為匹配算法,通過統(tǒng)計(jì)分析,得到各信號節(jié)點(diǎn)的RSSI值的分布情況,從而提高定位的精度和實(shí)時(shí)性。將待測點(diǎn)接收到的來自各信號源的RSSI值的概率分布作為位置指紋的特征。找出與待測點(diǎn)距離最近的參考點(diǎn),計(jì)算RSSI位置指紋樣例S在距離待測點(diǎn)最近的4個(gè)參考點(diǎn)范圍內(nèi)每個(gè)位置處的后驗(yàn)概率[3]。假設(shè)一個(gè)RSSI位置指紋樣例R,包含有來自m個(gè)信號源的信號強(qiáng)度值,R=(R1,R2,…,Rm)。將位置集合L=(L1,L2,…,Li)作為訓(xùn)練樣本,計(jì)算每個(gè)類別在訓(xùn)練樣本中的出現(xiàn)頻率P(Li),以及每個(gè)特征屬性劃分對每個(gè)類別的條件概率估計(jì),即待分類的RSSI出現(xiàn)在各不同位置的先驗(yàn)概率P(S/Li)。由于各個(gè)位置接收到的RSSI值是相互獨(dú)立的,于是有公式:
P(R|Li)=P(R1|L1)×P(R2|L2)×…×P(Rm|Li)
(1)
且:
(2)
式中:P(R)對于所有類別為常數(shù),并且位置Li出現(xiàn)的概率P(Li)也可以視為均等。因此,當(dāng)P(R|Li)取最大值時(shí),可以得到最大后驗(yàn)概率,并用來估計(jì)待測點(diǎn)的位置,即:
L=maxP(Li|R)
(3)
用高斯概率分布來近似計(jì)算P(R|Li),則有:
(4)
式中:u和σ分別表示信號強(qiáng)度的平均值和標(biāo)準(zhǔn)偏差。
該定位方法是在信號源發(fā)射功率已知的情況下,將待測點(diǎn)收到的RSSI代入距離轉(zhuǎn)化模型,即距離損耗模型進(jìn)行計(jì)算,得出待測點(diǎn)相對信號源的位置。
先假設(shè)無線信號強(qiáng)度與距離符合一定的無線信號傳播損耗模型,即RSSI是距離的函數(shù)。根據(jù)信號強(qiáng)度得到距離,然后根據(jù)多邊測量法來計(jì)算得到移動(dòng)節(jié)點(diǎn)的位置。本文的實(shí)驗(yàn)2中,兩個(gè)信號源與所有待測點(diǎn)均位于同一直線上,因此可以直接通過距離得出待測點(diǎn)與信號源的相對為位置。
由于室內(nèi)結(jié)構(gòu)會(huì)引起入射信號的反射、繞射、折射和散射,因此信號在到達(dá)接收端時(shí)會(huì)有延時(shí),強(qiáng)度也會(huì)發(fā)生變化,接收到的信號強(qiáng)度一般考慮服從對數(shù)正態(tài)分布[4]。常用的對數(shù)距離路徑損耗模型遵從公式:
(5)
式中:
P——待測點(diǎn)接收到的信號源的RSSI;
P0——距離為d0時(shí)接收到的RSSI;
d——參考點(diǎn)與信號源的距離;
n——路徑損耗系數(shù)即環(huán)境因子;
ξ——與傳播距離無關(guān)的隨機(jī)變量,本文將其作為與環(huán)境相關(guān)的變量進(jìn)行修正。
上文介紹的指紋庫和路徑損耗模型已經(jīng)在基于Wi-Fi或ZigBee的室內(nèi)定位中都得到了運(yùn)用。本文將搭建LoRa無線通信環(huán)境,運(yùn)用上述方法進(jìn)行室內(nèi)位置計(jì)算。
控制單片機(jī)使用意法半導(dǎo)體公司8位單片機(jī)STM8系列中的STM8L101F3p6,包含有超低功耗MCU[5],與LoRa的低功耗特性相匹配。使用E19-868MS100射頻模塊與STM8L單片機(jī)連接,該模塊包含LoRa射頻芯片SX1276以及濾波電路。
SX1276提供從7.8 kHz到500 kHz的通信帶寬,以及范圍在6~12的擴(kuò)頻因子,能夠覆蓋現(xiàn)在所有可用的頻段[6]。本文選擇500 kHz帶寬,根據(jù)LoRa SX1276用戶手冊設(shè)置實(shí)驗(yàn)中其他各參數(shù)如表1所示。
表1 實(shí)驗(yàn)參數(shù)設(shè)置
通信的建立至少需要一個(gè)發(fā)送端(Tx)和一個(gè)接收端(Rx),如圖1所示。在采集RSSI之前,需要先對連接狀況進(jìn)行確認(rèn),以保證采集到有效的RSSI。
圖1 LoRa環(huán)境
單片機(jī)與SX1276的通信接口是SPI, 同時(shí)讀取DIO引腳獲得芯片的狀態(tài)信息。 采集到的RSSI值最終會(huì)通過TLL轉(zhuǎn)USB返回到PC端。
SX1276芯片的工作狀態(tài)在接收和發(fā)送數(shù)據(jù)的過程中不斷變換,具體流程如圖2所示。
圖2 發(fā)送/接收數(shù)據(jù)
LoRa模式下的RSSI有兩種形式。一種是currentRSSI,即當(dāng)前的RSSI;一種是Packet Strength,即所接收到的數(shù)據(jù)包的RSSI。在計(jì)算時(shí),需要根據(jù)頻率和信噪比(SNR)的不同,對讀取到的RSSI值進(jìn)行修正。如式(6)、式(7)所示:
(6)
PacketStrength=
(7)
式中:HF(High Frequency port)表示高頻端口,頻率高于860MHz;LF(Low Frequency port) 表示使用端口,頻率低于860 MHz。
由于RSSI受室內(nèi)環(huán)境影響,因此本文的實(shí)驗(yàn)分別在三種不同的場景中進(jìn)行:短距離室內(nèi)區(qū)域、寬闊室內(nèi)區(qū)域以及狹長的室內(nèi)區(qū)域。將上述LoRa通信設(shè)備放置于室內(nèi)的不同位置,采集各個(gè)位置上的RSSI。同時(shí),本文還在實(shí)驗(yàn)場景中搭建Wi-Fi環(huán)境,使用與LoRa相同的定位方法進(jìn)行定位,將結(jié)果與LoRa實(shí)驗(yàn)結(jié)果進(jìn)行比較。對于狹長的室內(nèi)環(huán)境和短距離室內(nèi)環(huán)境,使用路徑損耗模型計(jì)算待測點(diǎn)位置,對于寬闊的室內(nèi)環(huán)境,使用位置指紋庫進(jìn)行定位。
由于通信距離與功率有關(guān),在相同的接受功率即接收靈敏度條件下,距離越遠(yuǎn),需要的發(fā)射功率越大[7],而LoRa的接收靈敏度比Wi-Fi好。因此,實(shí)驗(yàn)中需要使LoRa和Wi-Fi的發(fā)射功率保持一致,為最大20 dBm。本文使用E103-W01 Wi-Fi模塊以及E103-W01-BF串口 WiFi 模塊的測試工具組成Wi-Fi信號發(fā)射器作為Wi-Fi環(huán)境,使用無線網(wǎng)絡(luò)測試軟件WirelessMon讀取Wi-Fi的RSSI值。
該實(shí)驗(yàn)的場景設(shè)置在華東師范大學(xué)的理科樓B214室,該區(qū)域?yàn)?.2 m×13.2 m的長方形,如圖3所示。矩形的三個(gè)頂點(diǎn)處為三個(gè)信號源,三個(gè)人形標(biāo)記處為待測點(diǎn),位置坐標(biāo)如圖4所示。每個(gè)點(diǎn)都會(huì)分別收集30 s內(nèi)來自三個(gè)信號源的RSSI。
圖3 理科樓B214平面圖
圖4 理科樓B214坐標(biāo)位置圖說
3.1.1 采集單個(gè)待測點(diǎn)信號強(qiáng)度
對于個(gè)別參考點(diǎn)的數(shù)據(jù)出現(xiàn)跳變的情況,需要將突變的數(shù)值剔除,然后再求平均值,以保障RSSI值的準(zhǔn)確。整理后得到各采樣點(diǎn)的LoRa和Wi-Fi的RSSI如表2、表3所示。
表2 待測點(diǎn)LoRa RSSI
表3 待測點(diǎn)Wi-Fi RSSI
3.1.2 計(jì)算環(huán)境因子n與ξ
由于三個(gè)信號源處于不同位置,為了更準(zhǔn)確地使用路徑損耗模型定位,需要分別計(jì)算個(gè)信號源的環(huán)境因子。實(shí)驗(yàn)中在各信號源周圍選取若干點(diǎn),已知各點(diǎn)位置d和d0,采集RSSI值作為路徑損耗模型的P、P0。式(5)中的計(jì)算環(huán)境因子n、ξ如表5、表6所示。
表5 LoRa環(huán)境因子
表6 Wi-Fi環(huán)境因子
3.1.3 測試與定位結(jié)果
根據(jù)路徑損耗模型式(5),計(jì)算各待測點(diǎn)與各信號源距離的測量值。已知三個(gè)信號源的位置坐標(biāo),(x1,y1),(x2,y2),(x3,y3),以及待測點(diǎn)到這三個(gè)點(diǎn)的距離d1,d2,d3,列方程組計(jì)算待測點(diǎn)的坐標(biāo)(x,y)[8]。根據(jù)這些已知量列方程組求解待測點(diǎn)坐標(biāo)。
(8)
如圖5所示,已知信號源的位置,以及待測點(diǎn)到各信號源的距離,計(jì)算待測點(diǎn)的坐標(biāo)。為了方便計(jì)算,本文假定各信號源和待測點(diǎn)均位于同一平面上,即只計(jì)算x,y方向上的平面距離。
圖5 計(jì)算位置坐標(biāo)
計(jì)算待測點(diǎn)a、b、c的坐標(biāo)如表7所示。
表7 Wi-Fi環(huán)境因子
與實(shí)際坐標(biāo)位置比較如圖6、圖7所示。LoRa定位偏差范圍在0~5 m。Wi-Fi定位偏差范圍在0~3 m。
圖6 LoRa定位偏差
圖7 Wi-Fi定位偏差
從實(shí)驗(yàn)結(jié)果來看,對于短距離室內(nèi)區(qū)域,使用Wi-Fi或LoRa進(jìn)行定位都存在一定的偏差,其中現(xiàn)有的常用定位技術(shù)Wi-Fi的偏差較小,但LoRa與其相差不大。因此LoRa作為室內(nèi)定位的技術(shù)是可行的,在后續(xù)的研究中,可以通過改進(jìn)定位算法提高來精度,以減少LoRa的定位偏差。
該實(shí)驗(yàn)的場景設(shè)置在上海虹橋火車站的F2候車廳,該區(qū)域?yàn)?09.7 m×162.0 m的長方形。
3.2.1 采集指紋庫
實(shí)驗(yàn)中共設(shè)置4個(gè)信號源,分布在矩形的4個(gè)頂點(diǎn)處,如圖8所示,五角星符號表示信號源。
圖8 虹橋火車站F2平面圖
圖8的中間部分表示設(shè)置參考點(diǎn)的區(qū)域,各參考點(diǎn)分布如圖9所示。
圖9 參考點(diǎn)位置分布
AP1-AP4分別為4個(gè)信號源1、2、3、4,中間區(qū)域每50 m設(shè)置一個(gè)參考點(diǎn),采集來自4個(gè)信號源的RSSI 值。
使用Wi-Fi進(jìn)行位置指紋采集時(shí),在各個(gè)參考點(diǎn)位置均未檢測到Wi-Fi信號。參考點(diǎn)1的位置為(31,24),與信號源1的距離為49.98 m,實(shí)驗(yàn)測量了從信號源1到參考點(diǎn)1之間Wi-Fi的RSSI值變化。如圖10所示,Wi-Fi信號在48 m處消失,RSSI的最小值約為-90 dBm。
圖10 Wi-Fi RSSI
本文的位置指紋由各個(gè)參考點(diǎn)的信號強(qiáng)度和參考點(diǎn)的坐標(biāo)組成。假設(shè)某個(gè)參考點(diǎn)的坐標(biāo)為(x,y),參考點(diǎn)測得的來自4個(gè)信號源的信號強(qiáng)度分別為RSSI1、RSSI2、RSSI3、RSSI4,則該點(diǎn)的位置指紋表示為(RSSI1,RSSI2, RSSI3,RSSI4,x,y)。實(shí)驗(yàn)時(shí),在每個(gè)參考點(diǎn)測量來自各信號源的信號強(qiáng)度, 發(fā)送端向接收端發(fā)送數(shù)據(jù)包,接收端的SX1276每隔0.5 s測量一次信號強(qiáng)度,采集時(shí)間為30 s。將60組信號強(qiáng)度取平均值,并保留小數(shù)點(diǎn)后4位作為參考點(diǎn)處的信號強(qiáng)度。在上述的實(shí)驗(yàn)場景中,有24個(gè)參考點(diǎn),對應(yīng)于指紋數(shù)據(jù)庫就是24組位置指紋。使用LoRa采集到的位置指紋如表8所示。
表8 LoRa位置指紋
續(xù)表8
3.2.2 位置指紋庫測試與定位結(jié)果
選取鄰近參考點(diǎn)7、10、15、19、23的位置進(jìn)行定位測試。表9中記錄了各點(diǎn)測得的RSSI值,使用貝葉斯算法計(jì)算P(Li/S),得到與指紋數(shù)據(jù)庫中相匹配的位置,所有待測點(diǎn)均匹配正確。本次實(shí)驗(yàn)定位場景面積較大,邊長較長,位置指紋網(wǎng)格比較稀疏,測試點(diǎn)均選擇在參考點(diǎn)位置,意在檢測LoRa定位在長距離的寬闊室內(nèi)場景中的可行性。此外,從實(shí)驗(yàn)結(jié)果可以看出,與Wi-Fi相比,LoRa在通信距離和抗干擾能力方面有較明顯的優(yōu)勢。
表9 定位結(jié)果
該實(shí)驗(yàn)的場景設(shè)置在上海世博源,平面圖如圖11所示。主體建筑南北總長1 045 m,東西寬80~130 m。本次實(shí)驗(yàn)選擇在長800 m,最大寬度25 m的室內(nèi)購物街進(jìn)行。圖中軸線的兩端各設(shè)置一個(gè)信號源, 軸線上由南向北每隔50 m設(shè)置一個(gè)RSSI采樣點(diǎn),共15個(gè),如圖12所示。每個(gè)點(diǎn)都會(huì)分別收集30 s內(nèi)來自兩個(gè)信號源的RSSI。
圖12 采樣點(diǎn)分布
3.3.1 采集單個(gè)待測點(diǎn)信號強(qiáng)度
對于個(gè)別參考點(diǎn)的數(shù)據(jù)出現(xiàn)跳變的情況,需要將突變的數(shù)值剔除,然后再求平均值,以保障RSSI值的準(zhǔn)確。整理后得到各采樣點(diǎn)的LoRa RSSI如表10所示。
表10 采樣點(diǎn)LoRa RSSI
使用Wi-Fi進(jìn)行位置指紋采集時(shí),在各個(gè)采樣點(diǎn)位置均未檢測到Wi-Fi信號。采樣點(diǎn)1的位置為(50,0),與信號源1的距離為50 m,實(shí)驗(yàn)測量了從信號源1到采樣點(diǎn)1之間Wi-Fi的RSSI值的變化。如圖13所示,由于該實(shí)驗(yàn)場景中的行人密集,有商鋪、玻璃門等障礙,因此Wi-Fi信號在37 m處消失,RSSI的最小值約為-90 dBm。
圖13 Wi-Fi RSSI
3.3.2 計(jì)算環(huán)境因子n與ξ
由于RSSI值受環(huán)境影響,本文對路徑損耗模型中的環(huán)境因子進(jìn)行分段計(jì)算,即不同的區(qū)段使用不同的環(huán)境因子計(jì)算待測點(diǎn)距離。根據(jù)周圍環(huán)境的變化,將室內(nèi)區(qū)域的矩形的長邊分為6段。 每段選取若干已知位置d和d0的點(diǎn),采集RSSI值作為路徑損耗模型的P和P0。根據(jù)式(5),計(jì)算環(huán)境因子n、ξ,如表11所示。
表11 環(huán)境因子
3.3.3 測試與定位結(jié)果
本實(shí)驗(yàn)中有兩個(gè)信號源,對于軸線上的一個(gè)待測點(diǎn),分別計(jì)算待測點(diǎn)到距離兩個(gè)信號源的距離,再求兩個(gè)位置間距離的平均值,從而確定待測點(diǎn)的坐標(biāo)。通過RSSI值計(jì)算出坐標(biāo),結(jié)果如表12所示。D1和D2分別表示與信號源1、信號源2之間的距離。
表12 LoRa定位結(jié)果
本文分別將兩處信號源定位的位置與實(shí)際位置進(jìn)行比較,如圖14、圖15所示。結(jié)合信號源1和信號源2的定位結(jié)果,求平均值,得到的最終定位結(jié)果,如圖16所示,偏差較單個(gè)信號源明顯減小。實(shí)驗(yàn)中的12個(gè)測試點(diǎn)定位偏差如圖17所示,范圍在0~10 m。
圖14 信號源1定位結(jié)果
圖15 信號源2定位結(jié)果
圖16 定位結(jié)果
圖17 定位偏差
從實(shí)驗(yàn)結(jié)果來看,對于狹長的室內(nèi)區(qū)域,使用LoRa進(jìn)行定位的優(yōu)勢是比較明顯的。Wi-Fi的通信距離在無遮擋的環(huán)境下最長為300 m左右,普通室內(nèi)環(huán)境為100 m左右[9],但接收靈敏度不高,抗干擾能力較差。因此在本實(shí)驗(yàn)中,Wi-Fi的實(shí)際通信距離僅為37 m,而LoRa的通信距離達(dá)到800 m。此外,實(shí)驗(yàn)場景中有行人,門窗以及Wi-Fi和手機(jī)信號的干擾,能一定程度上說明LoRa在室內(nèi)定位中的抗干擾能力。
LoRa無線通信技術(shù)在定位方面的應(yīng)用克服了
Wi-Fi等其他無線通信技術(shù)在傳輸距離和抗干擾能力方面的缺點(diǎn),為長距離室內(nèi)定位提供了比較可行的解決方案。本文的實(shí)驗(yàn)意在測試LoRa在長距離定位方面的可行性,實(shí)驗(yàn)樣本數(shù)量和定位算法可在今后的工作中進(jìn)一步增加和優(yōu)化。在本文的實(shí)驗(yàn)中,通過LoRa定位的結(jié)果還存在一定的偏差,下一步可以通過以下幾個(gè)方面來提高定位精度:1) 增加信號源數(shù)量以及參考點(diǎn)的數(shù)量,以獲得更準(zhǔn)確的指紋數(shù)據(jù)庫;2) 單個(gè)參考點(diǎn)采集更多的RSSI數(shù)據(jù),便于去除突變數(shù)據(jù),使RSSI值更精確;3) 選取更多參考點(diǎn)來修正距離損耗模型中的環(huán)境相關(guān)參數(shù)。
[1] 王楊,趙紅東.室內(nèi)定位技術(shù)綜述及發(fā)展前景展望[J].測控技術(shù),2016,35(7):3-8.
[2] 劉小康,郭杭.基于Zigbee室內(nèi)定位系統(tǒng)的指紋庫優(yōu)化算法[J].計(jì)算機(jī)工程,2014,40(2):193-198.
[3] Chen L,Li B,Kai Z,et al.An Improved Algorithm to Generate a Wi-Fi Fingerprint Database for Indoor Positioning[J].Sensors,2013,13(8):11085-11096.
[4] 王靜.基于信號強(qiáng)度室內(nèi)定位技術(shù)的研究與實(shí)現(xiàn)[D].北京:北京工業(yè)大學(xué),2009.
[5] STMicroelectronics,STM8L101Datasheet[OL].[2009-09].http://www.st.com.
[6] Semtech Corporation.SX1276/77/78/79用戶手冊[EB/OL].[2016-06].http://www.semtech.com.
[7] 黃玉蘭.物聯(lián)網(wǎng)射頻識別(RFID)核心技術(shù)詳解[M].人民郵電出版社,2016:122-123.
[8] 景博,孫勇.智能網(wǎng)絡(luò)傳感器與無線傳感器網(wǎng)絡(luò)[M].國防工業(yè)出版社,2014:230-233.
[9] 李曉陽.WiFi技術(shù)及其應(yīng)用與發(fā)展[J].信息技術(shù),2012(2):196-198.