APP下载

基于粒子滤波的PDR定位算法*

2018-08-03钟亚洲任师涛

传感器与微系统 2018年8期
关键词:步伐步长行人

钟亚洲, 吴 飞, 任师涛

(上海工程技术大学 电子电气工程学院,上海 201620)

0 引 言

室内复杂多变环境下,利用信号强度进行定位时,易致电磁波信号产生衰减、多径和干扰[1]。基于指纹数据库的无线室内定位方法需要在目标环境中选取若干参考点进行采样并通过指纹数据库作为目标环境特征进行位置估计。无线接入点的性能和分布决定了定位的精度,如果想要在大区域级进行人员定位,大规模基础设施建设导致基于指纹数据库的无线室内定位方案优势并不明显。而智能手机感知环境的能力已经非常强大。因此,基于行人航迹推算(pedestrian dead reckoning,PDR)的定位和导航方式将带来新的机遇[2~4]。文献[3]提出了利用加速度和角速度建立行人运动模型,采用足绑式(Foot-mounted)方法和扩展卡尔曼滤波对导航参数误差进行估计和补偿;文献[4]为了提高人员动作分类的准确率,提出了利用惯性数据特征,通过支持向量机理论构建行进动作分类器;文献[5]针对人体三维坐标精准定位,提出了三维复杂运动模式航迹推算算法,通过有效跨步求解人体位置的三维坐标。但以上文献均未利用环境信息来提高定位精度。

本文设计了粒子滤波(particle filtering,PF)器并且融合室内平面地图和PDR信息,提出一种基于PF的PDR定位算法,提高了室内环境下用户定位精度。

1 基于PF的室内定位方法

系统整体框架如图1所示,首先使用手机内置的加速度计进行步伐检测和计步,陀螺仪和磁力计进行方向估计;然后结合地图匹配信息,使用PF算法对得到的定位数据进行滤波融合。

图1 基于地图匹配的室内定位流程

行人行走一步时,PDR算法需进行方向和步长估计。根据行人初始位置,可以推算出之后时刻行人的位置[6]。设坐标系为东北坐标系,行人位置更新为

(1)

式中xk为第k步时行人的东西坐标;yk为第k步时行人的南北坐标;SLk为第k步时的步长;θk为第k步时相对于北向的夹角。

2 PDR算法

2.1 步伐检测算法

行人实际的室内运动中一般包含着多种运动模式,通过PDR,可以将行人的行走运动模式建立为一个三维运动模型[7]。PDR需要步伐和频率检测,如果步伐检测出现错误或者丢失步伐数值,将导致步行距离与实际行走的长度偏差较大。本文选用零点交叉法来检测步伐。

使用加速度传感器进行步伐检测和计步时,会产生一些测量噪声[8],将会导致步伐检测和计步出现错误,影响步长估计的精度。用高通滤波器滤除重力加速度,即

aavg=a×0.1+aavg×0.9,ah=a-aavg

(2)

式中a,aavg,ah分别为加速度测量值、均值和经高通滤波后的值。

输出的过零点加速度计检测使用此信号。步伐检测算法的结果如图2所示。

图2 加速度值零点交叉法

2.2 步长估计算法

由于步长受线性模式的影响[9],使用式(3)~式(5)确定行走频率与加速度方差

SL=α·WF+β·AV+γ

(3)

WF=1/(tk-tk-1)

(4)

(5)

式中α,β和γ参数根据环境进行设定;WF为行走频率;AV为加速度方差。通过式(6)计算步行距离

(6)

3 PF融合

3.1 初始化

取粒子数为N=100,对用户的行走方向进行滤波。设定权值初始值为1/N,根据系统设定可知粒子的权值之和为1,每个粒子代表用户的一个可能的运动状态,即用户的一个可能的位置。

3.2 粒子状态转移

