室内定位方法及装置与流程

文档序号:19430901发布日期:2019-12-17 16:42阅读:204来源:国知局
室内定位方法及装置与流程

本发明涉及一种室内定位方法及装置,属于室内定位领域。



背景技术:

随着人类的发展和社会的进步,人们的社会活动越来越多,人们的出行也越来越多的离不开对位置服务的需求。现如今,人们大部分的活动是在室内进行,在室内环境下,由于全球卫星导航系统信号受到建筑物遮挡以及其他电磁干扰,导致室内接收到的信号极其微弱更甚至接收不到,这使得在室内人们不能通过全球卫星导航系统信获得自己的位置信息,这时就需要用到室内定位系统提供支持,通过室内定位系统为行人提供在室内的精确位置。

现有技术可以实现行人定位的系统中,一部分系统是通过gps/北斗来进行定位,这只是可以实现行人较高精度的室外定位,而室内定位的精度则大大下降;一部分系统是通过在室内布设信号发射节点,通过接收信号实现行人的室内定位,在布设有信号发射节点的室内才可以实现室内定位,而对于没有信号发射节点的室内则不可以使用。

通过接收外部信号发射节点的信号实现行人的室内定位,对于没有信号发射节点的室内则不可以使用,因此室内定位技术还存在如下缺陷:

1、需要投入大量的信号发射设备,这些设备需要定期的维护,并且设备体积大、功耗较高、成本高;

2、行人所携带的接收系统功耗较高,系统的电源不能满足行人长时间行走定位的需求;

3、主要依赖外部设备实现行人的定位,不能实现自主定位,在突发状况下系统可能会失去定位功能的缺点。



技术实现要素:

针对现有技术存在的上述问题,本发明的目的是提供一种室内定位方法及装置。

为实现上述发明目的,本发明采用的技术方案如下:

一种室内定位方法,所述方法包括:

接收惯性传感器所采集的航向角数据以及加速度数据、磁力计所采集的地磁数据以及弯曲传感器所采集的弯曲度;

通过所述航向角数据、所述加速度数据以及所述弯曲度进行零速检测,并根据零速检测的结果得到待定位对象的步频;

通过自适应步长估计算法得到所述步频所对应的步长;

根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移;

通过所述步长对所述当前位移进行修正,并根据修正后的当前位移对所述待定位对象进行室内定位。

在其中一个实施例中,所述通过所述航向角数据、所述加速度数据以及所述弯曲角度进行零速检测,包括:

计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值;

判断所述加速度模值是否在第一阈值范围内,所述航向角模值是否在第二阈值范围内;

当所述加速度模值在第一阈值范围内且所述航向角模值在第二阈值范围内时,则所述待定位对象当前为零速状态。

在其中一个实施例中,所述待定位对象当前为零速状态之前,还包括:

计算所述航向角数据对应的航向角方差以及所述加速度数据对应的加速度方差;

判断所述加速度方差是否在第三阈值范围内,所述航向角方差是否在第四阈值范围内;

当所述加速度方差在第三阈值范围内且所述航向角方差在第四阈值范围内,则所述待定位对象为零速状态。

在其中一个实施例中,所述计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值之前,还包括:

根据所述加速度数据计算得到所述加速度数据对应的加速度方差;

根据所述加速度方差判断所述待定位对象为行走模式还是跑步模式;

当所述待定位对象为行走模式时,则继续计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值。

在其中一个实施例中,所述方法还包括:

当所述待定位对象为跑步模式时,对所述弯曲传感器输出的弯曲度进行平滑处理;

根据平滑处理后的弯曲度生成弯曲度曲线;

计算所述弯曲度曲线的极小值,并根据相邻的所述极小值确定零速状态。

在其中一个实施例中,所述根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移,包括:

根据上一状态的速度以及地理坐标系下的非零速状态下的所述加速度数据得到当前状态的速度;

对所述当前状态的速度进行积分得到当前位移。

在其中一个实施例中,所述方法还包括:

获取地理坐标系下的重力向量和地磁矢量,并转换到载体坐标系中得到与重力向量对应的第一标准向量,以及与地磁矢量对应的第二标准向量;

