基于惯性传感器的行人室内定位算法*
2019-12-20寇彩云张会清
寇彩云, 张会清, 王 普
(北京工业大学 信息学部,北京 100124)
0 引 言
目前,以微机电系统(micro-electro-mechanical system,MEMS)惯性传感器进行室内定位[1~4]的技术可以分为两类,以行人运动姿态为研究的行人航迹推测和以惯性导航解算算法的行人室内定位。Levi R W和Judd T在1996年提出了行人航迹推算法[5],根据人员行走的步态特征,通过加速度传感器获得室内人员的运动数据,通过算法估计行人的单步步长和行走的步数,由陀螺仪获得人体姿态信息。2012年瑞典皇家工学院提出了一个开源的、实时的以鞋绑式惯性传感器为基础,并应用零速度算法修正的惯性定位系统[6],且其设备成本低、短距离定位导航准确度高。国内很多高校如西北工业大学、国防科技大学等也进行了一些基础理论、算法的研究实验工作。导航、制导与控制专业的科研人员和一些公司也在逐步跟随国外的研究步伐。
由于鞋绑式的惯性器件固定于脚面,每次固定的水平位置不同会导致采集的数据有误差,本文提出采用零偏置校正算法解决上述问题;在进行长距离加速度积分时会有累积误差的存在,本文采用改进的零速度检测算法和频域积分算法分解决上述问题。
1 数据采集
将惯性器件尽量呈水平状态固定到脚面上,安卓手机开发的APP软件通过蓝牙连接到惯性器件,将行人行走时的三轴加速度数据,手机内置的电子罗盘的方向数据和三轴角速度数据通过蓝牙传输到手机上并进行存储。如图1。
图1 Android手机数据采集画面
2 数据处理
2.1 零偏置校正算法
由于惯性器件采用鞋绑式,每次固定的位置无法达到理想的水平状态,造成了静止状态时所测得的三轴加速度值不为零,且对零速度检测算法的阈值设定也会因每次固定位置不理想而造成阈值每次都会变,阈值的变化也会造成最终结果的误差。
零偏置校正算法是对每次测量数据的初始静态数据求均值,行人行走时的动态数据减去初始静态数据均值,以此保证静态时三轴加速度数据为零,满足惯性器件理想状态下的水平固定位置状态。因为采集数据的设备每秒采集100组数据,为了保证采集到的数据为静止状态的数据,所以本文取采集数据时的前50个数取求均值作为初始误差
(1)
以采集的数据减去初始误差作为行人真实行走数据。
2.2 改进零速度检测算法
积分误差会随着时间的推移而累积,用改进的条件判断法进行零速度检测,当检测到行人运动的“零速度”时,触发零速度修正,对数据进行置零校正;对行人运动的三轴加速度和三轴角速度进行阈值设定,当小于一定范围时视为静止状态。
由于脚着地的时候,只受到重力的作用,此时利用合加速度的幅值、方差、合角速度的幅值和方差在给定的阈值范围内来判断静止时刻。
(2)
最后,将单个条件结果进行“与”运算,求出脚着地,即“零速度”的时刻c=c1&c2&c3&c4。
对处于零速度时刻的数据进行置零校正。
2.3 频域积分
将校正后的数据进行没有累积误差频域积分[7],进行傅里叶逆变换后得到行人更准确的位移信息。
设一次积分前的信号为v(n)(0 (3) 将每个频率分量的信号值V(k)转换为一次积分后有 (4) 再将D(k)逆变换,即可得到输入信号v(n)的一次精准的积分。 首先用8字校正法校正手机中的电子罗盘[8],手机电子罗盘的优点是能提供绝对的航向值且使用方便。对电子罗盘获取的数据首先使用滑动均值滤波,减小数据的波动,由于电子罗盘本身的原因,在向南方向行走时,所获取的电子罗盘的数据会突然地跳变,对获取的航向会有很大的影响,针对此问题采用角度补偿的方法进行校正。滑动均值处理的阶数选为50,当前后时刻的角度突然地跳变超过180°时,是在向南的方向,此时在[-180°,-170°]之间产生一个随机的数作为此时的航向角,当前后时刻的角度跳变超过30°而小于180°时,则使用陀螺仪的角度作为此时的航向角。 系统使用了集成蓝牙HC—06模块和MPU6050惯性传感器,集成了加速度计、角速度计和磁力计,不需要借助于外界任何的信号与装置,且结构简单、抗干扰性强等优点。根据行人的运动特点,系统采用鞋绑式MPU6050惯性传感器和手机相结合的数据采样方式。模块固定在行人脚面,行人手持手机正对行走方向。定位算法的流程如图2。 图2 行人导航定位算法流程 算法设计验证及分析平台为MATLAB R2010a。 1)零偏置校正算法验证 校正结果如图3所示,经过零偏置校正后,静止状态下加速度数据值基本为零,数据准确度得到了提升,对零速度校正的阈值设定也提供了方便。 图3 零偏置校正结果 2)改进的零速度校正算法验证 对所采集的加速度、角速度、加速度方差、角速度方差进行阈值设定,当零速度时刻c=1时,将这一时刻的加速度值置零,所得到零速度检测结果和姿态角检测如图4。 图4 零速度校正和姿态角验证结果 3)频域积分验证 对行人行走的二维平面的x轴和y轴的速度数据进行离散化并进行积分,积分结果如图5所示。 图5 x和y轴加速度频域积分验证 4)均值滤波与角度补偿算法验证得到的行人航向角数据如图6所示。 图6 行人航向角结果 对行人的x,y轴加速度数据进行时域内二次积分,将x,y轴积分数据作为横纵坐标画出其轨迹,如图7所示。 图7 无向时域和频域积分 由图7可以看出,时域积分画出的无向运动轨迹褶皱较多,而频域积分画出的无向运动轨迹则比较顺滑流畅,因为行人在行走过程中是按直线行走,不会不停地左右变动,因此频域积分数据更准确一些。 图8为改进前轨迹。图9为经过零速度检测算法,时域和频域积分算法,航向角使用滑动均值滤波处理后的行人行走的轨迹(算法1),从图中可以看出在行人行走时偏离了实际的路线。但频域积分比时域积分更接近实际路线。图10为经过改进零速度检测算法,频域积分算法,航向角使用滑动均值滤波和角度补偿算法处理后的行人行走的轨迹(算法2),其中,加速度幅值取2.4 m/s2,加速度方差取0.7 m/s2,角速度幅值取25°/s,角速度方差取2 000°/s;由图可知,所得的运动结果比改进算法前更准确。 图8 改进算法前轨迹 图9 算法1轨迹 图10 算法2轨迹 表1为实际值、算法改进前、算法1、算法2各拐点值与实际值误差绝对值。本文所用的算法有效提高了运动轨迹的准确度。 表1 拐点误差绝对值对比 本文分析了基于零偏置校正算法、改进零速度检测算法和频域积分算法的原理和实现方法,指出了零偏置校正对加速度数据的影响,并提出了运用改进零速度检测算法和频域积分算法减小累积误差对运动结果的影响。并提出了运用滑动均值滤波和角度补偿法处理电子罗盘的数据,结合陀螺仪得到更准确的行人航向角,测试表明,零偏置校正算法提高了原始采样数据的准确度,改进零速度检测算法和频域积分减小了累积误差,滑动均值滤波和角度补偿算法提高了航向角的准确度,将算法融合后得到行人运动轨迹,实验结果表明,本文算法提升了行人运动轨迹的准确度。2.4 均值滤波与角度补偿算法
3 定位算法设计
4 实验测试仿真
5 结束语