一种行人导航的二维人体里程计及里程计算方法与流程

文档序号:14569479发布日期:2018-06-01 21:23阅读:285来源:国知局

本发明属于行人导航技术领域,具体涉及一种行人导航二维人体里程计及里程计算方法。



背景技术:

随着人们对室内位置服务的需求迅速增加,利用微惯性导航系统对行人进行航位推算成为室内定位主流技术之一。在个人航位推算系统中,步长估计方法主要有两种:一是基于惯性导航原理对加速度进行二次积分,但消费级MEMS惯性器件的温度漂移及线性度等性能指标不高,数分钟内的积分误差将达到一个地球半径;二是利用人员行进特性对其特定动作下的行进距离进行建模,现有基于模型的步长估计方法将步长视为与步频、身高、加速度等相关的量,但人体运动具有复杂性和任意性,受外界环境和情绪等因素影响,行人在某种步态下的单步步长可能不同,一种步态对应单一的单步步长误差很大,另外行人在完成匍匐、侧行、跳跃等非常规步态时,普通步长建模方法不适用,模型精度无法满足实际需求。



技术实现要素:

有鉴于此,本发明提供了一种行人导航的二维人体里程计及里程计算方法,解决行人在完成非常规步态下定位精度差的问题,能够得到行人精确的行进距离,实现高精度定位。

本发明提供了一种行人导航的人体里程计,包括惯性测量模块、导航解算模块和数据处理模块;

其中,以行进运动起始点处的人体重心为坐标原点,前后方向为X轴,左右方向为Y轴,上下方向为Z轴;

惯性测量模块用于采集实时的X轴、Y轴以及Z轴方向上的运动加速度与运动角速度并识别出相应的步态,将运动加速度与运动角速度发送至导航解算模块,将步态发送至数据处理模块;

导航解算模块基于惯性测量模块发送的运动加速度与运动角速度进行惯性导航解算,得到解算步长、运动步频以及步长差与方位角差,并发送至数据处理模块;

数据处理模块根据惯性测量模块发送的当前时刻的步态,选择对应步态的参考步长模型,将导航解算模块发送的运动步频代入参考步长模型获得参考步长;并根据导航解算模块发送的步长差和方位角差对参考步长进行修正;将修正后的参考步长与运动步频相乘得到人体位移增量并累加输出;

所述参考步长模型为:

S=[h·(ax·fstep+bx)+cx] (1)

其中,S为参考步长,fstep为运动步频,h为人的身高,ax、bx和cx为与步态相关的参考步长系数,ax、bx和cx数值由实验可知。

其中,所述参考步长系数与步态对应,参考步长系数的获得方式为:利用导航解算模块对各步态下的加速度和角速度进行导航解算,得到各步态下的实时解算步长及运动步频,将解算步长与对应步态的步长经验值进行融合,得到实时融合步长,以运动步频为公式(1)的自变量fstep,以对应的融合步长为公式(1)的因变量S,利用同一步态下多个时刻的运动步频及其对应的融合步长,对公式(1)进行拟合,得到该步态下的参考步长系数ax、bx和cx的估计值;

将估计值代入参考步长模型,得到对应步态的参考步长模型。

其中,采用递推最小二乘法对公式(1)进行拟合,得到参考步长系数的估计值。

其中,所述参考步长的修正方法为:

当步长差和方位角差均小于各自对应的阈值时,不对参考步长进行修正;

当只有步长差小于步长差阈值时,通过方位角差以及方位角差的权重因子对参考步长进行修正;

当只有方位角差小于方位角差阈值时,通过步长差以及步长差的权重因子对参考步长进行修正;

当步长差和方位角差均不小于各自对应的阈值时,通过方位角差、方位角差的权重因子、步长差以及步长差的权重因子对参考步长进行修正;

其中步长差和方位角差的权重因子大小与步态复杂度有关,复杂度越高的步态权重因子越大。

其中,对参考步长进行修正的修正因子为δKx:δKx=p·(ΔS/M1)+q·(Δψ/M2);

其中,p为步长差的权重因子,q为方位角差的权重因子,ΔS为步长差,Δψ为方位角差,M1为步长差阈值,M2为方位角差阈值。

