基于RFID的二维室内定位算法的实现
0 引言
目前RFID定位主要采用LANDARC及其衍生的方法。较常采用的方法是在一个二维平面上,每隔1~2 m摆放一个参考标签,而且需要4个以上的远距RFID读取器,硬件成本较高。本文提出另一种方法,在二维平面上只需使用4个参考标签及2个远距RFID读取器,即可实现二维室内定位,大大降低了硬件成本并弥补了GPS只能进行室外定位的不足。
1 研究方法
1.1 一维定位
如图1所示,4个电子标签#1~#4摆放位置固定。假设参考标签#1~#4与读取器的距离分别为rx1,rx2,rx3,rx4,读取器接收到电子标签#1~#4的信号强度指标(RSSI)分别为Sx1,Sx2,Sx3,Sx4。由于在室内,RFID读取器除了接收电子标签直线传输功率外,也接收了反射功率Pref以及误差功率Perr。因此RFID读取器所接收到源自某一电子标签的总功率Ptotal可表示为:
式中:Perr为除了反射因素以外所造成的误差;Ptr为电子标签所发射的瞬间功率;Gt,Gr为电子标签及读取器的天线增益;λ为射频信号波长。
由于信号强度指标RSSI随着功率递增而递增,由式(1)可假设:
但是,实际测量中,很难知道Ptr,Ptotal,Pref,Perr这些参数值。为了实时测量rx的值,可由预先得知的(rx1,Sx1),(rx2,Sx2),(rx3,Sx3)及(rx4,Sx4)四组数据,以多项式来近似式(2)中的f(sx)函数。假设:
由式(5)、(6)可求得系数a0,a1,a2,a3。
实际定位可分为下列步骤:
(1)由图1中位置固定的电子标签,可以得出(rx1,Sx1),(rx2,Sx2),(rx3,Sx3)及(rx4,Sx4)四组数据。
(2)由式(5)、(6)及这四组数据可算出多项式的系数a0,a1,a2,a3。
(3)远距读取器所读取的最佳RSSI值是介于0~256的整数值。可用sx值(0 1.2 二维定位 在一维定位的基础上,可继续推导出二维定位的情况。就图2示意图而言,使用二个远距RFID读取器(X,Y)及电子标签#1~#4。假设待定位电子标签与远距读取器(X,Y)的距离(rX,rY)与RSSI值(sX,sY)的关系由式(7)~(10)描述。其中系数aX0,aX1,aX2,aX3及aY0,aY1,aY2,aY3可由前述一维定位的方法推导出来。 由于图2中远距读取器(X,Y)之间的距离固定而且已知,根据式(7)~(10)可知二维平面上待定位电子标签的位置。根据此中位置方法,待定位电子标签的位置也可能是图2中水平轴以下的位置,如虚线所示。为了分辨出图2中待定位电子标签的水平轴上下两个不同位置,可摆设另一读取器。由于读取器所读到水平轴上电子标签的RSSI值可区分出来,因此可分辨出水平轴以上及水平轴以下电子标签的位置。 2 二维定位系统设计 该设计整体系统架构如图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可观察到定位坐标在1~30 s内,(X,Y)坐标变化浮动大。根据电波本身的特性,知道电子标签在固定位置不动,但RSSI值却会有飘移的现象产生。根据此现象,在求得定位数据时,需增加读取参考标签RSSI值的次数,以求得更精确的定位数据。 增加读取参考标签RSSI值的次数为50后,定位的距离实验(X,Y)坐标为(7 m,5 m)时实验数据如图5所示。定位结果发现准确性与稳定性都有了较大程度的改善,证明这种解决方法有效。 4 结语 本文在一维定位的基础上,提出RFID二维定位技术,在二维平面上只需使用4个参考标签及2个远距RFID读写器即可实现室内定位。并设计了室内定位系统对该算法进行实验验证,实验结果得出二维定位的准确性与稳定性都有了较大程度的改善,在降低RFID定位成本的基础上提高了定位的性能。