基于IMU设备的室内行人航位推算

2019-01-07 11:57,,,
计算机测量与控制 2018年12期
关键词:陀螺仪步数步长

,,,

(浙江大学城市学院 计算机与计算科学学院,杭州 221116)

0 引言

一个人的位置信息对于如今的物联网时代无疑是举足轻重的。在室外,人们可以依靠全球定位系统(GPS)来获得自己的实际位置信息以及行走的路径,但是,一旦走入室内,全球定位系统的能力便发挥不出来,人们在室内的位置信息,行走路径变成了不可捉摸的事。

室内定位就是在一定程度上解决上述的难题。现如今,有很多室内定位的方法。大多数的寻迹、定位方案都需要与外部设备连接才能达到预期效果,如基于红外、超声波、超宽带、射频识别、Wi-Fi信号。也有基于手机内置传感器的行人寻迹方案,这也是我们将要提出并加以改进的方向。

具体来说,典型的红外线室内定位系统如Active badges使待测物体附上一个电子标识,该标识通过红外发射机向室内固定放置的红外接收机周期发送该待测物唯一ID,接收机再通过有线网络将数据传输给数据库。这个定位技术功耗较大且常常会受到室内墙体或物体的阻隔,实际效果并不能令人满意实用性较低[1]。

超声波定位目前大多数采用反射式测距法。系统由一个主测距器和若干个电子标签组成,主测距器可放置于移动机器人本体上,各个电子标签放置于室内空间的固定位置。超声波定位能做到较高的精度,但是在传输过程中衰减明显最终影响其实际效用[1]。

超宽带室内定位技术常采用TDOA演示测距定位算法,通过信号到达的时间差,通过双曲线交叉来定位的超宽带系统包括产生、发射、接收、处理极窄脉冲信号的无线电系统。而超宽带室内定位系统则包括接收器、参考标签和主动标签。定位过程中由接收器接收标签发射的信号,通过过滤电磁波传输过程中夹杂的各种噪声干扰,得到含有效信息的信号,再通过中央处理单元进行测距。这类的定位精度很高可以达到厘米级,但是成本极高,并不能普遍使用;定位计算分析这些方法在定位的精度上其实是可行的,但是上述的定位技术都要依靠相应的基础设施,而这无疑是增大了成本,同时耗费更多的人力、物力[2-3]。

射频识别利用了电感和电磁耦合或雷达反射的传输特性,实现对被识别物体的自动识别。如ZigBee技术,它应用于较短的距离无线通信、面向无线个人局域网。此类方案定位精度大概在2米左右,虽然能适应室内定位的基本要求,但是网络稳定性成为制约其发展的瓶颈容易受到环境的干扰[4]。

最后,基于Wi-Fi信号的室内定位价格合理、精度高是现今采用最多的计算行人航位、估计室内位置的方法,但是Wi-Fi定位不仅需要每个室内环境的地图、还需要预先对信号进行训练,而这一过程往往不是那么轻而易举的达成,需要有一定的相应工作经验的人才能胜任,并且需要耗费大量的时间并在后期管理上有一定的挑战性[5]。

根据上述所说,我们应当找寻一种相对来说更优的方法,它能够在保持精度的情况下,减少对基础设备的依赖,减少人力、物力的成本。我们提出了基于测量单元设备(IMU)的行人轨迹推算的方法。此方法基于大多数智能手机自带的加速度计、陀螺仪、磁力计,结合传感器数据与相应的算法,能够较准确的计算得到行人在室内行走的轨迹线路。

在文章接下来的部分,我们会在第二节讲述自己的算法架构及流程,在第三节讲述自己的实验结果,在第四节对自己的工作进行总结以及提出一些未来能够改进的想法。

1 基于IMU的室内定位推算

如图1所示,我们将整个计算流程分为三部分,简要来说,分别从每个传感器出发进行相应的计算工作。通过获取陀螺仪3个方向上的实时数据,采用姿态矩阵解算的方法获得当前时刻人持手机时的姿势以及方向姿态信息,再将其结合加速度计得到的相应的位置与航向信息,结合数据的预处理,可以估计出行人的步长,通过陀螺仪与磁力计进行方向融合,更精准的推算出行人的航向角度,结合方向与行走的步长,理论上我们便可以获得一个行人的轨迹信息。

图1 算法流程图

1.1 姿态解算

由于我们手持设备的时候其实是基于本地坐标系统的,但是在后续的计算中,我们都是需要在全球坐标系统上进行验算,因此,我们需要引入相应的方法进行坐标系统的转换[6]。

我们采用四元素法进行坐标系统的转换,这其实本质上是一个姿态解算的过程,针对的场景是行人在以不同方式手持设备。因为四元数法只需要对线性微分方程组中的4个未知量进行解算,比方向余弦法等其他计算方法的计算量小,而且计算方法简单,易于操作,是比较实用的工程算法。

四元数Q表示如下:

(1)

(2)

(3)

