一种基于行人运动模态辨识的弹性零速判别方法与流程

文档序号:12444476阅读:来源:国知局

技术特征:

1.一种基于行人运动模态辨识的弹性零速判别方法,其特征在于,包括如下步骤:

步骤1,将三轴加速度计和三轴陀螺仪设置于行人身上,根据三轴加速度计和三轴陀螺仪在设定的采集频率下的测量值,设计四种不同的子零速判别方式;所述四种不同的子零速判别方式如下:

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>a</mi> <mi>k</mi> </msub> <mo>=</mo> <msup> <msub> <mi>a</mi> <mi>x</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>a</mi> <mi>y</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>a</mi> <mi>z</mi> </msub> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&sigma;</mi> <mi>a</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mi>k</mi> </mrow> <mrow> <mi>k</mi> <mo>+</mo> <mi>n</mi> </mrow> </munderover> <msup> <mrow> <mo>(</mo> <mrow> <msub> <mi>a</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mover> <mi>a</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mover> <mi>a</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mi>k</mi> </mrow> <mrow> <mi>k</mi> <mo>+</mo> <mi>n</mi> </mrow> </munderover> <msub> <mi>a</mi> <mi>j</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&lambda;</mi> <mn>1</mn> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <msub> <mi>&sigma;</mi> <mi>a</mi> </msub> <mo>&lt;</mo> <msub> <mi>&epsiv;</mi> <mi>a</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>o</mi> <mi>t</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> <mi>s</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> <mo>=</mo> <msup> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>&omega;</mi> <mi>y</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>&omega;</mi> <mi>z</mi> </msub> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&sigma;</mi> <mi>&omega;</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mi>k</mi> </mrow> <mrow> <mi>k</mi> <mo>+</mo> <mi>n</mi> </mrow> </munderover> <msup> <mrow> <mo>(</mo> <mrow> <msub> <mi>&omega;</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mover> <mi>&omega;</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> </mrow> <mo>)</mo> </mrow> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mover> <mi>&omega;</mi> <mo>&OverBar;</mo> </mover> <mi>k</mi> </msub> <mo>=</mo> <mfrac> <mn>1</mn> <mrow> <mi>n</mi> <mo>+</mo> <mn>1</mn> </mrow> </mfrac> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mi>k</mi> </mrow> <mrow> <mi>k</mi> <mo>+</mo> <mi>n</mi> </mrow> </munderover> <msub> <mi>&omega;</mi> <mi>j</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&lambda;</mi> <mn>2</mn> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <msub> <mi>&sigma;</mi> <mi>&omega;</mi> </msub> <mo>&lt;</mo> <msub> <mi>&epsiv;</mi> <mi>&omega;</mi> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>o</mi> <mi>t</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> <mi>s</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

<mrow> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>a</mi> <mi>k</mi> </msub> <mo>=</mo> <msup> <msub> <mi>a</mi> <mi>x</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>a</mi> <mi>y</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>a</mi> <mi>z</mi> </msub> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&lambda;</mi> <mn>3</mn> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <msub> <mi>a</mi> <mi>k</mi> </msub> <mo>&lt;</mo> <msub> <mi>&epsiv;</mi> <msub> <mi>a</mi> <mn>2</mn> </msub> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>o</mi> <mi>t</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> <mi>s</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> </mfenced> <mo>,</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mrow> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> <mo>=</mo> <msup> <msub> <mi>&omega;</mi> <mi>x</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>&omega;</mi> <mi>y</mi> </msub> <mn>2</mn> </msup> <mo>+</mo> <msup> <msub> <mi>&omega;</mi> <mi>z</mi> </msub> <mn>2</mn> </msup> </mrow> </mtd> </mtr> <mtr> <mtd> <mrow> <msub> <mi>&lambda;</mi> <mn>4</mn> </msub> <mrow> <mo>(</mo> <mi>k</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfenced open = "{" close = ""> <mtable> <mtr> <mtd> <mn>1</mn> </mtd> <mtd> <mrow> <msub> <mi>&omega;</mi> <mi>k</mi> </msub> <mo>&lt;</mo> <msub> <mi>&epsiv;</mi> <msub> <mi>&omega;</mi> <mn>2</mn> </msub> </msub> </mrow> </mtd> </mtr> <mtr> <mtd> <mn>0</mn> </mtd> <mtd> <mrow> <mi>o</mi> <mi>t</mi> <mi>h</mi> <mi>e</mi> <mi>r</mi> <mi>s</mi> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow> </mtd> </mtr> </mtable> </mfenced> </mrow>

其中,ak、ωk分别表示三轴加速度计、三轴陀螺仪在k时刻的幅值,σa、σω分别表示三轴加速度计、三轴陀螺仪的方差,ax,ay,az分别表示三轴加速度计在x,y,z轴的测量值,ωxyz分别表示三轴陀螺仪在x,y,z轴的测量值,εaεω为设定的经验值,λ1(k)、λ2(k)、λ3(k)、λ4(k)分别为四种子零速在k时刻的判别结果,n为子零速方差判别窗口;

步骤2,根据如下行人运动模态辨识模型:判别行人是行走和上下楼梯模式还是跑步模式;当连续5个时刻满足上述判别条件,则判断行人为行走和上下楼梯模式,否则为跑步模式;

步骤3,利用三轴加速度计或三轴陀螺仪的方差判别出总零速的起始时刻,利用三轴加速度计或三轴陀螺仪的幅值判别出总零速的终结时刻,将λ3(k)、λ4(k)调整为λ5(k)、λ6(k),形式如下:

其中,当k-1时刻λ1(k-1)=1且k时刻λ1(k)=0时,a_number=1,当λ5(k)=0时a_number=0,当a_number>0且λ5(k)=1时,a_number=a_number+1;同理,当k-1时刻λ2(k-1)=1且k时刻λ2(k)=0时,ω_number=1,当λ6(k)=0时ω_number=0,当ω_number>0且λ6(k)=1时,ω_number=ω_number+1;

步骤4,当利用行人运动模态辨识模型判别出行人为行走和上下楼梯模式时,则总零速判别方式为:

当利用行人运动模态辨识模型判别出行人为跑步模式时,则总零速判别方式为:

其中,||表示或的关系,&&表示与的关系,Z(k)表示k时刻的总零速判别结果。

2.根据权利要求1所述基于行人运动模态辨识的弹性零速判别方法,其特征在于,步骤1所述设定的采集频率为200Hz。

3.根据权利要求1所述基于行人运动模态辨识的弹性零速判别方法,其特征在于,步骤1所述子零速方差判别窗口n的选取为:当行人为行走和上下楼梯模式时,子零速方差判别窗口选取为20;当行人为跑步模式时,子零速方差判别窗口选取为9。

4.根据权利要求1所述基于行人运动模态辨识的弹性零速判别方法,其特征在于,所述步骤2的具体过程为:

行人开始导航时,三轴加速度计和三轴陀螺仪均以200Hz的频率采集数据,在进行第一次子零速判断之前,预先存储一个大小为n的数组,记为Ut(t=1,2,3,…,20),该数组中共存储了0.1秒的三轴加速度计和三轴陀螺仪数据,用于后续计算三轴加速度计方差和三轴陀螺仪方差,此时以t=1的数据作为第一时刻进行子零速判别;当第k时刻接收到新的数据,以公式Ut=Ut+1(t=1,2,3,…,19)对数组中数据进行更新,并将新接收到的数据补充到U20中,并以t=1的数据作为第k时刻进行子零速判别,以此循环。

5.根据权利要求1所述基于行人运动模态辨识的弹性零速判别方法,其特征在于,步骤4所述Z(k)为1时,表示当前k时刻为零速时刻。

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