将所述第一标准向量与载体坐标系下所测得的重力加速度进行比较得到第一误差向量,将将所述第二标准向量与载体坐标系下所测得的地磁矢量进行比较得到第一误差向量;

通过所述第一误差向量和第二误差向量对四元数以及所述航向角数据进行修正;

通过修正后的四元数对所述惯性传感器所采集的加速度数据进行处理得到地理坐标系下的非零速状态下的所述加速度数据。

一种室内定位装置,所述装置包括:

接收模块,用于接收惯性传感器所采集的航向角数据以及加速度数据、磁力计所采集的地磁数据以及弯曲传感器所采集的弯曲度;

零速检测模块,用于通过所述航向角数据、所述加速度数据以及所述弯曲度进行零速检测,并根据零速检测的结果得到待定位对象的步频;

步长计算模块,用于通过自适应步长估计算法得到所述步频所对应的步长;

零速修正模块,用于根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移;

航迹推算模块,用于通过所述步长对所述当前位移进行修正,并根据修正后的当前位移对所述待定位对象进行室内定位。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的方法的步骤。

与现有技术相比,本发明提供的室内定位方法及装置具备以下优势:

通过惯性传感器实现行人行走信息的数据采集,包括加速度数据、航向角数据以及通过磁力计获得地磁数据;通过自适应步长估计算法对行人的行走步长进行判定;通过弯曲传感器以及零速修正算法对传感器误差进行修正,最终可实现较高的行人室内定位精度,该方法其具有精度高、通用性强等特点。

附图说明

图1是本发明提供的室内定位方法的应用环境图;

图2是本发明提供的室内定位方法的流程图;

图3为一个实施例中待定位对象在运动时的腿部状态变化图;

图4为一个实施例中的步频和步长的关系图;

图5为一个实施例中的加速度幅值波形图;

图6为一个实施例中的待定位对象定位轨迹图;

图7为一个实施例中的室内定位装置的结构图。

具体实施方式

下面结合实施例及对比例对本发明作进一步详细、完整地说明。

本申请提供的室内方法,可以应用于如图1所示的应用环境中。其中,关心传感器102、磁力计104以及弯曲传感器106通过网络与主控芯片108通过网络进行通信。其中,所述惯性测量单元、所述磁力计和所述主控芯片以及所述存储卡经过设计集成在一起,安装在行人的鞋尖位置,所述弯曲传感器安装在行人的膝关节位置,所述惯性测量单元包括陀螺仪传感器和加速度传感器,所述陀螺仪传感器和所述加速度传感器分别采集行人的航向角数据和加速度数据。所述磁力计采集行人的地磁数据,所述弯曲传感器采集行人行走时膝关节弯曲度,所述惯性测量单元、所述磁力计和所述弯曲传感器采集到的数据通过所述主控芯片108进行处理,将定位结果通过所述存储卡进行存储。所述主控芯片108,对采集到的数据进行计算处理以得到行人的室内定位数据;本发明中将惯性传感器捷联在行人的脚尖位置来采集行人的运动信息。众所周知,行人在行走时脚部具有一个特点,即是在进行一种周期性的往复运动,这种周期性的运动可以大致分为两种状态:静止态以及摆动态。当脚部从与地面开始接触到脚尖完全离开地面这段时间,行人的脚部速度为零,并且行人的位置没有发生变化,这个状态可以认为是静止态;在静止态之外,脚部所处的状态可以称之为摆动态。在静止态,不考虑脚部出现滑动的情况下,利用脚部的速度为零、方向不变的特点,可以对加速度数据的漂移误差进行估计,之后对脚部在摆动态时的速度进行修正。通过以上处理可以显著降低由于惯性传感器漂移产生的误差,有效提高行人的室内定位精度。

在一个实施例中,如图2所示,提供了一种室内定位方法,以该方法应用于图1中的主控芯片为例进行说明,包括以下步骤:

s202:接收惯性传感器所采集的航向角数据以及加速度数据、磁力计所采集的地磁数据以及弯曲传感器所采集的弯曲度。

具体地,在理想状态下,惯性传感器中的加速度计以及陀螺仪在静止态时的输出应该不会发生变化,但是在实际测量中,由于传感器自身存在着因漂移产生的误差,导致传感器的输出并不稳定。在静止态可以利用这一特点进行误差的修正。其中对静止态即零速状态的检测就变成了研究的关键问题。