由上式可算出每个时刻的四元数,进而可获得相应姿态矩阵如下:

(4)

通过该姿态矩阵,可实现从全球坐标系到导航坐标系的变换[7]。后续的内容中,若无特殊申明,所有数值都是相对于全球坐标系,即以经过姿态解算的步骤。

1.2 步数估计

行人在室内移动的距离可以通过检测行人的步数并估计行人的步长得到,因此,如何监测到行人每次的迈步动作获得行人的步数以及如何估算每步的长度是决定最终寻迹效果好坏的关键一环。

1.2.1 步数检测

检测步数这个环节中,我们通过观测加速度计3个方向上的数值信号的变化,结合惯性力、周期性这些思想,对每个轴的方向上进行相应的滤波处理[8]。

1.2.1.1 步数模型

在z轴方向上,我们首先要减去地球重力噪音的干扰(在采取传感器数据的时候就解决好这一问题)。为了减少其他的随机噪音的影响,我们采用一个低通滤波器用滑动窗口的方法去处理数据。

(5)

我们可以从公式中看出在t时间点脚步加速度为at。w是一个滑动窗口,w的大小代表进行参与均值计算的点的数量。这样通过相应计算的处理后,就能搞保留大部分需要的低频属性。通过计数一个周期性步态的顶点,我们选取一系列潜在的步态点作为我们的候选点集,满足下面3个方法的点,我们就当做这确实是一个有意义的点,将其归为有效步数。

(6)

N是采集到的所有样本点数,tpeak是满足α阈值条件下一个有效的步态点的时间点,tpp是一个时间段上,相邻两个波峰之间的时间差,tslope是一个指代了前半部分上升后半部分下降的一个时间点。在我们提出的方法中,我们测试了20组不同身高、体重的人,对不同物理特征的人设定了不同的α阈值以满足多样化的需求。

通过上述可知,我们只需要将3个条件都满足的t点做交集,得到的集合就是有效步态的集合,即:

tstep=tpeak∩tpp∩tslope

(7)

1.2.1.2 实验仿真

我们根据上述模型,测试了相关数据进行了实验仿真,结果图2所示。

图2 步数检测

观察图2的结果可知,通过使用此方法,我们标记出了作为有效脚步的可能性最大的点集。从左上到右下分别是tp、tpp、tpeak以及tslope他们的每个标记点。这一方法可以有效的捕获行人的每次迈步,减少随机噪音的干扰,于实际中也取得了不错的效果。

1.2.1.3 实验改进

除此之外,我们在实验中发现由于阈值设置狭隘,导致检测出的步数较实际步数会有遗漏的情况。对于这种情况,经试验的测试结果与实际数据的比对,我们采取步数补充的方式,每10步补充一步,使最终的步数检测接近实际步数。

1.2.2 步长估计

步长估计在PDR中是比较重要的研究内容。一般有静态和动态两种方式,静态步长估计是将步长确定为一个常数,这种做法比较方便但缺乏精度。动态步长估计一般根据z轴上加速度的落差拟合实际步长获得步长模型。这样的模型虽然比静态模型较为准确,但还是有较大误差。

本文除了z轴上加速度的落差还考虑了身高的影响,将这两者作为神经网络的输入,以步长作为神经网络的输出,训练BP神经网络步长模型,获得了比较精确的步长[9]。

1.3 步长模型

1.3.1 静态步长

静态步长模型把步长设为常数,本文中静态步长lk为65 cm。

1.3.2 动态步长

动态步长模型是步长与z轴上加速度的落差相关,利用线性回归求解系数,有:

1.3.2 神经网络

我们测了5个不同身高人的加速度数据,每人测了6组。

图3 BP神经网络模型

1.3.3 神经网络步长估算

我们测了5个不同身高人的加速度数据,每人测了6组,分别取步长为30~80 cm,用加速度和身高步长数据训练BP神经网络,训练出的模型测试结果如图4所示。

图4 步长估计

图4中,横坐标代表的是每次实验的样本编号,y轴表示步长长度。我们可以看到,预测值与真实值从微观单步数来看,存在一定的误差,但是从宏观上看一段距离的行走,预测值与真实值相差无几。经验算,经训练后的神经网络其预测值与真实值相的平均误差为1.64 cm/步,在可以接受的误差范围内。

1.4 方向估计

1.4.1 方向模型

通过上述的方法,我们已经能够较为准确的推算出行人的步数以及步长,而还剩下一个重要的部分是推算出行人的前行方向,如何准确地推算行人下一步的前行方向在室内寻迹中起到了至关重要的作用。

目前智能手机一般通过陀螺仪和磁力计计算方向。其中磁力计计算方向公式如下所示:

其中:mx,t和my,t为磁力计在x轴和y轴上的取值hdecline为地磁北极和实际正北的地磁偏角。

而陀螺仪直接根据z轴上角速度积分获得当前方向,如下所示:

