学术:传感器辅助的WiFi指纹室内定位方法
今日荐文的作者为北京工业大学电子信息与控制工程学院专家齐双,王奇,黎海涛,青海民族大学 物理与电子信息工程学院专家蒋维。本篇节选自论文《传感器辅助的WiFi指纹室内定位方法》,发表于《中国电子科学研究院学报》第10卷第1期。下面和小编一起开始学习吧~
引 言
现有的室内定位方法主要利用短距离无线信号,如蓝牙,超声波、超宽带信号等并根据相应算法完成定位。然而,这些定位方法虽然可实现高精度的定位,实施复杂度和成本也较高,并不适合大规模的应用。目前WiFi网络的接入点(AP)遍布于大型商厦、医院、地铁站等公共场所,通过WiFi技术进行定位,在提高定位精准度的同时节省了定位设备的部署成本。然而,WiFi信号的传播时变性会导致定位算法的鲁棒性低且精度不高。因此单独的WiFi信号定位不能达到所需要的定位精度要求。
如今丰富的传感器设备被置于移动终端中,如加速度传感器,磁力计(即罗盘),陀螺仪,以及距离、温度、压力、光线感应器等,其中的惯性传感器(即加速度传感器、磁力计,陀螺仪)在定位技术中被广泛应用。如基于穿戴式传感器、智能终端的导航系统,已经被应用于机器人定位、医疗救援等领域。目前应用惯性传感器进行定位或追踪时普遍采用航迹推测方法(PDR),但此方法在实际应用时仍存在一些缺陷。相关文献在移动终端中利用航迹推测算法追踪人行走时的位置,但由于此定位方法存在较大累计误差,因此不能完成较长时间的定位。虽然相关文献在利用航迹推测算法的同时加入了WiFi定位,使得其位置能得到定时的修正从而减少了累计误差,但由于此方法受人的走步特征差异影响较大,因此定位精度较低。
若在室内定位方法中把WiFi指纹与移动终端内置的传感器有效结合,则既可以减少信号变化对定位效果的影响,也可以利用行走状态信息优化定位算法,从而提高定位精度及鲁棒性。基于该技术思路,本文提出了传感器辅助的WiFi指纹定位方法。它首先通过WiFi指纹法确定用户初始位置,然后利用加速度信号判断用户的运动状态,当用户走步时,结合运动方向及指纹法计算用户位置,从而提高WiFi指纹定位的精度及鲁棒性。
1 WiFi指纹定位
WiFi指纹定位过程包括离线阶段和在线阶段。离线阶段为前期部署阶段,需要确定定位区域的所有采样点,通过多次采样建立完备的指纹库。服务器把指纹库中相同采样点的指纹进行平均形成指纹图(Radio Map),并使得指纹图尽可能准确的表达每个采样点的信号特征。在线阶段为定位阶段,终端首先从服务器下载指纹图,并测量终端当前位置的信号强度值(RSSI),然后利用合适的匹配算法确定终端位置。
(1)离线阶段
定位区域内的指纹采样点记为RP,i∈{1,2,...,N},遍历此N个采样点,将每个AP对应的RSSI值及MAC地址存为一个指纹,记为FPi=(MACm,RSSIi)T,其中MACm表示当前采样点搜索到的第m个AP的MAC地址。对每个采样点的RSSI进行多次采样,并与其位置坐标(x,y)存为一组,形成指纹图。指纹图如表1,其中搜索不到的AP的RSSI值设置为-110dBm。
表1 指纹图
(2)在线阶段
终端从服务器下载指纹图,并扫描当前位置指纹,然后利用匹配算法确定位置。现有的指纹匹配算法可分为确定性匹配算法(如K-最近邻算法,K-NN)和概率性匹配算法(如最大后验估计MAP、最小均方根误差MMSE)算法。K-NN算法由于计算简单且时间复杂度低而被普遍采用。其基本原理是通过比较终端与指纹图中所有指纹的欧氏距离确定终端位置,具体步骤如下。
① 计算当前位置指纹FPm的RSSI向量φm与指纹图中采样点RPi的RSSI向量φi的欧式距离
② 对dm进行升序排序,选出前k个指纹并平均其平面位置坐标(x, y),得到当前位置坐标。
定位时,终端每扫描一次周围AP,则利用相应匹配算法进行一次位置计算,并将位置显示在终端。然而,由于信号波动的影响,每次计算得到的位置坐标并不相同,即使用户并未移动时计算所得的位置也可能发生变化,导致定位鲁棒性较差。
2 惯性传感器辅助的指纹定位
为了克服单一WiFi指纹法在定位鲁棒性和精度上的缺陷,本文提出一种传感器辅助的指纹定位方法,它在位置计算中结合了用户的走步状态以及运动方向。该定位系统结构如图1,离线阶段与一般WiFi指纹定位方法相同,即包含指纹采集与指纹图建立两部分。在线阶段为定位阶段,利用WiFi指纹法确定终端初始位置,然后根据加速度传感器信号判断用户走步状态。若未走步,则保持原来位置,这样避免了信号波动导致的位置误差。若用户走步,则根据磁力计与陀螺仪信号计算终端运动方向,最后结合运动方向计算终端位置。上述传感器辅助定位,在定位算法中融合走步状态判断以提高定位的鲁棒性,并且加入方向判断来减少与终端反向的指纹点带来的干扰,从而提高定位精度。
图1 定位系统结构图
所提定位方法主要包括走步状态检测与位置计算,下面对此作详细介绍。
(1)利用加速度传感器判断走步状态
移动终端中,加速度传感器y轴的正向为终端的水平向前方向,z轴正向为垂直于屏幕向上方向,x轴与y轴在同一平面上并且满足左手定律。图2为人实际行走时的z方向加速度值,可以看出,当终端移动时,z方向加速度值规律性地周期变化,并且运动频率在0.5~5Hz之间。用户每走一步z方向加速度值都经历一个波谷和一个波峰,如图3所示,z轴为z方向加速度值,t轴为时间。刚起步时,z方向加速度值等于重力加速度(约为9.8m/s2)如图中A点;当腿悬停在空中时,z方向加速度值在C点;当腿落地时用户走完一步,z方向加速度值在E点,把此时刻终端的走步状态记为走步。因此,通过对z方向加速度信号进行处理,可以判断用户走步状态,即走步或静止。
图2 运动时z方向加速度值
图3 走一步时z方向加速度值的变化
在实际应用中,由于不同地区的重力加速度值不同,因此本文在走步状态检测中用z方向加速度的动态平均值代替重力加速度值。第i时刻的z方向加速度的动态平均值mi等于前i-1个时刻的平均值
在终端中实测慢速、中速、快速三种情况下的z方向加速度信号与其动态平均曲线,如图4所示。三组曲线中波动较大的曲线为z方向加速度曲线,较平缓的曲线为z方向加速度的动态平均曲线。把两条曲线的交点画为圆圈,其中实际走步点画为实心圆,反之为空心圆。从图4中可以看出,走步较快时z方向加速度曲线较平滑,两条曲线的交点全部为走步点。但当行走较慢时信号受到手臂运动以及静止状态下信号波动的影响较大,导致两条曲线的交点有一部分为非走步点。
图4 走步状态检测
因此,为了滤除手臂运动及静止状态下的轻微振动, 需要设计功率极限滤波器滤除信号功率较低时的值。信号功率pi计算公式为
其中,zi表示当前时刻z方向加速度值,△T为当前时刻与前一个待确定点的间隔时间。
基于上述分析,提出的走步状态检测方法具体步骤如下:
① 计算0至i时刻z方向加速度的平均值εi,若当前时刻的z方向加速度值zi=εi且zi<zi-1,则把zi记为待确定点,如图4中的实心圆与空心圆;
② 把z方向加速度信号通过低通滤波器,滤除高频信号。即滤除频率f>f0的信号,其中f0为行走频率的极限值;
③ 把z方向加速度信号通过功率极限滤波器,滤除信号功率pi小于功率阈值pmin的信号;
④ 计算当前待确定点与前一个待确定点之间的间隔时间Td,若Td取值在0.2~2s内,则把当前时刻走步状态记为走步。
通过在指纹定位方法中加入走步状态检测,可以减少信号波动带来的位置跳变,从而提高定位算法的鲁棒性。
(2)利用磁力计与陀螺仪计算方向并辅助定位
磁力计可以提供终端屏幕相对于正北方向的绝对角度值。由于磁信号在磁场干扰大的环境中受到影响较大,使得磁力计方向与实际方向间存在较大偏差,约为20度。陀螺仪可以提供精确的旋转角速度,但其信号存在漂移且需要定期校准。因此,融合磁力计与陀螺仪的优点可以计算得到更精确的终端方向。
基于陀螺仪和磁力计,采用互补滤波方法计算终端方向θ。把磁力计获取的地磁方向夹角α,与陀螺仪得到的当前角速度ω通过互补滤波器,得到当前运动方向的角度为
其中,β为互补滤波中的补偿参数且β<0.5,以使得θ表达式中陀螺仪转动角速度为主要参考值。结合前一时刻位置与当前运动方向,计算并更新位置,位置坐标系设置如图5,定位区域的左上角为坐标原点(0, 0),实施步骤如下:
图5 运动方向与指纹集
① 利用K-NN算法计算终端位置p;
② 当检测到走步,则利用方向检测方法计算终端方向θ;
③ 以终端位置p为坐标原点,将指纹图划分为四个象限,如图5所示,每个象限中的指纹点的集合用Ri表示,i∈{1,2,3,4};
④ 判断终端方向θ所在象限,如0<θ< 90度,则计算当前指纹与集合R1(如图5中阴影区域)中指纹点的欧氏距离,计算公式如下:
⑤ 根据公式(6)得到的欧式距离dm,利用公式(2)计算终端当前位置坐标。
通过结合历史位置与方向估计终端位置,可以减少匹配算法的计算复杂度并减少与终端反向的指纹的干扰,从而提高定位精度。
3 实验结果与分析
选取办公楼的一层为实验场所,定位区域面积为70m*22m,在楼道中每隔1.5m设置一个采样点,在每个采样点采集RSSI值10次。设计基于Android 4.0的定位软件,并在魅族MX2终端中测试了定位系统的精度以及鲁棒性。图6中蓝色圆点为定位系统实测的位置,紫色直线为终端的实际移动轨迹。可以看到,该定位系统较准确的描绘了用户的行走轨迹。
图6 定位终端运动轨迹
为了比较现有方法与本文算法的鲁棒性,图7示出了平均100个测试位置,不同方法分别存在跳变的位置个数。可以看到,相对于现有的指纹定位算法,本文算法在鲁棒性上具有明显优势,并且与航迹推测算法接近,这主要在于定位计算中加入了走步状态信息的缘故。
图7 定位算法鲁棒性
图8示出了定位算法的误差累计分布函数(CDF)曲线。可以看出,在整体误差分布上,本文算法的定位误差比WiFi指纹法以及航迹推测算法的误差低。
图8 误差累计分布函数
表2示出了定位算法的均方根误差RMSE值以及系统时延。可以看到,加入了方向辅助的指纹定位方法的平均定位精度优于指纹定位法以及航迹推测算法,并且由于参考了方向信息与历史位置,减少了系统处理时延。
表2 定位算法RMSE以及系统时延
结 语
本文分析了现有WiFi指纹定位方法存在的主要缺陷,为了减少信号干扰对定位精度以及鲁棒性的影响,提出对终端中惯性传感器信号进行处理得到用户的行走状态,并结合行走状态优化定位的方法。实验结果表明,相比较于传统的指纹定位方法,所提传感器辅助的指纹定位算法有效地提高了定位精度及鲁棒性。
《中国电子科学研究院学报》欢迎各位专家、学者赐稿!投稿链接
电话:010-68893411
邮箱:dkyxuebao@vip.126.com
如需转载请给我们留言,谢谢!
系列合集:精品原创阅读
学术:干货综述:短波电磁环境问题研究——对认知无线电等通信技术再认识
新视点:川普上台究竟大跌了谁的眼镜?精英传声筒们被打脸之后将会如何行动?