s204:通过所述航向角数据、所述加速度数据以及所述弯曲度进行零速检测,并根据零速检测的结果得到待定位对象的步频。

具体地,为了保证零速检测的准确性,本实施例利用加速度计输出的三轴数据和陀螺仪输出的三轴数据具有的周期性变化,利用对输出的传感器数据以及分别对三轴数据作方差处理,综合判断行人所处的步态。例如计算加速度计以及陀螺仪输出的模值,在静止状态,人体脚部速度为零,显然在理想情况下加速度计输出的模值应该为当地的重力加速度,陀螺仪的输出为零。但是在实际测试中传感器输出并不如此,可以通过设置相应的阈值进行行人的零速判断。

在判断得到零速区间后,则可以根据零速区间得到待定位对应的步频,具体可以参见图3,图3为一个实施例中待定位对象在运动时的腿部状态变化图。因此,可以根据零速区间得到待定位对象的步频。也即零速区间的频率。

s206:通过自适应步长估计算法得到所述步频所对应的步长。

具体地,结合图4,图4为一个实施例中的步频和步长的关系图,其中可以发现行人行走的步频越快,为保持身体平衡,相应的步长也会增大,行走步频越慢,相对应的步长越短,通过所得到的步频可以得到对应的步长。

s208:根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移。

具体地,在得到零速状态后,从而可以确定非零速状态对应的加速度数据、航向角数据以及地磁数据等,主控芯片可以通过该些数据进行处理得到当前速度,并根据当前速度得到对应的位移,从而确定当前位置。

s210:通过所述步长对所述当前位移进行修正,并根据修正后的当前位移对所述待定位对象进行室内定位。

具体地,主控芯片通过步长以及对应的时间间隔计算得到位移,以对定位所得到的当前位移进行修正,从而可以根据修正后的当前位移确定待定位对象在室内的定位。

与现有技术相比,本发明提供的室内定位方法具备以下优势:

通过惯性传感器实现行人行走信息的数据采集,包括加速度数据、航向角数据以及通过磁力计获得地磁数据;通过自适应步长估计算法对行人的行走步长进行判定;通过弯曲传感器以及零速修正算法对传感器误差进行修正,最终可实现较高的行人室内定位精度,该方法其具有精度高、通用性强等特点。

在其中一个实施例中,所述通过所述航向角数据、所述加速度数据以及所述弯曲角度进行零速检测,包括:计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值;判断所述加速度模值是否在第一阈值范围内,所述航向角模值是否在第二阈值范围内;当所述加速度模值在第一阈值范围内且所述航向角模值在第二阈值范围内时,则所述待定位对象当前为零速状态。

在其中一个实施例中,所述待定位对象当前为零速状态之前,还包括:计算所述航向角数据对应的航向角方差以及所述加速度数据对应的加速度方差;判断所述加速度方差是否在第三阈值范围内,所述航向角方差是否在第四阈值范围内;当所述加速度方差在第三阈值范围内且所述航向角方差在第四阈值范围内,则所述待定位对象为零速状态。

在其中一个实施例中,所述计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值之前,还包括:根据所述加速度数据计算得到所述加速度数据对应的加速度方差;根据所述加速度方差判断所述待定位对象为行走模式还是跑步模式;当所述待定位对象为行走模式时,则继续计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值。

在其中一个实施例中,所述方法还包括:当所述待定位对象为跑步模式时,对所述弯曲传感器输出的弯曲度进行平滑处理;根据平滑处理后的弯曲度生成弯曲度曲线;计算所述弯曲度曲线的极小值,并根据相邻的所述极小值确定零速状态。

具体地,为了保证零速检测的准确性,本实施例利用加速度计输出的三轴数据和陀螺仪输出的三轴数据具有的周期性变化,利用对输出的传感器数据以及分别对三轴数据作方差处理,综合判断行人所处的步态。具体可以通过以下几个步骤判断。

1)计算加速度计以及陀螺仪输出的模值。在静止状态,人体脚部速度为零,显然在理想情况下加速度计输出的模值应该为当地的重力加速度,陀螺仪的输出为零。但是在实际测试中传感器输出并不如此,可以通过设置相应的阈值进行行人的零速判断。三轴加速度计输出的模值为:

