罗宇锋,刘艳辉,李晓春
(1.河南理工大学 电气工程与自动化学院,河南 焦作 454003; 2.无锡九宇建筑设计院有限公司,江苏 无锡 214000)
众所周知的GNSS[1-2]定位技术提供的是室外定位服务,由于信号到达地球时较弱且信号容易受到障碍物的干扰和阻断,在室内环境、地下矿井、高层建筑密集处等地方的定位效果不理想甚至失效。因此,急需寻求一种高效、便捷、准确的定位技术来填补室内定位的空白。基于IEEE802.11 技术的成熟以及移动设备和无线局域网在世界各地的普及,同时, WiFi室内指纹定位具有成本低、易部署、不受视线约束等优点,已经成为当前室内定位研究的热点[3-5]。人们开始利用这种资源进行室内定位,文献[6]通过从信号强度指示(RSSI)信号强度中取出特征性较强信号,降低了室内多径效应对WiFi信号波动的影响,使室内指纹定位精度提高了40%.Laouudias[7]等在基于指纹匹配的基础上,开发了Airplace系统,使WiFi指纹定位的误差减小到2~4 m。常见的无线定位技术有蓝牙(Bluetooth)、红外(infrared)、WiFi(wireless fidelity)、Zigbee、超宽带等(ultra wide band)等[8-9]。
目前利用WiFi进行室内定位主要有WiFi指纹和WiFi测距两种定位方式,由于WiFi信号容易受到环境的干扰而产生波动,且WiFi测距定位对信号依赖较强,从定位精度上讲WiFi指纹定位要比WiFi测距定位精度要高[10-11],所以目前WiFi指纹定位比较流行。WiFi指纹定位的关键在于离线阶段指纹库的建立,而采样间距直接影响指纹库的大小及定位精度,所以说合适的采样间距对WiFi指纹定位起着至关重要的作用。
在室内定位区域内,每一个采样点接受来自各个AP信号强度是不同的,这是由于采样点信道的多径结构是不确定的,这样多径结构的特征就是该采样点的“指纹”[12-14]。当人员进入定位区域,身上携带的定位卡就会自动扫描四周的WiFi信号,并将WiFi信号上传到服务器与离线阶段建立的指纹库中的WiFi信号进行匹配,实现对人员位置的估计。
RSSI在WiFi指纹定位中起着至关重要的作用,RSSI的值越大说明距离所测试解算距离越近,本实验是在学校楼道内对一个固定的AP进行测试,A、B和C三个采样点距离固定的AP的水平距离分别为8 m、5 m和3 m,采样周期为1 s,采样时间为100 s,采集的WiFi信号数值如图1所示。
通过图1可知,WiFi信号易受到环境等因数的影响产生波动,为了消除WiFi信号受到环境因数产生的波动,保证指纹数据库可靠性和准确性。本文先利用高斯函数拟合对采集的RSSI信号进行拟合,迅速地选出高频段的RSSI值。对于RSSI值的波动,用多次测量取平均值法对采样点接收到的信号进行平滑处理。
高斯函数拟合是对数据中出现野值的一种处理方法。利用高斯函数对采集的RSSI值进行处理,可以去除一些小概率的数值(野值),保留在正常范围内波动的高频WiFi信号值,这些WiFi信号值就更接近真实的信号值[15]。
高斯拟合函数为
(1)
其中:
(2)
(3)
先将采集到RSSI矢量分别代入高斯拟合函数,用来保留可信的信号值然后对所保留的数据取均值,所得均值就是采样点的RSSI矢量。由于RSSI矢量数据众多,使得高斯拟合过程耗时较多。为了快速地筛选出想要的数据,采用近高斯拟合的方法。
|RSSIi-μ| (4) 式中:μ为均值;σ为标准差;k为筛选区间RSSI值的个数,可根据数据保留的百分比M确定。 其中: (5) 式中,N为采集的总次数。 若M取值过小,有可能破坏真实的数据,这时就要适当增加k值用来增大筛选区间,提高RSSI矢量的保留比。在保证RSSI矢量不失真的情况下,实现快速有效地剔除错误数据。 在离线建立数据库之前需要在定位区域内设计恰当采样间距,用米尺进行实地测量并标记采样点的位置,其次,确定坐标原点,如图2所示,按照一定规则对采样点进行坐标编辑并对采样点上的RSSI值进行多次测量取均值处理。 表1 WiFi指纹数据库 在线匹配定位阶段,本文主要采用K近邻WiFi指纹匹配的算法,K近邻匹配算法的主要思想是待定点上的RSSI值与数据库进行匹配运算,计算出待定点上的RSSI与指纹数据中各个采样点上RSSI之间的欧式距离,选出k(k≥2) 个最小的欧式距离对应的坐标并将其坐标取平均值就是待定点的位置坐标。 (6) 式中:i为第i个采样点对应的坐标。 待定点与第i个采样点的欧式距离为di: (7) 1) 定位精度指标:位置定位精度∂为所有待定点与真实位置的误差平均值: (8) 其中: (9) 2) 定位时效指标:本文设定不同采样间距,并按照设定的采样间距分别进行采样、建立指纹库、匹配计算及定位并记录各自的定位时间,然后结合定位的精度和时间效率,综合考虑选出最优的采样间距。 本文中WiFi指纹定位系统采用的是C/S客户端服务端模式[16],整个设计框架包括客户端部分、服务端部分和通信段部分,具体如图3所示。首先客户端收集且封装过滤后的WiFi指纹信息并利用通信手段将信息发送到服务端,服务端接收指纹信息并储存到指纹数据库。定位时客户端收集周围的AP信息,通过与服务端的通信将扫描到的WiFi指纹信息发送到服务端,服务端将接收到的信息与指纹库数据进行匹配处理,选择合适的参考点计算出定位结果并在服务端显示。 Android智能终端上移值客户端程序[17],用elipse软件和Java语言开发。智能机客户端主要负责采集周围AP信号强度与服务端通信交互及指纹定位结果的显示。由于Android编程是面向函数库编程的,通过调用WiFiManager和WiFiInfo两个WiFi相关类可以扫描到AP信号强度、MAC地址及网络名称SSID等。客户端在指纹采集时,将采集到的AP信号强度值序列用高斯拟合滤波后封装,通过Socket连接发送给服务端的MySQL数据库;在线定位阶段,用户通过与服务端之间的Socket通信发送定位请求到服务端,客户端将扫描到的RSSI和MAC地址等信息通过网络发送到服务端处理,最后接收定位结果并在手机上显示,定位模块如图4所示。 为了研究采样间距对WiFi指纹定位精度的影响,在电气楼205教室,选取一个长12 m,宽12 m的定位区域,采样间距分别定为1 m、2 m、3 m、4 m、5 m、6 m,采样点的个数分别为169、49、25、16、9、9个,由于实验设定长12 m,宽12 m的定位区域,但为满足采样间距5 m的整数倍,将原定位区域改为长10 m,宽10 m,虽然定位区域改为长10 m,宽10 m,但采样间距5 m不变且随机3个待定点在设定的定位区域内,这样就不影响不同采样距离对WiFi指纹定位精度的比较。 在进行不同采样间距对定位精度影响实验中,为避免单点定位存在的偶然性,在实验中分别随机确定3个不同待定点并记录下测定的结果、误差和定位的时间如表2所示。在数据采集过程中尽可能保持采样高度一样,在每个采样点处分别采集100次RSSI值取均值存入指纹数据库,图5是采样间距为3 m的实验部署示意图。 在实验过程中用OPPO手机上Android平台开发的WiFi分析仪采集定位区域内RSSI值,数据记录软件采用sql serve 2008,将其配置到定位服务器,为服务器的定位解算提供数据支持,定位服务器负责接收手机客户端上传的数据并对其进行解析、计算、匹配最终实现定位,并将定位的结果上传到手机客户端显示。 设定6个不同的采样间距,为了避免单点定位存在的偶然性和误差,每个采样点随机采3个待定点并记录定位数据如表2所示,为更好显示不同采样间距对定位精度的影响,把相同采样间距对定位造成的误差取平均值并绘制图形,如图6所示。 表2 采样间距的数据记录 3.3.1 定位的精度 本文研究采样间距对WiFi指纹定位的影响,对于采样间距分别进行了特定设置,选择待定点和采样点均匀地分布在定位区域内,在定位区域对不同采样间距进行多次实验并记录下实验结果。通过图6可以看出,当采样间距从1~6 m选取时,WiFi指纹定位的精度在不断的下降,定位误差从0.58 m上升到4.2 m;当采样间距在1~3 m定位误差可以保证在2 m以内可以满足定位的需要;当采样间距为4~6 m时定位误差大幅度的提高很难确保定位的精准性。 3.3.2 定位的时效性 K近邻匹配算法其时耗主要花费在均方误差的计算。采样间距为1 m时需要进行169次均方误差计算;采样间距为2 m时需要进行49次均方误差计算;采样间距为3 m时需要进行25次均方误差计算。三种采样间距平均花费的时间如3表所示。 表3 三种采样间距定位时间的比较 通过表3可以清楚地看出3 m的采样间距在时间效率上有着明显的优势,考虑到1~2 m的采样间距在离线阶段采集指纹也比较费工、耗时,但定位的精度却和3 m的采样间距定位精度相差不大。综上所述,本文选择3 m的采样间距为最佳的采样间距。 本文研究的是采样间距对WiFi指纹定位的影响,详细介绍WiFi指纹定位的K近邻匹配算法,并在教室内设定不同采样间距进行实验。实验结果表明采样间距为 3 m时,无论从定位的精度还是时效性上都为WiFi指纹定位的最优指标。1.2 离线阶段建立指纹数据库
1.3 在线阶段进行匹配定位
1.4 采样间距最佳距离的确定指标
2 系统的设计
2.1 WiFi指纹定位系统架构
2.2 客户端和服务端的设计
3 实验及分析
3.1 实验部署
3.2 实验数据
3.3 实验的结果分析
4 结束语