留言板

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

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

基于卡尔曼滤波的WiFi-PDR融合室内定位

周瑞 袁兴中 黄一鸣

周瑞, 袁兴中, 黄一鸣. 基于卡尔曼滤波的WiFi-PDR融合室内定位[J]. 电子科技大学学报, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015
引用本文: 周瑞, 袁兴中, 黄一鸣. 基于卡尔曼滤波的WiFi-PDR融合室内定位[J]. 电子科技大学学报, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015
ZHOU Rui, YUAN Xing-zhong, HUANG Yi-ming. WiFi-PDR Fused Indoor Positioning Based on Kalman Filtering[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015
Citation: ZHOU Rui, YUAN Xing-zhong, HUANG Yi-ming. WiFi-PDR Fused Indoor Positioning Based on Kalman Filtering[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015

基于卡尔曼滤波的WiFi-PDR融合室内定位

doi: 10.3969/j.issn.1001-0548.2016.02.015
基金项目: 

国家科技支撑计划 2012BAH44F00

详细信息
    作者简介:

    周瑞(1974-),女,博士,副教授,主要从事定位技术、位置服务、嵌入式系统等方面的研究

  • 中图分类号: TP393

WiFi-PDR Fused Indoor Positioning Based on Kalman Filtering

图(4) / 表(2)
计量
  • 文章访问数:  4926
  • HTML全文浏览量:  1544
  • PDF下载量:  393
  • 被引次数: 0
出版历程
  • 收稿日期:  2014-11-12
  • 修回日期:  2015-07-16
  • 刊出日期:  2016-01-25

基于卡尔曼滤波的WiFi-PDR融合室内定位

doi: 10.3969/j.issn.1001-0548.2016.02.015
    基金项目:

    国家科技支撑计划 2012BAH44F00

    作者简介:

    周瑞(1974-),女,博士,副教授,主要从事定位技术、位置服务、嵌入式系统等方面的研究

  • 中图分类号: TP393

摘要: 为降低室内环境复杂性对WiFi指纹定位的影响,提出将支持向量机(SVM)分类与回归分析相结合的WiFi指纹定位算法,以提高定位精度。在基于智能手持设备惯性传感器的行走航位推算(PDR)中,为降低惯性传感器的误差及定位误差的累积,通过状态转换的方法识别行走周期并进行计步,提出对原始加速度数据进行预处理和根据实时加速度数据动态设置状态转换参数的算法。在改进的WiFi定位算法及PDR算法基础上,提出使用联邦卡尔曼滤波融合两种方法,并根据人体运动学确定各级滤波器的状态方程和量测方程。实验证明了该算法的有效性。

English Abstract

周瑞, 袁兴中, 黄一鸣. 基于卡尔曼滤波的WiFi-PDR融合室内定位[J]. 电子科技大学学报, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015
引用本文: 周瑞, 袁兴中, 黄一鸣. 基于卡尔曼滤波的WiFi-PDR融合室内定位[J]. 电子科技大学学报, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015
ZHOU Rui, YUAN Xing-zhong, HUANG Yi-ming. WiFi-PDR Fused Indoor Positioning Based on Kalman Filtering[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015
Citation: ZHOU Rui, YUAN Xing-zhong, HUANG Yi-ming. WiFi-PDR Fused Indoor Positioning Based on Kalman Filtering[J]. Journal of University of Electronic Science and Technology of China, 2016, 45(3): 399-404. doi: 10.3969/j.issn.1001-0548.2016.02.015
  • 无线定位已成为工业、科研、医疗和日常生活中不可缺少的技术。但是,每种定位方法在其精度、鲁棒性、成本、适用环境等方面各不相同。目前还没有一种单一的无线定位技术能够同时满足定位准确、实时、适应性强、可靠性高和成本低的特点。多传感器融合定位通过对各种独立的传感器信息进行融合,达到各种传感器信息互补和协同工作的效果,从而提高整个系统的有效性[1]

    目前基于WiFi的定位获得了广泛应用[2, 3, 4]。WiFi定位通常采用指纹定位算法,通过在目标点采集来自各个无线接入器(access point,AP)的信号强度(称为信号指纹)来确定目标点的位置坐标。由于室内环境的复杂性及各种干扰,WiFi指纹定位精度不高,阻碍了其更广泛的应用。小型低功耗惯性传感器已经成为各种智能手持设备的标准配置,为基于手持移动设备的行走航位推算(pedestrian dead reckoning,PDR)提供了可能[5, 6, 7, 8]。PDR能在不依赖于外部信息的条件下连续自主定位,并且短期内噪声小、稳定性好。但是,普通手持移动设备上内置的惯性传感器精度不高,同时人在行走中存在肢体的不规律晃动,因此PDR存在定位误差且会随时间累积,导致长时间连续定位误差较大。

    本文首先改进了WiFi定位算法,采用基于支持向量机(support vector machines,SVM)的WiFi定位算法,提出将SVM分类与回归分析相结合进行精确定位。改进了PDR算法,根据实时加速度曲线对行走周期进行状态划分,使用状态转换来描述行走周期,进行行走计数。为了降低传感器噪音和人行走中的不规律带来的影响,提出对原始加速度数据进行预处理和根据实时加速度数据动态设置状态转换参数。在改进的WiFi定位算法和改进的PDR算法基础上,提出使用联邦卡尔曼滤波(Federated Kalman filtering)将两种方法进行融合,获得更精确和稳定的定位结果。实验结果表明:基于SVM的WiFi定位算法能有效地提高定位精度并减小计算复杂度;改进的PDR算法能更准确地统计出步数,使航位推算更精确;经过联邦卡尔曼滤波的融合后,定位系统的精度和稳定性得到明显的提高。

    • 卡尔曼滤波是一类针对线性系统中高斯分布噪声的最优滤波器,是信息融合领域的主流技术。联邦卡尔曼滤波[9]是目前使用最广泛的分散式卡尔曼滤波,它根据系统要求设计成不同结构,或通过信息分配原则将系统信息在各子系统之间进行分配。

    • 在基于联邦卡尔曼滤波的融合定位中,WiFi指纹定位和PDR作为子系统,结构如图 1所示。各子系统i首先将数据Zi输入到各自的局部滤波器,各局部滤波器对数据进行预测和更新后,将局部估计值 ${{\mathbf{\hat{X}}}_{i}}$ 及协方差Pi阵输入到主滤波器。主滤波器经过一次时间更新和最优融合,获得全局最优估计。之后主滤波器将全局估计 ${{\mathbf{\hat{X}}}_{g}}$ 和协方差阵Pg通过信息分配原则反馈到子滤波器中,重置子滤波器的估计值和协方差阵,即:

      $$\left\{ \begin{align} & {{{\mathbf{\hat{X}}}}_{i}}={{{\mathbf{\hat{X}}}}_{g}} \\ & {{\mathbf{P}}_{i}}=\beta _{i}^{-1}{{\mathbf{P}}_{g}} \\ \end{align} \right.\begin{matrix} {} & i=1,2,\cdots N,m \\ \end{matrix}$$ (1)

      式中,βi为子系统i的信息分配系数,满足以下条件:

      $$\begin{matrix} \sum\limits_{i=1}^{N}{{}}{{\beta }_{i}}+{{\beta }_{m}}=1 & 0\le \\ \end{matrix}{{\beta }_{i}}\le 1,0\le {{\beta }_{m}}\le 1$$ (2)

      图  1  基于联邦卡尔曼滤波的WiFi-PDR融合定位

      设子系统i的初始状态值、初始估计协方差、系统噪声和量测噪声分别为 ${{\mathbf{\hat{X}}}_{i,0}}$ 、Pi,0Qi,0Ri,0,系统初始估计协方差和系统噪声分别为Pg,0Qg,0,基于联邦卡尔曼滤波的融合定位算法如下:

      1) 各滤波器的初始估计协方差阵和系统噪声协方差阵设为融合系统的βi-1倍,以保证它们在各子滤波器之间互不相关,即:

      $$\left\{ \begin{matrix} {{\mathbf{P}}_{i,0}}=\beta _{i}^{-1}{{\mathbf{P}}_{g,0}} \\ {{\mathbf{Q}}_{i,0}}=\beta _{i}^{-1}{{\mathbf{Q}}_{g,0}} \\ \end{matrix} \right.$$ (3)

      2) 子滤波器和主滤波器分别进行一次时间更新,有:

      $$\left\{ \begin{matrix} {{{\mathbf{\hat{X}}}}_{i,k/k-1}}={{\mathbf{\Phi }}_{i,\left( k,k-1 \right)}}{{{\mathbf{\hat{X}}}}_{i,k-1}} \\ {{\mathbf{P}}_{i,k/k-1}}={{\mathbf{\Phi }}_{i,\left( k,k-1 \right)}}{{\mathbf{P}}_{i,k-1}}\mathbf{\Phi }_{i,\left( k,k-1 \right)}^{\text{T}}+{{\mathbf{\Gamma }}_{i,k-1}}{{\mathbf{Q}}_{i,k-1}}\mathbf{\Gamma }_{i,k-1}^{\text{T}} \\ \end{matrix} \right.$$ (4)

      3) 子滤波器根据对应量测值进行一次量测更新,有:

      $$\begin{matrix} {{{\mathbf{\hat{X}}}}_{i,k}}={{{\mathbf{\hat{X}}}}_{i,k/k-1}}+{{\mathbf{K}}_{i,k}}({{\mathbf{Z}}_{i,k}}-{{\mathbf{H}}_{i,k}}{{{\mathbf{\hat{X}}}}_{i,k/k-1}}) \\ {{\mathbf{K}}_{i,k}}={{\mathbf{P}}_{i,k/k-1}}\mathbf{H}_{i,k}^{\text{T}}{{({{\mathbf{H}}_{i,k}}{{\mathbf{P}}_{i,k/k-1}}\mathbf{H}_{i,k}^{\text{T}}+{{\mathbf{R}}_{i,k}})}^{-1}} \\ {{\mathbf{P}}_{i,k}}=(\mathbf{I}-{{\mathbf{K}}_{i,k}}{{\mathbf{H}}_{i,k}}){{\mathbf{P}}_{i,k/k-1}}{{(\mathbf{I}-{{\mathbf{K}}_{i,k}}{{\mathbf{H}}_{i,k}})}^{\text{T}}}+{{\mathbf{K}}_{i,k}}{{\mathbf{R}}_{i,k}}\mathbf{K}_{i,k}^{\text{T}} \\ \end{matrix}$$ (5)

      主滤波器的量测更新值为时间更新值,即:

      $$\left\{ \begin{matrix} {{{\mathbf{\hat{X}}}}_{m,k}}={{{\mathbf{\hat{X}}}}_{m,k/k-1}} \\ {{\mathbf{P}}_{m,k}}={{\mathbf{P}}_{m,k/k-1}} \\ \end{matrix} \right.$$ (6)

      4) 主滤波器进行一次最优融合为:

      $$\begin{align} & {{{\mathbf{\hat{X}}}}_{g,k}}={{\mathbf{P}}_{g,k}}\left( \sum\limits_{i=1}^{N}{\mathbf{P}_{i,k}^{-1}{{{\mathbf{\hat{X}}}}_{i,k}}}+\mathbf{P}_{m,k}^{-1}{{{\mathbf{\hat{X}}}}_{m,k}} \right) \\ & {{\mathbf{P}}_{g,k}}={{\left( \sum\limits_{i=1}^{N}{\mathbf{P}_{i,k}^{-1}}+\mathbf{P}_{m,k}^{-1} \right)}^{-1}} \\ \end{align}$$ (7)

      5) 主滤波器进行一次信息反馈,根据信息分配系数重置主滤波器和各子滤波器的状态估计、估计协方差阵和系统噪声协方差阵:

      $$\left\{ \begin{matrix} \begin{array}{*{35}{l}} {{{\mathbf{\hat{X}}}}_{i,k}}={{{\mathbf{\hat{X}}}}_{g,k}} \\ \mathbf{P}_{i,k}^{{}}=\beta _{i}^{-1}\mathbf{P}_{g,k}^{{}} \\ \mathbf{Q}_{i,k}^{{}}=\beta _{i}^{-1}\mathbf{Q}_{g,k}^{{}} \\ \end{array} & i=1,2,\cdot \cdot \cdot ,N,m \\ \end{matrix} \right.$$ (8)
    • 假设目标在时间段内以速率在二维空间作匀速直线运动,目标在该时间段内运动的距离为:

      $$l=v\Delta T$$ (9)

      在起始位置和运动方向与北向参考轴夹角θ已知的情况下,可确定目标在该时间段后的新位置:

      $$\left\{ \begin{align} & {{x}_{k}}={{x}_{k-1}}+l\sin \theta \\ & {{y}_{k}}={{y}_{k-1}}+l\cos \theta \\ \end{align} \right.$$ (10)

      可以在二维平面内确定一系列坐标点来代表目标的运动轨迹。人的行走轨迹可以看做由离散的步组成,每一步的终点位置和上一步的终点位置有关。实际中人的每步行走都由加速和减速过程组成,如果知道每一步的开始时刻和结束时刻以及步长,则可以将每步行走等效成一个匀速运动,等效速度为:

      $${v}'=\frac{l}{{{t}_{2}}-{{t}_{1}}}$$ (11)

      假设人在k-1时刻的位置坐标为(xk-1,yk-1),第k步持续时间为ΔTk,则该步东向和北向的等效速度为:

      $$\left\{ \begin{align} & {{v}_{e,k}}={{{{v}'}}_{k}}\sin \theta \\ & {{v}_{n,k}}={{{{v}'}}_{k}}\cos \theta \\ \end{align} \right.$$ (12)

      人在完成第k步后新的位置坐标为:

      $$\left\{ \begin{align} & {{x}_{k}}={{x}_{k-1}}+{{v}_{e,k}}\Delta {{T}_{k}} \\ & {{y}_{k}}={{y}_{k-1}}+{{v}_{n,k}}\Delta {{T}_{k}} \\ \end{align} \right.$$ (13)

      由于人在正常行走过程中相邻两步之间速度变化不大,可以认为在k时刻的等效速度与在时刻k-1的等效速度相等,即:

      $$\left\{ \begin{align} & {{v}_{e,k}}={{v}_{e,k-1}} \\ & {{v}_{n,k}}={{v}_{n,k-1}} \\ \end{align} \right.$$ (14)

      如果将系统状态表示为 ${{\mathbf{X}}_{k}}={{\left[ {{x}_{k}},{{y}_{k}},{{v}_{e,k}},{{v}_{n,k}} \right]}^{\text{T}}}$ ,则从式(13)和式(14)可以得到系统的状态方程:

      $$\begin{align} & {{\mathbf{X}}_{k}}=\mathbf{\Phi }{{\mathbf{X}}_{k-1}} \\ & \mathbf{\Phi }=\left[ \begin{matrix} {{\mathbf{I}}_{2}} & \Delta {{T}_{k}}{{\mathbf{I}}_{2}} \\ 0 & {{\mathbf{I}}_{2}} \\ \end{matrix} \right] \\ \end{align}$$ (15)

      实际系统中存在由运动状态模型建立而带来的位置误差和行走过程中的变速运动给相邻两步之间造成的速度变化。假设k时刻这些系统噪声为Wk-1,可将系统状态方程(15)参考CV模型[10]改写为:

      $$\begin{align} & {{\mathbf{X}}_{k}}=\mathbf{\Phi }{{\mathbf{X}}_{k-1}}\text{+}\mathbf{\Gamma }{{\mathbf{W}}_{k-1}} \\ & \mathbf{\Gamma }=\left[ \begin{matrix} \frac{\Delta T_{k}^{2}}{2}{{\mathbf{I}}_{2}} \\ \Delta {{T}_{k}}{{\mathbf{I}}_{2}} \\ \end{matrix} \right] \\ \end{align}$$ (16)

      式中, ${{\mathbf{W}}_{k-1}}={{\left[ {{a}_{e,k}},{{a}_{n,k}} \right]}^{\text{T}}}$ 为东向和北向的加速度噪声。

    • WiFi定位通常采用指纹定位算法[11, 12],可以认为目标点的位置是在目标点测得的各个AP信号强度的函数。但是由于室内环境不同、接入器类型不同、目标位置相对于接入器的位置和方向不同,相应的信号衰减都不一样,且无线信号在室内存在复杂的衍射、反射、多径等现象,很难获得具体的关于信号强度和位置的依赖关系表达式。SVM是一种基于统计学习理论的机器学习方法,在解决高维和非线性问题方面表现出很多优势[13]。借助于SVM分类和回归,可以获得代表位置和信号强度之间非线性依赖关系的统计模型[14],而不用考虑室内环境因素。

      本文将SVM分类和回归相结合进行精确定位。在SVM分类和回归分析之前,需要根据建筑内布局将整个定位区域划分成若干个子区域,在各个子区域采集信号指纹并对SVM进行训练。实际定位时,算法根据在目标点实时采集的信号指纹,通过SVM分类器确定目标点所在的子区域,然后在该子区域应用SVM回归分析,确定信号强度和位置之间的关系,从而确定具体的位置坐标。

      假设在某个位置点采集的指纹样本表示为 $({{d}_{i}},(x,y),{{r}_{i}})$ ,di为定位子区域,(x,y)为采样点位置坐标,ri为采集到的信号指纹。对于SVM分类,在训练阶段只需要样本的子区域标识和信号指纹两种信息,即(di,ri)。假设样本集合为{(di,ri)|i=1,2,…,n},对于某一个子区域,可以将这些样本分成两类:1) 在这个子区域采集到的样本标志为1;2) 不在这个子区域采集的样本标志为-1。针对每个子区域,建立一个SVM分类器,其用于分类的样本则可以表示为{(ci,ri)|i=1,2,…,n},ci∈{-1,1}。在进行实际定位时,根据在目标点采集到的信号指纹,使用SVM分类器来确定该目标点是否属于某个子区域。为了确定目标点的精确位置坐标,需要在训练阶段对训练样本在该子区域进行回归分析,获得非线性函数fxfy,它们可以将目标点的信号指纹近似地映射成该点的二维位置坐标xy

      在联邦卡尔曼滤波融合定位中,WiFi子系统的状态方程为系统全局状态方程。取k时刻目标的东向和北向位置坐标组成WiFi子系统的量测向量Zk=[xe,xn]T,WiFi子系统的量测方程为:

      $$\begin{align} & {{\mathbf{Z}}_{k}}=\mathbf{H}{{\mathbf{X}}_{k}}+{{\mathbf{V}}_{k}} \\ & \mathbf{H}=[\begin{matrix} {{\mathbf{I}}_{2}} & 0 \\ \end{matrix}] \\ \end{align}$$ (17)

      式中,Vkk时刻的量测噪声序列,满足下式:

      $$\left\{ \begin{matrix} E({{\mathbf{V}}_{k}})=0 \\ \text{Cov}[{{\mathbf{V}}_{k}},{{\mathbf{V}}_{j}}]=E[{{\mathbf{V}}_{k}}\mathbf{V}_{j}^{\text{T}}]={{\mathbf{R}}_{k}}{{\mathbf{\delta }}_{kj}} \\ \end{matrix} \right.$$ (18)

      式中,Rk为量测噪声在时刻k的方差。

    • 人的行走是一个周期性不断重复的过程,不同个体的运动模型之间的差异非常小[15]。由于人体行走的周期性,随身携带的智能移动设备中内置的惯性传感器测得的数据也具有周期性。如果能准确统计出行走步数,再结合每步步长,就能计算出人在一段时间内行走的距离[16]。在初始位置已知的情况下,就可以计算出人的当前位置。对人体行走模型和测得的加速度数据的分析可知,加速度曲线随着人的行走以类似正弦波的规律延伸,加速度曲线中每个完整的正弦波对应一个行走周期,因此对步数的统计实际上就是从加速度曲线中识别出行走周期并计数,而对步长的计算则是对该周期内加速度曲线的二次积分。准确识别出行走周期是PDR的关键。

      手持移动设备内置的加速度传感器精度不高,人行走过程中存在不规律的身体晃动,人持握移动设备的方式也有不同,这些使从加速度传感器获得的数据具有明显噪声,导致行走周期识别的误差。本文提出对原始加速度数据进行预处理以降低噪声干扰,采用简单移动平均(simple moving average,SMA)算法对加速度值进行平滑。

      对于加速度曲线中行走周期的识别,可以将一个行走周期划分成静止、波峰和波谷状态,使用状态转换的方法来识别行走周期。由于人在行走过程中存在速度变化,为降低行走周期识别的误差,本文提出根据加速度曲线的实时变化动态设定状态转换的参数,包括曲线阈值、分界参考值和零参考值。曲线阈值用来进行状态判断,指定静止状态的变化范围和进行波峰波谷的有效性判断。分界参考值是表示各个状态开始和结束的数据点,某个状态只要突破其分界参考值即可认为这个状态结束和下一个状态开始。由于人行走中速度的变化,加速度曲线会出现上下偏移的情况,使用零或其他固定值作为零参考值,计算出的速度和步长误差很大。动态设置零参考值可以降低加速度曲线上下偏移带来的误差,保证计算出的速度和步长的准确性。

      识别出完整的行走周期后,PDR就可以对行走进行计数,并计算步长。通过步长和每一步的起止时间PDR为系统提供人在时刻东向和北向的等效速度 ${{v}_{e,k}}、{{v}_{n,k}}$ ,以及这一步持续的时间。对于PDR子系统组成的滤波子系统,取k状态方程为系统全局状态方程,取时刻目标的东向和北向的等效速度为子系统的量测量 ${{\mathbf{Z}}_{k}}={{\left[ {{v}_{e,k}},{{v}_{n,k}} \right]}^{\text{T}}}$ ,PDR子系统的量测方程为:

      $$\begin{align} & {{\mathbf{Z}}_{k}}=\mathbf{H}{{\mathbf{X}}_{k}}+{{\mathbf{V}}_{k}} \\ & \mathbf{H}=[\begin{matrix} 0 & {{\mathbf{I}}_{2}} \\ \end{matrix}] \\ \end{align}$$ (19)

      式中,Vkk时刻的量测噪声序列,满足下式:

      $$\left\{ \begin{matrix} E({{\mathbf{V}}_{k}})=0 \\ \text{Cov}[{{\mathbf{V}}_{k}},{{\mathbf{V}}_{j}}]=E[{{\mathbf{V}}_{k}}\mathbf{V}_{j}^{\text{T}}]={{\mathbf{R}}_{k}}{{\mathbf{\delta }}_{kj}} \\ \end{matrix} \right.$$ (20)

      式中,Rk为量测噪声在k时刻的方差。

    • 实验场景为大学主楼B1区二楼和三楼,大小为28 m×56 m,设备是基于Android的三星GT-I9103。

    • 本文的实验将SVM分类和回归结合在一起进行定位,选择指纹匹配算法RADAR[11]作为对比实验。从图 2可以看出,基于SVM的算法将目标定位在3 m以内的概率为88.8%,大于RADAR的65.4%;定位误差在5 m以上的概率为0.4%,小于RADAR的13%。

      图  2  基于SVM的WiFi定位和RADAR定位精度对比

      表 1比较了基于SVM的WiFi定位和RADAR及另外两种无线定位方法Probabilistic[17]和ZCFG[18]的定位效果,本文方法的平均定位误差为1.83 m,优于其他几种定位方法。

      表 1  基于SVM的WiFi定位和其他WiFi定位算法的对比

      对比项 SVM/m RADAR/m Probabilistic/m ZCFG/m
      最小误差 0.12 0.04 n/a n/a
      最大误差 5.1 8.36 n/a n/a
      75%定位 2.58 3.32 2.72 3.07
      90%定位 3.45 5.4 3.61 n/a
      平均误差 1.83 2.7 1.84 2.5
    • 本文将改进的PDR算法同几种代表性的PDR计步软件Runtastic Pedometer[19]、Moves[20]和Noom Walk[21]进行了实验对比。对比实验包含人在正常行走、快速行走、跑动和变速行走下的情况,每组实验都是3次实验的平均值,每次走或跑100步。结果如表 2所示。正常步速行走时4种算法的计步误差都不大,但随着行走速度加快或者变速频繁,4种算法的计步误差都随之增加,但本文改进的PDR算法的计步效果最好、稳定,错误率小于2%且对人的速度变化不敏感,计步效果明显优于其他3组。

      表 2  改进的PDR和几种代表性计步软件的计步误差对比

      算法(100步) 常速/步 快速/步 跑动/步 变速/步
      Pedometer 1 2 2 3
      Moves 1 2 3 3
      Noom Walk 0 2 2 3
      本文算法 0 0 1 2
    • 本文将WiFi-PDR融合定位、基于SVM的WiFi定位和改进的PDR在同样环境中进行定位实验。

      图 3为3种算法的实验结果对比。最左侧是起点位置,向右至最右侧后再向左至起点附近,然后回到左下方的房间后停止,整个过程共行走210步,以匀速行走为主。

      图  3  WiFi-PDR、WiFi和PDR绘制的行走轨迹

      图 3a中的点线为基于SVM的WiFi定位绘制的轨迹,它与真实轨迹大体吻合,但重合度并不令人满意。WiFi定位没有使用人行走的方位信息,定位结果会出现小幅度反向跳变,特别是在定位子区域的边界,可能会由于个别样本分类错误而表现得更加明显。

      图 3b中的点线为本文改进的PDR方法绘制的轨迹。它与真实路径的重合度比WiFi高,但存在明显的误差线性累积的现象,当前误差会进一步导致后面的定位结果不准确,而系统无法动态调整。PDR曲线在开始和真实路径比较重合,而到后面分离程度逐渐增大。

      图 3c中的点线是使用WiFi-PDR融合定位算法绘制出的行走轨迹。尽管和真实轨迹稍有不符,但总体上它是与真实轨迹重合度最高的曲线。在WiFi定位误差较大的区域,WiFi-PDR曲线也有较高的定位精度,因为PDR在这些区域的良好表现使融合定位有较高的定位精度。同时WiFi-PDR受误差累积的影响很小,WiFi子系统的滤波结果使它能够对定位结果进行小幅修正。

      图 4显示了WiFi-PDR、基于SVM的WiFi和改进的PDR在实验的不同阶段的平均误差。可以看出WiFi的定位精度几乎不受行走步数的影响,只与定位场景有关;PDR由于误差的线性累积,定位误差理论上会随着步数的增加而增长,但在实验中并不总是符合这种变化趋势,原因是行走中的折返或者转向会抵消部分误差累积;融合定位的误差则较稳定,它一定程度上受到PDR子系统误差累积的影响,但是由于利用了WiFi子系统的信息,能够及时对定位结果进行修正。

      图  4  WiFi-PDR、WiFi和PDR的平均定位误差

    • WiFi定位和PDR是基于智能手持移动设备的室内定位方法,但是WiFi定位精度不高且不稳定,而PDR会出现误差线性累积。本文在改进WiFi定位算法和PDR算法的基础上,提出通过联邦卡尔曼滤波将其进行融合,得到更稳定和精确的融合定位结果。

      1) 改进WiFi定位算法,提出将SVM分类和回归分析相结合进行精确定位,减小室内环境复杂性对定位的影响;

      2) 改进PDR算法,提出对原始加速度数据的预处理算法,降低人体不规律晃动和对设备不同持握方式以及传感器噪声带来的影响,提出根据实时加速度数据动态设定状态转换参数识别行走周期的算法,使步数统计和步长计算更加精确;

      3) 提出通过联邦卡尔曼滤波融合基于SVM的WiFi定位和改进的PDR,根据人体行走运动学建立滤波器的状态方程和量测方程,得到更稳定和精确的定位效果。

      通过与几种代表性WiFi定位算法和计步方法的对比实验表明,基于SVM的WiFi定位能获得更高定位精度,改进的PDR能更精确地统计步数,而融合定位算法充分发挥各子系统的优势,使它在精度和稳定性方面都优于子系统。同时基于联邦卡尔曼滤波的融合系统具有很强的可扩展性,能在滤波器结构没有大改变的情况下增加对新的子系统的支持。融合定位系统在精确性、稳定性、适应性和多样性等方面都具有单一定位系统无法比拟的优越性。

参考文献 (21)

目录

    /

    返回文章
    返回