APP下载

基于智能手机的地磁/WiFi/PDR的室内定位算法

2018-10-16罗丽燕熊璐琦宋浠瑜

计算机应用 2018年9期
关键词:定位精度指纹滤波

阮 琨,王 玫,罗丽燕,熊璐琦,宋浠瑜

(1.认知无线电与信息处理省部共建教育部重点实验室(桂林电子科技大学),广西 桂林 541004;2.桂林电子科技大学 广西信息科学实验中心,广西 桂林 541004)

0 引言

导航定位技术在物联网中处于基础地位[1]。在现今广泛发展的普适计算技术中,用户位置是使用频率最高、应用最广泛的基本感知信息,渗透于日常生活、医护、火险救助、交通管理等各领域[2]。精确而快速的室内定位技术能明显改善生活质量和工作效率,如在超市中快速寻找到自己所需的商品,在不熟悉的环境下到达目的地,在火灾现场迅速找到待解救的人员等。

高精度、低成本的室内定位系统一直是研究的热点课题,已经提出的有基于超宽带(Ultra Wideband, UWB)[3]、红外线、WiFi[4]、ZigBee[5]等各类室内定位系统。其中,UWB、蓝牙、红外线定位精度高,但需要额外架设基础设备,且遇障碍物衰耗严重。WiFi信号广泛分布于各种室内环境,免于部署基础设施,但多径效应明显,定位精度有限[6],并且持续的WiFi扫描是非常耗能的[7]。

地磁场在室内受到建筑材料的影响会发生不同程度扭曲,这些异常形成了十分丰富的地磁信息,而且若建筑结构不发生大改变,室内地磁场就会保持相对稳定[8],这使得利用地磁信息进行室内定位成为可能。地磁指纹定位与WiFi指纹定位原理相同,但具有如下几个优势:1)稳定,不随时间改变,不受移动物体干扰;2)无处不在,无需架设基础设施就可获得;3)耗能低。文献[9]提出了利用室内地磁场干扰造成的多样化来进行室内定位和轨迹追踪的Magicol系统,在每一步的基础上向量化连续的磁场信号处理磁场强度的不唯一性。若室内环境存在WiFi,可以结合WiFi信号提高室内定位精度。

以上诸多工作都是致力于粒子滤波算法中粒子对状态的精确估计及粒子多样性的保持,并且初始位置一般由WiFi直接确定[8],但是WiFi信号的不稳定导致解算的结果可能有较大误差。考虑智能手机上已经配置各种传感器,利用加速度计和陀螺仪数据进行位置解算,采用改进的粒子滤波算法融合行人航迹推算(Pedestrian Dead Reckoning, PDR)和室内地磁场,可以克服地磁大范围内不唯一性以及惯性传感器(Inertial Measurement Unit, IMU)的累计误差,同时针对WiFi信号跳跃,引入了随机采样一致性(RANdom SAmple Consensus, RANSAC)算法,用于初始位置确定,提高粒子滤波的收敛速度,可达到高精度、低成本且低能耗的室内定位目的。

1 定位系统

系统框图如图1所示,考虑资源分配问题,将整个定位过程分为两个部分:一个是数据采集和预处理部分,在移动端完成,包括行人移动检测和惯性导航;另一个是地图存储和定位,在云端完成,包括存储建筑平面图、地磁指纹地图及通过粒子滤波完成用户的定位。在定位之前,首先需要采集定位区域的地磁强度,形成地磁强度分布图,即指纹地图,并存储在服务器中。当用户发送定位请求时,智能手机上的传感器会不断采集用户行走过程中加速度、移动方向、步幅和磁场强度并进行预处理,再将这些数据上传至云端。在服务器中执行RANSAC算法确定初始位置及关键地磁数据与指纹地图数据的匹配,经由粒子滤波算法进行地理位置估计,最后将定位结果返回手机客户端,完成定位。若检测到WiFi信号,可以用WiFi信号与RANSAC算法联合进行初始位置的确定,以及行走过程中WiFi信号作为路标校准路径。