式中,以及分别为在载体坐标系下x、y、z轴输出的加速度值。三轴角速度输出的模值为:

式中,以及分别为在载体坐标系下x、y、z轴输出的角速度值。

通过设置相应的阈值对零速状态进行判断:

式中,thamin和thamax分别为加速度所设阈值的最小值和最大值,thω为角速度所设阈值,阈值的大小均可根据不同行人的步态特征来进行设置。在阈值范围内则认为行人处于静止状态,用1表示,否则认为行人处于摆动状态,用0表示。

仅仅运用上述方式检测出的行人零速区间会存在部分误差,因此不能仅仅通过这种方式来判断,还需进一步筛选。

2)对加速度方差和角速度方差进行判断。认为在某段时间内加速度的方差低于设置的阈值以及角速度的方差低于所设阈值时,行人处于静止状态。其中,加速度方差为:

式中,为加速度计所测数据的模的均值,s为所设窗口大小。在某个区间通过设置相应的阈值对零速状态进行判断:

式中,为所设加速度方差阈值,为所设角速度方差阈值,其大小同样均可根据不同行人的步态进行设置。

在满足上述所有条件后,则认为行人处于零速状态。

由于人在活动中不仅仅是要行走,有时也会进行跑动,所以仅对行人在行走状态下进行有效的零速检测是不够的,还需要能够对行人在跑动状态下的零速区间进行准确判断。人在跑动状态下脚部与地面接触的时间比在行走时的接触时间要短很多,这就有可能造成所提零速检测算法在行人跑动状态下的零速检测出现较大的误差。

经分析可得,影响零速检测算法准确性的主要因素如下所述:

1)人在跑动状态下,脚部与地面接触的时间变短,导致零速区间变窄,从而影响了零速检测的准确性。

2)人在跑动状态下,脚部在与地面接触时会产生极大的冲击,这时传感器将会产生剧烈的抖动。

以上两点是造成零速检测误差变大的主要原因。若想在行人行走以及跑动状态下都可以实现高精度的室内定位,可引入其他传感器辅助惯性传感器来提高零速检测的准确性。

弯曲传感器可以检测出物体弯曲度,在智能机器人以及智能手臂中都有所应用。本发明即引入了弯曲传感器对惯性传感器进行辅助检测零速区间。

行人在运动状态下,腿部膝关节角度呈现规律性变化,跑步时腿部状态变换可表示为如图2所示。

通过图2可以了解到人在跑动状态下的腿部变换,经过分析可知膝关节角度的变化具有一定规律可循。通过查阅可知,正常人膝关节角度的变化范围为0°到135°,本实施例通过在人体膝关节位置安装弯曲传感器来检测跑动时人体膝关节角度变化。

所用弯曲传感器采用的是压电材料,当被测物的弯曲度发生变化时,传感器的电阻也随之发生变化,呈弯曲越大电阻越小的变化特性。

阻值的计算公式为:

rrfp=(v+/vout-1)*r1(8)

其中,v+表示输入电压、vout表示输出电压、r1表示分压电阻。传感器输出的是电压的变化值,将传感器电压通过ad转换变换成数字信号,并记录相应的弯曲角度,将电压变化对应到弯曲度的变化,找到弯曲度与电压变化关系之间的算法曲线。设弯曲传感器的弯曲度为y,弯曲传感器的电压变化率为x,弯曲特性对应关系可由下式表示:

y=a0+a1x+a2x2+a3x3+a4x4+a5x5(9)

式中a0、a1、a2、a3、a4、a5表示弯曲特性的系数,其值可由曲线拟合的方式计算得出。

将传感器安装到膝关节位置后,对行人在跑动状态下的膝关节角度变化进行测量,在测量过程中存在着干扰噪声,本实施例采用移动平均滤波算法进行对信号进行平滑处理,移动平均滤波卷积实现形式为:

式中,x(i+j)表示输入信号,y(i)表示输出信号,m为求取平均时所需点的数量。

