李晓鹏 王 玫,2 周 陬* 罗丽燕 宋浠瑜
1(桂林电子科技大学认知无线电与信息处理教育部重点实验室 广西 桂林 541004) 2(桂林理工大学信息科学与工程学院 广西 桂林 541007)
行人航迹推算(PDR)是一种相对定位技术。其原理是利用加速度传感器估计走路时的步数和步长,利用陀螺仪和指南针估计前进方向,最后根据上一步的位置计算当前时刻的位置。相较于Wi-Fi指纹定位[1]和蓝牙三边定位[2],PDR既不需要耗时费力地构建指纹库,也不需要建立精确的无线信号传播模型,仅利用日常生活中的智能手机就能完成定位与跟踪[3],因而受到人们的广泛关注。但由于每一步的步长和方向估计都存在偏差,PDR只能短时间内达到较好的定位效果,随着时间的推移,误差会越来越大,直至影响使用。
为了减小PDR的累积误差,研究人员提出利用贝叶斯滤波器将PDR与其他定位技术融合。文献[4]采用粒子滤波算法融合PDR和磁场指纹,文献[5]采用扩展卡尔曼滤波算法将PDR与Wi-Fi指纹定位结果相融合,文献[6]使用无迹卡尔曼滤波算法将PDR与蓝牙三边定位结果相融合。但是这些纠正方法仍需要建立指纹库或无线信号传播模型,因而系统的搭建成本并没有降低。此外,对于强非线性、非高斯噪声系统,卡尔曼滤波算法应用范围有限。粒子滤波虽适用于一切非线性、非高斯噪声系统,但其运算量相对偏大。过程噪声和测量噪声的均值和协方差估计也是一个难点[7]。
另一种思路是利用PDR瞬时定位精度高的优势,通过融合其他观测手段对PDR进行定时纠正。文献[8]利用蓝牙三边定位结果间歇地纠正PDR位置,从而减少蓝牙基站的数量,同时保证定位精度。但基于三边法的蓝牙定位仅适用于空旷无遮挡的场地,室内场景下多径效应显著,蓝牙三边定位精度有限。文献[9]把房门、电梯和走廊拐角等特殊地点当作“天然地标”,通过观察传感器数据的变化来判断用户是否经过地标。但是这些“天然地标”缺少独特的ID,因而不太容易区分。考虑到蓝牙基站会周期性地广播带有唯一编码UUID(Universally Unique Identifier)的信号强度值RSS(Received Signal Strength)。文献[10]将单个蓝牙基站视作“人工地标”,一旦发现接收的蓝牙信号强度值大于预设阈值,就意味着用户进入了蓝牙的纠正范围。预设阈值越高,纠正范围越小。然而,蓝牙信号强度的大小与蓝牙基站的发射功率、安装高度、蓝牙天线方向和手机型号有关[11-12],导致各蓝牙基站的预设阈值必须在单独测量的基础上分别设置,不利于大规模工程应用。
本文在已有研究的基础上,通过自适应检测RSS峰值来判断行人是否经过蓝牙基站,然后利用事先已知的基站位置和走廊朝向校正PDR的位置、步长和方向,从而抑制PDR的累积误差。
行人航迹推算(PDR)通过步伐检测方法来判断行人是否走了一步,然后估计这一步的步长和行走方向,最后结合上一步的位置坐标,推算出这一步的位置坐标,原理如下:
(1)
式中:[xi,yi]T为第i步的位置坐标;[xi+1,yi+1]T为第i+1步的位置坐标;Li+1为第i+1步的估计步长;θi+1为第i+1步的估计方向。
因此PDR主要包括四个部分:初始位置的确定、步伐检测、步长估计和方向估计。
PDR无法为自己提供初始位置,通常由其他定位技术提供(例如Wi-Fi初定位)或者人为选择某处作为基准点[13]。
由于人的行走状态是一个周期性过程,因而加速度也呈现出明显的周期性。目前最为流行的步伐检测方法是峰值计步法,即每一个波峰对应走的一步,波峰的总个数就是行走的步数。但因传感器测量的加速度数据存在噪声,导致众多伪峰干扰计步(如图1所示),因此先用滤波器滤除掉噪声。考虑到人正常行走时一秒内最多走三步(对应加速度波形一秒内有三个波峰),因此选用截止频率为3 Hz的巴特沃斯低通滤波器,最后统计出的波峰的个数即为行走步数。
图1 PDR计步
目前,步长估计方法有多种,但大都需要建立数学模型来描述步长与步态特征之间的关系,比较成熟的步长模型主要有:
(1) 非线性步长模型[14]。加速度变化越大,步长L越大,公式如下:
(2)
式中:amax和amin分别为一步中加速度数据的最大值和最小值;k为模型参数。
(2) 线性步长模型[15]。走路速度越快(单位时间内走的步数越多,即步频越大),步长L越大,公式如下:
L=a×f+b
(3)
式中:f为步频;a和b为模型参数。
PDR的方向来源主要是智能手机内置的陀螺仪和指南针。陀螺仪可以测量运动时的角速度,进行一次积分运算即可得到m时刻的相对角度θm,公式如下:
(4)
式中:wi为i时刻的角速度;Δt为wi和wi+1的时间间隔(即采样频率的倒数)。但由于陀螺仪传感器的精度和采样频率有限(wi包含大量噪声),长时间的积分运算会导致陀螺仪的估计方向与真实方向的偏差越来越大。此外,陀螺仪只能得到一段时间后方向的改变量,需要指南针为其提供初始方向。
指南针由加速度传感器和磁力计构成[16],由于计算航向角需要用到磁力计测量的磁场强度,因而指南针易受室内环境中异常磁场(如钢筋、铁门、电梯和电子设备等)的干扰。但由于指南针不存在误差累积的问题,因此短时间内陀螺仪的精度比指南针高,长时间后指南针表现更好。
由于手机传感器精度有限,测量数据包含噪声,估计步长和方向必定存在一定的误差,步伐检测也存在漏检或误检现象,因此经过式(1)的迭代后PDR的定位误差会逐渐变大。
研究表明,理论上无线信号强度与传播距离成对数关系[13],公式如下:
Px=P0+10λlg(x/x0)
(5)
式中:x0为参考距离(通常选为1 m);P0为x0处的接收信号强度(RSS,单位:dBm);Px为x处的RSS值;λ为路径损耗因子(通常在2~4之间)。
假设行人途经一个蓝牙基站(如图2所示),行人与基站之间的距离应随时间的推移先逐渐减小,而后逐渐增大。
图2 用户从走廊的一端走向另一端
理论上,距离的改变会导致手机接收到的RSS先增大,后减小,仅有一个峰值,如图3所示。
图3 理论上蓝牙信号强度的变化
显然,峰值出现时刻用户距离蓝牙最近(位于正下方附近)。因此,一旦检测出RSS峰值就可以用事先已知的蓝牙基站坐标纠正PDR的位置,从而立刻减小PDR的累计误差。当满足下面的条件时,RSSt被初步定义为峰值。
RSSt>RSSt-1且RSSt>RSSt+1
(6)
式中:RSSt为t时刻的接收信号强度。
由2.1节分析可知,理论上,行人途径一个蓝牙基站时应只有一个波峰。然而,由于室内环境下存在严重的多径效应,实际测量的RSS值与距离并不满足严格的单调递减关系,从而导致RSS曲线通常有多个波峰(如图4所示),如何及时且准确地检测出真正的波峰对蓝牙定位至关重要。
图4 实际RSS曲线存在多个波峰
传统的峰值检测方法为滑动窗法[17-18](如图5矩形窗所示)。首先采用移动平均算法对RSS曲线进行平滑滤波,尽量减少伪峰的个数;然后根据式(6)的定义检测峰值,一旦检测到一个峰值A时,先继续观察一段时间T,倘若没有出现新的峰值或者新的峰值比A小,那么A就被认定为真正的峰值。然而,不同场地的RSS干扰不同,用户每次的行走速度也不同,导致RSS曲线中波峰的个数和距离并不固定,因此滑动窗的宽度T无法提前确定。
图5 滑动窗检测法
本文的做法是,第一步仍采用移动平均算法对RSS曲线进行平滑滤波,减少伪峰个数;第二步只存储所有的RSS值与对应的时间戳,直到无法接收到蓝牙信号或RSS低于设定阈值;第三步,遍历第二步中存储的RSS序列,寻找最大值来作为峰值,这样就能确保识别出的峰值的正确性。
此外,传统的滑动窗法检测峰值存在一定的时间延迟,导致峰值出现时刻到峰值被检测出时刻期间行人已经走过一段距离,如图6所示。倘若直接用基站位置坐标纠正PDR的位置,会产生一定的误差。
图6 峰值检测延迟引起的位移
本文利用PDR方法估计RSS峰值检测期间行人的位移,然后将估计出的位移与蓝牙基站位置坐标B相加,从而得到峰值被检测出时用户所在位置C的坐标,见式(7)。
(7)
针对PDR短期定位精度高、长时间后累积误差太大的特点,2.2节提出利用蓝牙地标的位置来校正PDR的估计位置,从而减小累积误差。此外,还能利用室内特殊地段(如走廊)对人行走方向的约束,校正PDR的步长和方向,进一步提高PDR的定位精度。
2.3.1PDR步长纠正
传统PDR需要构建数学模型来描述步长与步态特征(如1.3节的两种步长模型)之间的关系,但模型的构建存在误差;此外,模型的参数需要离线阶段采集加速度数据与步长数据来确定,但不同用户的模型参数并不相同[1]。
由于人在行走过程步长变化不大,可近似统一为固定步长。如图7所示,假设S为两个蓝牙基站之间的距离,N为步态检测统计的步数,则平均步长L可表示为:
(8)
图7 平均步长估计示意图
2.3.2PDR方向纠正
由1.4节知,虽然陀螺仪长期效果不如指南针好,但其短期内定位精度高,同时不受异常磁场的干扰,因此每隔一段时间用可靠的方向纠正陀螺仪能够抑制陀螺仪的误差累积。考虑到室内条件下走廊和墙壁对人行走方向的约束(只有正与反两个前进方向),当检测到蓝牙RSS峰值时,首先根据UUID判断出用户在哪个蓝牙基站附近,再获取该蓝牙基站所在走廊的朝向,最后根据陀螺仪的估计方向与走廊朝向的差值判断行人是正向还是反向,如图8所示。
图8 利用走廊朝向纠正陀螺仪的示意图
假设陀螺仪的估计方向为θg,走廊的朝向为α(正向)和α+180°(方向),则纠正后行人的前进方向θ可表示为:
(9)
图9所示为利用蓝牙基站和走廊朝向纠正陀螺仪估计的方向的结果,与纠正前相比,估计方向与真实方向的偏差明显减小。由于陀螺仪短时间内定位精度很高,且不受异常磁场的影响,纠正越频繁,估计方向也会越接近真实值。
图9 走廊朝向纠正陀螺仪的效果图
为了测试本文方法的定位性能,在走廊场景下进行了下面的实验。实验者手持手机行走在2.4 m宽的走廊中央,手机以20 Hz的采样频率收集加速度、角速度和磁场强度等数据。走廊的天花板上安装有5个蓝牙基站(平均每隔20 m布设一个),广播频率为10 Hz。行走距离为144 m,重复多次,平均用时2分6秒。
(1) 将改进PDR与传统PDR对比。根据步长和方向的估计方法不同,传统PDR总共有3个方案,分别为:
方案1:利用加速度的大小变化计算步长(式(2)所示),利用指南针计算方向,最后用传统的PDR方法得到每一步的位置。
方案2:利用步频(式(3))计算步长,利用指南针计算方向,最后用传统的PDR方法得到每一步的位置。
方案3:利用步频计算步长,利用陀螺仪(式(4))计算方向,最后用传统的PDR方法得到每一步的位置。
方案4:本文的改进PDR,利用5个蓝牙基站纠正PDR的位置、步长和方向,从而减小PDR的累积误差。
图10所示为估计的轨迹。可以看到定位初期四种方案的效果都很好,但随着时间的推移,基于传统PDR的定位方案由于误差积累导致估计轨迹逐渐偏离真实轨迹,而方案4(本文改进的PDR)利用蓝牙基站间歇地纠正PDR,从而保证了估计轨迹始终接近真实轨迹。此外,对比传统PDR方案可以看到,方案1和方案2的方向估计都来源于指南针,但方案1的定位精度高于方案2,说明基于步频的步长估计模型好于基于加速度大小的步长估计模型;相较于方案2,方案3在定位初期表现更好,但随着陀螺仪误差的累积,定位效果逐渐不如采用指南针估计方向的方案3,进一步验证了前面所提的观点——长时间后指南针的定位精度高于陀螺仪。
图10 4种方案估计轨迹对比
图11展示了实验中每一步的定位误差,可以看到,方案4的定位误差每隔一段时间被纠正一次,总共纠正了5次(分别发生在第18步、第68步、第104步、第138步和第198步),有效地将最大定位误差控制在5 m以内。图12展示了定位误差的累积分布曲线(即定位误差小于特定值的概率),表1总结了四种方案的平均定位误差、最大定位误差和均方误差,可以看到蓝牙峰值纠正能有效减小PDR的定位误差。
图11 每一步的误差
图12 定位误差的累积概率分布曲线
表1 定位误差对比
(2) 步长纠正、方向纠正、位置纠正对定位性能的影响。图12中定位性能是由PDR的位置纠正、方向纠正和步长纠正所共同提升,无法判断三种纠正分别带来的提升。图13为缺少某个纠正所造成的定位性能下降的情况。可以看到,位置纠正对定位精度的提升最大,方向纠正次之,步长纠正所带来的提升最小。
图13 步长纠正、方向纠正、位置纠正对定位性能的影响
(3) 蓝牙基站数量对定位性能的影响。
本文将蓝牙基站作为个数,分析了蓝牙基站个数不同时(分别为0、2、3、4、5个),所提出的定位方法的性能差异。为了计算步长,最少需要2个蓝牙基站,因此这里不考虑1个蓝牙基站的情况。结果如图14所示。
图14 蓝牙基站数量对定位误差的影响
传统PDR不依赖任何基础设施,能提供连续稳定的定位结果,但存在累积误差的问题,本文提出基于蓝牙峰值纠正的改进PDR定位方法,从位置、步长和方向三个方面对PDR进行纠正,有效地抑制了PDR的累积误差。
(1) 根据行人经过蓝牙基站时会出现RSS峰值的特点来定位,并补偿峰值检测期间用户的位移,最后纠正PDR的估计位置。
(2) 考虑到走廊场景中人的前进方向受墙壁的约束仅存在正向和反向两种情况,利用已知的走廊朝向纠正陀螺仪的估计方向。
(3) 人的身高、性别、走路方式不同导致传统步长模型的参数不适用于所有人,本文利用蓝牙基站的定位结果,结合统计的行走步数,在线估计平均步长,从而无需离线训练就能得到针对每个用户的模型参数。
实验结果证明,利用蓝牙峰值纠正传统PDR的位置、步长和方向后,定位精度提升了80%,平均定位误差为2.2 m。下一步可以通过融合粒子滤波算法,增加室内地图作为约束条件,进一步提高定位精度。