基于RFID的二维室内定位算法的实现
2二维定位系统设计
本文引用地址://m.amcfsurvey.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所示。
![](http://m.amcfsurvey.com/editerupload/201505/c7c5cd5a5f9f6003af083e18c5628248.jpg)
图4 二维距离坐标
由图4可观察到定位坐标在1~30 s内,(X,Y)坐标变化浮动大。根据电波本身的特性,知道电子标签在固定位置不动,但RSSI值却会有飘移的现象产生。根据此现象,在求得定位数据时,需增加读取参考标签RSSI值的次数,以求得更精确的定位数据。
增加读取参考标签RSSI值的次数为50后,定位的距离实验(X,Y)坐标为(7 m,5 m)时实验数据如图5所示。定位结果发现准确性与稳定性都有了较大程度的改善,证明这种解决方法有效。
![](http://m.amcfsurvey.com/editerupload/201505/d9c5954a4f37fc82161e1781a168a5ed.jpg)
图5 优化后的坐标
评论