就陀螺仪来说,设备采集的3个信息分别是俯仰角θ、滚转角φ,偏航角ψ,它们分别来自传感器的x轴、y轴以及z轴。以往陀螺仪最大的缺点在于每个轴上采集的数据会存在一定程度的误差,随着时间的推移,计算得出的航向角度必然会造成较为明显的偏差,因此实时的做一些矫正措施是必要的。然而,在实际实验过程中,我们发现目前市面上的陀螺仪精度相当不错,在我们自己提出的方法上进行运算,得到的航向角的效果卓越,并未有明显的累计误差。

1.3.2 实验仿真

我们走了一个回路并收集数据来测试方向模型的正确性,实验结果如图5所示。

图5 回路转角

观察图5,由于进行的是回路转角的实验,每次行走一段时间后行人转过一个直角,陀螺仪与磁力计检测出来都大致偏转了90°,且经过三次转弯之后角度相对于初始位置大致为-270°,符合后续的实验的精度要求,但更为明显的是在转动过程中,磁力计的波动相对于陀螺仪较大,一定程度上可以说陀螺仪相对更可靠。综上所述,磁力计和陀螺仪在大致趋势上都符合回路的方向变化特点,但相对而言陀螺仪较为平稳,磁力计波动更大,因此我们偏重于使用陀螺仪的数据进行计算,用磁力计的数据进行两者的方向融合。

2 实验及结果

2.1 步长模型比对

针对在步长估计一节中提到的3个模型,我们进行了相应的实验用于测试3种步长模型在实际中的效果优劣。使用测试的数据画出3个轨迹图,如图6。

图6 各个步长模型预测结果

从图中可以很明显中看出静态步长模型的步长预测与实际相差较大,动态步长模型预测的步长偏小故而在总路线上也存在一定的差距,而神经网络模型拟合的步长与线路误差最小,最接近真实轨迹。因此,将神经网络的步长估算代入后续的整个寻迹模型中,效果应当有着不错的提升。

2.2 寻迹实验

实验环境:安卓小米手机(带有磁力计、陀螺仪、加速度计),Android 7.1.2,自制app。

开发工具:Matlab2017a,AndroidStudio。实验结果如图7所示。

图7 寻迹实验结果

图7展示了我们在学校的教学楼进行室内测试的结果。左右两个实验的起始点都为417房间,起始方向180是相对于x轴正方形为0°角而言,分别进行了回路以及长距离行走测试,回路测试中绕着环形走廊走了一圈,总距离在100 m以上,经测试与比轨迹对行走距离误差大概在2~5 m的范围内。可以明显地看出,航向角偏差不明显,转角的方向已经能很好的计算出来,具体角度在行走过程中的变化见图8。在步态检测、步长估计上可能存在较为明显的不足,但是对室内来说这种程度的误差可以接受。

图8 两个寻迹实验的角度偏转

长距离行走测试中角度的计算结果与实际有所出入,但是总体角的偏差幅度不大,如图8所示,陀螺仪的数值其实较为稳定,这在之前的实验中也已经提及,磁力计的波动较为明显,在方向融合过程中,磁力计偶尔会产生一些干扰,但是总体来说,方向角度的计算还是准确的,角度的偏差在可接受的范围内。综上所述,基于自己的设备以及行走轨迹来说,转角的误差在5%之内,行走的路线距离偏差每百米在5 m左右。

3 结束语

本文提出了一种基于IMU设备的室内行人寻迹的计算框架,通过一些基本的传感器采集到的信息数据,进行以下五步处理,载体的姿态解算、根据滑动窗口以及限定阈值的方法下对行人的步数估算、运用BP神经网络对行人步长进行估计、结合磁力计与陀螺仪进行方向融合推算行人的航向。通过大量的实验,可以得到在具有陀螺仪、加速度计、磁力计的手机设备中,行人每百米行人的距离误差在5米左右,角度的偏差在5%左右,在实际环境中属于可以接受的范围。

室内行人寻迹中,角度检测的问题在如今高精度的硬件设备下已经越来越容易得以处理,本文中单单考虑陀螺仪采集到的方向信息就能取得不错的效果。但是,在估算行人的步数、步长问题上,处理的方案还不是很完善,依旧会有对行人步数估算遗漏、步长不准确的问题,在今后的实验中,可以考虑从一些机器学习的方法中入手,根据行人的当前运动状态去学习行人之后一段时间内步数、步长的变化,这其实可以在设计神经网络的时候加以改进。

猜你喜欢
陀螺仪步数步长
KD514:陀螺仪船桨空间姿态捕捉方法
基于Allan方差分析的陀螺仪漂移误差辨识与仿真复现
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
基于EMD的MEMS陀螺仪随机漂移分析方法
楚国的探索之旅
一种改进的变步长LMS自适应滤波算法
基于变步长梯形求积法的Volterra积分方程数值解
一种非线性变步长LMS自适应滤波算法
微信运动步数识人指南
国人运动偏爱健走