智能设备的实时定位方法及系统与流程

文档序号:13744982阅读:189来源:国知局
本发明涉及实时定位领域,尤其是涉及一种智能设备的实时定位方法及系统。
背景技术
:便携式智能设备在现代人的日常生活中越来越普及和不可或缺。随着硬件的制造技术不断提高,各种MEMS传感器被集成到便携式智能设备中。因此,很多利用智能设备进行步行导航和追踪的技术被开发出来。一种方法结合了航位推算法和零速校正技术来实现这一目的。其通过对加速度数据的积分处理来获得智能设备的运动速度和运动方向,来进一步推算设备的当前位置。推算过程中结合零速校正技术来降低积分过程中产生的累计误差。然而由于智能设备中的MEMS传感器的精度相对较低,对加速度传感器数据的积分会产生很严重的累计误差。虽然零速校正技术被运用来降低累计误差,但是由于人运动的随机性和复杂性都很高,对数据精度的提升十分有限。另一种方法中,智能设备的运动方向由其运动过程中的朝向来确定。该方法要求用户在运动过程中需要保持设备的某一坐标轴指向运动方向,并根据重力加速度和磁场方向来计算出设备的运动方向。结合计步算法,得到智能设备的位移数据,并显示其实时的定位结果。显然,该方法对用户的使用方法做出了一定的要求,如果用户在运动过程中没有保持智能设备的指定朝向,定位结果会产生很大的误差。第三种方法通过分析用户步行时产生的加速度波形,检测出每个步伐周期中的减速相,并根据波形特征获得减速相中的一个瞬时加速度,将该加速度在水平面上投影来确定设备的运动方向。该方法虽然避免了累计误差,但是由于人运动的随机性和复杂性并不普遍适用。技术实现要素:本发明实施例的目的是提供一种智能设备的实时定位方法及系统,能有效提高定位的精确度。为实现上述目的,本发明实施例提供了一种智能设备的实时定位方法,其包括步骤:S1、根据智能设备中的加速度传感器、重力加速度传感器和磁场传感器实时采集的数据,计算获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度;S2、根据预设截取周期依次截取并获得所述世界坐标系下的X、Y、Z轴加速度序列;其中,所述截取周期包括6~8个步伐周期,每一所述步伐周期是指携带所述智能设备的用户的平均步长;S3、对当前截取周期所截取的Z轴加速度序列进行快速傅里叶变换后得到主频率fstep,并利用通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波;S4、将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而得到当前截取周期的用户步伐数量;S5、利用主成分分析算法对滤波后的X轴加速度序列和Y轴加速度序列进行计算,得到当前截取周期内智能设备的运动方向;S6、利用公式(1)计算当前截取周期内智能设备的位移,并结合上个截取周期所记录的位置得到并记录当前位置:S=N*d*Vmove;公式(1)其中,S为当前截取周期内智能设备的位移,N为当前截取周期的用户步伐数量,Vmove为当前截取周期内智能设备的运动方向,d为用户的平均步长。作为上述方案的改进,所述方法还包括步骤:S7、将步骤S6得到的当前位置与上个截取周期所记录的位置连接,从而得到智能设备的运动轨迹并显示。作为上述方案的改进,所述方法还包括步骤:S41、在滤波后的Z轴加速度序列所构成的时域波形图中,若存在M对大于预设步伐阈值的相邻两个波峰之间的时间间隔小于预设的最短步伐间隔,则将所述用户步伐数量减M,其中,M≥1。作为上述方案的改进,所述预设的最短步伐间隔为0.5秒。作为上述方案的改进,所述预设步伐阈值为0.5m/s2。作为上述方案的改进,所述预设截取周期为4秒;和/或,所述加速度传感器的采集频率为50Hz。作为上述方案的改进,所述步骤S1具体包括:S11、根据重力加速度传感器和磁场传感器实时采集的智能设备坐标系下的数据,计算得到智能设备坐标系与世界坐标系之间的旋转矩阵;S12、将加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴加速度与所述旋转矩阵相乘,从而获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度。作为上述方案的改进,所述旋转矩阵为:其中,R为转换矩阵,θ、γ分别表示方位角、俯仰角、滚动角,且满足公式(2):公式(2)其中,GX、GY、GZ分别表示重力加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴重力加速度,BX、BY、BZ分别表示磁场传感器实时采集的智能设备坐标系下的X、Y、Z轴磁通量。作为上述方案的改进,所述步骤S5具体包括:S51、将滤波后的X轴加速度序列和Y轴加速度序列构成一个水平加速度矩阵;S52、利用主成分分析算法得到所述水平加速度矩阵的第一主成分向量;S53、将所述水平加速度矩阵在所述第一主成分向量上进行降维,得到水平加速度序列;S54、根据所述水平加速度序列和滤波后的Z轴加速度序列之间的相位差对所述第一主成分向量进行校正,从而得到智能设备的运动方向。作为上述方案的改进,所述步骤S52具体包括:S521、根据公式(3)计算出所述水平加速度矩阵的协方差矩阵:C=E{(X-E[X])(X-E[X])T}公式(3)其中,X为水平加速度矩阵,C为协方差矩阵;S522、根据公式(4)计算得到协方差矩阵C的特征向量v及其相应的特征值λ:Cv=λv公式(4)其中,将计算得到的最大特征值所对应的特征向量作为所述第一主成分向量。作为上述方案的改进,所述步骤S53具体包括:将所述水平加速度矩阵与所述第一主成分向量相乘,从而得到降维后的所述水平加速度序列。作为上述方案的改进,所述步骤S54具体包括:将所述水平加速度序列和滤波后的Z轴加速度序列进行对比,若滤波后的Z轴加速度序列的相位领先于所述水平加速度序列,则智能设备的运动方向与所述第一主成分向量方向相同;若所述水平加速度序列的相位领先于滤波后的Z轴加速度序列,则智能设备的运动方向与所述第一主成分向量方向相反。本发明实施例对应提供了一种智能设备的实时定位系统,包括:三轴加速度计算模块,用于根据智能设备中的加速度传感器、重力加速度传感器和磁场传感器实时采集的数据,计算获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度;三轴加速度序列截取模块,用于根据预设截取周期依次截取并获得所述世界坐标系下的X、Y、Z轴加速度序列;其中,所述截取周期包括6~8个步伐周期,每一所述步伐周期是指携带所述智能设备的用户的平均步长;滤波模块,用于对当前截取周期所截取的Z轴加速度序列进行快速傅里叶变换后得到主频率fstep,并利用通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波;步伐计数模块,用于将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而得到当前截取周期的用户步伐数量;运动方向计算模块,利用主成分分析算法对滤波后的X轴加速度序列和Y轴加速度序列进行计算,得到当前截取周期内智能设备的运动方向;位置计算及记录模块,利用公式(1)计算当前截取周期内智能设备的位移,并结合上个截取周期所记录的位置得到并记录当前位置:S=N*d*Vmove;公式(1)其中,S为当前截取周期内智能设备的位移,N为当前截取周期的用户步伐数量,Vmove为当前截取周期内智能设备的运动方向,d为用户的平均步长。作为上述方案的改进,所述系统还包括:运动轨迹显示模块,用于将位置计算及记录模块得到的当前位置与上个截取周期所记录的位置连接,从而得到智能设备的运动轨迹并显示。作为上述方案的改进,所述系统还包括:步伐数量纠正模块,用于在滤波后的Z轴加速度序列所构成的时域波形图中,若存在M对大于预设步伐阈值的相邻两个波峰之间的时间间隔小于预设的最短步伐间隔,则将所述用户步伐数量减M,其中,M≥1。作为上述方案的改进,所述预设的最短步伐间隔为0.5秒。作为上述方案的改进,所述预设步伐阈值为0.5m/s2。作为上述方案的改进,所述预设截取周期为4秒;和/或,所述加速度传感器的采集频率为50Hz。作为上述方案的改进,所述三轴加速度计算模块具体包括:旋转矩阵计算单元,用于根据重力加速度传感器和磁场传感器实时采集的智能设备坐标系下的数据,计算得到智能设备坐标系与世界坐标系之间的旋转矩阵;三轴加速度计算单元,用于将加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴加速度与所述旋转矩阵相乘,从而获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度。作为上述方案的改进,所述旋转矩阵为:其中,R为转换矩阵,θ、γ分别表示方位角、俯仰角、滚动角,且满足公式(2):公式(2)其中,GX、GY、GZ分别表示重力加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴重力加速度,BX、BY、BZ分别表示磁场传感器实时采集的智能设备坐标系下的X、Y、Z轴磁通量。作为上述方案的改进,所述运动方向计算模块具体包括:水平加速度矩阵构成单元,用于将滤波后的X轴加速度序列和Y轴加速度序列构成一个水平加速度矩阵;第一主成分向量计算单元,利用主成分分析算法得到所述水平加速度矩阵的第一主成分向量;水平加速度序列计算单元,用于将所述水平加速度矩阵在所述第一主成分向量上进行降维,得到水平加速度序列;运动方向校正单元,用于根据所述水平加速度序列和滤波后的Z轴加速度序列之间的相位差对所述第一主成分向量进行校正,从而得到智能设备的运动方向。作为上述方案的改进,所述第一主成分向量计算单元具体包括:协方差矩阵计算单元,用于根据公式(3)计算出所述水平加速度矩阵的协方差矩阵:C=E{(X-E[X])(X-E[X])T}公式(3)其中,X为水平加速度矩阵,C为协方差矩阵;最大特征向量计算单元,用于根据公式(4)计算得到协方差矩阵C的特征向量v及其相应的特征值λ:Cv=λv公式(4)其中,将计算得到的最大特征值所对应的特征向量作为所述第一主成分向量。作为上述方案的改进,所述水平加速度序列计算单元具体用于:将所述水平加速度矩阵与所述第一主成分向量相乘,从而得到降维后的所述水平加速度序列。作为上述方案的改进,所述运动方向校正单元具体用于:将所述水平加速度序列和滤波后的Z轴加速度序列进行对比,若滤波后的Z轴加速度序列的相位领先于所述水平加速度序列,则智能设备的运动方向与所述第一主成分向量方向相同;若所述水平加速度序列的相位领先于滤波后的Z轴加速度序列,则智能设备的运动方向与所述第一主成分向量方向相反。与现有技术相比,本发明公开的一种智能设备的实时定位方法及系统根据预设截取周期(时间划窗)依次对由加速度传感器、重力加速度传感器和磁场传感器实时采集并计算得到世界坐标系下的X、Y、Z轴加速度进行截取,从而得到当前截取周期下的X、Y、Z轴加速度序列,然后基于当前截取周期所截取的Z轴加速度序列进行快速傅里叶变换后得到主频率fstep,并利用通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波,将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而得到当前截取周期的用户步伐数量,利用主成分分析算法对滤波后的X轴加速度序列和Y轴加速度序列进行计算,得到当前截取周期内智能设备的运动方向,然后结合用户步伐数量和智能设备的运动方向计算得到当前截取周期内智能设备的位移和当前位置。在本发明中,预设截取周期(时间划窗)包括6~8个步伐周期,所设定的截取周期使得在后续步骤中利用快速傅里叶变换判断Z轴加速度序列的主频率时较为准确,且保证了计步的实时性。而且本发明并不是采用固定通带的带通滤波器,而是根据对当前截取周期所截取的Z轴加速度序列(因为加速度数据在Z轴上振幅最大)进行快速傅里叶变换后得到主频率fstep,并根据这个主频率fstep设计通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波,因此本发明采用的带通滤波器的通带会根据所采集的Z轴加速度数据做相应自动调整,相比现有的固定通带的带通滤波器能够更有效的对干扰数据进行过滤。另外,为了避免在非步行状态下,由于智能设备的轻微晃动所产生加速度数据的波动以及相应的波峰波谷而带来这部分数据导致的误判,本发明还加入了步伐判断阈值这一条件,即将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而提高用户步伐计算的准确度,进而提高了智能设备的实时定位的精确度。附图说明图1是本发明实施例1中一种智能设备的实时定位方法的流程示意图。图2是图1中的步骤S1的流程示意图。图3是本发明实施例1中从智能设备坐标系到世界坐标系的三维旋转示意图。图4是本发明实施例1中当前截取周期所截取的Z轴加速度序列的频域示意图。图5是本发明实施例1中滤波后的Z轴加速度序列的时域波形图,并显示了设定的步伐判定阈值。图6是图1中的步骤S5的流程示意图。图7是本发明实施例1中滤波后的X轴加速度序列和Y轴加速度序列在水平面上的散点分布图。图8是本发明实施例1中水平加速度序列和滤波后的Z轴加速度序列的时域波形对比图。图9是本发明实施例2中一种智能设备的实时定位方法的流程示意图。图10是本发明实施例3中一种智能设备的实时定位方法的流程示意图。图11是本发明实施例4中一种智能设备的实时定位系统的结构框图。图12是图11中的三轴加速度计算模块的结构框图。图13是图11中的运动方向计算模块的结构框图。图14是本发明实施例5中一种智能设备的实时定位系统的结构框图。图15是本发明实施例6中一种智能设备的实时定位系统的结构框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1,是本发明实施例提供的一种智能设备的实时定位方法的流程示意图。该方法包括步骤S1~S6:S1、根据智能设备中的加速度传感器、重力加速度传感器和磁场传感器实时采集的数据,计算获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度。其中,参考图2,所述步骤S1具体包括步骤S11~S12:S11、根据重力加速度传感器和磁场传感器实时采集的智能设备坐标系下的数据,计算得到智能设备坐标系与世界坐标系之间的旋转矩阵。其中,图3为从智能设备坐标系到世界坐标系的三维旋转示意图。智能设备内置加速度传感器中参照的智能设备坐标系的坐标轴定义如图3所示101:X轴平行于屏幕并指向屏幕右侧,Y轴平行于屏幕并指向屏幕上方,Z轴垂直于屏幕并指向屏幕外。为了将加速度数据转换到世界坐标系下,首先利用重力加速度传感器确定垂直于水平面向上的方向,再利用磁场传感器确定磁北方向。然后再计算出世界坐标系下三轴加速度的值。世界坐标系三轴定义如图1所示102:X、Y、Z三轴分别指向东、北、天三个方向。具体的,由重力加速度确定垂直水平面向上的方向,由磁通量确定指向地磁北极的方向。根据这两个方向,可计算出方位角俯仰角θ、滚动角γ,并根据以下公式得到三维旋转矩阵R:其中,R为转换矩阵,θ、γ分别表示方位角、俯仰角、滚动角,且满足公式(2):公式(2)其中,GX、GY、GZ分别表示重力加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴重力加速度,BX、BY、BZ分别表示磁场传感器实时采集的智能设备坐标系下的X、Y、Z轴磁通量。将公式(2)计算得到的θ、γ分别代入转换矩阵的公式中即可计算得到R。S12、将加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴加速度与所述旋转矩阵相乘,从而获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度。其中,设加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴加速度为:acc=accxaccyaccz]]>将智能设备坐标系下的X、Y、Z轴加速度与所述旋转矩阵R相乘后,得到的智能设备运动时在世界坐标系下的X、Y、Z轴加速度为:ACC=ACCxACCyACCz]]>其中,ACCx表示世界坐标系下的X轴加速度,ACCy表示世界坐标系下的Y轴加速度,即ACCx和ACCy为世界坐标系下的水平方向的加速度;而ACCz表示世界坐标系下的Z轴加速度,即为世界坐标系下的垂直方向的加速度。S2、根据预设截取周期依次截取并获得所述世界坐标系下的X、Y、Z轴加速度序列;其中,所述截取周期包括6~8个步伐周期,每一所述步伐周期是指携带所述智能设备的用户的平均步长。经大量测试,人步行的频率最主要集中在1.5-2Hz。本发明中截取周期(即,时间滑窗)设定为4秒。若本发明的加速度传感器的采集频率为50Hz,那么,该时间滑窗的长度L为200。这个长度的时间窗会包括大约6~8个步伐周期,每一所述步伐周期是指携带所述智能设备的用户的平均步长,即每个平均步伐时间。该时间滑窗的长度L的获取,为后续步骤中利用快速傅里叶变换判断主频率时能提高准确度,且保证了计步的实时性。具体实施时,可设计一个长度为600的空数组(3轴加速度、200时间滑窗长度),加速度传感器每次采集数据并旋转坐标系后按xyz轴顺序填充数组,该空数组填充满后进行后续处理并同时重启一个空数组进行下一段的数据记录。S3、对当前截取周期所截取的Z轴加速度序列进行快速傅里叶变换后得到主频率fstep,并利用通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波。在利用时间长度为L的时间滑窗分别对所述世界坐标系下的X、Y、Z轴加速度进行截取,以获得当前截取周期的X、Y、Z轴加速度序列后,需要对该当前截取周期的X、Y、Z轴加速度序列进行后续处理。首先,就是对该当前截取周期的X、Y、Z轴加速度序列进行滤波处理。由于加速度数据在Z轴上振幅最大,从上述空数组中提取出当前截取周期的Z轴加速度序列并对其做快速傅里叶变换,得到的频率响应图中在步伐频率上的幅值会明显高于其他频段,如图4所示。在1.855Hz处的频率幅值明显高于其他频率,即可确定该组数据采集时的步伐频率(即,主频率fstep)为1.855Hz。获得的步伐频率幅值将用于滤波器设计。检测出其主频率fstep后,设计一个通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对该当前截取周期的X、Y、Z轴加速度序列进行滤波。本发明中选用了延迟较低的IIR滤波器,稳定性更高的FIR亦可。由于滤波会产生相位延迟,采用同一滤波器滤波分别对该当前截取周期的X、Y、Z轴加速度序列进行滤波可保证滤波后数据时间上的一致性。通过本发明设计的带通滤波器对当前截取周期的X、Y、Z轴加速度序列进行滤波后,得到当前截取周期滤波后的X、Y、Z轴加速度序列:fACC=fACCxfACCyfACCz]]>其中,fACCx表示当前截取周期滤波后的X轴加速度序列,fACCy表示当前截取周期滤波后的Y轴加速度序列,即fACCx和fACCy为当前截取周期滤波后的水平方向的加速度序列;而fACCz表示当前截取周期滤波后的Z轴加速度序列,即为当前截取周期滤波后的垂直方向的加速度序列(垂直加速度序列)。S4、将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而得到当前截取周期的用户步伐数量。滤波后的Z轴加速度序列fACCz,即为垂直加速度序列ACCV,根据设定的步伐判断阈值,进行步伐检测并记录用户步数。本实施例根据步伐频率设计一个带通滤波器用以过滤原始加速度数据中的环境噪声。滤波后的垂直加速度序列ACCV的波形呈现类似正弦波的波形,判断其周期性并参考步伐阈值来检测用户步伐数量。如图5所示,滤波后的垂直加速度序列的波形301相当平滑,很大程度上降低了步伐误判的几率。但是,在非步行状态下,智能设备的轻微晃动也会产生加速度数据的波动以及相应的波峰波谷,所以为了避免这部分数据导致的误判,本实施例加入了步伐判断阈值这一条件。在滤波后的Z轴加速度序列的时域波形图中,每个在步伐判定阈值302之上的波峰被才判定为一个步伐,从而得到当前截取周期的用户步伐数量N。在本实施例中,所述预设步伐阈值为0.5m/s2。S5、利用主成分分析算法对滤波后的X轴加速度序列和Y轴加速度序列进行计算,得到当前截取周期内智能设备的运动方向。具体的,参考图6,所述步骤S5具体包括步骤S51~S54:S51、将滤波后的X轴加速度序列和Y轴加速度序列构成一个水平加速度矩阵;其中,由于时间滑窗长度为L,被截取且滤波后的X轴加速度序列fACCx和Y轴加速度序列fACCy均为长度为L的序列。将这两个序列组成一个L*2的矩阵,记作为水平加速度矩阵X。S52、利用主成分分析算法得到所述水平加速度矩阵的第一主成分向量;其中,所述步骤S52具体包括步骤S521~S522:S521、根据公式(3)计算出所述水平加速度矩阵的协方差矩阵:C=E{(X-E[X])(X-E[X])T}公式(3)其中,X为水平加速度矩阵,C为协方差矩阵;S522、根据公式(4)计算得到协方差矩阵C的特征向量v及其相应的特征值λ:Cv=λv公式(4)其中,将计算得到的最大特征值λmax所对应的特征向量vmax作为所述第一主成分向量。参考图7,图7是本发明实施例1中滤波后的X轴加速度序列和Y轴加速度序列在水平面上的散点分布图。在本实施例中,加速度传感器采集原始数据采集于一次向西步行过程中。而滤波后的水平加速度序列构成一组二维散点值401分布在X轴附近。对水平加速度序列做主成分分析,得到的第一主成分向量402即指向原数组方差最大方向。S53、将所述水平加速度矩阵在所述第一主成分向量上进行降维,得到水平加速度序列;具体的,将所述水平加速度矩阵X与所述第一主成分向量vmax相乘,从得到降维后的所述水平加速度序列ACCH。S54、根据所述水平加速度序列和滤波后的Z轴加速度序列之间的相位差对所述第一主成分向量进行校正,从而得到智能设备的运动方向。图8是本实施例中的水平加速度序列和滤波后的Z轴加速度序列(即垂直加速度序列)的时域波形对比图。在图8中,水平加速度序列501和垂直加速度序列502具有相同的频率和不同的相位。根据两组加速度序列波形之间的相位差校正第一主成分的向量方向,得到智能设备的运动方向。具体的,将所述水平加速度序列ACCH和滤波后的Z轴加速度序列fACCz(即垂直加速度序列ACCV)进行对比,若垂直加速度序列ACCV的相位领先于所述水平加速度序列,则智能设备的运动方向与所述第一主成分向量方向相同,即,vmove=vmax;若所述水平加速度序列的相位领先于垂直加速度序列ACCv,则智能设备的运动方向与所述第一主成分向量方向相反,即,vmove=-vmax。S6、利用公式(1)计算当前截取周期内智能设备的位移,并结合上个截取周期所记录的位置得到并记录当前位置:S=N*d*Vmove;公式(1)其中,S为当前截取周期内智能设备的位移,N为当前截取周期的用户步伐数量,Vmove为当前截取周期内智能设备的运动方向,d为用户的平均步长。结合步骤S4中获得的当前截取周期内的用户步伐数量N和步骤S5中获得的当前截取周期内的智能设备的运动方向Vmove,即可计算出当前截取周期内的位移,并通过上个截取周期所记录的智能设备位置S上得到并记录当前智能设备位置S当。假设用户的平均步长为d,则当前截取周期内的位移为S=N·d·Vmove,当前智能设备位置S当=S上+S。图9是本发明实施例2中一种智能设备的实时定位方法的流程示意图。在该实施例中,该方法在实施例1的基础上,还包括步骤:S41、在滤波后的Z轴加速度序列所构成的时域波形图中,若存在M对大于预设步伐阈值的相邻两个波峰之间的时间间隔小于预设的最短步伐间隔,则将所述用户步伐数量减M,其中,M≥1。即,在本实施例公开的智能设备的实时定位方法中,在实施例1的基础上还增加了对计算得到的用户步伐数量进行纠正的步骤。通过带通滤波器对加速度数据进行了滤后,但数据仍然会有不规则的波形,例如一个周期里有2个小波峰。这种情况需要设定一个最短步伐间隔来降低误判,如果两个波峰出现的时间间隔小于最短步伐间隔,则只记为一个步伐。因此,本实施例为了有效避免不规则波形对计步结果的影响,在滤波后的Z轴加速度序列所构成的时域波形图中,每对相邻波峰之间的时间间隔将被检测。如果该时间间隔比预设的最短步伐间隔(如0.5秒)更短,则这对波峰只记作一个步伐。在滤波后的Z轴加速度序列所构成的时域波形图中,若存在M对大于预设步伐阈值的相邻两个波峰之间的时间间隔小于预设的最短步伐间隔,则将计算得到的所述用户步伐数量N进行减M处理,其中,M≥1,即纠正后的用户步伐数量N纠=N-M。在得到纠正后的用户步伐数量N纠后,则基于纠正后的用户步伐数量N纠来计算当前截取周期内智能设备的位移,即将N纠替换到实施例1中公式(1)中的N以计算当前截取周期内智能设备的位移S,从而提高计算结果的精确度。图10是本发明实施例3中一种智能设备的实时定位方法的流程示意图。在该实施例中,该方法在实施例1的基础上,还包括步骤:S7、将步骤S6得到的当前位置与上个截取周期所记录的位置连接,从而得到智能设备的运动轨迹并显示。在本实施例中,除了能够实时定位智能设备的当前位置外,还能将智能设备的运动轨迹实时显示给用户。具体的,通过将步骤S6可以依次得到每个截取周期的当前位置,将每个截取周期的当前位置与上个截取周期所记录的位置连接,即可得到智能设备的运动轨迹,并通过显示屏进行显示给用户。图11是本发明实施例4中一种智能设备的实时定位系统的结构框图。该系统包括模块41~46:三轴加速度计算模块41,用于根据智能设备中的加速度传感器、重力加速度传感器和磁场传感器实时采集的数据,计算获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度;三轴加速度序列截取模块42,用于根据预设截取周期依次截取并获得所述世界坐标系下的X、Y、Z轴加速度序列;其中,所述截取周期包括6~8个步伐周期,每一所述步伐周期是指携带所述智能设备的用户的平均步长;具体的,本发明中截取周期(即,时间滑窗)设定为4秒。若本发明的加速度传感器的采集频率为50Hz,那么,该时间滑窗的长度L为200。滤波模块43,用于对当前截取周期所截取的Z轴加速度序列进行快速傅里叶变换后得到主频率fstep,并利用通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波;步伐计数模块44,用于将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而得到当前截取周期的用户步伐数量;运动方向计算模块45,利用主成分分析算法对滤波后的X轴加速度序列和Y轴加速度序列进行计算,得到当前截取周期内智能设备的运动方向;位置计算及记录模块46,利用公式(1)计算当前截取周期内智能设备的位移,并结合上个截取周期所记录的位置得到并记录当前位置:S=N*d*Vmove;公式(1)其中,S为当前截取周期内智能设备的位移,N为当前截取周期的用户步伐数量,Vmove为当前截取周期内智能设备的运动方向,d为用户的平均步长。具体的,图12是图11中的三轴加速度计算模块的结构框图。该三轴加速度计算模块41具体包括单元411~412:旋转矩阵计算单元411,用于根据重力加速度传感器和磁场传感器实时采集的智能设备坐标系下的数据,计算得到智能设备坐标系与世界坐标系之间的旋转矩阵;三轴加速度计算单元412,用于将加速度传感器实时采集的智能设备坐标系下的X、Y、Z轴加速度与所述旋转矩阵相乘,从而获得智能设备运动时在世界坐标系下的X、Y、Z轴加速度。具体的,图13是图11中的运动方向计算模块的结构框图。该运动方向计算模块45具体包括单元451~454:水平加速度矩阵构成单元451,用于将滤波后的X轴加速度序列和Y轴加速度序列构成一个水平加速度矩阵;第一主成分向量计算单元452,利用主成分分析算法得到所述水平加速度矩阵的第一主成分向量;水平加速度序列计算单元453,用于将所述水平加速度矩阵在所述第一主成分向量上进行降维,得到水平加速度序列;具体的,将所述水平加速度矩阵与所述第一主成分向量相乘,从而得到降维后的所述水平加速度序列。运动方向校正单元454,用于根据所述水平加速度序列和滤波后的Z轴加速度序列之间的相位差对所述第一主成分向量进行校正,从而得到智能设备的运动方向。具体的,将所述水平加速度序列和滤波后的Z轴加速度序列进行对比,若滤波后的Z轴加速度序列的相位领先于所述水平加速度序列,则智能设备的运动方向与所述第一主成分向量方向相同;若所述水平加速度序列的相位领先于滤波后的Z轴加速度序列,则智能设备的运动方向与所述第一主成分向量方向相反。具体的,所述第一主成分向量计算单元452具体包括:协方差矩阵计算单元,用于根据公式(3)计算出所述水平加速度矩阵的协方差矩阵:C=E{(X-E[X])(X-E[X])T}公式(3)其中,X为水平加速度矩阵,C为协方差矩阵;最大特征向量计算单元,用于根据公式(4)计算得到协方差矩阵C的特征向量v及其相应的特征值λ:Cv=λv公式(4)其中,将计算得到的最大特征值所对应的特征向量作为所述第一主成分向量。本实施例的智能设备的实时定位系统的工作原理及过程请参考实施例1,在此不再赘述。图14是本发明实施例5中一种智能设备的实时定位系统的结构框图。该系统在实施例4的基础上,还包括:步伐数量纠正模块441,用于在滤波后的Z轴加速度序列所构成的时域波形图中,若存在M对大于预设步伐阈值的相邻两个波峰之间的时间间隔小于预设的最短步伐间隔,则将所述用户步伐数量减M,其中,M≥1。本实施例的智能设备的实时定位系统的工作原理及过程请参考实施例2,在此不再赘述。图15是本发明实施例6中一种智能设备的实时定位系统的结构框图。该系统在实施例4的基础上,还包括:运动轨迹显示模块47,用于将位置计算及记录模块得到的当前位置与上个截取周期所记录的位置连接,从而得到智能设备的运动轨迹并显示。本实施例的智能设备的实时定位系统的工作原理及过程请参考实施例3,在此不再赘述。综上所述,本发明公开的一种智能设备的实时定位方法及系统根据预设截取周期(时间划窗)依次对由加速度传感器、重力加速度传感器和磁场传感器实时采集并计算得到世界坐标系下的X、Y、Z轴加速度进行截取,从而得到当前截取周期下的X、Y、Z轴加速度序列,然后基于当前截取周期所截取的Z轴加速度序列进行快速傅里叶变换后得到主频率fstep,并利用通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波,将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而得到当前截取周期的用户步伐数量,利用主成分分析算法对滤波后的X轴加速度序列和Y轴加速度序列进行计算,得到当前截取周期内智能设备的运动方向,然后结合用户步伐数量和智能设备的运动方向计算得到当前截取周期内智能设备的位移和当前位置。在本发明中,预设截取周期(时间划窗)包括6~8个步伐周期,所设定的截取周期使得在后续步骤中利用快速傅里叶变换判断Z轴加速度序列的主频率时较为准确,且保证了计步的实时性。而且本发明并不是采用固定通带的带通滤波器,而是根据对当前截取周期所截取的Z轴加速度序列(因为加速度数据在Z轴上振幅最大)进行快速傅里叶变换后得到主频率fstep,并根据这个主频率fstep设计通带为[fstep-0.5Hz,fstep+0.5Hz]的带通滤波器分别对当前截取周期内所截取的X、Y、Z轴加速度序列进行滤波,因此本发明采用的带通滤波器的通带会根据所采集的Z轴加速度数据做相应自动调整,相比现有的固定通带的带通滤波器能够更有效的对干扰数据进行过滤。另外,为了避免在非步行状态下,由于智能设备的轻微晃动所产生加速度数据的波动以及相应的波峰波谷而带来这部分数据导致的误判,本发明还加入了步伐判断阈值这一条件,即将滤波后的Z轴加速度序列所构成的时域波形图中大于预设步伐阈值的每个波峰判定为一个步伐,从而提高用户步伐计算的准确度,进而提高了智能设备的实时定位的精确度。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所述是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1