其中,所述修正后的参考步长为Sx

Sx=(1+δKx)[h·(ax·fstep+bx)+cx]。

其中,所述惯性测量模块为微惯性测量器件。

其中,所述惯性测量模块置于人体脚部、腰部或胫骨。

本发明还提供了一种行人导航的里程计算方法,采用本发明的行人导航的人体里程计进行里程计算,包括如下步骤:

步骤1,采集行进运动的运动加速度与运动角速度并识别出相应的步态;

步骤2,利用惯性导航解算方式对步骤1得到的运动加速度与运动角速度进行导航解算,得到运动步频以及步长差与方位角差;

步骤3,根据当前时刻的步态,选择对应步态的参考步长模型,将当前运动步频代入参考步长模型获得参考步长;

根据步长差和方位角差对参考步长进行修正;

步骤4,将修正后的参考步长与运动步频相乘得到人体位移增量,并累加输出,完成里程计算。

有益效果:

本发明所述的二维人体里程计及方法,基于惯性导航解算与人体步态特征,对步态进行精确划分,针对每一种步态建立参考步长,并在参考步长基础上增加修正因子得到刻度因子,利用刻度因子作为人体行进的刻度标识,利用刻度因子实现精确的单步步长估计,解决行人在完成非约束、非等间隔或非平稳的非常规步态下定位精度差的问题,并结合步频信息得到精确的行进距离,提高定位精度。

附图说明

图1为本发明的一种行人导航的人体里程计示意图。

具体实施方式

下面结合附图并举实施例,对本发明进行详细描述。

本发明提供了一种行人导航的人体里程计及里程计算方法,结合人体步态特征,对步态进行精确划分,针对每一种步态建立自适应单步步长模型,作为人体行进的刻度标识,解决行人在完成非约束、非等间隔或非平稳的非常规步态下定位精度差的问题,并结合步频信息得到精确的行进距离,提高定位精度。

本发明所述的一种行人导航的人体里程计包括惯性测量模块、导航解算模块和数据处理模块;

其中以行进运动起始点处的人体重心为坐标原点,前后方向为X轴,左右方向为Y轴,上下方向为Z轴;建立的XYZ轴坐标系符合右手定则;

惯性测量模块用于采集实时的X轴、Y轴以及Z轴方向上的运动加速度与运动角速度并识别出相应的步态,同时将采集到的运动加速度与运动角速度发送至导航解算模块,将步态发送至数据处理模块;

其中,通过微惯性测量器件(MIMU)获得X轴、Y轴以及Z轴的运动加速度与运动角速度。微惯性测量器件(MIMU)还可以置于人体腰部或胫骨等部位,微惯性测量器件(MIMU)在不同位置时,人体里程计刻度因子中的参数值要相应调整。

导航解算模块基于惯性测量模块发送的运动加速度与运动角速度进行惯性导航解算,得到X轴和Y轴方向上的解算步长、运动步频以及相邻时刻的步长差与方位角差,并发送至数据处理模块;

数据处理模块根据惯性测量模块发送的当前时刻的步态,选择对应步态的参考步长模型,将导航解算模块发送的运动步频代入参考步长模型获得参考步长;并根据导航解算模块发送的步长差和方位角差对参考步长进行修正;将修正后的参考步长与运动步频相乘得到人体位移增量并累加输出;

如图1所示,修正后的参考步长即为刻度因子,也就是人体里程计的单步步长,运动步频为人体里程计的脉冲计数,位移增量为人体里程计的输出信息。

所述参考步长模型为:S=[h·(ax·fstep+bx)+cx]

其中,S为参考步长,fstep为运动步频,h为人的身高,ax、bx和cx为与步态相关的参考步长系数,ax、bx和cx数值由实验可知。

所述参考步长系数与步态对应,参考步长系数的获得方式为:利用导航解算模块对各步态下的加速度和角速度进行导航解算,得到各步态下的实时解算步长及运动步频,将解算步长与对应步态的步长经验值进行融合,得到实时融合步长,运动步频为公式(1)的自变量fstep,对应的融合步长为公式(1)的因变量S,利用同一步态下多个时刻的运动步频及其对应的融合步长,对公式(1)进行拟合,得到该步态下的参考步长系数ax、bx和cx的估计值;