由分析可得,在一个步态周期内,当行人脚跟触地时膝关节的弯曲度达到一个极小值,在脚尖离地时达到一个极小值,之后弯曲度逐渐变大。在两个相邻极小值中间的状态即为脚部着地的阶段,这个区间为零速区间,即脚部速度为零。

为了进一步探究步长与加速度特征值的关系,本实施例进行了一项实验,实验者手持手机沿一条直线路径行走,首先按正常速度行走10步,停留一段时间后,快走10步,得到加速度波形如图5所示:

从图5中可以看出,正常模式与快走模式的加速度幅值波动区间有明显区别,而方差正是表示数据离散程度的一个特征值,提前通过大量数据进行训练,可以得到方差阈值,若行人一步之内的加速度方差大于此阈值则判断行人处于快走模式,小于此阈值表明行人处于正常行走模式。通过大量数据实验训练得到,正常行走的方差在1.33至3.12之间,快走的方差在6.38至14.49之间变化。因此,将加速度方差阈值设置为5,当行人行走的加速度方差大于5时,判定行人处于快走模式,小于5则判定行人处于正常行走模式。

在其中一个实施例中,所述根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移,包括:根据上一状态的速度以及地理坐标系下的非零速状态下的所述加速度数据得到当前状态的速度;对所述当前状态的速度进行积分得到当前位移。

在其中一个实施例中,所述方法还包括:获取地理坐标系下的重力向量和地磁矢量,并转换到载体坐标系中得到与重力向量对应的第一标准向量,以及与地磁矢量对应的第二标准向量;将所述第一标准向量与载体坐标系下所测得的重力加速度进行比较得到第一误差向量,将将所述第二标准向量与载体坐标系下所测得的地磁矢量进行比较得到第一误差向量;通过所述第一误差向量和第二误差向量对四元数以及所述航向角数据进行修正;通过修正后的四元数对所述惯性传感器所采集的加速度数据进行处理得到地理坐标系下的非零速状态下的所述加速度数据。

在捷联式惯性导航系统中,利用惯性传感器实现行人的室内定位,进行姿态解算是必不可少的。首先需要将载体坐标系下采集的数据转换到地理坐标系下,之后再对行人的速度以及姿态进行解算,从而得到行人的室内位置。坐标系的转换通常会用到以下两种方法,分别是基于欧拉角的方向余弦矩阵和由四元数表示的转换矩阵。本实施例采用四元数法进行行人姿态的解算。

在载体坐标系下定义一个矢量可表示为:则在地理坐标系下可表示为rn。有rn=qrbq*,其中q*为q的共轭复数。

欧拉角可将四元数表示为:

若可用一个四元数来表示载体坐标系和地理坐标系间的关系,则可借助惯性传感器数据在两个坐标系下的不同修正四元数,也即修正旋转矩阵。重力向量在地理坐标系下可表示为(0,0,g),可将其通过旋转矩阵变换到载体坐标系,通过比较测量数据和变换所得数据可以对旋转矩阵进行修正。具体过程如下。

1)用hx、hy、hz分别表示旋转到地理坐标系下的地磁测量数据,其中:

hx=2*mx(0.5f-q2q2-q3q3)+2*my(q1q2-q0q3)+2*mz(q1q3-q0q2)(12)

hy=2*my(0.5f-q1q1-q3q3)+2*mx(q1q2-q0q3)+2*mz(q2q3-q0q1)(13)

hz=2*mz(0.5f-q1q1-q2q2)+2*mx(q1q3-q0q2)+2*my(q2q3-q0q1)(14)

用bx、by、bz分别表示在x、y、z轴方向的分量,q0、q1、q2、q3:表示四元数的四个元m表示载体坐标系下的地磁测量数据,mx、my、mz分别表示在x、y、z轴方向的分量,其中by为0,bz和hz相同:

bx=sqrt((hx*hx)+(hy*hy))(15)

by=0(16)

bz=hz(17)

2)对重力向量(0,0,g)以及磁场矢量做左乘运算变换到载体坐标系下:

vx=2*(q1q3-q0q2)(18)

vy=2*(q0q1+q2q3)(19)

vz=q0q0-q1q1-q2q2+q3q3(20)

wx=2*bx*(0.5-q2q2-q3q3)+2*bz*(q1q3-q0q2)(21)

