天天看點

基于WiFi的電子标簽定位算法

随着無線通信的快速發展,由此引起的關于室内定位的無線網絡和RFID技術的結合也越來越受關注。人們對物品、人員位置的需求也越來越強烈。在室外的定位,如熟知的GPS定位已經做到讓很多人都滿意的程度,但是一旦進入到室内,由于建築物的阻擋以及多徑效應,GPS在室内的定位的效果大打折扣,是以室内定位的研究成為定位後續的研究重點。住公司中需要對人員和物品進行定位的時候範圍很大。傳統的标簽定位的距離有缺陷,限制了其廣泛的應用。是以義提出了RFID技術和無線網絡結合,擴大其定位的範圍。

基于WiFi的電子标簽定位算法

無線WiFi在一個免費的2.4GHz頻段,有很高的資料傳輸速度。是以選擇基于WiFi網絡通信的定位标簽。WiFi網絡有如下優勢:WiFi的工作頻段在2.4GHz,而且處于免費頻段,對使用者來說不需要額外的費用;WiFi的傳輸距離可以達到100m,可以覆寫整個大樓;WiFi的傳輸速率很高,可達到54 Mbps。

影響定位的精确度不僅僅是關于定位技術的選擇,同時定位算法的選擇也會影響其定位精度。常見的室内定位的算法主要分為兩類:基于測距技術的定位算法和距離無關的算法。基于測距技術的算法一般是通過節點之間的距離或者角度來計算出未知節點的位置,實際運用中常見的有:基于接收信号強度訓示算法(RSSI)、到達角度算法(AOA)、到達時間算法(TOA)等。距離無關的算法有:質心法、APIT算法、凸規劃算法等。這些算法都是利用節點之間的鄰近關系實作定位的。

一般來說,基于測距技術的算法比無需測距的精度要高。本文采用基于無線網絡的RFID技術,并在此基礎上提出一種算法,實作誤差範圍小的定位系統。

系統的硬體結構

射頻識别(Radio Frequency Identification,RFID)俗稱電子标簽。RFID是一種非接觸式的自動識别技術,它通過射頻信号自動識别目标對象并擷取相關資料,識别工作無需人工幹預,可工作于各種惡劣環境。RFID技術可識别高速運動物體并可同時識别多個标簽,操作快捷友善。RFID是一種簡單的無線系統,隻有兩個基本器件,該系統用于控制、檢測和跟蹤物體。系統由一個詢問器(或閱讀器)和很多應答器(或标簽)組成。

定位系統的硬體包括:閱讀器、電子标簽和無線WiFi子產品。

閱讀器是用于讀取/寫入标簽資訊的裝置。

電子标簽分為有源和無源兩類。有源技術電子标簽内部有電池,它的壽命一般比無源的長。在電池更換前一直通過設定頻段向外發送資訊。本文所采用的有源技術電子标簽具有長時間的壽命。

無線WiFi子產品主要是用于電子标簽、閱讀器以及AP(用于接收标簽的發射信号)之間的通信。

RFID定位可用于倉庫管理、公司人員、物品以及醫院病人的準确定位。但是由于距離限制了其發展,是以把無線WiFi技術和RFID技術結合起來,進一步地提高定位的範圍和精度。

系統軟體及定位算法

1)基于信号強度算法

傳統的信号傳播容易受到折射、反射、繞射、衍射等影響,接收到的信号強度是各種途徑傳播來的信号的疊加。是以有時候信号強度增大,有時候又減小。經過大量的實踐,發現接收信号強度服從log-normal分布。通過信号在傳播中的衰減來估計節點之間的距離,根據信道模型求解接收到待定位置的信号場強:

基于WiFi的電子标簽定位算法

式中:n為路徑損耗指數,與周圍的環境有關;XΣ是标準差為Σ的正态随機變量;d0是參考距離,在室内環境中通常取1 m;PL(d0)為參考位置的信号強度。

假設有n個AP,m個參考标簽,則AP點接收到的待定标簽的強度量P=(AP1,AP2,…,APn),采集到的第t個參考标簽的強度矢量為St=(St1,St2,…,Stn),則待定标簽和參考标簽St之間的歐氏距離為:

基于WiFi的電子标簽定位算法