本实施例采用递推最小二乘法对公式(1)进行拟合,得到参考步长系数的估计值;

将参考步长系数的估计值代入参考步长模型,得到对应步态的参考步长模型。

不同步态的步长经验值通过对不同步态下的步长进行大量的实验获得;

采用修正因子对参考步长进行修正,修正因子是由于人体运动具有任意性和复杂性而引入的与运动步态相关的偏移修正量,修正因子的值与步长差和方位角差与各自对应的阈值大小有关,利用修正因子对参考步长进行修正的修正方法为:

当步长差和方位角差均小于各自对应的阈值时,修正因子为0,不对参考步长进行修正;

当只有步长差小于步长差阈值时,通过方位角差以及方位角差的权重因子,得到修正因子对参考步长进行修正;

当只有方位角差小于其对应的阈值时,通过步长差以及步长差的权重因子,得到修正因子对参考步长进行修正;

当步长差和方位角差均不小于各自对应的阈值时,通过方位角差、方位角差的权重因子、步长差以及步长差的权重因子,得到修正因子对参考步长进行修正;

其中,步长差和方位角差的权重因子大小与步态复杂度有关,复杂度越高的步态权重因子越大。所述步态包括静止、跑步、行走、倒退和上下楼等。复杂度高的步态(如匍匐前进、跳跃等),其权重因子值较大。一般人体实时运动步态根据步态识别确定,通过将实时步态与步态样本中的步态进行对比实现步态识别,所述步态样本中包括静止、跑步、行走、倒退和上下楼等步态信息。

修正因子δKx的表达式为:δKx=p·(ΔS/M1)+q·(Δψ/M2);

其中,p为步长差的权重因子,q为方位角差的权重因子,ΔS为步长差,Δψ为方位角差,M1为步长差阈值,M2为方位角差阈值。

修正后的参考步长为Sx

Sx=(1+δKx)[h·(ax·fstep+bx)+cx]

其中,[h·(ax·fstep+bx)+cx]为参考步长,其中fstep为运动步频,h为人的身高,ax、bx、cx为参考步长系数;δKx为修正因子。

本发明的一种行人导航的人体里程计可以对X方向、Y方向和Z方向中的一个或多个方向的行进运动进行里程计算,分别输出相应方向的人体位移增量;对X方向和Y方向的行进运动进行里程计算时,为二维人体里程计。

采用本发明所述行人导航的人体里程计进行里程计算的方法包括如下步骤:

步骤1,将人体运动视为信息源,以人体重心为运动中心,前后方向为X轴,左右方向为Y轴,上下方向为Z轴,采集信息源的X轴、Y轴以及Z轴方向上的运动加速度与运动角速度并识别出相应的步态;

步骤2,利用惯性导航解算方式对步骤1得到的运动加速度与运动角速度进行导航解算,得到X轴和Y轴方向上的解算步长、运动步频以及步长差与方位角差;

步长差与方位角差较佳地获得方式为利用惯性导航系统对步骤1采集到的三轴加速度和角速度的值进行导航解算,得到解算步长差ΔS和解算方位角差Δψ;

步骤3,获得人体运动中X方向和Y方向的修正后的参考步长,修正后的参考步长获得方式为:

根据当前时刻的步态,选择对应步态的参考步长模型,将当前运动步频代入参考步长模型获得参考步长;

根据步长差和方位角差对参考步长进行修正,得到修正后的参考步长,修正后的参考步长即为人体行进运动中的单步步长;

其中,修正后的参考步长为Sx

Sx=(1+δKx)[h·(ax·fstep+bx)+cx]

其中,[h·(ax·fstep+bx)+cx]为参考步长,其中fstep为运动步频,h为人的身高,ax、bx、cx为参考步长系数;δKx为修正因子。

步骤4,将X方向和Y方向的刻度因子与对应方向的运动步频相乘得到各自方向上的人体位移增量,并累加输出,完成里程计算。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1