wy=2*bx*(q1q2-q0q3)+2*bz*(q0q1+q2q3)(22)

wz=2*bx*(q0q2+q1q3)+2*bz*(0.5-q1q1-q2q2)(23)

3)将(2)中得到的向量与加速度计和陀螺仪的测量数据进行比较,可得误差向量,可以对四元数以及陀螺仪数据进行修正,其中a表示载体坐标系下的加速度测量数据,ax、ay、as分别表示在x、y、s轴方向的分量,m表示载体坐标系下的陀螺仪测量数据,mx、my、mz分别表示在x、y、z轴方向的分量,e1、e2、e3、e4、e5、e6为误差向量。

e1=ax-vx(24)

e2=ay-vy(25)

e3=az-vz(26)

e4=mx-wx(27)

e5=my-wy(28)

e6=mz-wz(29)

4)陀螺仪误差和误差向量的大小成正比关系,可通过对(3)中所得误差向量乘上一个增益矩阵k来对四元数以及陀螺仪数据进行修正。

t=[e1e2e3e4e5e6](30)

y=k*t′(31)

对四元数进行归一化:

则:

5)将四元数转换成欧拉角:

下面详细介绍位置估计算法:

行人的速度在地理坐标系下可表示为:

式中,vn表示行人的速度,表示哥式加速度,表示向心加速度,gn表示本地的重力加速度值,c表示旋转矩阵;

在计算行人的位移时,需要对加速度进行误差补偿,用来降低系统误差;

在计算行人的速度时哥式加速度和向心加速度可以忽略不计,所以可得速度更新表达式为:

式中,δt为采样周期。

通过对速度进行积分运算得到行人的位置,公式可表示为:

进一步可得位置更新公式为:

由上式可以得到目标行人当前位置的位置估算数据。

位置更新:

捷联式惯性导航系统在当地地理坐标系下可将载体的速度用下式表示:

式中,vn表示载体,即行人的速度,gn表示所处位置的重力加速度。

若导航坐标系为理想的平台坐标系,则上式即为比力方程。比力方程表示,在将fb转换到当地地理坐标系下之后,在对加速度进行积分前,需要在加速度中加入有害加速度进行误差补偿,对加入有害加速度之后的数据进行积分运算可以有效降低运算过程中的误差。其中,有害加速度主要包括:哥式加速度向心加速度以及重力加速度gn这三部分。

由上述内容可知,在行人行走时所产生的向心加速度与飞机、船只以及导弹等载体运动时所产生的向心加速度相比是非常微弱的,在对行人的导航解算中可以忽略不计;还有一点需要指出,陀螺仪具有较大的噪声,无法敏感的感知到哥式加速度这么微小的量,因此也可以忽略不计。在忽略掉二阶小量后,速度更新公式可表示为:

式中,δt表示系统的采样周期。

若导航坐标系为当地地理坐标系时,捷联惯性导航系统的位置可表示为:

忽略二阶部分,位置的递推更新公式为:

通过上式计算得到的是行人的相对位移,因此在进行导航之前,需要提前设置好位置的参考基准,这样做可以减小定位的误差。具体可以参见图6所示,图6为一个实施例中的待定位对象定位轨迹图。

应该理解的是,虽然图2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本实施例中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图7所示,提供了一种室内定位装置,包括:接收模块100、零速检测模块200、步长计算模块300、零速修正模块400和航迹推算模块500,其中:

接收模块100,用于接收惯性传感器所采集的航向角数据以及加速度数据、磁力计所采集的地磁数据以及弯曲传感器所采集的弯曲度。

零速检测模块200,用于通过所述航向角数据、所述加速度数据以及所述弯曲度进行零速检测,并根据零速检测的结果得到待定位对象的步频。

步长计算模块300,用于通过自适应步长估计算法得到所述步频所对应的步长。

零速修正模块400,用于根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移。

航迹推算模块500,用于通过所述步长对所述当前位移进行修正,并根据修正后的当前位移对所述待定位对象进行室内定位。

在其中一个实施例中,所述零速检测模块200包括:

模值计算单元,用于计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值。

第一判断单元,用于判断所述加速度模值是否在第一阈值范围内,所述航向角模值是否在第二阈值范围内。

