留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

地图匹配辅助的KF-PF室内定位算法模型

赵文晔 高井祥 李增科 姚一飞

赵文晔, 高井祥, 李增科, 姚一飞. 地图匹配辅助的KF-PF室内定位算法模型[J]. 武汉大学学报 ● 信息科学版, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707
引用本文: 赵文晔, 高井祥, 李增科, 姚一飞. 地图匹配辅助的KF-PF室内定位算法模型[J]. 武汉大学学报 ● 信息科学版, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707
ZHAO Wenye, GAO Jingxiang, LI Zengke, YAO Yifei. An Indoor Positioning System Based on Map-Aided KF-PF Module[J]. Geomatics and Information Science of Wuhan University, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707
Citation: ZHAO Wenye, GAO Jingxiang, LI Zengke, YAO Yifei. An Indoor Positioning System Based on Map-Aided KF-PF Module[J]. Geomatics and Information Science of Wuhan University, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707

地图匹配辅助的KF-PF室内定位算法模型

doi: 10.13203/j.whugis20150707
基金项目: 

国家自然科学基金 41504032

高等学校博士学科点专项科研基金 20130095110022

详细信息
    作者简介:

    赵文晔, 硕士, 主要从事惯性导航及室内定位算法研究。zwy910817@cumt.edu.cn

    通讯作者: 高井祥, 博士, 教授。jxgao@cumt.edu.cn
  • 中图分类号: P208

An Indoor Positioning System Based on Map-Aided KF-PF Module

Funds: 

The National Natural Science Foundation of China 41504032

the Specialized Research Fund for the Doctoral Program of Higher Education of China 20130095110022

More Information
    Author Bio:

    ZHAO Wenye, master, specializes in inertial navigation and indoor positioning algorithms. E-mail:zwy910817@cumt.edu.cn

    Corresponding author: GAO Jingxiang, PhD, professor. E-mail:jxgao@cumt.edu.cn
图(10) / 表(1)
计量
  • 文章访问数:  665
  • HTML全文浏览量:  15
  • PDF下载量:  513
  • 被引次数: 0
出版历程
  • 收稿日期:  2016-06-30
  • 刊出日期:  2018-05-05

地图匹配辅助的KF-PF室内定位算法模型

doi: 10.13203/j.whugis20150707
    基金项目:

    国家自然科学基金 41504032

    高等学校博士学科点专项科研基金 20130095110022

    作者简介:

    赵文晔, 硕士, 主要从事惯性导航及室内定位算法研究。zwy910817@cumt.edu.cn

    通讯作者: 高井祥, 博士, 教授。jxgao@cumt.edu.cn
  • 中图分类号: P208

摘要: 针对使用智能手机进行行人航迹推算(pedestrain dead reckoning,PDR)时航向角漂移,定位精度不高,误差累积的问题,提出了一种地图匹配辅助的卡尔曼滤波-粒子滤波(Kalman filter-particle filter,KF-PF)多重滤波算法对PDR算法进行优化。在传统PDR算法的基础上,使用KF融合陀螺仪数据和地图信息解算航向角,然后采用基于地图匹配的粒子滤波算法对轨迹结果进行处理。实验结果表明,该方法消除了航向角误差过大对定位结果的影响,在提高室内定位的灵活性的同时增强了定位的稳定性和精度,并通过地图匹配减少了传统粒子滤波采样点数,降低了运算量,使其在手机平台上实时运行成为可能。

English Abstract

