发明名称 一种室内定位步长计算方法
摘要 本发明公开了一种室内定位步长计算方法,将惯性测量单元置于人员的腰部,人员在室内行走过程中,获得人员惯性传感器数据,包括加速度和四元数;用四元数生成坐标转换矩阵,把基于IMU载体坐标系的加速度转换到地理坐标系;根据地理坐标系下的三轴加速度,得到步态检测的三轴合加速度;处理合加速度数据,得到零速率修正点,完成步态检测,将人员连续的运动划分为每一个单步;利用倒立摆模型,计算人员每一个运动单步的距离,即单步步长,单步步长累加得到人员运动的总距离,得到运动步长。本发明有效地避免二次积分的误差累积,在不影响行人行走的情况下,有效地提高了室内定位步长计算的精度。
申请公布号 CN105698795A 申请公布日期 2016.06.22
申请号 CN201510887154.1 申请日期 2015.12.04
申请人 天津大学 发明人 刘昱;李圣龙
分类号 G01C21/20(2006.01)I 主分类号 G01C21/20(2006.01)I
代理机构 天津市北洋有限责任专利代理事务所 12201 代理人 李素兰
主权项 一种室内定位步长计算方法,其特征在于,所述该方法包括以下步骤步骤1、将惯性测量单元置于人员的腰部,人员在室内行走过程中,获得人员惯性传感器数据,包括加速度和四元数q<sub>0</sub>、q<sub>1</sub>、q<sub>2</sub>、q<sub>3</sub>,其中:q<sub>0</sub>=cos(α/2)q<sub>1</sub>=sin(α/2)cos(β<sub>x</sub>)q<sub>2</sub>=sin(α/2)cos(β<sub>y</sub>)q<sub>3</sub>=sin(α/2)cos(β<sub>z</sub>)α是绕旋转轴旋转的角度,cos(β<sub>x</sub>)、cos(β<sub>y</sub>)、cos(β<sub>z</sub>)为旋转轴在方向的分量;步骤2、利用四元数生成坐标转换矩阵,把基于IMU载体坐标系的加速度转换到地理坐标系:<maths num="0001"><math><![CDATA[<mrow><mi>R</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><msubsup><mi>q</mi><mn>0</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>q</mi><mn>1</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>3</mn><mn>2</mn></msubsup></mrow></mtd><mtd><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>+</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>-</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>-</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msubsup><mi>q</mi><mn>0</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>1</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>q</mi><mn>2</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>3</mn><mn>2</mn></msubsup></mrow></mtd><mtd><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>2</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>+</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>1</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>+</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>2</mn></msub><mo>)</mo></mrow></mrow></mtd><mtd><mrow><mn>2</mn><mrow><mo>(</mo><msub><mi>q</mi><mn>2</mn></msub><msub><mi>q</mi><mn>3</mn></msub><mo>-</mo><msub><mi>q</mi><mn>0</mn></msub><msub><mi>q</mi><mn>1</mn></msub><mo>)</mo></mrow></mrow></mtd><mtd><mrow><msubsup><mi>q</mi><mn>0</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>1</mn><mn>2</mn></msubsup><mo>-</mo><msubsup><mi>q</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>q</mi><mn>3</mn><mn>2</mn></msubsup></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000867406130000011.GIF" wi="1291" he="252" /></maths>其中,R为坐标转换矩阵,q<sub>0</sub>、q<sub>1</sub>、q<sub>2</sub>、q<sub>3</sub>表示四元数;步骤3、根据地理坐标系下的三轴加速度,得到步态检测的三轴合加速度:<maths num="0002"><math><![CDATA[<mrow><mi>A</mi><mo>=</mo><msqrt><mrow><msubsup><mi>a</mi><mi>N</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>a</mi><mi>E</mi><mn>2</mn></msubsup><mo>+</mo><msubsup><mi>a</mi><mi>D</mi><mn>2</mn></msubsup></mrow></msqrt></mrow>]]></math><img file="FDA0000867406130000012.GIF" wi="426" he="107" /></maths>其中,A为三轴合加速度,a<sub>N</sub>、a<sub>E</sub>、a<sub>D</sub>表示地理坐标系下三轴加速度;步骤4、处理合加速度数据,选取合加速度中的极大值点,并且极大值点满足下列关系,即:相邻极大值点的时间间隔大于设定的阈值和极大值大于设定的阈值。阈值是根据经验设定的。从而得到零速率修正点。<maths num="0003"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mi>&Delta;</mi><mi>T</mi><mo>&gt;</mo><msub><mi>T</mi><mrow><mi>T</mi><mi>h</mi></mrow></msub></mtd></mtr><mtr><mtd><mrow><mi>A</mi><mo>&gt;</mo><msub><mi>A</mi><mrow><mi>T</mi><mi>h</mi></mrow></msub></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000867406130000013.GIF" wi="235" he="162" /></maths>其中,ΔT表示两个零速率修正点的时间间隔,T<sub>Th</sub>和A<sub>Th</sub>表示根据经验设定的临界值;完成步态检测,将人员连续的运动划分为每一个单步;步骤5、利用倒立摆模型,计算人员每一个运动单步的距离,即单步步长:S<sub>one</sub>=S<sub>sup</sub>+S<sub>bip</sub>其中,S<sub>one</sub>表示单步步长,S<sub>sup</sub>表示支撑脚时的位移值,S<sub>bip</sub>表示双脚为支撑脚时的位移值;<maths num="0004"><math><![CDATA[<mrow><msub><mi>S</mi><mrow><mi>s</mi><mi>u</mi><mi>p</mi></mrow></msub><mo>=</mo><mn>2</mn><msqrt><mrow><mn>2</mn><msub><mi>&Delta;Y</mi><mn>1</mn></msub><mo>*</mo><msub><mi>L</mi><mn>1</mn></msub><mo>-</mo><msub><mi>&Delta;Y</mi><mn>1</mn></msub><mo>*</mo><msub><mi>&Delta;Y</mi><mn>1</mn></msub></mrow></msqrt></mrow>]]></math><img file="FDA0000867406130000021.GIF" wi="691" he="89" /></maths><maths num="0005"><math><![CDATA[<mrow><msub><mi>S</mi><mrow><mi>b</mi><mi>i</mi><mi>p</mi></mrow></msub><mo>=</mo><mn>2</mn><msqrt><mrow><mn>2</mn><msub><mi>&Delta;Y</mi><mn>2</mn></msub><mo>*</mo><msub><mi>L</mi><mn>2</mn></msub><mo>-</mo><msub><mi>&Delta;Y</mi><mn>2</mn></msub><mo>*</mo><msub><mi>&Delta;Y</mi><mn>2</mn></msub></mrow></msqrt></mrow>]]></math><img file="FDA0000867406130000022.GIF" wi="710" he="91" /></maths>ΔY<sub>1</sub>=L<sub>1</sub>*(1‑cosδ)ΔY<sub>2</sub>=L<sub>2</sub>*(1‑cosδ)其中,L<sub>1</sub>表示单脚支撑时倒置单摆的摆长,取人体垂直站立时IMU在人体的携带点与左脚脚底的距离;L<sub>2</sub>表示双脚为支撑脚时行进过程的单摆摆长;ΔY<sub>1</sub>表示单脚为支撑脚时垂直方向上的最大位移值;ΔY<sub>2</sub>表示双脚为支撑脚时垂直方向上的最小位移值;δ表示行进过程中单脚支撑与双脚支撑的分割临界点时刻支撑腿与垂直地面方向的夹角,是行进过程中腿向前迈出的最大角度值;进而,单步步长累加得到人员运动的总距离,得到运动步长:<maths num="0006"><math><![CDATA[<mrow><msub><mi>L</mi><mrow><mi>s</mi><mi>u</mi><mi>m</mi></mrow></msub><mo>=</mo><msub><mi>S</mi><mn>0</mn></msub><mo>+</mo><munderover><mo>&Sigma;</mo><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover><msub><mi>S</mi><mrow><mi>x</mi><mo>_</mo><mi>n</mi></mrow></msub></mrow>]]></math><img file="FDA0000867406130000023.GIF" wi="426" he="154" /></maths>其中:L<sub>sum</sub>为运动步长,S<sub>0</sub>为初始距离,n为单步步数,S<sub>x_n</sub>为第n个单步步长。
地址 300072 天津市南开区卫津路92号