第一输出单元,用于当所述加速度模值在第一阈值范围内且所述航向角模值在第二阈值范围内时,则所述待定位对象当前为零速状态。

在其中一个实施例中,所述零速检测模块200还包括:

第一方差计算单元,用于计算所述航向角数据对应的航向角方差以及所述加速度数据对应的加速度方差。

第二判断单元,用于判断所述加速度方差是否在第三阈值范围内,所述航向角方差是否在第四阈值范围内。

第二输出单元,用于当所述加速度方差在第三阈值范围内且所述航向角方差在第四阈值范围内,则所述待定位对象为零速状态。

在其中一个实施例中,所述零速检测模块200还包括:

第二方差计算单元,用于根据所述加速度数据计算得到所述加速度数据对应的加速度方差。

模式判断单元,用于根据所述加速度方差判断所述待定位对象为行走模式还是跑步模式。

第一模式判定单元,用于当所述待定位对象为行走模式时,则继续计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值。

在其中一个实施例中,所述方法零速检测模块200还包括:

第二模式判定单元,用于当所述待定位对象为跑步模式时,对所述弯曲传感器输出的弯曲度进行平滑处理。

曲线生成单元,用于根据平滑处理后的弯曲度生成弯曲度曲线。

第三输出单元,用于计算所述弯曲度曲线的极小值,并根据相邻的所述极小值确定零速状态。

在其中一个实施例中,所述零速修正模块400包括:

速度获取单元,用于根据上一状态的速度以及地理坐标系下的非零速状态下的所述加速度数据得到当前状态的速度。

位移获取单元,用于对所述当前状态的速度进行积分得到当前位移。

在其中一个实施例中,所述装置还包括:

转换单元,用于获取地理坐标系下的重力向量和地磁矢量,并转换到载体坐标系中得到与重力向量对应的第一标准向量,以及与地磁矢量对应的第二标准向量。

误差获取单元,用于将所述第一标准向量与载体坐标系下所测得的重力加速度进行比较得到第一误差向量,将将所述第二标准向量与载体坐标系下所测得的地磁矢量进行比较得到第一误差向量。

修正单元,用于通过所述第一误差向量和第二误差向量对四元数以及所述航向角数据进行修正。

处理单元,用于通过修正后的四元数对所述惯性传感器所采集的加速度数据进行处理得到地理坐标系下的非零速状态下的所述加速度数据。

关于室内定位装置的具体限定可以参见上文中对于室内定位方法的限定,在此不再赘述。上述室内定位装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储传感器采集的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种室内定位方法。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:接收惯性传感器所采集的航向角数据以及加速度数据、磁力计所采集的地磁数据以及弯曲传感器所采集的弯曲度;通过所述航向角数据、所述加速度数据以及所述弯曲度进行零速检测,并根据零速检测的结果得到待定位对象的步频;通过自适应步长估计算法得到所述步频所对应的步长;根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移;通过所述步长对所述当前位移进行修正,并根据修正后的当前位移对所述待定位对象进行室内定位。

在一个实施例中,处理器执行计算机程序时所实现的所述通过所述航向角数据、所述加速度数据以及所述弯曲角度进行零速检测,包括:计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值;判断所述加速度模值是否在第一阈值范围内,所述航向角模值是否在第二阈值范围内;当所述加速度模值在第一阈值范围内且所述航向角模值在第二阈值范围内时,则所述待定位对象当前为零速状态。

在一个实施例中,处理器执行计算机程序时所实现的所述待定位对象当前为零速状态之前,还包括:计算所述航向角数据对应的航向角方差以及所述加速度数据对应的加速度方差;判断所述加速度方差是否在第三阈值范围内,所述航向角方差是否在第四阈值范围内;当所述加速度方差在第三阈值范围内且所述航向角方差在第四阈值范围内,则所述待定位对象为零速状态。

在一个实施例中,处理器执行计算机程序时所实现的所述计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值之前,还包括:根据所述加速度数据计算得到所述加速度数据对应的加速度方差;根据所述加速度方差判断所述待定位对象为行走模式还是跑步模式;当所述待定位对象为行走模式时,则继续计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:当所述待定位对象为跑步模式时,对所述弯曲传感器输出的弯曲度进行平滑处理;根据平滑处理后的弯曲度生成弯曲度曲线;计算所述弯曲度曲线的极小值,并根据相邻的所述极小值确定零速状态。