赵文晔, 高井祥, 李增科, 姚一飞. 地图匹配辅助的KF-PF室内定位算法模型[J]. 武汉大学学报 ● 信息科学版, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707
引用本文: 赵文晔, 高井祥, 李增科, 姚一飞. 地图匹配辅助的KF-PF室内定位算法模型[J]. 武汉大学学报 ● 信息科学版, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707
ZHAO Wenye, GAO Jingxiang, LI Zengke, YAO Yifei. An Indoor Positioning System Based on Map-Aided KF-PF Module[J]. Geomatics and Information Science of Wuhan University, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707
Citation: ZHAO Wenye, GAO Jingxiang, LI Zengke, YAO Yifei. An Indoor Positioning System Based on Map-Aided KF-PF Module[J]. Geomatics and Information Science of Wuhan University, 2018, 43(5): 806-812. doi: 10.13203/j.whugis20150707
  • 随着移动通信技术的快速发展,基于位置的服务(location based service, LBS)倍受人们的青睐,相较于相对成熟的基于全球导航定位系统的室外定位技术,由于室内环境下卫星信号微弱或根本接收不到信号,所以室内定位需要采用更多新技术,例如无线局域网(wireless fidelity,WiFi)、蓝牙、无线射频识别(radio frequency identification devices,RFID)和行人航迹推算(pedestrain dead reckoning, PDR)[1]等。采用PDR进行室内定位的过程中,相较于实验中常用的微电子机械系统(macrophage electrophoretic mobility inertial measurement unit,MEMS-IMU)传感器,手机自带的惯性传感器成本低,性能差,漂移和偏差问题严重,致使行人航迹推算定位精度不高,稳定性差。针对这一问题,文献[2]通过建立扩展卡尔曼滤波(extended Kalman filter, EKF)模型对多源传感器数据进行融合以得到可靠的航向角[2],但该方法结果的优劣性很大程度上取决于MEMS传感器数据的精度,因此精度较低的手机自带惯性传感器会对结果造成一定程度的影响。文献[3]提出了鞋绑式零速修正(zero velocity update, ZUPT)辅助的行人导航系统,该系统具有短距离导航精度高的特点,但是惯性传感器安置方式的独特性使其在手机端实现变得较为困难。为了进一步削弱传感器本身噪声对精度的影响,人们引入地图信息来进一步提高定位的准确性。融合地图信息主要通过两种方法实现[4]:第一种是粒子滤波,文献[5-6]将室内地理信息数据、传感器信息、无线定位信息融入到粒子的权重值中,对观测值不断进行修正,有效解决定位中穿墙、错位的问题;第二种是使用地图匹配算法识别定位时的某些特殊位置,文献[7-8]利用惯性传感器信息以及路标信息对关键点进行纠正,实现对定位误差的约束。

    为提高室内环境下定位的稳定性和精度,本文在PDR的基础上,使用卡尔曼滤波-粒子滤波(Kalman filter-particle filter, KF-PF)多重滤波对算法进行改进,通过使用KF融合陀螺仪数据和地图信息以解算航向角,然后使用基于地图匹配的粒子滤波对行走轨迹进行修正。

    • 行人航迹推算是一种基于已知用户初始位置的相对定位方法[9],从用户的初始位置(X0Y0),可以利用航向角θ1和位移d1计算下一位置坐标(X1Y1),基于位置计算的迭代过程,就可以根据式(1)计算k时刻的位置坐标。

      $$ \left\{ \begin{array}{l} {X_k} = {X_0} + \sum\limits_{i = 1}^n {{d_i}\cos {\theta _i}} \\ {Y_k} = {Y_0} + \sum\limits_{i = 1}^n {{d_i}\sin {\theta _i}} \end{array} \right. $$ (1)

      式中, θidi(i=1, 2 … k)分别表示第i步的航向角和步长。行人航位推算主要由步态检测、步长估计和航向估计3个步骤组成。

    • 1) 步态检测。由于人体在行走时,加速度具有周期性正弦波的特性,因此可以通过检测加速度正弦波的波峰或波谷个数来计量步伐。使用设计的有限脉冲响应(finite impulse response,FIR)低通滤波器对Z轴加速度(即垂直方向加速度)进行平滑处理。人在行走过程中,身体的摆动或者手部多余的动作会对加速度产生影响,使其产生噪声,形成伪波峰或伪波谷,本文采用多条件约束的波峰-波谷检测技术[10]实现步态自适应识别,该方法的特点是设置多个阈值组对伪波峰/伪波谷进行甄别,从而较大程度地削弱伪波峰/伪波谷对实验结果的干扰。

      2) 步长估计。人在行走过程中步长不是一个固定值,它是一种与速度和加速度有关的变量。国内外研究表明[11],步频的改变必将引起加速度的变化,同时步长也随之发生变化。因此,为了提高准确性,步长应当在行走过程中根据加速度进行实时估算。目前比较成熟的算法模型是Weinberg算法[12],该算法是利用行走过程中的垂直加速度的变化与步长的关系确定步长,其中,垂直加速度的变化是根据一步中加速度的波峰波谷值获取的,该算法的公式为:

      $$ S = k \times \sqrt[4]{{{a_{\max }} -{a_{\min }}}} $$ (2)

      式中,m表示长解算参数,不同的人选取的参数值不同;amaxamin分别表示步态检测中得到的最大加速度值和最小加速度值。

    • 当手握手机对准正前方时,可以利用智能手机自带的方向传感器获取航向角。由于室内环境下周围磁场的干扰以及手机自带传感器性能较差,方向传感器输出的航向角波动较大(如图 1所示),因此无法满足室内定位的精度要求。

      图  1  方向传感器输出值

      Figure 1.  Output of Orientation Sensor

      陀螺仪数据表示的是方向随时间变化的角速度,当人平握手机行走时,陀螺仪Z轴数据可用来判断用户的运动属性,即拐弯和直行。图 2表示了陀螺仪Z轴数据随时间的变化情况,其中出现两个奇异点分别代表了移动用户在行走过程中的两次转弯过程,根据判断出的奇异点。以奇异点为分界点,将走廊进行分块,辅以地图信息中的参考航向角,并采用KF对陀螺仪和参考航向角进行融合。

      图  2  陀螺仪输出值

      Figure 2.  Output of Gyroscope

      分别设航向角和角速度为θg,将状态向量写为Xk=[θk  gk]T,则模型的状态方程为:

      $$ {\mathit{\boldsymbol{X}}_k} = \mathit{\boldsymbol{A}}{\mathit{\boldsymbol{X}}_{k-1}} + \mathit{\boldsymbol{w}} $$ (3)

      式中,状态转移矩阵A=$\left[\begin{array}{l} 1\;\;\;1\\ 0\;\;1 \end{array} \right]$;w代表系统零均值高斯噪声,其协方差矩阵为Q

      该模型的观测向量由参考航向角θo参考以及陀螺仪的输出值go输出构成,则观测方程可写为:

      $$ {\mathit{\boldsymbol{Z}}_k} = \mathit{\boldsymbol{C}}{\mathit{\boldsymbol{Z}}_{k-1}} + \mathit{\boldsymbol{v}} $$ (4)

      式中,Zk=[θko gko]T; 测量关系矩阵C=E2×2v为测量噪声向量,其协方差矩阵为R

      模型初始值是在静止条件下利用加速度计和磁力计获取手机初始姿态角[13],该KF模型的详细流程如图 3所示,其中滤波具体计算公式可参考文献[14]。

      图  3  航向角模型流程图

      Figure 3.  Flowchart of Orientation Model

      图 4显示了基于地图信息的KF算法解算得到的航向角,相较于方向传感器输出的航向角,其走向基本一致,但波动性明显减小。

      图  4  KF融合结果图

      Figure 4.  Results of KF Fusion

    • 与卡尔曼滤波不同,粒子滤波器是用随机样本来直接估计近似状态后验概率密度函数(posterior probability density function,PDF),其公式为[15]

      $$ p\left( {x\left( k \right)|\mathit{\boldsymbol{Z}}\left( k \right)} \right) \approx \sum\limits_{i = 1}^N {{w^i}\left( k \right)\delta \left( {x\left( k \right)-{x^i}\left( k \right)} \right)} $$ (5)

      式中,p(·)和δ(·)分别代表后验概率和狄拉克函数;N代表所有的粒子数;xi(k)代表第i个粒子k时刻坐标的先验估计值;x(k)代表观测值,即利用第1节的PDR算法获取的k时刻的坐标;wi(k)是其相对应的权值,所有的权值被归一化。

      粒子滤波的优点在于适用于非线性和噪声非高斯问题的解决,常用的粒子滤波有很多种,本文采用的是辅助粒子滤波(auxiliary sampling importance esampling,ASIR),该算法主要包括6个步骤:

      1) 初始化。根据先验概率p(x(0))产生粒子群{xi(0)}i=1N

      2) 预测采样。假定人行走的过程服从基本运动方程,则对于每个粒子xi(k)=[xi(k) yi(k) vxi(k) vyi(k)],新的粒子xi(k+1)可以使用转换式(6)得到:

      $$ \left[\begin{array}{l} {x^i}\left( {k + 1} \right)\\ {y^i}\left( {k + 1} \right)\\ x_x^i\left( {k + 1} \right)\\ v_y^i\left( {k + 1} \right) \end{array} \right] = \left[\begin{array}{l} 1\;\;0\;\;\Delta t\;\;0\\ 0\;\;1\;\;0\;\;\;\Delta t\\ 0\;\;0\;\;1\;\;\;\;0\\ 0\;\;0\;\;0\;\;\;\;1 \end{array} \right]\left[\begin{array}{l} {x^i}\left( k \right)\\ {y^i}\left( k \right)\\ x_x^i\left( k \right)\\ v_y^i\left( k \right) \end{array} \right] + \left[\begin{array}{l} \frac{{\Delta {t^2}}}{2}\;\;\;0\\ 0\;\;\;\;\;\frac{{\Delta {t^2}}}{2}\\ \Delta t\;\;\;\;\;0\\ 0\;\;\;\;\;\;\Delta t \end{array} \right]\left[\begin{array}{l} {a_x}\left( k \right)\\ {a_y}\left( k \right) \end{array} \right] $$ (6)

      式中,xi(k)和yi(k)分别代表k时刻北方向和东方向上的坐标;vxi(k)和vyi(k)分别代表k时刻北方向和东方向上的速度值;Δt为1.1节中步态检测所获取的每走一步的时间;ax(k)和ay(k)代表加速度值,本文算法将其视为服从标准正态分布正态分布N~(0, σ2)的随机数,而非1.1节中使用的加速度计的输出值。

      3) 重要性采样。根据观测位置与预测位置的距离确定粒子xi(k+1)的权值wi(k)=[wxi(k)  wyi(k)]T,其中,wxi(k)和wyi(k)分别代表X方向和Y方向坐标的权值。

      4) 归一化。根据wxi(k)=wxi(k)/$\sum\limits_{i = 1}^N {w_k^i\left( k \right)} $和wyi(k)=wyi(k)/$\sum\limits_{i = 1}^N {w_y^i\left( k \right)} $对第k步坐标的权值进行归一化处理。

      5) 重采样与粒子更新。根据归一化权值进行样本重采样,尽可能留下并复制高权值粒子,去除低权值粒子。令wi(k)=(wxi(k)+wyi(k))/2,u为0~1之间的任意数,如果$\sum\limits_{i = 1}^N {{{\overline w }^i}} \left( k \right) \ge u$,则对n个粒子进行重采样,将k时刻权重较大的x值赋予j时刻权重较小的x值,x(j)=x(k),再根据公式xi=$\sum\limits_{k = 1}^N {x_k^i/N} $更新粒子。

      6) 计算结果。采用基本的粒子滤波算法进行计算。

    • 对于室内定位的研究,建筑地图是非常有用的信息来源,因为很多与位置相关的信息都可以从建筑结构中提取,例如门或墙壁的位置。这些信息有助于减少不确定的行走轨迹,因此融合地图信息和PDR轨迹坐标,可以有效减少无效粒子数,并提供更可靠的位置信息。当一步预测的粒子越过可通行区域时(如越墙),则将它的权重值赋为0,公式为[16]

      $$ w_k^i = \left\{ \begin{array}{l} 0, \;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;{\rm{不可通行区域}}\\ \frac{1}{{\sqrt {2\pi } \sigma }}{\rm{e}}\left[{-\frac{{{{\left( {{x^i}\left( k \right)-x\left( k \right)} \right)}^2} + {{\left( {{y^i}\left( k \right)-y\left( k \right)} \right)}^2}}}{{2{\sigma ^2}}}} \right]\;, \;\;\;{\rm{其他}} \end{array} \right. $$ (7)

      式中,x(k)和y(k)分别代表北方向和东方向上的PDR轨迹坐标;σ代表了理论上的方差值,本实验中将其设为1。

      粒子滤波能否在手机端实现,很大程度上取决于运算量,即运算时间的多少,随着粒子数的增加,运算时间也随之增加。从图 5中可以看出,当粒子数达到300时,标准PF的测量误差趋于稳定,大约在3 m左右,但运算时间达到4.8 013 s,相当于行人移动12步的时间,实时性较差。

      图  5  标准PF不同粒子数的运算时间及中误差

      Figure 5.  Mean Square Error and Computation Time for Different Particles of PF

      图 6可以看出,基于地图匹配的PF算法于粒子数100处收敛,且较经典方法来说精度与稳定性均有一定程度的提高。而运算速度为0.559 6 s,大约为行人移动1~2步的时间,实时性较高,基本可以满足手机的实时室内定位。

      图  6  地图匹配PF不同粒子数的运算时间及中误差

      Figure 6.  Mean Square Error and Computation Time for Different Particles of Map-Aided PF

    • 本文提出的室内定位算法模型的流程如图 7所示。首先,利用有限长单位冲激响应滤波器(finite impulse response, FIR)低通滤波对垂直加速度进行处理,根据处理后的加速度数据进行步态检测和步长估计;接着,使用KF融合陀螺仪数据和地图信息以解算航向角;然后,使用PDR算法计算用户行走轨迹;最后,使用基于地图匹配的粒子滤波对轨迹进行修正。

      图  7  系统流程图

      Figure 7.  General Flowchart

      本文采用三星GALAXY S4智能手机集成的传感器作为惯性测量单元,在中国矿业大学环境与测绘学院4楼建立实验场,如图 8所示。将实验场划分为走廊线性区域、拐角和不可通行区域,采用自主开发软件进行数据采集。实验过程中,为了获取准确的数据,实验者应将手机对准正前方,从起始点开始沿走廊正中行走,尽量保持手机的平稳,避免多余晃动,步伐尽可能保持匀速平稳,保证加速度计的稳定输出,直到走廊尽头。传感器数据采样频率设置为50 Hz。

      图  8  实验场区域图

      Figure 8.  Test Area

      采用4种方案进行室内定位实验:

      1) 方案1。利用手机自带方向传感器原始数据作为航向角进行PDR解算。

      2) 方案2。利用KF融合陀螺仪数据和地图信息解算的航向角进行PDR解算。

      3) 方案3。利用标准PF对方案2的轨迹坐标进行处理。

      4方案4。利用基于地图匹配的PF对方案2的轨迹坐标进行修正。

      图 9给出了4种方案解算的位置轨迹,其中方案3和方案4的粒子数都设置为100,图 9中的黑色点表示各个方案解算那一时刻的位置坐标。由于实验者是在走廊上以较匀速、稳定的步伐行走,因此两点间的距离应大致相当,且实际轨迹图应该位于地图的走廊区域,不应到达不可通行区域。

      图  9  定位结果图

      Figure 9.  Positioning Results

      图 9(a)中可以看出,当以方向传感器输出的原始值作为航向角时,利用PDR算法解算的位置轨迹偏离真实轨迹,且随着时间的推移,误差积累的问题越来越严重。方案2利用KF融合陀螺仪数据和地图信息获取航向角,相较于方案1,其解算出的位置轨迹(如图 9(b))与真实轨迹更加吻合,且累计误差明显地减小,但随着时间的推移,轨迹依然会穿越不可通行区域。由于方案3中的粒子缺乏约束,更多的依赖于方案2的轨迹坐标,且粒子数较少,使得其轨迹波动性、随机性较大,其图形走势与方案2相似,相较于方案2,轨迹并未被优化。如图 9(d)所示,方案4利用基于地图匹配的粒子滤波对方案2的轨迹进行修正,轨迹不仅被限制在走廊区域内,且与走廊中线大致吻合,累积误差和波动性基本被消除。

      为进一步分析4种解算方案的解算精度,将走廊中线作为真实轨迹,分别计算了3种方案的误差序列(图 10),从图 10中可以明显看出3种定位方案的精度优劣层次,方案1、方案2、方案3的轨迹明显地偏离真实轨迹,且随着时间的推移,累积误差越来越大,方案3中由于粒子的随机性,轨迹波动性很大;相较于方案1、方案2、方案3,方案4的轨迹与真实轨迹吻合度高,不存在误差累积现象,且轨迹较平滑。

      图  10  4种方案误差图

      Figure 10.  Error of 4 Schemes

      表 1中的中误差、平均误差和最大误差揭示了方案4最可靠和精确的定位结果。实验中,根据中误差精度,方案2的定位结果相较于方案1提高了75%,而均误差和最大误差分别降低了77%和64%;相较于方案2,方案3的定位精度略微提高了6%,最大误差下降了2%,但由于其波动性较大,平均误差增加了6%;基于地图匹配的粒子滤波算法解算结果与标准粒子滤波结果相比,其定位精度提高了62%,最大误差下降了60%,同时相较于方案2,其平均误差降低了58%。从上述比较中可以看出,融合了地图信息和PDR轨迹的粒子滤波算法在准确性和可靠性上都有一定程度的提高,且减少了累积误差,因此该方法在一定程度上优于其他算法。

      表 1  4种方案的误差分析/m

      Table 1.  Error Analysis of Different Location Algorithms/m

      方案 中误差 平均误差 最大误差
      方案1 10.191 4 9.278 9 14.206
      方案2 2.517 8 2.085 0 5.036 2
      方案3 2.378 1 2.217 8 4.928 5
      方案4 0.899 8 0.860 4 1.948 2
    • 本文分析了融合地图信息和PDR轨迹的粒子滤波在室内定位中的应用情况,实验结果表明该方法可以在一定程度上提高室内航位推算的精度。

      1) 根据陀螺仪Z轴数值在转弯时会增大这一特点,本文提出了通过设定阈值辨别用户的瞬时运动状态,并辅以地图信息,使用KF融合解算航向角,相比于直接使用手机自带方向传感器数据作为航向角,大幅减少了行人航位推算的积累误差,提高了定位精度。

      2) 基于KF融合陀螺仪数据和地图信息不能完全解决误差累积问题,本文提出通过基于地图匹配的粒子滤波对轨迹进行修正,进一步抑制了行人航位推算的误差积累,相比于单对航向角进行修正的方法,提高了航位推算技术的精度与稳定性。

      本文通过纠正航向角与使用粒子滤波纠正轨迹等方法提高了行人航位推算的定位精度,下一步可以通过融合WiFi定位算法,增加WiFi数据作为约束条件,进一步提高定位的精度。

参考文献 (16)

目录

    /

    返回文章
    返回