曹守啟, 王云騰垚, 張 錚
(上海海洋大學(xué) 工程學(xué)院,上海 201306)
近年來,隨著發(fā)達(dá)國家和發(fā)展中國家都認(rèn)識到物聯(lián)網(wǎng)(IoT)的重要性和潛力,并提出了發(fā)展物聯(lián)網(wǎng)技術(shù)的國家戰(zhàn)略,物聯(lián)網(wǎng)技術(shù)迅速發(fā)展[1]。以物聯(lián)網(wǎng)為基礎(chǔ)的智慧化農(nóng)業(yè)的研究和應(yīng)用越來越廣泛[2~4]。智慧農(nóng)業(yè)中除了信息采集、信息傳輸以外,還有大量器具的監(jiān)測、管理的需求。因此,獲得高精度的位置信息已成為智慧農(nóng)業(yè)的研究熱點(diǎn)之一。
物聯(lián)網(wǎng)定位技術(shù)往往是和物聯(lián)網(wǎng)通信技術(shù)結(jié)合在一起的。目前多種無線通信技術(shù)運(yùn)用于智慧農(nóng)業(yè)物聯(lián)網(wǎng),如基于窄帶物聯(lián)網(wǎng)(narrow band Internet of Things,NB-IoT)的智能農(nóng)業(yè)輔助控制系統(tǒng)[2],基于ZigBee的智能農(nóng)業(yè)溫室大棚控制系統(tǒng)設(shè)計(jì)[3]。然而,NB-IoT需要在蜂窩授權(quán)頻譜上工作,所以需要定時(shí)進(jìn)行網(wǎng)絡(luò)同步,會(huì)消耗相應(yīng)的電量。ZigBee技術(shù)傳輸距離短、覆蓋范圍小[4]。LoRa是由Semtech公司采用和推廣的一種基于擴(kuò)頻技術(shù)的超遠(yuǎn)距離無線傳輸技術(shù),具有傳輸距離遠(yuǎn)、抗干擾性強(qiáng)等特點(diǎn)。目前廣泛采用的基于指紋的定位算法主要分為2種類型:
1)確定性指紋定位算法:通常將RSSI的平均值存儲(chǔ)為參考點(diǎn)的一個(gè)特征。利用在線信號和數(shù)據(jù)庫指紋之間的相似性來估計(jì)用戶的位置。Shin B等人發(fā)現(xiàn)加權(quán)K最近鄰(weighted K-nearest neighbour,WKNN) 算法可以通過調(diào)整數(shù)量來減少誤差[5]。Abdou A S等人將支持向量機(jī)(support vector machine,SVM)與聚類回歸定位算法相結(jié)合[6],對指紋數(shù)據(jù)進(jìn)行分析,通過聚類和SVM建立數(shù)據(jù)庫與指紋之間的內(nèi)在關(guān)系,然而,當(dāng)接收信號強(qiáng)度指示(received signal strength indication,RSSI)向量維數(shù)較大時(shí),SVM算法會(huì)顯著增加時(shí)間復(fù)雜度。
2)概率型指紋定位算法:記錄并存儲(chǔ)每個(gè)參考點(diǎn)的RSSI分布,利用概率分布信息進(jìn)行估計(jì)。如貝葉斯網(wǎng)絡(luò)[7],高斯處理[8]。許多概率算法,包括高斯分布過程,給出了預(yù)測值的置信區(qū)間,但沒有達(dá)到理想的定位精度。
對于智慧農(nóng)業(yè),掌握各個(gè)節(jié)點(diǎn)的位置對監(jiān)控和有效管理具有重要意義,尤其是在大面積農(nóng)業(yè)環(huán)境的應(yīng)用中。因此,本文研究提出了一種基于LoRa網(wǎng)絡(luò)的低成本改進(jìn)指紋地圖定位方法,來確定農(nóng)業(yè)環(huán)境內(nèi)各個(gè)物聯(lián)網(wǎng)節(jié)點(diǎn)的坐標(biāo)。由于室外環(huán)境的多樣性、復(fù)雜性,在定位過程中,LoRa網(wǎng)關(guān)采樣到的RSSI值通常會(huì)受到噪聲、散射、信號反射、干擾等多種因素的影響[9]。本文研究提出的改進(jìn)指紋地圖定位算法,該方法結(jié)合了粒子群優(yōu)化(particle swarm optimization,PSO)—人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)指紋地圖定位算法(fingerprint map localization algorithm,FMLA)三種方法,亦即PSO-ANN-FMLA。首先,通過ANN算法獲得最佳的RSSI值,利用PSO算法優(yōu)化ANN算法的隱含層的神經(jīng)元數(shù)量和學(xué)習(xí)速率。然后,FMLA利用最佳RSSI值進(jìn)行定位,實(shí)現(xiàn)了高精度定位。
系統(tǒng)架構(gòu)如圖1所示,LoRa終端節(jié)點(diǎn)與LoRa網(wǎng)關(guān)構(gòu)成星型拓?fù)浣Y(jié)構(gòu),且終端節(jié)點(diǎn)和網(wǎng)關(guān)均集成LoRa射頻模塊和STM32L053單片機(jī)。LoRa終端節(jié)點(diǎn)發(fā)送數(shù)據(jù)包給網(wǎng)關(guān),LoRa網(wǎng)關(guān)測量數(shù)據(jù)包的RSSI值,根據(jù)采樣的RSSI值,網(wǎng)絡(luò)服務(wù)器利用改進(jìn)指紋地圖定位算法進(jìn)行定位。
圖1 系統(tǒng)架構(gòu)示意
通常,尋找一個(gè)復(fù)雜問題的最優(yōu)解需要大量的計(jì)算。而ANN可以利用計(jì)算機(jī)的高速計(jì)算能力快速找到最優(yōu)解[10]。因此,ANN是選擇最優(yōu)RSSI樣本的一種很好的方法。本文將LoRa網(wǎng)關(guān)采樣到的RSSI值作為ANN算法的輸入,最優(yōu)RSSI值作為輸出。ANN模型如圖2所示。
圖2 ANN模型
ANN算法的輸入如式(1)所示,輸出如式(2)所示
Input=[RSSI1RSSI2… RSSIk]
(1)
Output=[RSSIi]
(2)
式中k為RSSI樣本個(gè)數(shù);RSSIk為LoRa網(wǎng)關(guān)采樣到的第k個(gè)RSSI樣本,RSSIi為k個(gè)樣本中輸出的第i個(gè)最優(yōu)RSSI樣本。
PSO算法是一種基于鳥類社會(huì)行為的迭代搜索算法,廣泛應(yīng)用于求解優(yōu)化問題[11]。本文為了避免ANN算法陷入局部最優(yōu)解,選用PSO算法來優(yōu)化ANN算法的神經(jīng)元數(shù)量和學(xué)習(xí)速率。
在PSO算法中,對空間中的所有粒子分配一個(gè)初始隨機(jī)位置和初始隨機(jī)速度。根據(jù)每個(gè)粒子的速度,已知空間中的全局最優(yōu)位置,已知粒子的最優(yōu)位置,依次推進(jìn)每個(gè)粒子的位置。隨著計(jì)算的進(jìn)行,粒子通過探索和利用空間中已知的有利位置聚集在一個(gè)或多個(gè)最佳點(diǎn)周圍。
在搜索過程中,使用式(3)、式(4) 更新每個(gè)粒子的位置和速度。為了提高算法的收斂速度,引入了權(quán)重因子w
Vid(k+1)=wVid(k)+c1r1(k)(Xpbestid-Xid)+
c2r2(k)(Xgbestid-Xid)
(3)
Xid(k+1)=Xid(k)+Vid(k+1)
(4)
式中Vid為粒子的速度;Xid為粒子的位置;r1(k)和r2(k)為分布在0~1之間的兩個(gè)隨機(jī)數(shù);k為迭代次數(shù);c1和c2為轉(zhuǎn)換因子,二者相等;Xpbestid為每個(gè)粒子的最佳位置;Xgbestid為所有粒子的最佳位置;w為權(quán)重因子。
基于LoRa信號的指紋地圖定位算法分為兩個(gè)階段:在線階段和離線階段。1)在離線階段:部署區(qū)域的LoRa網(wǎng)關(guān)對RSSI值進(jìn)行采樣。ANN算法對一組RSSI樣本進(jìn)行處理,將最優(yōu)的RSSI樣本和實(shí)際坐標(biāo)存儲(chǔ)在數(shù)據(jù)庫中,生成離線指紋地圖,存儲(chǔ)在數(shù)據(jù)庫中。由于數(shù)據(jù)庫無法獲得整個(gè)部署區(qū)域的RSSI,并且測量整個(gè)部署區(qū)域的RSSI值成本過高且不必要。本文采用徑向基函數(shù)(radial basis function,RBF)算法進(jìn)行插值,RBF算法可以通過線性組合逼近某一點(diǎn)的未知值[12]。2)在線階段:LoRa終端設(shè)備在任意位置向LoRa網(wǎng)關(guān)發(fā)送數(shù)據(jù)包,LoRa網(wǎng)關(guān)采樣到一組RSSI樣本,ANN算法選擇出最優(yōu)的RSSI樣本,FMLA利用最優(yōu)RSSI樣本估計(jì)終端設(shè)備位置。圖3為改進(jìn)指紋地圖定位算法的離線階段和在線階段。
圖3 改進(jìn)指紋地圖定位算法的離線階段和在線階段
FMLA基于貝葉斯理論,估計(jì)終端節(jié)點(diǎn)位于各區(qū)域的概率[13]。設(shè)部署區(qū)域定義X1~Xn,Xi∈X,定義Xi為坐標(biāo)(xi,yi),s向量為n個(gè)網(wǎng)關(guān)采樣到的RSSI值,s={(RSSI1),(RSSI2),…,(RSSIn)},RSSIn表示第n個(gè)網(wǎng)關(guān)采樣的RSSI值。每個(gè)位置Xi都有一個(gè)向量s,使用RBF算法對沒有采樣值的區(qū)域進(jìn)行插值。在線階段,n個(gè)網(wǎng)關(guān)采樣到RSSI值構(gòu)成向量s*,根據(jù)向量s*,本文的目標(biāo)是找出概率最大的區(qū)域,即求出argmaxp(Xi|s*)。根據(jù)貝葉斯公式,可以得到后驗(yàn)概率式(5)
(5)
式中p(Xi)為位置的先驗(yàn)分布,p(s*)為信號強(qiáng)度分布,與位置無關(guān)。并且由于這里設(shè)置統(tǒng)一先驗(yàn)分布,所以,在貝葉斯公式中可以忽視分母P(s*)和先驗(yàn)分布p(Xi),因此,需要比較p(s*|Xi)。
采用極大似然估計(jì)方法來估計(jì)終端設(shè)備的位置,p(s*|Xi)為似然函數(shù)(6)、式(7)中估計(jì)得到的位置為似然函數(shù)最大值時(shí)的位置
(6)
(7)
式(6)根據(jù)極大似然估計(jì),可以忽視分母。F(s*,Xi)由所有網(wǎng)關(guān)的概率總和得到式(8)
(8)
條件概率P(s*|Xi)為網(wǎng)關(guān)gwj在位置Xi測量到RSSI值的概率,這個(gè)概率通過比較s*與數(shù)據(jù)中的s得到。
本文采用自主研發(fā)的4個(gè)LoRa物聯(lián)網(wǎng)網(wǎng)關(guān)與5個(gè)終端節(jié)點(diǎn),進(jìn)行LoRa PSO-ANN-FMLA的實(shí)驗(yàn)驗(yàn)證。網(wǎng)關(guān)和終端節(jié)點(diǎn)都集成STM32L053單片機(jī),LoRa射頻模塊采用SX1278芯片。PSO-ANN-FMLA和通信協(xié)議采用C語言,采用Semtech公司提供的SX1278驅(qū)動(dòng)程序Firmware Drivers V2.1.0,在STM32L053平臺(tái)上編程實(shí)現(xiàn)。
實(shí)驗(yàn)在戶外湖邊進(jìn)行,部署區(qū)域?yàn)?00 m×300 m。部署區(qū)域的4個(gè)角上分別放置4只LoRa網(wǎng)關(guān),其部署如圖4所示。
圖4 4個(gè)網(wǎng)關(guān)部署
在實(shí)驗(yàn)中,LoRa終端裝置和LoRa網(wǎng)關(guān)均采用全向天線,將LoRa擴(kuò)頻因子固定為9,單片機(jī)選用為STM32L053。在離線階段,對一些實(shí)驗(yàn)區(qū)域的RSSI值進(jìn)行采樣,建立指紋庫,并使用RBF算法對沒有RSSI值的區(qū)域進(jìn)行插值。
在線階段,使用LoRa端設(shè)備將上行數(shù)據(jù)包發(fā)送到LoRa網(wǎng)關(guān)。網(wǎng)關(guān)對數(shù)據(jù)包的RSSI值進(jìn)行采樣,然后將它們與網(wǎng)關(guān)ID一起發(fā)送到定位服務(wù)器,定位服務(wù)器使用PSO-ANN-FMLA獲得終端設(shè)備的位置。
在提出的PSO-ANN-FMLA中,將網(wǎng)關(guān)測量的RSSI值作為ANN算法的輸入,得到最優(yōu)的RSSI樣本,即ANN算法的輸出。利用PSO算法對神經(jīng)網(wǎng)絡(luò)的最優(yōu)神經(jīng)元數(shù)和最優(yōu)學(xué)習(xí)率兩個(gè)參數(shù)進(jìn)行了優(yōu)化。在改進(jìn)指紋地圖定位算法中,對4個(gè)網(wǎng)關(guān)分配相同的權(quán)重因子。
本文使用3種不同的算法來比較定位精度誤差。分別為FMLA,即傳統(tǒng)指紋地圖定位算法;ANN-FMLA,即指紋地圖定位算法利用ANN算法輸出的最佳RSSI值進(jìn)行定位;PSO-ANN-FMLA,即ANN算法取得獲得最佳的RSSI值,PSO算法優(yōu)化ANN算法的隱含層的神經(jīng)元數(shù)量和學(xué)習(xí)速率,指紋地圖定位算法利用最佳RSSI值進(jìn)行定位。
在實(shí)驗(yàn)中,選擇了24個(gè)點(diǎn)作為測試數(shù)據(jù)集,并計(jì)算了每種算法的誤差。以實(shí)際坐標(biāo)與估計(jì)坐標(biāo)之間的歐氏距離作為定位誤差的評價(jià)標(biāo)準(zhǔn)
(9)
圖5 3種算法的24節(jié)點(diǎn)定位誤差比較
在測試數(shù)據(jù)集中,比較了測試數(shù)據(jù)FMLA、ANN-FMLA、PSO-ANN-FMLA的最大誤差分別為24.33,19.41,9.11 m,和FMLA、ANN-FMLA、PSO-ANN-FMLA的最小誤差分別為6.96,6.55,3.25 m;FMLA、ANN-FMLA、PSO-ANN-FMLA的平均誤差分別為15.47,13.32,6.21 m。
與FMLA和ANN-FMLA相比,本文提出的PSO-ANN-FMLA的平均定位精度分別提高了59.86 %和53.38 %,所有待定節(jié)點(diǎn)的定位誤差基本在10 m之內(nèi),平均誤差僅為6.21 m。
圖6為FMLA、ANN-FMLA和PSO-ANN-FMLA的累積分布函數(shù)CDF。從圖6可以看出,提出的PSO-ANN-FMLA小于6.86 m的定位誤差概率為80 %,FMLA和ANN-FMLA的定位誤差概率分別為16.98 m和14.67 m。由試驗(yàn)結(jié)果可知,采用本文提出的PSO-ANN-FMLA可以有效地提高定位精度。
圖6 3種算法的誤差累積分布函數(shù)
本文研究針對傳統(tǒng)FMLA中RSSI易受波動(dòng)干擾的劣勢,在不增加設(shè)備成本的前提下,提出了基于LoRa網(wǎng)絡(luò)的PSO-ANN-FMLA。通過戶外現(xiàn)場試驗(yàn)驗(yàn)證了本文方案的有效性與可靠性。實(shí)驗(yàn)部署的5個(gè)終端節(jié)點(diǎn),在采用PSO-ANN-FMLA后,相對傳統(tǒng)FMLA,所提出的PSO-ANN-FMLA平均定位精度由15.47 m提高到6.21 m,平均定位精度分別提高了59.86 %和53.38 %。相對GPS定位,實(shí)現(xiàn)了更低功耗的戶外物聯(lián)網(wǎng)節(jié)點(diǎn)定位,適宜在大面積農(nóng)業(yè)物聯(lián)網(wǎng)中推廣使用。