基于信号強度算法代表是LANDMARC算法。該算法主要通過比較不同Et來尋找與待定标簽位置最近的參考标簽。當由K個鄰近的參考标簽來确定一個待測标簽的時候,我們稱之為“K-最鄰近算法”,待定标簽坐标是(x,y):

基于WiFi的電子标簽定位算法

其中的Wi和(xi,yi)分别是第i個鄰居參考标簽的權重因子和坐标位置。根據經驗:

基于WiFi的電子标簽定位算法

權重越大的,E值越小。

LANDMARC箅法雖然能夠處理比較複雜的環境,但是在一些封閉的環境中可能會出現多徑效應,導緻定位精度不高。又有研究者對LANDM ARC算法提出了改進:把不同的閱讀器中收獲到的标簽的RSSI值加入到一個集合,然後求出集合中頻率最高的标簽作為最近距離的标簽,然後再使用經驗公式求出待測标簽的坐标位置。這樣可以獲得更準确的精度。

2)三邊定位算法

三邊定位法:分别以已知位置的3個AP為圓心,以各個到待測标簽的距離最近參考标簽的距離為半徑作圓。所得的3個圓的交點為D。

設位置節點D(x,y),已知A、B、C三點的坐标為(x1,y1),(x2,y2),(x3,y3)。它們到D的距離分别是d1、d2、d3。則D的位置可以通過下列方程中的任意兩個進行求解。

但是在實際應用中,由于測量誤差的存在,三個圓交于一點的情況很難存在。而這是經常的事情,這會導緻方程無解,無法定位出待測目标的位置。

3)本文采用的算法

本方案中,我們采用的定位算法是基于接收信号強度的算法(即LANDMARC算法),并在LANDMARC算法的後面利用三邊定位算法,使其更準确。

實驗前在某公司大樓的走道和三間房内各安置每隔3 m固定一個電子标簽(參考标簽),在該層樓的東南兩北角各放置一個AP。做好上位機與下位機的無線通信(軟體程式的伺服器和用戶端的連接配接)。

實驗進行時,當待測标簽進入到AP(4個)的範圍内,開始接收到待測标簽發出的信号場強,并傳入上位機。同時也接收各個參考标簽在各個AP的信号場強,并傳入上位機。

定位算法則把待測标簽在4個AP(AP1,AP2,AP3,AP4)上的場強建立成一個場強矢量,同時參考标簽也建立成場強矢量。通過LANDMARC算法即通過比較待測标簽場強矢量與參考标簽場強矢量的歐氏距離,找出 3個歐氏距離最小的參考标簽,并得知3個參考标簽的具體位置(在實驗前期,參考标簽放置時已經有記錄)。對于3個參考點,不用再根據信号的強度來決定其半徑,而是3個以參考點為圓心,以最近參考标簽之間的距離(以确定每隔幾米放置一個參考标簽)的3/4長度為半徑做3個圓,這樣3個圓兩兩相交的可能性會增加。

由于3個圓很難在同一個點相交,是以對于3個圓之間的關系有3種:

◆3個圓兩兩相交,并且3個圓有公共區域;

◆3個網兩兩相交,但沒有公共區域;

◆3個圓不相交。

具體關系如下:

①當3個圓有公共區域時,則公共區域必然有3個交點,以3個交點作三角形,則待測标簽的坐标即是三角形内心坐标。

②當兩兩相交無公共區域時,必然有兩兩公共區域。取兩圓相交區域的兩個交點的連線的中點,然後以這3個中點做三角形,其内心就是待測标簽内心坐标。

③3個圓不相交時舍棄,接受下一組最近3個參考标簽,若3次還沒有找到相交情況,即用3個參考标簽做的位置做三角形,其内心就是待測标簽的位置。

本算法的優勢為在原來LANDMARC算法的定位精度上,再進行三角定位,進一步提高定位精度。同時,以參考标簽之間的距離來進行進一步的三角定位,可以減少額外的計算,并且可以減少由于參考标簽場強的變化帶來的重複測量。

結語

本文主要讨論了基于信号強度算法和基于非測距的三邊算法,同時對LANDMARC算法進行了進一步的改進。由相關實驗結果得出:該算法可以達到定位精度在1.5 m左右的誤差,該方案适合廣泛運用。

繼續閱讀