图1 定位系统结构

2 多传感器融合及粒子滤波算法模型

多传感器信息融合是模拟大脑对客观世界的综合认知。通过多源信息之间的相互辅助、补充,可弥补彼此间的劣势,有效提高系统性能。因此,本文融合智能手机自配置的加速度计、陀螺仪、磁力计等传感器采集到的信息,不需额外布置基础设施就能完成行人导航,具体的流程如图2所示。

图2 系统定位算法流程

2.1 计步算法

行走过程的加速度是随着每一步的起落而周期变化的,呈正弦波形变化趋势。检测步数,可以通过检测波峰的个数来获得,分下列几步来完成:1)初始值的设定,如波峰阈值、波峰波谷之间差值的初始值;2)滤除因手机随机抖动引入的无效波峰;3)动态阈值的计算。可以将峰值,波峰波谷之间的差值超过初始阈值的先算作一步,同时,若波峰波谷之间的差值大于预定值,将差值保存在序列中,当序列满后,将均值作为新的峰值阈值。当有新的值进来时,顶替最前面的值,这样阈值将会随着运动状态实时更新。确定有效步后,零点对应的地磁强度将作为后面粒子滤波算法的观测变量。

2.2 动态步长计算

在实验中发现,人行走的步长是和行走的速度成正比的,走得越快步长就越长,几乎是线性的关系,因此用下列模型来进行描述:

L=a×f+b

(1)

其中:L是步长,f是行走频率,在这里a和b分别是根据不同用户得到的个性化参数。通过参数a和b的动态调整,计算出每一步的步长。

2.3 位移估计

用户位置可以根据式(2)更新:

我目前从事的工作为劳动管理。而我本科学习的专业为经济学和工业工程。也许在常人眼中,我的专业和岗位是相当对口的,工作起来会非常地得心应手,但事实并非如此。

(2)

2.4 粒子滤波算法

粒子滤波模型广泛应用于非线性、非高斯环境下的状态估计[14],本文中分为四个步骤,分别是粒子初始化采样、赋权值、粒子状态更新和重采样[15]。粒子滤波的每一次迭代建立在用户行走的每一步基础上。粒子的状态为当前粒子在地理位置上的坐标p={xk,yk},k表示步数,观测量则是每一步对应的地磁指纹强度Magk。

1)粒子初始化采样:当用户打开手机软件发送定位请求时,惯性传感器中的加速度计不断收集数据,分析加速度数据判断用户是否发生运动。若检测到用户开始运动,在初始位置附近随机采样N个粒子,分别对应一个指纹地图上的地磁指纹。

2)粒子赋权值:粒子的权重由式(3)计算得到:

(3)

其中:di是每个粒子对应的指纹地图上的地磁强度与实际行走状态下采集到的特征地磁强度差值,σ是室内地磁场对位置估计的影响因子。如果粒子的位置超出了地图边界,则那个位置不可能是下一步的位置,可直接将其权重设为0。

3)粒子状态更新:所有粒子权重确定后,将所有粒子加权和的中心点作为新的位置估计,同时根据上文的步长计算得到的每一步步长Lk和转角θk,利用式(4)进行粒子状态更新。由于陀螺仪的累积误差过大,所以本实验只利用陀螺仪数据检测是否发生了转向,并不参与到每步的计算中,若发生转向,具体方向由粒子滤波算法确定。粒子状态更新如下所示:

p′.pos=p.pos+Lk+δ

(4)

4)粒子重采样:经过若干次迭代,粒子逐渐向高权值靠拢,只剩下几个权值很高的粒子,从而失去粒子多样性,无法有效表达状态的后验概率密度分布。

