本发明涉及室内定位方法,尤其涉及一种无需安装额外基础设施的基于MEMS惯性传感器的高精度室内定位方法。
背景技术:
由于互联网的发展、移动设备和个人设备的流行,LBS(Location Based Services)变得越来越重要,用户获得定位信息并将其用于导航、跟踪、监测、信息推送等服务。GPS能够方便地提供室外的个人定位信息,但是由于GPS需要至少接收4颗卫星才能实现定位,因此其定位效果受接收到的卫星信号影响较大,而在室内环境下由于遮挡收不到卫星信号,严重影响了其定位效果。
惯性导航系统具有自主性强,输出频率高,短时精度高等优点,特别是近年来MEMS IMU的迅速发展,使其变得体积小,成本低。利用MEMS IMU室内定位采用行人航位推算(Pedestrian Dead Reckoning,PDR)的方式,可以很好地发挥其自主导航的优势。从目前的室内定位研究状况来看,MEMS室内定位在国外已经是一大研究热点,通过MEMS惯性传感器输出的信息,通过先判断载体运动状态,再进行零速区间检测,进而进行零速修正(Zero Velocity Update),可以很好的抑制MEMS惯性传感器误差积累的情况,同时针对低成本的MEMS IMU陀螺精度较低,不能按照高精度的惯性导航系统初始对准方法进行初始对准,由于磁强计比陀螺稳定因此,引入磁强计辅助航向对准和提供航向补偿。
在MEMS惯性传感器室内定位的过程中,采用零速修正来修正一个漫步周期内积累的误差,因此此过程在提高MEMS惯性传感器定位精度过程中具有重要的意义,而对行走过程中零速区间的检测直接决定了零速修正的精度,国内外查到的资料关于零速区间的检测方法多是设定一个阈值,将相应的检测量与该阈值进行比较,而此阈值的选择往往具有片面性,只能针对某一特定运动状态,而室内脚步可能有多种复杂的运动状态,如走、跑、上楼、下楼等状态,因此检测精度亟待提高。
技术实现要素:
发明目的:为了克服现有技术的不足,本发明的目的是提供一种适合室内环境下自主定位,无需额外安装基础设施的基于MEMS惯性传感器的高精度室内定位方法。
技术方案:为实现本发明的目的,采用如下技术方案:一种基于MEMS惯性传感器
的高精度室内定位方法,包括如下步骤:
(1)将MEMS惯性传感器固联在行人脚上,使MEMS惯性传感器感测到足部的运动状态,实时获取足部的导航信息,导航信息通过蓝牙传输模块实现传输;
(2)行人手持安卓手机,在安卓客户端实时接收导航足部运动状态的MEMS惯性传感器提供的数据,并将数据进行保存;
(3)对数据进行去噪处理;
(4)针对MEMS惯性传感器定位精度低的问题,首先采用零速检测算法得到零速度区间,其次采用零速修正算法结合状态估计算法进行误差修正提高定位精度;其中,零速度区间探测为通过安卓客户端获取到MEMS惯性传感器传送的数据,采用滑动窗口的方法检测零速区间,具体步骤如下:
(a)根据MEMS惯性传感器的加速度计和陀螺仪的噪声特性,在不同运动状态下进行反复实验,得到在相应的运动状态下零速区间段阈值,所述不同运动状态包括正常行走、跑步、上楼梯或者下楼梯;
(b)根据安卓客户端获取到的加速度计的加速度信息,首先通过分析滑动窗口内的加速度的特点、比较相邻时刻加速度的变化以及窗口内加速度最大值和最小值的情况,确定此刻脚步所处于的运动状态,并自动选择该运动状态所对应的零速度检测的阈值;
(c)分别判断在该滑动窗口区间内,比力模值、比力方差以及角速度模值三者是否在阈值范围之内,如果三者同时满足阈值条件则可以断定该区间为零速度区间,获得零速区间后,则该区间即为足部处于零速度的区间;
此时再采用零速修正结合自适应卡尔曼滤波算法,消除一个漫步区间内积累的误差。
(5)安卓客户端通过用户界面显示模块实时显示经过误差修正和补偿后的数据,将运动状态实时呈现给用户。
所述MEMS惯性传感器提供的数据包括三轴加速度计、三轴陀螺仪和三轴磁强计测量的数据。安卓客户端具有对上述数据进行校准的功能,同时可以记录数据和实时处理数据。
所述安卓客户端具有实时显示用户行走轨迹的功能。
步骤(3)中,针对MEMS惯性传感器在足部受剧烈抖动时产生的噪声问题,所述去噪处理方法为小波去噪,可以去除包含在高频信号中的噪声和干扰信号。
步骤(4)中,针对低成本惯性传感器其误差容易随时间发散的问题,所述状态估计算法为自适应卡尔曼滤波算法,采用零速修正算法结合状态估计算法进行误差修正的步骤如下:
通过前述的零速度检测算法可以得到较为精确的零速度区间,在零速区间过程中速度为零,因此导航解算输出的速度即为速度误差。速度误差与陀螺漂移,加速度零偏,姿态角误差之间的关系可以用误差微分方程描述。在误差方程的基础上建立卡尔曼滤波方程,将速度误差作为观测量,估计出姿态角误差、位置误差和其他误差量反馈给导航解算模块,从而达到对系统的误差进行修正的目的。
姿态角误差方程
速度误差方程
位置误差方程
在误差方程的基础上建立卡尔曼滤波方程,将速度误差作为观测量,估计出姿态角误差、位置误差和其他差量反馈给导航解算模块,
选取卡尔曼滤波器的状态量为:
其中表示姿态角误差,δvn表示速度误差;δpn表示位置误差;ε表示陀螺常值漂移,表示加速度计常值零偏,卡尔曼的系统方程表示为
X(t)=FX(t)+W(t)
量测方程速度误差,即
Zk=[δvn]=HkXk
量测量只有在零速区间可以获取,并且量测量和具体运动和干扰情况有关,在通过上述的零速检测算法检测到零速区间后,卡尔曼滤波作时间更新和量测更新,并将估计的误差反馈给系统,进行误差补偿。
所述MEMS惯性传感器和蓝牙模块采用贴片式的硬件设计方法,具有体积小的优点。
有益效果:本发明根据人体行走动力学模型,采用了低成本的MEMS惯性传感器,具有体积小,重量轻的优点,相比与无线定位方式,该系统结构不需要额外的辅助基础设置就可以实现自主定位;本发明采用自适应的阈值匹配方法,对室内定位过程中各种脚步复杂的运动状态都能保持良好的定位精度,具有较强的普及性;针对当前较流行的移动终端,设计了移动端实时接受蓝牙传送的惯性传感器的测量数据,并具有对数据进行保存和处理功能,实时对数据进行误差修正和补偿,同时设计用户交互界面实时的显示用户的行走轨迹。
附图说明
图1为MEMS惯性传感器室内定位系统结构图;
图2为MEMS惯性传感器去噪之前和去噪平滑之后曲线;
图3为零速区间探测方法流程图;
图4为零速区间检测效果图;
图5为安卓客户端界面;
图6为本发明二维平面行走轨迹图;
图7为本发明三维上下楼梯行走轨迹图。
具体实施方式
下面结合实施例和附图对本发明的技术方案作进一步详细说明。
如图1所示,本发明采用的高精度室内定位设备包括:低成本MEMS惯性传感器如MPU9260,MPU6050等、蓝牙传输模块、安卓客户端;其中,安卓客户端包括数据校准模块、数据保存模块、数据处理模块及用户界面显示模块。将MEMS惯性传感器固联在脚上,敏感脚步状态的变化并通过蓝牙传输模块传送测得的参数,并通过安卓客户端接受蓝牙传输模块传送的数据。安卓客户端首先通过数据校准模块分别对三轴加速度计、三轴陀螺仪、三轴磁强计进行校准,保存和实时处理数据的同时,将数据实时显示在用户界面上。上述MEMS惯性传感器和蓝牙模块均采用贴片式的硬件设计方法,具有结构紧凑、体积小的优点。
具体实现步骤如下:
(1)将低成本的惯性传感器固联在脚上,使其能够敏感到足部的运动状态,MEMS惯性传感器可以正常输出三轴加速度计、三轴陀螺仪、三轴磁强计的信息,实时获取足部的导航信息,将导航信息通过蓝牙传输模块进行传输。
(2)行人手持安卓手机,在安卓客户端实时接受足部惯性传感器传来的数据,首先打开安卓客户端的数据校准模块分别对三轴加速度计,三轴陀螺仪、三轴磁强计的测量数据进行校准,校准的主要目的进行去除加速度计、陀螺仪、磁强计的零偏,加速度计和陀螺仪的校准方法是将MEMS惯性传感器置水平,待校准模块所显示的零偏不再变化的时候,对此时的零偏量进行保存,即完成加速度计和陀螺仪的校准,对于磁场的校准则是将MEMS惯性传感器绕不同的方向反复旋转,多次运动直到磁场的零偏显示不再变化则完成磁场的校准。完成数据的校准后,看MEMS惯性传感器在静止状态下,加速度计和陀螺仪是否为零,并将数据进行保存。
(3)对所得到数据进行小波去噪处理,如图2所示,为MEMS惯性传感器测量的数据和对数据小波去噪后的曲线对比图。
(4)对MEMS惯性传感器的数据采用滑动窗口的方法,探测零速区间,零速区间的探测方法如图3所示。
零速度检测算法在整个MEMS定位过程中具有重要作用,直接决定定位精度,本发明采用先辨识再判断的检测算法。辨识方法如下:
计算每一个采样时刻i下的三轴加速度模值:
选取大小为2N+1的滑动窗口,N表示窗口宽度,则窗口内的加速度方差为:
其中,
每隔一定的时间对加速度数据进行扫描,通过扫描出的加速度的最大值和最小值之差可以辨识出该段时间内的步速是正常行走、慢速、快速或上下楼等状态,多次试验确定正常行走、慢速、快速或上下楼的加速度阈值分别取tha1、tha2、tha3、tha4;角速度阈值分别取thw1、thw2、thw3、thw4;加速度的协方差thσ1、thσ2、thσ3、thσ4。
以上主要基于加速度模值的运动状态辨识法,也可以基于角速度或加速度协方差方法进行辨识,对运动状态进行辨识之后,进行零速度区间检测,为了提高检测的精度,根据以上辨识出来的运动状态,依靠单一的元素进行检测必然会存在误差,本实施例采用三者结合的方法进行检测:
条件一:比例模值当脚步处于零速度时刻时,固定在脚部的MEMS惯性传感器测量出的加速度输出结果理论上只有当地的重力加速度值,加速度符合卡方分布,只需要设定合适的置信区间即可进行判断,假设分别为置信区间的最小值和最大值;
其中1表示检测为静止状态,0表示运动状态。
条件二:比力的方差。采用滑动窗口观测比力方差能够有效检测步态周期中信号的突变阶段。在零速区间比例的方差变化比较微弱,几乎没什么波动,而在非零速区间,脚步变化具有很强的波动性,因此可通过比力方差小于给定的阈值即可判断零速区间。计算如下:
其中,为比力均值;m为滑动窗口大小,与输出频率有关;
其中1表示检测为静止状态,0表示运动状态。
条件三:角速度模值。由于在零速区间脚底部与地面保持完全接触状态,所以在零速区间角速度和其变化值应当趋向于零,而在零速区间以外的时刻,角速度则会呈现出较强的波动性,因此可以通过辨识出的行走状态,确定相应的角速度阈值thw来确定零速区间,其中角速度模值为
其中1表示检测为静止状态,0表示运动状态。
当条件一、条件二、条件三同时满足的时候则记录此时状态为1,为所需要检测到的零速区间,若为0则表示运动状态。
图4为采用上述的零速区间检测方法检测到的零速区间。
通过上述方法探测到零速区间则要在零速区间对一个漫步周期内MEMS惯性传感器所积累的误差进行修正从而对整个定位系统进行补偿。
通过前面所述的零速度检测算法可以得到较为精确的零速度区间,在零速区间过程中速度为零,因此导航解算输出的速度即为速度误差。速度误差与陀螺漂移,加速度零偏,姿态角误差之间的关系可以用误差微分方程描述。在误差方程的基础上可以建立卡尔曼滤波方程,将速度误差作为观测量,估计出姿态角误差,位置误差和其他误差量反馈给导航解算模块,从而达到对系统的误差进行修正的目的。
(a)姿态误差方程
(b)速度误差
(c)位置误差方程
选取卡尔曼滤波器的状态量为:
其中表示姿态误差角,δvn表示速度误差;δpn表示位置误差;ε表示陀螺常值漂移,表示加速度计常值零偏,理论上应该尽可能多的考虑状态的影响因素,考虑的因素越多导航系统估计的精度越高,但是这也使系统模型的阶数增加[11],卡尔曼的系统方程可以表示为
X(t)=FX(t)+W(t)
量测方程速度误差,即
Zk=[δvn]=HkXk
量测量δvk只有在零速区间可以获取,并且量测量和具体运动和干扰情况有关,在通过上述的零速检测算法检测到零速区间后,卡尔曼滤波做时间更新和量测更新,并将估计的误差反馈给系统,进行误差补偿
(5)将修正后的数据在用户界面显示模块进行实时显示,让用户可以清晰的看见自己的运动状态。
本发明是一种独立自主高精度室内定位方法,下面通过部分实验验证本发明的有益效果。
为了验证该方法的有效性,分别用低成本的MEMS MPU9250进行了正常二维平面行走实验和三维上下楼梯行走实验,通过手持安卓手机实时接受MEMS传感器通过蓝牙传输的数据,手机安卓客户端界面如图5所示。
实验一:二维平面正常行走实验
实验环境选定在东南大学留学生楼的走廊,走廊为长5m,宽1m的矩形形状。
图6为对安卓客户端接收的数据采用本发明所述算法处理后的行走轨迹图,在没有误差的理想情况下,行走轨迹为闭合矩形曲线,起点和终点是重合的,但是由于误差的存在,起点和终点往往是不重合的。通过两者的不重合度来判定定位的精度,二维行走实验的定位精度在0.5m以内。
实验二:三维上下楼梯行走实验
实验环境选定在东南大学中心楼,起点为中心楼2楼,行走路线为从中心楼2楼上右侧楼梯经过3楼到达中心楼4楼,再从4楼走廊左拐到中心楼左侧楼梯下楼经过3楼到达2楼回到2楼的起点位置,也行走了一个闭合的路线。该行走过程中经过了上楼梯、正常行走、下楼梯、正常行走。
图7为对安卓客户端得到的数据采用本发明算法处理后的行走轨迹图,经计算其定位误差在2m内。
通过实验分析,本发明对于正常的二维平面行走可以保持较高的定位精度,对于复杂的上下楼运动状态依然具有较高的定位精度。修正后的数据通过安卓客户端的用户界面显示模块呈现给用户,可以实现用户在各种未知的环境下实现自主导航。