基于互补滤波融合WiFi和PDR的行人室内定位
2019-06-05朱家松周宝定林伟东
朱家松,程 凯,周宝定,林伟东
(1. 深圳大学土木工程学院,广东 深圳 518060; 2. 深圳大学空间信息智能感知与服务深圳市重点实验室,广东 深圳 518060)
随着移动互联网的发展和生活水平的提高,人们对位置服务的需求日益强烈。目前,室外环境主要应用于GPS卫星定位系统。但由于建筑物的遮挡,致使GPS定位系统的覆盖范围受限,无法应用于室内定位。因此开展室内定位的相关研究,成为位置服务领域的研究热点[1-3]。
目前已经出现了很多室内定位的方法,其中基于WiFi的定位是研究的热门[4],随着智能手机和无线网络的普及应用,WiFi定位的优势明显,成本低,无需额外的定位设施。目前,WiFi定位方法主要有两类:基于位置指纹的方法和基于信号传播模型的方法。其中基于位置指纹的方法应用最为广泛,WiFi位置指纹是指某个位置采集的所有WiFi接入点的接收信号强度(received signal strength indicator,RSSI),每个接入点又具有唯一的介质访问控制(media access control,MAC)地址。WiFi位置指纹定位具体以离线位置指纹采集及在线定位两个阶段实现[5-7]。由于室内障碍物的存在会引起信号多径衰减的产生,也会影响信号的覆盖范围,因而导致接收信号强度(RSSI)有偏差[8]。同时无线信号的时变性会导致RSSI值波动[9-12]。这些因素使基于RSSI的室内定位精度和稳定性较差,无法满足室内定位需求[11-13]。
从智能手机中可以获取多种传感器数据,利用惯性传感器定位配合行人航位推算(pedestrian dead reckoning,PDR)方法可以实现连续无缝的定位。然而,PDR存在累积误差问题,无法长时间定位[14-15]。此外,PDR只能实现相对定位,其初始化位置的判定十分关键,初始位置的准确性直接影响后序的定位结果。
综上所述,本文提出一种基于互补滤波(complementary filtering)融合WiFi和PDR的室内定位方法。互补滤波可利用WiFi修正PDR的定位结果,减少PDR误差累积,很好弥补彼此的缺点。除此之外,本文对WiFi位置指纹定位中K最近邻(K-nearest neighbor,KNN)算法进行改行,通过自适应K的获取来排除一些非临近点的干扰;还对PDR初始位置的计算方法进行优化,通过多次定位结果动态反馈,推算准确的起始位置。
1 方 法
1.1 基于RSSI的WiFi定位自适应KNN方法
根据室内环境划分室内坐标网格点,在相应的坐标点上采集WiFi离线指纹数据库。数据主要有MAC数据{(1,mac1),(2,mac2),…,(n,macn)},mac为WiFi AP的MAC地址,n为总数。还有各个采样点的位置指纹数据{(k1,rssk1),(k2,rssk2),…,(km,rsskm)},其中m表示MAC地址对应的编号,取值1~n,rsskm为对应MAC的平均接收信号强度。
定位阶段,在室内任意位置采集WiFi指纹数据{(k1,RSSk1),(k2,RSSk2),…,(km,RSSkm)},然后计算当前点与各网格点对应MAC地址的强度平均差值,计算公式为
(1)
式中,Dj为在线WiFi指纹数据与第j个网格点的强度平均差值。依据Dj值升序排序,采用KNN算法,选取k个相似度最高的参考点(差值越小相似度越高)。其中,k自适应取值(k>1)。首先,笔者以相似度最高的点Dmin为确定参考点,设置阈值λ(λ>1,根据具体场景设定,一般为1.5左右);然后,在其他网格点中获取所有小于λDmin的点,过滤掉与上个定位点距离大于d的网格点,d的取值大于两次定位时间间隔与定位设备最大移动速度的乘积;完成以上计算后,得到k个定位参考点,计算这k个点的平均坐标作为WiFi定位的估测位置,公式如下
(2)
1.2 PDR初始化算法
行人航位推算的主要原理是通过每一步的步长结合方向角信息推算相对位移信息。用Qk=(Xk,Yk,θk,Lk)表示第k步时行人的状态信息,Xk、Yk表示行人的位置,θk表示第k步的航向角,Lk表示第k步的步长,则行人位置状态转移方程为
(3)
由式(3)可知,第k步的绝对位置由第k-1步的绝对位置推算得出。递归可得,行人航位推算的需要确定初始位置,因此行人航位推算的初始位置直接影响后续的定位结果。
根据第i步的WiFi位置指纹定位,得到根据强度差值D升序排序的候选定位点序列Si表示为
Si=xi1,yi1,xi2,yi2,…,xin,yin
(4)
式中,n为网格点的数目。行人从第一步行走至i-1步,由初始化的算法可得到所有候选轨迹的集合Ti-1,假设共有m条轨迹。将m条轨迹的最后一个点与Si中n个候选点进行距离和方向运算。用dkj表示Ti-1中第k条轨迹最后一个结点与第i步中第j个参考点的距离;用hkj表示两点形成的向量与地理北极的夹角;同时计算第i步的航向角与hkj的方向偏差hdiff。分别对hdiff和dkj设定阈值,在阈值范围内的轨迹才会被考虑,否则视为不可能的轨迹。根据试验设dkj<3 m和hdiff<40°。
令不可能的轨迹ptotal=0,需进一步计算剩余轨迹的概率ptotal,以衡量其可能性。设定行人的步长为step_length,计算距离偏差ddiff=dkj-step_length。由文献[16]可知,距离偏差ddiff和方向偏差hdiff可假设服从高斯分布,因此可得到概率公式为
(5)
式中,σd和σh分别为距离偏差和方向偏差的标准差;pd和ph为距离偏差和方向偏差的高斯分布概率。然后结合WiFi定位的得到Si中各参考点的相似度,得到第i步第j个点WiFi定位概率pkj为
(6)
式中,n代表可能定位的点;D代表WiFi指纹对应的强度差值,差值越小,相似度越高。最后计算Ti-1中第k条轨迹最后一个结点行走到第i步中第j个参考点的轨迹概率
ptotal=ωpkj+(1-ω)pdph
(7)
式中,ω为WiFi相似度的权重;(1-ω)为距离偏差和方向偏差所占的权重。本文将ω设为0.5。
每经过一次上述过程,将会得到m×n条轨迹的Ptotal,降序排序。将概率最高的轨迹对应的最后一个结点作为PDR定位结果输出,表示为posPDR。为了减少后续的运算量,每一步定位完成后,仅保留前N条概率最高的轨迹。通过连续几步定位后,使得定位误差逐渐收敛,并将概率最高的轨迹中最后一个点作为下一步航位推算的起始位置。
1.3 基于互补滤波的融合定位算法
互补滤波就是根据WiFi定位和PDR定位的不同特性,取长补短。短时间内PDR定位较准,而长时间后由于误差累加,会造成输出误差比较大,甚至无法使用,而单独的WiFi定位没有累积误差,长时间后仍可使用。因此每过一段时间就用WiFi去修正一下PDR的定位结果,公式如下
posfinal=posPDR∂+posWiFi1-∂
(8)
式中,∂为PDR的定位权重;(1-∂)为WiFi定位权重;posfinal为最终融合定位结果。在本文中,∂取值0.7。
2 试验与分析
2.1 试验准备
试验地点位于深圳大学科技楼14楼,室内面积为52.5 m×52.5 m。确定相对坐标系,以西南角为坐标零点,正东方向为X轴(0~52.5 m),正北方向为Y轴(0~52.5 m)。试验器材为Google Pixel2手机,WiFi扫描平均两点几秒一次,内置加速度计、陀螺仪、磁力计及气压计等,系统为Android 8.0。志愿者携带手机采集离线WiFi位置指纹数据,采样点平均每隔1.5 m一个,总计246个点。如图1所示。
其中每个采样点采集10次以上的WiFi扫描数据。通过试验分析,当MAC强度低于-80 dBm时,可以认为该AP在该采样点位置信号微弱,波动较大,存在不稳定因素,因此笔者剔除掉每个点接收信号强度低于-80 dBm的MAC地址。最后,汇总所有点的指纹数据,生成离线指纹数据库。
在线试验过程中,将不同定位算法写入智能手机中,每次定位会记录多种不同的定位算法结果。为了保证试验的准确性,分别在3种不同情景区域中测试定位效果,主要包括环境简单的走廊区域、人员较多的办公区域、开阔的电梯区域。区域路线如图2所示。
其中走廊区域设置30个定位测试点,办公和电梯区域各20个定位测试点。志愿者每经过测试点时停留,点击按钮记录6次定位结果,最后取平均再与真值作比较。
2.2 结果分析
本次试验主要用融合定位算法对比了WiFi定位KNN算法、自适应KNN算法及PDR定位。试验结果如图3—图5所示。
由图3—图5可知,在3种不同的区域中,精度方面,PDR的定位精度随着距离越远,定位效果越差,后面直接无法使用。从表1中可以看出WiFi-KNN的平均定位精度大致在3~5 m,空旷的电梯区域效果最差;自适应KNN的定位精度略有提高;然而融合定位平均精度均低于3 m,在环境简单的走廊,平均精度更是达到了2.1 m。在稳定性方面,从表2定位标准差可以看出,纯WiFi定位的稳定性较差,定位效果波动较大,融合PDR后定位标准差小了很多。因此基于互补滤波融合的WiFi和PDR的行人室内定位方法能大大提高室内定位的精度和稳定性。
表1 平均误差 m
表2 标准差 m
3 结 论
本文提出了一种基于互补滤波融合WiFi和PDR的行人室内定位方法。通过自适应KNN算法改进WiFi定位精度,通过PDR初始化算法提高行人航位推算初始位置的准确性,最后利用互补滤波原理,根据WiFi和PDR定位优缺点,取长补短,最大可能优化定位结果。试验表明本文方法能在低成本情况下提供较高的定位精度,相对其他常用定位方法,本文的定位算法更具备稳定性和精准性。此外,从试验结果图和表中可以看出在空旷的电梯区域,定位效果明显差于其他两个区域,因此下一步的工作是通过路网修正的算法,改善空旷区域的定位较差的问题。