室内环境下物体摆放密集,行人运动的范围十分受限,而且大部分情况下遵循路径的主要方向而不是无规律随意行走,如超市、图书馆、办公室。基于此,可以利用地图约束进行自适应粒子重采样,采样模型如图3所示。该算法的主要思想是根据当前环境下路径的主要方向以及陀螺仪计算的用户转角有目的性地重采样粒子。在一维路径下,陀螺仪检测用户是否发生转向,在前进方向以及路径主要方向采样粒子,其他方向保留少量粒子如B、D所示。在交叉路口如C所示,在所有可能的方向上采样,这种情况下可以根据实际采集到的地磁强度与指纹数据库中地磁强度的差值先进行K近邻(KNearest Neighbors,KNN)算法的聚类,滤除外部粒子,增强粒子在转角处的跟踪性能。对于突然转向可能带来的转向计算偏差较大的情况,如A所示,由于墙体阻隔,粒子会很快湮灭,只留下正确行进方向上的粒子。

图3 地图约束的自适应粒子重采样模型

3 RANSAC算法确定初始位置及WiFi融合

RANSAC算法要求内群数据可以模型化,并以此为依据滤除离群数据,PDR的行走轨迹正好可以作为模型。为了简化计算,假设用户刚开始走的是一段直线,从采样点中随机取最小的几个点设定为内群,则该部分数据点满足的数学模型为:

MPDR(x,y)=ax+b;x∈[xmin,xmax]

(5)

(6)

其中:Dis(d;MPDR(x,y))是采样点到模型的距离,点A(xA,yA)到直线的距离计算为:

(7)

将式(7)等于0,得到线段上离A点最近的点(x0,y0),

Dis(d;MPDR(x,y))=

通过式(8)可以得到所有内部采样点与拟合模型的错误率,通过错误率评估模型的正确与否。上述过程被重复执行固定的次数,每次产生的模型或者因为局内点太少而被舍弃,或者被更好的模型替代,所以可以得到最佳的匹配模型,即为初始路径,同时确定初始位置,然后利用粒子滤波纠偏,实现定位和跟踪。若存在WiFi时,可以根据WiFi先确定一个粗略的初始位置,再与RANSAC算法计算的初始位置根据两者的可靠性进行加权,就能得到更加精确的初始位置。研究发现,WiFi信号虽然信号波动大,但可以有效识别出最近的WiFi接入点(Access Point, AP),所以可以根据信号最强的AP位置校准用户位置。

4 实验结果

4.1 计步算法误差分析

本文指纹库数据采集和定位终端手机型号均为华为荣耀7,采样频率20 Hz,实验场景为桂林电子科技大学图书馆四楼,是一个总面积40 m×50 m,宽2.5 m的回形走廊,数据处理平台为Matlab。计步是定位的基础,首先对上述的计步算法进行实验,评估其性能。根据前文对加速度的相加平滑窗处理,并对多组测量数据进行分析,可以考虑先将波峰阈值设为20,波峰波谷之间差值暂定为40,峰谷差值比对的初始阈值设为13。每种运动状态进行了多次实验,与实际步数进行比对,得到总体计步精度。表1展示了计步算法分别在慢走、正常行走、快走、跑步的不同行走状态下的计步精度。实验证明,该算法在计步方面具有良好性能,能为后面的定位算法提供足够精度。

表1 不同运动状态下的计步算法正确率

4.2 初始位置的确定

定位初始时,用户行走过程中记录地磁数据,通过与地图中数据比对后得到的匹配程度采样分布如图4(a)空心点所示,可以看出曲线的匹配结果大部分比较集中在x轴7.5~12.5 dm及y轴0~150 dm的范围内,少部分分散。利用RANSAC算法拟合的内群数据如图4(b)实心点所示,即为初始行走轨迹,再通过PDR得到的行走距离确定初始位置。

图4 RANSAC采样拟合