通过粒子状态不断转移,用户的位置随着时间的推移不断更新。PF算法需要考虑到行人运动过程中的误差控制, PDR算法中通过矢量叠加,不同的粒子权重在运动中将产生不同的路径[10]。随着时间和位置距离的累加,会导致位置信息的累计偏差增大。因此,将粒子权重w作为路径航向平滑因子

(7)

式中θt为t时刻行人位置信息中方向信息,为引入平滑因子后第i个粒子代表的行走方向。图3为粒子平滑示意。

图3 粒子平滑示意

3.3 粒子更新

PF算法通过不断更新粒子的位置和权重值来逼近系统的真实后验概率分布。权重值越大,系统在该状态的可能性越大。通过运动模型,粒子不断更新位置,同时,通过量测模型粒子更新权重值。PDR算法需要考虑定位实时性问题,所以PF算法的计算量需要满足硬件的需求,在智能手机硬件的基础上尽可能提高PF算法的实时性[11]。为降低PF算法的计算量,选择地图匹配的PF算法。主要思路是充分利用环境信息,将地图信息导入PDR系统中,利用地图中的障碍物来更新粒子权重。设定当粒子遇到墙壁或者家居等障碍物时,粒子灭亡,粒子的权重变为零;否则,粒子存活并更新粒子的位置和权重。

3.4 重采样

重采样能够抑制退化现象[12],减少权值较小的粒子数目,对具有较大权值得粒子增加粒子数目,但会导致粒子多样性降低,同时,增加粒子数目会导致PF算法的计算复杂度增加,从而消耗更多的计算时间。本文选择权值选择的PF算法[13],通过选出权值较大的粒子来估计行人的运动位置和状态。结合地图匹配的PF算法,可以提高PDR系统的重采样效率,同时也解决了粒子退化问题。

4 系统仿真测试与对比分析

4.1 系统仿真环境

实验场地是一个70 m×50 m 的长方形区域,平面图如图4所示,图中主要有走廊AB和走廊BC,走廊两侧的墙壁和门视为障碍物。本次仿真实验按照正常速度行走进行测试。要求测试人员以A点为起点,沿着走廊AB从正西方向朝着正东方向行走,到达走廊BC之后立刻右转弯,从B点沿着走廊BC从正北方向朝着正南方向行走,C点为单次实验终点。

图4 实验场地平面

(8)

式中σv为高斯噪声。设置高斯噪声为零均值,标准差为0.08 m/s。

4.2 系统仿真结果对比分析

通过在室内环境下进行仿真实验,比较了使用PF的PDR算法前后的定位精度误差。仿真实验要求测试人员以空心圆为起点,空心矩形为终点。使用的PDR算法记为PDR+PF_Method,使用PF的PDR算法记为PDR_Method。对于2种方法分别进行10次行走测试。通过对行人的行走过程进行轨迹分析和标定,将行人最终定位轨迹绘制在实验平面图中,为定位误差分析提供了参考。图5为仿真实验平面示意。

图5 仿真实验平面

将2种方法计算的总距离与实际行走的距离进行比较,得到图6所示的实验误差比较。

图6 实验误差比较

由图6可知,测试10次之后,PDR_Method算法计算出的总距离和实际轨迹距离误差较大,误差范围大于等于5 %,占比70 %以上,而PDR+PF_Method测试10次的误差范围均在5 %以内。仿真实验结果表明:本文基于PF的PDR定位算法提高了行人室内定位的精度。

5 结 论

本文针对目前PDR定位精度不高的缺点,提出一种基于PF的PDR定位算法。仿真实验结果表明,使用PF算法辅助PDR之后,提高了定位精度。

猜你喜欢

步伐步长行人
成长的步伐
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
毒舌出没,行人避让
路不为寻找者而设
轻快漫舞
我是行人
曝光闯红灯行人值得借鉴
基于逐维改进的自适应步长布谷鸟搜索算法
萌你一脸
一种新型光伏系统MPPT变步长滞环比较P&O法