详解WiFi定位.蓝牙定位.RFID定位原理及对比
常见定位方式汇总及其定位原理
一、无线定位原理
无线定位,是通过获取采集移动设备到周围各个AP (Access Point)的信号强度RSSI ,利用RSSI 估算距离进行定位的。其实现方式分为主动采集和被动采集:
主动采集,是依赖于AP 主动采集移动设备的信号强度,在实际使用中,由于AP 部署稀疏,且相邻的AP 处于不同的无线信道,主动采集到的数据量不足,定位的效果普遍不佳。
被动采集,是在移动设备上安装APP 应用的方式,由APP 在后台主动向AP 发送消息,增加被采集到的数据量,能提升定位的效果。但因需要结合APP 使用,市场接受程度受到限制。
二、蓝牙定位原理
蓝牙定位也称beacon 定位,同样是基于RSSI 的。其实现是通过蓝牙信标主动地广播宣告自己的位置来感知所处的位置。但是传送距离短小,决定了蓝牙设备的部署密度非常大。并且由于电源无法长久使用,当设备电量用完后,更换设备的维护成本也是一笔不菲的开销。
三、无线定位和蓝牙定位对比
三、基于RSSI 定位原理的定位算法
就定位的算法而言,目前基于RSSI 定位主要有二个算法:三角定位算法,指纹识别算法。
1、三角定位算法:
如果我们已经知道了这些AP 的位置,我们可以利用信号RSSI 衰减模型估算出移动设备距离各个AP 的距离, 然后根据智能机到周围AP 距离画圆。在实际使用中,只要知道被搜寻设备与周围三个点的距离,就可以依此画出三个圆圈,而三个圆圈的交会位置,便是设备的位置。定位的过程可分成两个阶段:测距与定位。
①测距阶段:待测点首先接收来自三个不同已知位置WIFI 接入点的RSS ,然后依照无线信号的传输损耗模型将其转换成待测目标到相应WIFI 接入点的距离。无线信号在传输过程中通常会受路径损耗、阴影衰落等的影响,接收信号功率随距离的变化关系可由信号传输损耗模型给出。
②定位阶段:通过三角形算法计算待测点位置,即分别以已知位置的三个WIFI 接入点为圆心,以其各自到待测点的距离为半径为范围,所得三个圆形范围的交点即为待测点位置。
三角定位的理论很简单,但其缺点也非常明显,就是定位结果非常不精准。原因很简单,因为 AP 的位置和移动设备距离 AP 的长度都是推算出的,误差+误差=更大的误差。
2、指纹识别算法:
指纹识别算法需要提前绘制一幅信号map ,相当于对每个一点都采样标记出它的信道强度情况。然后在定位时,在信号map 中进行匹配,匹配出的信号最相似位置,即设备的位置。其方法类似于机器学习算法,分为两个阶段:
离线训练与在线定位。
①离线训练阶段:其目标在于建立一个位置指纹识别数据库。首先,选择合理的参考点分布,确保能为定位阶段的准确位置估计提供足够的信息。接着依次在各个参考点上测量来自不同AP 的RSS 值,将相应的MAC 地址与参考点的位置信息记录在数据库中,直至遍历关注区域内所有的参考点。由于受环境影响,无线信号 强度并不稳定,为了克服RSS 不稳定对定位的影响,通常在每个参考点上多次测量取平均。
②在线定位阶段:给定数据库后,依据一定的匹配算法将待测点上接收的AP RSS与数据库中的已有数据进行比较,计算位置估计值。常用的匹配算法有最近邻法(NN )、KNN 、神经网络等。
相比三角测量基于信号传输模型来估算无线终端与WIFI 接入点间的相对距离,指纹识别具有更高的准确度,因为它使用的是真实采集的信号信息而不是根据经验公式来推算。但该法同样存在很大的问题:首先,指纹识别数据库的构建需要耗费大量的人力物力,数据库完备程度会影响到定位的精度。其次,WLAN 无线信号时变特性导致预先采集的数据在某种意义上只具有“瞬时”有效性,而且所部署环境的变化都会导致RSS 或大或小的变化,使得需要重构指纹识别数据库。因此在实际使用中,每三个月或半年就需要重采一次以保证高精度。而且每次的采集量需要非常大,其收集和更新指纹的成本费用非常高。
四、WiFi+RFID混合定位
此外,目前还有一种热门的定位方式是WIFI + RFID电子标签的方式。把无线WiFi 技术和RFID 技术结合起来,进一步地提高定位的范围和精度。其系统硬件结构如下图所示:
其实现是在环境中按网格部署大量的电子标签,通过电子标签来构造指纹识别的数据库,定位的过程如下:
①在公司大楼的走道和三间房内各安置每隔3 m 固定一个电子标签(参考标签) ,在该层楼的东南两北角各放置一个AP 。做好上位机与下位机的无线通信(软件程序的服务器和客户端的连接) 。
②实验进行时,当待测标签进入到AP(4个) 的范围内,开始接收到待测标签发出的信号场强,并传入上位机。同时也接收各个参考标签在各个AP 的信号场强,并传入上位机。
③定位算法则把待测标签在4个AP(AP1,AP2,AP3,AP4) 上的场强建立成一个场强矢量,同时参考标签也建立成场强矢量。通过LANDMARC 算法即通过比较待测标签场强矢量与参考标签场强矢量的欧氏距离,找出 3个欧氏距离最小的参考标签,并得知3个参考标签的具体位置。对于3个参考点,不用再根据信号的强度来决定其半径,而是3个以参考点为圆心,以最近参考标签之间的距离(以确定每隔几米放置一个参考标签) 的3/4长度为半径做3个圆,这样3个圆两两相交的可能性会增加。
这种定位方式的优势是在原来LANDMARC 算法的定位精度上,再进行三角定位,进一步提高定位精度。同时,以参考标签之间的距离来进行进一步的三角定位,可以减少额外的计算,并且可以减少由于参考标签场强的变化带来的重复测量。其缺点在于RFID 的距离短小,难以大规模的部署。