基于RFID的二維室內定位算法的實現
2二維定位系統設計
本文引用地址:http://www.104case.com/article/274610.htm該設計整體系統架構如圖3所示,服務器執行RFID定位程序,同時開啟Socket通信端口,等待接收來自客戶端的一維定位數據。當Serv-er端本身得到一維定位數據,也接收到Client的一維定位數據后,再將最后定結果顯示在顯示屏上。客戶端使用嵌入式系統(XSCALE架構PXA-270),主要外圍裝置有隨身碟、控制面板、RFID讀取器、IP分配器。當嵌入式系統啟動時,掛載隨身碟將指定的數據夾加載到內存,并執行設定的Shell文件,RFID定位程序執行后,開啟通信端口并啟動RFID模塊,當RFID定位程序得到一維定位數據后,通過局域網傳送至Server端。
進行RFID定位系統前,讀取器與參考標簽必須擺放在固定位置。服務器端主程序啟動先讀取set.txt文件,以便預先得知參考標簽的卡號以及服務器與參考標簽的對應距離。接著,嵌入式系統發送命令至讀取器,以便讀取參考電子標簽的RSSI值,將所收到的RSSI值儲存至各個參考標簽專用的陣列里。當多次讀取到參考標簽的RSSI值以后,根據變異數剔除不合理的RSSI,并且保留合理的RSSI做平均,再將參考標簽RSSI值根據式(7)~(10)使用查表法求得參考標簽與讀卡器的距離。上述的程序只需做1次即可,以達到誤差校正的目的。而后執行發送命令給讀卡器,并接收待定位標簽的卡號及RSSI值。待定位標簽讀取Num次后作變異數處理,Num值可視情況調整。服務器接收客戶端的一維定位數據后,以一維距離為依據,換算出二維定位座標。
客戶端執行動作與服務器端相似,差別在于,執行子程序時,主程序判斷標志位是否為1,若條件成立,將一維定位距離顯示在XSCALE-270的顯示屏上,由Socket端口將客戶端一維距離數據傳送至服務器端。
3測試結果
整體系統功能測試在室內實驗室進行,因空間限制,定位的距離實驗(X,Y)坐標為(3 m,2 m)及(6m,4m)兩組,服務器為原點(0,0)。每一個參考標簽讀取10組RSSI值做變異數計算距離參數,定位標簽讀取5組RSSI值做變異數再代入RSSI值求得一維估算距離。將服務器與客戶端得到的一維距離數據做換算后求得二維距離坐標,如圖4所示。

圖4 二維距離坐標
由圖4可觀察到定位坐標在1~30 s內,(X,Y)坐標變化浮動大。根據電波本身的特性,知道電子標簽在固定位置不動,但RSSI值卻會有飄移的現象產生。根據此現象,在求得定位數據時,需增加讀取參考標簽RSSI值的次數,以求得更精確的定位數據。
增加讀取參考標簽RSSI值的次數為50后,定位的距離實驗(X,Y)坐標為(7 m,5 m)時實驗數據如圖5所示。定位結果發現準確性與穩定性都有了較大程度的改善,證明這種解決方法有效。

圖5 優化后的坐標
評論