在一个实施例中,处理器执行计算机程序时所实现的所述根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移,包括:根据上一状态的速度以及地理坐标系下的非零速状态下的所述加速度数据得到当前状态的速度;对所述当前状态的速度进行积分得到当前位移。

在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取地理坐标系下的重力向量和地磁矢量,并转换到载体坐标系中得到与重力向量对应的第一标准向量,以及与地磁矢量对应的第二标准向量;将所述第一标准向量与载体坐标系下所测得的重力加速度进行比较得到第一误差向量,将将所述第二标准向量与载体坐标系下所测得的地磁矢量进行比较得到第一误差向量;通过所述第一误差向量和第二误差向量对四元数以及所述航向角数据进行修正;通过修正后的四元数对所述惯性传感器所采集的加速度数据进行处理得到地理坐标系下的非零速状态下的所述加速度数据。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:接收惯性传感器所采集的航向角数据以及加速度数据、磁力计所采集的地磁数据以及弯曲传感器所采集的弯曲度;通过所述航向角数据、所述加速度数据以及所述弯曲度进行零速检测,并根据零速检测的结果得到待定位对象的步频;通过自适应步长估计算法得到所述步频所对应的步长;根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移;通过所述步长对所述当前位移进行修正,并根据修正后的当前位移对所述待定位对象进行室内定位。

在一个实施例中,计算机程序被处理器执行时所实现的所述通过所述航向角数据、所述加速度数据以及所述弯曲角度进行零速检测,包括:计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值;判断所述加速度模值是否在第一阈值范围内,所述航向角模值是否在第二阈值范围内;当所述加速度模值在第一阈值范围内且所述航向角模值在第二阈值范围内时,则所述待定位对象当前为零速状态。

在一个实施例中,计算机程序被处理器执行时所实现的所述待定位对象当前为零速状态之前,还包括:计算所述航向角数据对应的航向角方差以及所述加速度数据对应的加速度方差;判断所述加速度方差是否在第三阈值范围内,所述航向角方差是否在第四阈值范围内;当所述加速度方差在第三阈值范围内且所述航向角方差在第四阈值范围内,则所述待定位对象为零速状态。

在一个实施例中,计算机程序被处理器执行时所实现的所述计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值之前,还包括:根据所述加速度数据计算得到所述加速度数据对应的加速度方差;根据所述加速度方差判断所述待定位对象为行走模式还是跑步模式;当所述待定位对象为行走模式时,则继续计算所述加速度数据对应的加速度模值以及所述航向角数据对应的航向角模值。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当所述待定位对象为跑步模式时,对所述弯曲传感器输出的弯曲度进行平滑处理;根据平滑处理后的弯曲度生成弯曲度曲线;计算所述弯曲度曲线的极小值,并根据相邻的所述极小值确定零速状态。

在一个实施例中,计算机程序被处理器执行时所实现的所述根据零速检测的结果对非零速状态下的所述加速度数据进行处理得到当前位移,包括:根据上一状态的速度以及地理坐标系下的非零速状态下的所述加速度数据得到当前状态的速度;对所述当前状态的速度进行积分得到当前位移。

在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取地理坐标系下的重力向量和地磁矢量,并转换到载体坐标系中得到与重力向量对应的第一标准向量,以及与地磁矢量对应的第二标准向量;将所述第一标准向量与载体坐标系下所测得的重力加速度进行比较得到第一误差向量,将将所述第二标准向量与载体坐标系下所测得的地磁矢量进行比较得到第一误差向量;通过所述第一误差向量和第二误差向量对四元数以及所述航向角数据进行修正;通过修正后的四元数对所述惯性传感器所采集的加速度数据进行处理得到地理坐标系下的非零速状态下的所述加速度数据。

最后有必要在此说明的是:以上实施例只用于对本发明的技术方案作进一步详细地说明,不能理解为对本发明保护范围的限制,本领域的技术人员根据本发明的上述内容作出的一些非本质的改进和调整均属于本发明的保护范围。

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