为了比较得到的初始位置的精度,本文在相同场景中分别使用单独或联合的定位算法进行比较,得到的结果如图5所示。从图中可以看出,由于室内障碍物多,信号强度多径干扰严重,导致利用WiFi接收信号强度方法定位精度误差较大,误差集中在1.5~2.2 m,而WiFi指纹定位方法需要额外增加一张WiFi指纹地图,资源占用较大,RANSAC可以仅凭地磁信息完成初始位置的确定,也可以与WiFi信号进行联合定位,定位平均误差为0.372 m,最大误差0.836 m,在误差容忍范围以内。且实验中,完成定位只需十几秒的时间,而粒子滤波收敛根据环境情况不稳定,因此利用该算法进行路径匹配可以加快粒子滤波的收敛。

图5 不同算法的定位初始位置误差比较

4.3 自适应粒子滤波算法性能分析

实验中,粒子滤波算法的粒子数N=100,KNN算法的K=50,在拐角处用传统粒子滤波算法及改进后粒子算法分别定位,并对粒子的状态估计进行分析,如图6所示,发生突变处为转向。可以看出自适应粒子滤波算法在拐角处较传统粒子滤波能更快地跟上运动状态的改变,同时在方向不变时,改进后的粒子滤波对状态的估计也要优于传统粒子滤波;并且,图7将粒子滤波算法与常用的匹配融合算法卡尔曼滤波算法、加权KNN(K=4),即WKNN算法进行定位误差的对比,从图中可以看出基于地磁指纹和PDR的粒子滤波算法定位精度优于其他两种算法。

图6 自适应粒子滤波与传统粒子滤波状态估计对比

图7 WKNN、卡尔曼滤波和粒子滤波定位精度对比

4.4 定位结果

为了消除设备之间读数差异,本文将地磁值减去了各自的平均值后,再进行匹配。以图示坐标为起点位置,沿着预定轨迹顺时针行走3圈,得到的定位轨迹如图8所示。可以看出PDR融合地磁的运动轨迹始终保持在真实轨迹上,并不会因为惯性传感器的累积误差而出现偏离真实轨迹的情况。因此,三者融合可以有效克服 PDR的累积误差。

图8 地磁/WiFi/PDR融合定位移动轨迹图

对行走一圈的定位结果进行定量分析,定位误差如表2所示。在定位的初始阶段,粒子滤波的粒子还未收敛,定位波动大,误差大,这个时期PDR的定位结果较为精确,随着定位的进行,粒子逐渐收敛,定位结果趋于稳定,而PDR的累积误差逐渐增大,所以融合后的结果优于PDR的定位结果。由表2可知,融合地磁后的定位平均误差为18.14 cm,最大误差为41.08 cm,最小误差为9.7 cm;而PDR单独定位的平均误差为115.44 cm,最大误差高达307.78 cm,且随着定位的进行,误差将愈来愈大。

表2 不同定位组合误差统计结果 cm

5 结语

针对手机传感器的累计误差明显而引起的定位精度问题,提出了自适应粒子滤波融合室内地磁指纹和PDR定位结果,利用地图约束的自适应重采样方法提高粒子对状态的估计,并用WiFi作为地标校准。对于WiFi信号不稳定,确定初始位置时误差可能较大,定位初始阶段采用WiFi和RANSAC算法进行初始位置的确定,能有效提高定位精度。实验结果表明,自适应粒子滤波在状态估计、定位精度方面优于传统粒子滤波、卡尔曼滤波、KNN算法,但是利用地磁定位,精度受限于地磁指纹的区分度,在地磁信号变化平坦的环境下,定位可能存在困难,如何充分挖掘地磁指纹的特征,提高地磁指纹与指纹数据库的匹配率,是一个值得研究的问题。

猜你喜欢

定位精度指纹滤波
船岸通信技术下舰船导航信号非线性滤波
北方海区北斗地基增强系统基站自定位精度研究
Galileo中断服务前后SPP的精度对比分析
像侦探一样提取指纹
为什么每个人的指纹都不一样
一种考虑GPS信号中断的导航滤波算法
GPS定位精度研究
GPS定位精度研究
高效LCL滤波电路的分析与设计
基于EKF滤波的UWB无人机室内定位研究