基于WiFi的电子标签定位算法
随着无线通信的快速发展,由此引起的关于室内定位的无线网络和RFID技术的结合也越来越受关注。人们对物品、人员位置的需求也越来越强烈。在室外的定位,如熟知的GPS定位已经做到让很多人都满意的程度,但是一旦进入到室内,由于建筑物的阻挡以及多径效应,GPS在室内的定位的效果大打折扣,所以室内定位的研究成为定位后续的研究重点。住公司中需要对人员和物品进行定位的时候范围很大。传统的标签定位的距离有缺陷,限制了其广泛的应用。所以义提出了RFID技术和无线网络结合,扩大其定位的范围。
无线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所示。
系统软件及定位算法
1)基于信号强度算法
传统的信号传播容易受到折射、反射、绕射、衍射等影响,接收到的信号强度是各种途径传播来的信号的叠加。所以有时候信号强度增大,有时候又减小。经过大量的实践,发现接收信号强度服从log-normal分布。通过信号在传播中的衰减来估计节点之间的距离,根据信道模型求解接收到待定位置的信号场强:
式中:n为路径损耗指数,与周围的环境有关;XΣ是标准差为Σ的正态随机变量;d0是参考距离,在室内环境中通常取1 m;PL(d0)为参考位置的信号强度。
假设有n个AP,m个参考标签,则AP点接收到的待定标签的强度量P=(AP1,AP2,…,APn),采集到的第t个参考标签的强度矢量为St=(St1,St2,…,Stn),则待定标签和参考标签St之间的欧氏距离为:
基于信号强度算法代表是LANDMARC算法。该算法主要通过比较不同Et来寻找与待定标签位置最近的参考标签。当由K个邻近的参考标签来确定一个待测标签的时候,我们称之为“K-最邻近算法”,待定标签坐标是(x,y):
其中的Wi和(xi,yi)分别是第i个邻居参考标签的权重因子和坐标位置。根据经验:
权重越大的,E值越小。
LANDMARC箅法虽然能够处理比较复杂的环境,但是在一些封闭的环境中可能会出现多径效应,导致定位精度不高。又有研究者对LANDM ARC算法提出了改进:把不同的阅读器中收获到的标签的RSSI值加入到一个集合,然后求出集合中频率最高的标签作为最近距离的标签,然后再使用经验公式求出待测标签的坐标位置。这样可以获得更准确的精度。
2)三边定位算法
三边定位法:分别以已知位置的3个AP为圆心,以各个到待测标签的距离最近参考标签的距离为半径作圆。所得的3个圆的交点为D。三角形算法示意图如图2所示。
设位置节点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算法的定位精度上,再进行三角定位,进一步提高定位精度。同时,以参考标签之间的距离来进行进一步的三角定位,可以减少额外的计算,并且可以减少由于参考标签场强的变化带来的重复测量。