著录项信息
专利名称 | 一种获取终端运动方向的方法及装置 |
申请号 | CN201310462760.X | 申请日期 | 2013-09-30 |
法律状态 | 授权 | 申报国家 | 暂无 |
公开/公告日 | 2014-01-29 | 公开/公告号 | CN103543289A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G01P13/00 | IPC分类号 | G;0;1;P;1;3;/;0;0;;;G;0;1;C;2;1;/;0;0查看分类表>
|
申请人 | 北京邮电大学 | 申请人地址 | 北京市海淀区西土城路10号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 北京邮电大学 | 当前权利人 | 北京邮电大学 |
发明人 | 邓中亮;魏鹏;王克己;赵晓红;张能元;谢飞鹏;刘倩倩;阮凤立;安倩 |
代理机构 | 北京三高永信知识产权代理有限责任公司 | 代理人 | 关文魁 |
摘要
本发明公开了一种获取终端运动方向的方法及装置,属于定位技术领域。所述方法包括:根据检测用户行进时是否进行转向,当转向时通过终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法;当未转向时通过当前计步周期和上一计步周期中翘起航向角算法和加速度相关算法分别计算得到的翘起航向角之间的差值以及相关航向角之间的差值,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法。本发明弥补了用户手持终端时终端位置与运动方向不一致时通过电子罗盘获取到错误方向的缺陷,提高了定位的准确度。
1.一种获取终端运动方向的方法,其特征在于,所述方法包括:
当检测到用户行进过程中完成一个计步周期时,根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向;
若判断出所述用户行进过程中进行了转向,则计算终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度;根据所述第一角度和所述第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,并选取所述第一目标算法计算的所述终端的第三水平投影角度,根据所述第三水平投影角度确定所述终端当前的运动方向;
若未判断出所述用户行进过程中进行了转向,则获取所述当前计步周期中所述翘起航向角算法计算的第一翘起航向角与所述当前计步周期中所述加速度相关算法计算的第一相关航向角之间的第一差值,以及所述上一个计步周期中所述翘起航向角算法计算的第二翘起航向角与所述上一个计步周期中所述加速度相关算法计算的第二相关航向角之间的第二差值;根据所述第一差值、所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,并选取所述第二目标算法计算的所述终端的第四水平投影角度,根据所述第四水平投影角度确定所述终端当前的运动方向。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一角度和所述第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,包括:
当所述第一角度或所述第二角度中任意一个角度的绝对值大于或等于第一预设角度时,则选取所述翘起航向角算法作为第一目标算法;
当所述第一角度和所述第二角度的绝对值都小于第一预设角度时,则选取所述加速度相关算法作为第一目标算法。
3.根据权利要求1所述的方法,其特征在于,所述根据所述第一差值,所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,包括:
当所述第一差值和所述第二差值都大于或等于第二预设角度时,则选取所述加速度相关算法作为第二目标算法;
当所述第一差值或所述第二差值中任意一个差值小于第二预设角度时,则计算所述终端当前姿态相对于水平面的俯仰角的第三角度和横滚角的第四角度,并根据所述第三角度和所述第四角度,在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法。
4.根据权利要求3所述的方法,其特征在于,所述根据所述第三角度和所述第四角度,在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,包括:
当所述第三角度或所述第四角度中任意一个角度的绝对值大于或等于第三预设角度时,则选取所述翘起航向角算法作为第二目标算法;
当所述第三角度和所述第四角度的绝对值都小于第三预设角度时,则选取所述加速度相关算法作为第二目标算法。
5.根据权利要求1所述的方法,其特征在于,所述根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向之前,所述方法还包括:
获取所述终端中的加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形;
将获取到的所述加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形转换到地理坐标系中,并获取转换后的所述地理坐标系的竖轴的加速度波形;
根据当检测到所述地理坐标系的竖轴的加速度波形到达一个正弦周期时,则确定检测到用户行进过程中完成一个计步周期。
6.一种获取终端运动方向的装置,其特征在于,所述装置包括:
判断模块,用于当检测到用户行进过程中完成一个计步周期时,根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向;
第一确定方向模块,用于若判断出所述用户行进过程中进行了转向,则计算终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度;根据所述第一角度和所述第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,并选取所述第一目标算法计算的所述终端的第三水平投影角度,根据所述第三水平投影角度确定所述终端当前的运动方向;
第二确定方向模块,用于若未判断出所述用户行进过程中进行了转向,则获取所述当前计步周期中所述翘起航向角算法计算的第一翘起航向角与所述当前计步周期中所述加速度相关算法计算的第一相关航向角之间的第一差值,以及所述上一个计步周期中所述翘起航向角算法计算的第二翘起航向角与所述上一个计步周期中所述加速度相关算法计算的第二相关航向角之间的第二差值;根据所述第一差值、所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,并选取所述第二目标算法计算的所述终端的第四水平投影角度,根据所述第四水平投影角度确定所述终端当前的运动方向。
7.根据权利要求6所述的装置,其特征在于,所述第一确定方向模块,包括:
第一选取单元,用于当所述第一角度或所述第二角度中任意一个角度的绝对值大于或等于第一预设角度时,则选取所述翘起航向角算法作为第一目标算法;
第二选取单元,用于当所述第一角度和所述第二角度的绝对值都小于第一预设角度时,则选取所述加速度相关算法作为第一目标算法。
8.根据权利要求6所述的装置,其特征在于,所述第二确定方向模块,包括:
第三选取单元,用于当所述第一差值和所述第二差值都大于或等于第二预设角度时,则选取所述加速度相关算法作为第二目标算法;
第四选取单元,用于当所述第一差值或所述第二差值中任意一个差值小于第二预设角度时,则计算所述终端当前姿态相对于水平面的俯仰角的第三角度和横滚角的第四角度,并根据所述第三角度和所述第四角度,在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法。
9.根据权利要求8所述的装置,其特征在于,所述第四选取单元,包括:
第一选取子单元,用于当所述第三角度或所述第四角度中任意一个角度的绝对值大于或等于第三预设角度时,则选取所述翘起航向角算法作为第二目标算法;
第二选取子单元,用于当所述第三角度和所述第四角度的绝对值都小于第三预设角度时,则选取所述加速度相关算法作为第二目标算法。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
获取模块,用于获取所述终端中的加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形;
转换模块,用于将获取到的所述加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形转换到地理坐标系中,并获取转换后的所述地理坐标系的竖轴的加速度波形;
确定模块,用于根据当检测到所述地理坐标系的竖轴的加速度波形到达一个正弦周期时,则确定检测到用户行进过程中完成一个计步周期。
一种获取终端运动方向的方法及装置\n技术领域\n[0001] 本发明涉及定位技术领域,特别涉及一种获取终端运动方向的方法及装置。\n背景技术\n[0002] 随着定位技术的快速发展,具备导航功能的终端已经普及到每个用户的生活中。\n当用户出行时,可以通过终端中的导航功能获取用户的运动方向,进而方便地指引用户的出行。\n[0003] 终端进行导航时,获取运动方向的方法具体为:终端中内置有电子罗盘,通过电子罗盘中的传感器来测量地球磁场,并根据测量到的地球磁场来确定正北的方向,并根据终端的投影的方向与正北方向的夹角,确定终端的投影方向,一般情况下用户手持终端进行导航时,终端的投影方向即为运动方向。其中,终端的投影方向一般为终端的头部指向的方向。\n[0004] 在实现本发明的过程中,发明人发现现有技术至少存在以下问题:\n[0005] 当用户手持终端进行导航时,如果终端的运动方向与终端的水平投影方向不相同,即用户手持终端在拿歪或拿反时,则确定的终端的水平投影方向与终端的运动方向并不相同,因此会得到错误的导航方向,进而导致导航结果错误。例如:用户横向手持终端向北运动,但是由于终端是横向放置,因此该终端的水平投影方向是向东,造成导航方向获取错误。\n发明内容\n[0006] 为了解决现有技术的问题,本发明实施例提供了一种获取终端运动方向的方法及装置。所述技术方案如下:\n[0007] 一方面,提供了一种获取终端运动方向的方法,所述方法包括:\n[0008] 当检测到用户行进过程中完成一个计步周期时,根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向;\n[0009] 若判断出所述用户行进过程中进行了转向,则计算终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度;根据所述第一角度和所述第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,并选取所述第一目标算法计算的所述终端的第三水平投影角度,根据所述第三水平投影角度确定所述终端当前的运动方向;\n[0010] 若未判断出所述用户行进过程中进行了转向,则获取所述当前计步周期中所述翘起航向角算法计算的第一翘起航向角与所述当前计步周期中所述加速度相关算法计算的第一相关航向角之间的第一差值,以及所述上一个计步周期中所述翘起航向角算法计算的第二翘起航向角与所述上一个计步周期中所述加速度相关算法计算的第二相关航向角之间的第二差值;根据所述第一差值、所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,并选取所述第二目标算法计算的所述终端的第四水平投影角度,根据所述第四水平投影角度确定所述终端当前的运动方向。\n[0011] 另一方面,提供了一种获取终端运动方向的装置,所述装置包括:\n[0012] 判断模块,用于当检测到用户行进过程中完成一个计步周期时,根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向;\n[0013] 第一确定方向模块,用于若判断出所述用户行进过程中进行了转向,则计算终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度;根据所述第一角度和所述第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,并选取所述第一目标算法计算的所述终端的第三水平投影角度,根据所述第三水平投影角度确定所述终端当前的运动方向;\n[0014] 第二确定方向模块,用于若未判断出所述用户行进过程中进行了转向,则获取所述当前计步周期中所述翘起航向角算法计算的第一翘起航向角与所述当前计步周期中所述加速度相关算法计算的第一相关航向角之间的第一差值,以及所述上一个计步周期中所述翘起航向角算法计算的第二翘起航向角与所述上一个计步周期中所述加速度相关算法计算的第二相关航向角之间的第二差值;根据所述第一差值、所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,并选取所述第二目标算法计算的所述终端的第四水平投影角度,根据所述第四水平投影角度确定所述终端当前的运动方向。\n[0015] 本发明实施例提供的技术方案带来的有益效果是:\n[0016] 通过根据检测用户行进时是否进行转向,当转向时通过终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法;当未转向时通过当前计步周期和上一计步周期中翘起航向角算法和加速度相关算法分别计算得到的翘起航向角之间的差值以及相关航向角之间的差值,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法。弥补了用户手持终端时终端位置与运动方向不一致时通过电子罗盘获取到错误方向的缺陷,提高了定位的准确度。\n附图说明\n[0017] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。\n[0018] 图1是本发明实施例一提供的获取终端运动方向的方法流程图;\n[0019] 图2是本发明实施例二提供的获取终端运动方向的方法流程图;\n[0020] 图3是本发明实施例二提供的获取终端运动方向的方法中翘起航向角算法的方法流程图;\n[0021] 图4是本发明实施例二提供的获取终端运动方向的方法中加速度相关算法的方法流程图;\n[0022] 图5是本发明实施例三提供的获取终端运动方向的装置结构示意图。\n具体实施方式\n[0023] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。\n[0024] 实施例一\n[0025] 本发明实施例提供了一种获取终端运动方向的方法,参见图1,方法流程包括:\n[0026] 101:当检测到用户行进过程中完成一个计步周期时,根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向;\n[0027] 102:若判断出所述用户行进过程中进行了转向,则计算终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度,根据所述第一角度和所述第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,并选取所述第一目标算法计算的所述终端的第三水平投影角度,根据所述第三水平投影角度确定所述终端当前的运动方向;\n[0028] 103:若未判断出所述用户行进过程中进行了转向,则获取所述当前计步周期中所述翘起航向角算法计算的第一翘起航向角与所述当前计步周期中所述加速度相关算法计算的第一相关航向角之间的第一差值,以及所述上一个计步周期中所述翘起航向角算法计算的第二翘起航向角与所述上一个计步周期中所述加速度相关算法计算的第二相关航向角之间的第二差值;根据所述第一差值,所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,并选取所述第二目标算法计算的所述终端的第四水平投影角度,根据所述第四水平投影角度确定所述终端当前的运动方向。\n[0029] 本发明实施例通过根据检测用户行进时是否进行转向,当转向时通过终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法;当未转向时通过当前计步周期和上一计步周期中翘起航向角算法和加速度相关算法分别计算得到的翘起航向角之间的差值以及相关航向角之间的差值,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法。弥补了用户手持终端时终端位置与运动方向不一致时通过电子罗盘获取到错误方向的缺陷,提高了定位的准确度。\n[0030] 实施例二\n[0031] 本发明实施例提供了一种获取终端运动方向的方法,参见图2,方法流程包括:\n[0032] 201:获取终端中的加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形;\n[0033] 202:将获取到的加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形转换到地理坐标系中,并获取转换后的地理坐标系的竖轴的加速度波形;\n[0034] 203:根据当检测到所述地理坐标系的竖轴的加速度波形到达一个正弦周期时,则确定检测到用户行进过程中完成一个计步周期。\n[0035] 其中,步骤201-203的过程为用户正常行进(包括步行以及跑动)过程中,终端通过自身携带的惯性仪器中的加速度传感器中获取到各轴的加速度波形,并将各轴的加速度波形转换到地理坐标系中,转换后该地理坐标系的各轴方向的上加速度波形为正弦波形。\n[0036] 在地理坐标系中的竖轴上的加速度波形中选取起始标记位置以及终止标记位置,从起始标记位置至终止标记位置之间为一个完整的正弦周期,其中,一个完整的正弦周期表示用户手持终端完成了行进一步的周期。因此,每当检测到该地理坐标系中的竖轴上的加速度波形中到达终止位置时,则确定检测到用户手持终端完成行进一步的周期。\n[0037] 204:当检测到用户行进过程中完成一个计步周期时,根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向。\n[0038] 其中,终端记录用户手持终端行进的每一步的过程中电子罗盘获取到的水平投影角度,因此将当前行进一步的周期与上一个行进一步的周期中电子罗盘获取到的第一水平投影角度与第二水平投影角度进行对比,当这两个水平投影角度之间的差值的绝对值如果大于第三预设角度,则确定用户行进过程中进行了转向。一般情况下设置第三预设角度为\n60度。\n[0039] 205:若判断出用户行进过程中进行了转向,则计算终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度,根据第一角度和第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,并选取第一目标算法计算的终端的第三水平投影角度,根据第三水平投影角度确定终端当前的运动方向。\n[0040] 其中对于步骤205中根据第一角度和第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法的过程,具体包括:\n[0041] 2051:当第一角度或第二角度中任意一个角度的绝对值大于或等于第一预设角度时,则选取翘起航向角算法作为第一目标算法;\n[0042] 2052:当第一角度和第二角度的绝对值都小于第一预设角度时,则选取加速度相关算法作为第一目标算法;\n[0043] 2053:选取第一目标算法计算的终端的第三水平投影角度,根据第三水平投影角度确定终端当前的运动方向。\n[0044] 其中,一般情况下将第一预设角度设置为5度。\n[0045] 206:若未判断出所述用户行进过程中进行了转向,则获取所述当前计步周期中所述翘起航向角算法计算的第一翘起航向角与所述当前计步周期中所述加速度相关算法计算的第一相关航向角之间的第一差值,以及所述上一个计步周期中所述翘起航向角算法计算的第二翘起航向角与所述上一个计步周期中所述加速度相关算法计算的第二相关航向角之间的第二差值;根据所述第一差值,所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,并选取所述第二目标算法计算的所述终端的第四水平投影角度,根据所述第四水平投影角度确定所述终端当前的运动方向。\n[0046] 其中,第一差值和第二差值都取绝对值以使得到的角度为正,方便后续的判断。\n[0047] 其中,对于步骤206中根据第一差值,第二差值在翘起航向角算法和加速度相关算法中选取第二目标算法的过程,具体包括:\n[0048] 2061:当第一差值和第二差值都大于第二预设角度时,则选取加速度相关算法作为第二目标算法;\n[0049] 2062:当第一差值或第二差值中任意一个差值小于第二预设角度时,则计算终端当前姿态相对于水平面的俯仰角的第三角度和横滚角的第四角度,并根据第三角度和第四角度,在翘起航向角算法和加速度相关算法中选取第二目标算法。\n[0050] 其中,一般情况下将第二预设角度设置为30度。\n[0051] 其中,对于步骤2062中,根据第三角度和第四角度,在翘起航向角算法和加速度相关算法中选取第二目标算法的过程,具体包括:\n[0052] 20621:当第三角度或第四角度中任意一个角度的绝对值大于或等于第三预设角度时,则选取翘起航向角算法作为第二目标算法;\n[0053] 20622:当第三角度和第四角度的绝对值都小于第三预设角度时,则选取加速度相关算法作为第二目标算法。\n[0054] 2063:选取第二目标算法计算的终端的第四水平投影角度,根据第四水平投影角度确定终端当前的运动方向。\n[0055] 其中,如图3所示,在本发明实施例中的翘起航向角算法计算终端的水平投影角度的过程,具体为:\n[0056] 301:计算终端当前姿态相对于水平面的俯仰角的第五角度和横滚角的第六角度,其中俯仰角为终端中的加速度传感器的坐标系的纵轴与水平面的夹角,横滚角为终端中的加速度传感器的坐标系的横轴与水平面的夹角。\n[0057] 其中,终端内置有惯性仪器,该惯性仪器中内置有加速度传感器,在用户携带终端移动时,该加速度传感器会获取到传感器中内置坐标系对应的三轴中各轴对应的加速度,即横轴、竖轴、纵轴对应的加速度。根据各轴的加速度可以根据预设的公式计算终端当前姿态相对于水平面的俯仰角的第五角度和横滚角的第六角度。\n[0058] 具体地,根据加速度传感器的坐标系中的横轴方向加速度,纵轴方向加速度和竖轴方向加速度,按照如下的公式(1)计算加速度传感器的坐标系中的纵轴与水平面的夹角,即俯仰角的第一角度,以及根据加速度传感器的坐标系中的横轴方向加速度,纵轴方向加速度和竖轴方向加速度,按照如下的公式(2)计算加速度传感器的坐标系中的横轴与水平面的夹角,即横滚角的第二角度,\n[0059] \n[0060] \n[0061] 其中,在公式(1)中,α为加速度传感器的坐标系中的纵轴与水平面的夹角即俯仰角,β为加速度传感器的坐标系中的横轴与水平面的夹角即横滚角,AX为加速度传感器的坐标系中的横轴方向的加速度,AY为加速度传感器的坐标系中的纵轴方向的加速度,AZ为加速度传感器的坐标系中的竖轴方向的加速度。\n[0062] 因此步骤301在具体实施方式中可以为:\n[0063] 根据终端中的加速度传感器的坐标系的横轴方向加速度、纵轴方向加速度和竖轴方向加速度,计算终端中的加速度传感器的坐标系的纵轴与水平面之间的俯仰角的第五角度,以及计算终端中的加速度传感器的坐标系中的横轴与水平面之间的横滚角的第六角度。\n[0064] 302:根据第五角度和第六角度,计算终端的翘起方向的水平投影方向与终端中的电子罗盘水平投影方向之间夹角的第七角度。\n[0065] 具体的,根据计算得到的俯仰角和横滚角以及反正切的特征可以确定终端的翘起方向的水平投影方向与终端内置的电子罗盘获取的水平投影角之间的夹角。\n[0066] 其中,终端的翘起方向为用户手持终端时,一般情况下终端的姿态并不会处于水平状态,因此终端自身的坐标系中会有一个方向与水平面之间的夹角是正值,对于该与水平面之间的夹角为正值对应的终端的方向即为终端的翘起方向。正常情况下,用户手持终端的翘起方向即为终端当前运动的方向。\n[0067] 其中,由于各个终端中的电子罗盘的坐标系与加速度传感器的坐标系之间的三轴方向不一定是同向的,因此针对不同终端中上述两个坐标系之间的差别,预先设定好对应的第一计算公式,在计算之前首先根据坐标系之间的方向差别来选取对应的第一计算公式,正常情况下通过第一计算公式以计算终端当前运动方向与终端中的电子罗盘水平投影方向之间夹角的第七角度。因此,对于步骤302计算该夹角的过程可以具体为:\n[0068] 3021:根据终端的加速度传感器的坐标系的三轴方向以及终端中的电子罗盘的坐标系的三轴方向,在坐标系方向与第一计算公式的对应关系中,选取计算终端的翘起方向的水平投影方向与终端中的电子罗盘水平投影方向之间夹角的第一计算公式。\n[0069] 例如:在第一操作系统的终端中会获取的第一计算公式:\n[0070] angle=(atan2(angleHengGun,angleFuYang)+180)%360,其中angle为终端当前运动方向与终端中的电子罗盘水平投影方向之间夹角的第七角度,angleHengGun为横滚角,angleFuYang为俯仰角。\n[0071] 在第二操作系统的终端中会获取的第一计算公式:\n[0072] angle=(atan2(angleFuYang,angleHengGun)+180)%360,其中angle为终端当前运动方向与终端中的电子罗盘水平投影方向之间夹角的第七角度,angleHengGun为横滚角,angleFuYang为俯仰角。\n[0073] 上述公式为实例的方式对不同的终端获取到的第一计算公式进行描述,并不对操作系统对应的公式进行限定。\n[0074] 3022:根据第五角度,第六角度以及第一计算公式,计算终端的翘起方向的水平投影方向与与终端中的电子罗盘水平投影方向之间夹角的第七角度。\n[0075] 303:根据第七角度以及终端中的电子罗盘当前获取到的第五水平投影角度,计算终端的翘起方向的第六水平投影角度,并将第六水平投影角度确定为终端当前的运动方向。\n[0076] 具体的,其中,由于各个终端中的电子罗盘的坐标系与加速度传感器的坐标系之间的三轴方向不一定是同向的,因此针对不同终端中上述两个坐标系之间的差别,预先设定好对应的第二计算公式,在计算之前首先根据坐标系之间的方向差别来选取对应的第二计算公式,正常情况下通过第二计算公式以计算终端当前运动方向在电子罗盘的坐标系中水平投影方向之间夹角的第七角度。因此,对于步骤303计算该夹角的过程可以[0077] 3031:根据终端的加速度传感器的坐标系的三轴方向以及终端中的电子罗盘的坐标系的三轴方向,在坐标系方向与第二计算公式的对应关系中,选取计算终端的翘起方向的第六水平投影角度的第二计算公式。\n[0078] 例如:在第一操作系统的终端中会获取的第二计算公式:\n[0079] azimuth=(angle+compassAngle+360)%360,其中azimuth为终端的翘起方向对应到电子罗盘中的第六水平投影角度,angle为终端当前正常的运动方向与终端中的电子罗盘水平投影方向之间夹角的第七角度,compassAngle为终端中的电子罗盘当前获取到的第五水平投影角度。\n[0080] 在第二操作系统的终端中会获取的第二计算公式:\n[0081] azimuth=(angle-compassAngle+360)%360,其中azimuth为终端的翘起方向对应到电子罗盘中的第六水平投影角度,angle为终端当前正常的运动方向与终端中的电子罗盘水平投影方向之间夹角的第七角度,compassAngle为终端中的电子罗盘当前获取到的第五水平投影角度。\n[0082] 上述公式为实例的方式对不同的终端获取到的第二计算公式进行描述,并不对操作系统对应的公式进行限定。\n[0083] 3032:根据第七角度,终端中的电子罗盘当前获取到的第五水平投影角度以及第二计算公式,计算终端的翘起方向的第六水平投影角度,将所述第六水平投影角度确定为终端运动的翘起航向角。\n[0084] 其中,第六水平投影角度即为翘起航向角算法计算得到终端的水平投影角度即翘起航向角。该翘起航向角可以在电子罗盘确定地理坐标系中确定终端运动的方向,例如翘起航向角计算得到为0度时,则在电子罗盘确定地理坐标系中确定终端运动的方向为向北运动。\n[0085] 根据第六水平投影角度,运用到计算终端的位置时的计算过程中水平投影角进行终端的定位。这个计算终端运动方向的算法为终端翘起航向角算法。\n[0086] 其中,如图4所示,在本发明实施例中的加速度相关算法计算终端的水平投影角度的过程,具体为:\n[0087] 401:根据导航目标在第一坐标系中的横轴方向加速度波形、纵轴方向加速度波形和竖轴方向加速度波形,计算第一坐标系中的横轴方向的平均加速度、纵轴方向的平均加速度和竖轴方向的平均加速度;\n[0088] 其中,第一坐标系为导航设备自身的坐标系,第二坐标系的横轴和纵轴组成的平面与水平面平行。其中,第一坐标系即为终端携带的惯性仪器中加速度传感器的坐标系。\n[0089] 402:根据第一坐标系中的横轴方向的平均加速度、纵轴方向的平均加速度和竖轴方向的平均加速度,计算第一坐标系中的横轴与水平面的第一夹角,以及计算第一坐标系中的纵轴与水平面的第二夹角;\n[0090] 具体地,根据第一坐标系中的横轴方向的平均加速度,纵轴方向的平均加速度和竖轴方向的平均加速度,按照如下的公式(1)计算第一坐标系中的纵轴与水平面的第一夹角,以及根据第一坐标系中的横轴方向的平均加速度,纵轴方向的平均加速度和竖轴方向的平均加速度,按照如下的公式(2)计算第一坐标系中的横轴与水平面的第二夹角,[0091] \n[0092] \n[0093] 其中,在公式(1)中,α为第一坐标系中的纵轴与水平面的第一夹角,β为第一坐标系中的横轴与水平面的第二夹角,BX为第一坐标系中的横轴方向的平均加速度,BY为第一坐标系中的纵轴方向的平均加速度,BZ为第一坐标系中的竖轴方向的平均加速度。其中,第一夹角即为俯仰角,为终端中的加速度传感器的坐标系的纵轴与水平面的夹角,第二夹角即为横滚角,为终端中的加速度传感器的坐标系的横轴与水平面的夹角。\n[0094] 进一步的,在此过程中也可以使用步骤301中计算俯仰角和横滚角的方式,在此并不限定。\n[0095] 403:根据第一夹角和第二夹角,将第一坐标系中的横轴方向加速度波形、纵轴方向加速度波形和竖轴方向加速度波形投影到第二坐标系中,得到第二坐标系中的横轴方向加速度波形、纵轴方向加速度波形和竖轴方向加速度波形;\n[0096] 具体地,建立第二坐标系,根据第一夹角、第二夹角、第一坐标系中的横轴方向加速度波形、纵轴方向加速度波形和竖轴方向加速度波形,按照如下公式(3)计算第二坐标系中的横轴方向加速度,得到第二坐标系中的横轴方向加速度波形;根据第一夹角、第二夹角、第一坐标系中的横轴方向加速度波形、纵轴方向加速度波形和竖轴方向加速度波形,按照如下公式(4)计算第二坐标系中的纵轴方向加速度,得到第二坐标系中的纵轴方向加速度波形;以及根据第一夹角、第二夹角、第一坐标系中的横轴方向加速度波形、纵轴方向加速度波形和竖轴方向加速度波形,按照如下公式(5)计算第二坐标系中的竖轴方向加速度,得到第二坐标系中的竖轴方向加速度波形,\n[0097] ax=Acc_X·cosα+Acc_Y·sinα·sinβ+Acc_Z·cosβ·sinα (3)[0098] ay=Acc_Y·cosβ-Acc_Z·sinβ (4)\n[0099] az=-Acc_X·sinα+Acc_Y·cosα·sinβ+Acc_Z·cosβ·cosα (5)[0100] 其中,在公式(3)中,ax为第二坐标系中的横轴方向加速度,Acc_X为第一坐标系中的横轴方向加速度,Acc_Y为第一坐标系中的纵轴方向加速度,Acc_Z为第一坐标系中的竖轴方向加速度,在公式(4)中,ay为第二坐标系中的纵轴方向加速度,在公式(5)中,az为第二坐标系中的竖轴方向加速度。\n[0101] 其中,第二坐标系中的横轴方向加速度、纵轴方向加速度和竖轴方向加速度均由导航目标自身的加速度、重力加速度、噪声和将加速度从第一坐标系投影到第二坐标系的误差组成。\n[0102] 404:对第二坐标系中的竖轴方向加速度波形在当前周期进行采样,得到当前周期包括的采样点;\n[0103] 具体地,对第二坐标系中的竖轴方向加速度波形在当前周期开始的时间点进行采样,得到一个采样点,并在当前周期开始的时间点之后以及在当前周期结束的时间点之前,每隔一个数据采样时间间隔对第二坐标系中的竖轴方向加速度波形进行采样得到采样点,以及在当前周期结束的时间点进行采样,得到一个采样点,如此,得到当前周期包括的采样点。\n[0104] 405:根据第二坐标系中的横轴方向加速度波形、纵轴方向加速度波形、竖轴方向加速度波形和当前周期包括的采样点,计算第三偏置时间间隔;\n[0105] 具体地,根据第二坐标系中的横轴方向加速度波形、纵轴方向加速度波形、竖轴方向加速度波形和当前周期包括的采样点,按照如下公式(6)计算第三偏置时间间隔,[0106] \n[0107] 其中,在公式(6)中,τm为第三偏置时间间隔,且τm∈(0,(Nm-Nm-1)/2),表示当f(τ)取最大值时对应的偏置时间间隔τ的值,ts为导航设备的数据采样时间间隔,Nm-1为第二坐标系中的竖轴方向加速度波形从第1至第m-1周期采样点的个数,Nm为第二坐标系中的竖轴方向加速度波形从第1至第m周期采样点的个数。\n[0108] 406:将第二坐标系中的横轴方向加速度波形与竖轴方向加速度波形之间的第一偏置时间间隔赋值为第三偏置时间间隔,以及将第二坐标系中的纵轴方向加速度波形与竖轴方向加速度波形之间的第二偏置时间间隔赋值为第三偏置时间间隔;\n[0109] 其中,第一偏置时间间隔和第二偏置时间间隔相等,且第一偏置时间间隔为第二坐标系中横轴方向加速度波形超前或滞后竖轴方向加速度波形的时间间隔,第二偏置时间间隔为第二坐标系中纵轴方向加速度波形超前或滞后竖轴方向加速度波形的时间间隔。\n[0110] 其中,在第二坐标系中,当横轴方向加速度波形超前竖轴方向加速度波形,则第一偏置时间间隔为横轴方向加速度波形超前竖轴方向加速度波形的时间间隔,当横轴方向加速度波形滞后竖轴方向加速度波形,则第一偏置时间间隔为横轴方向加速度波形滞后竖轴方向加速度波形的时间间隔。\n[0111] 其中,在第二坐标系中,当纵轴方向加速度波形超前竖轴方向加速度波形,则第二偏置时间间隔为纵轴方向加速度波形超前竖轴方向加速度波形的时间间隔,当横轴方向加速度波形滞后竖轴方向加速度波形,则第一偏置时间间隔为横轴方向加速度波形滞后竖轴方向加速度波形的时间间隔。\n[0112] 407:根据获取的第一偏置时间间隔,计算第二坐标系中的横轴方向加速度波形和竖轴方向加速度波形的第一差分互相关值,根据第二偏置时间间隔,计算第二坐标系中的纵轴方向加速度波形和竖轴方向加速度波形的第二差分互相关值;\n[0113] 具体地,根据第二坐标系中的横轴方向加速度波形、纵轴方向加速度波形、竖轴方向加速度波形和获取的第一偏置时间间隔,按照如下的公式(7)计算第二坐标系中的横轴方向加速度波形和竖轴方向加速度波形的第一差分互相关值,根据第二坐标系中的横轴方向加速度波形、纵轴方向加速度波形、竖轴方向加速度波形和获取的第二偏置时间间隔,按照如下的公式(8)计算第二坐标系中的纵轴方向加速度波形和竖轴方向加速度波形的第二差分互相关值,\n[0114] \n[0115] \n[0116] 其中,在公式(7)中,τm为第一偏置时间间隔,Rx,z,m(τm)为第二坐标系中的竖轴方向加速度波形在第m周期时第二坐标系中的横轴方向加速度波形和竖轴方向加速度波形的第一差分互相关值,在公式(8)中,τm为第二偏置时间间隔,Ry,z,m(τm)为第二坐标系中的竖轴方向加速度波形在第m周期时第二坐标系中的纵轴方向加速度波形和竖轴方向加速度波形的第二差分互相关值。\n[0117] 其中,第一差分互相关值包括有用的信号分量和无用的噪声分量。\n[0118] 进一步地,第二坐标系中的横轴方向加速度波形和竖轴方向加速度波形的第一差分互相关值还可以表示为如下所示的公式(9),第二坐标系中的纵轴方向加速度波形和竖轴方向加速度波形的第二差分互相关值还可以表示为如下所示的公式(10),[0119] Rx,z,m(τm)=sgn(vx)[Sx,z,m(τm)+Ix,z,m(τm)] (9)\n[0120] Ry,z,m(τm)=sgn(vy)[Sy,z,m(τm)+Iy,z,m(τm)] (10)\n[0121] 其中,在公式(9)中,sgn()为符号函数,vx为导航目标的运动速度在横轴上的分量,Sx,z,m(τm)为第二坐标系中的竖轴方向加速度波形在第m周期时第一差分互相关值的信号分量,Ix,z,m(τm)为第二坐标系中的竖轴方向加速度波形在第m周期时第一差分互相关值的噪声分量,vy为导航目标的运动速度在纵轴上的分量,Sy,z,m(τm)为第二坐标系中的竖轴方向加速度波形在第m周期时第二差分互相关值的信号分量,Iy,z,m(τm)为第二坐标系中的竖轴方向加速度波形在第m周期时第二差分互相关值的噪声分量。\n[0122] 其中,导航目标在第二坐标系中的竖轴方向加速度波形的每个周期的运动方向都不一定相同,所以在每个周期都需要重新计算一次第一差分互相关值和第二差分互相关值。\n[0123] 408:根据第一差分互相关值和第二差分互相关值,在平面坐标系中确定导航目标的运动轨迹所在的象限,该平面坐标系为第二坐标系中的横轴和纵轴组成的坐标系;\n[0124] 具体地,判断第一差分互相关值是否大于0,如果是,则确定导航目标的运动方向在第二坐标系中的横轴上的分量的方向和第二坐标系中的横轴的正方向相同,否则,确定导航目标的运动方向在第二坐标系中的横轴上的分量的方向和第二坐标系中的横轴的反方向相同;以及判断第二差分互相关值是否大于0,如果是,则确定导航目标的运动方向在第二坐标系中的纵轴上的分量的方向和第二坐标系中的纵轴的正方向相同,否则,确定导航目标的运动方向在第二坐标系中的纵轴上的分量的方向和第二坐标系中的纵轴的反方向相同,根据确定的导航目标的运动方向在第二坐标系中的横轴上的分量的方向和纵轴上的分量的方向,在平面坐标系中确定导航目标的运动轨迹所在的象限。\n[0125] 例如,第一差分互相关值为2,第二差分互相关值为1,由于第一差分互相关值为2大于0,则确定导航目标的运动方向在第二坐标系中的横轴上的分量的方向和第二坐标系中的横轴的正方向相同,第二差分互相关值为1大于0,则确定导航目标的运动方向在第二坐标系中的纵轴上的分量的方向和第二坐标系中的纵轴的正方向相同,所以可以确定导航目标的运动轨迹在平面坐标系中的象限为第一象限。\n[0126] 409:根据第一差分互相关值和第二差分互相关值,计算导航目标的运动轨迹与平面坐标系中的纵轴之间的夹角,并将该夹角确定为终端运动的翘起航向角;\n[0127] 具体地,根据第一差分互相关值和第二差分互相关值,按照如下的公式(11)计算第三夹角,并根据第三夹角,按照如下公式(12)计算导航目标的运动轨迹与平面坐标系中的纵轴之间的夹角,\n[0128] θ=arctan[|Rx,z,m(τm)|/|Rx,y,m(τm)|] (11)\n[0129] 其中,在公式(11)中,θ为第三夹角,Rx,z,m(τm)为第一差分互相关值,Ry,z,m(τm)为第二差分互相关值,arctan()为反正切函数。\n[0130] \n[0131] 其中,在公式(12)中, 为导航目标的运动轨迹与平面坐标系中的纵轴之间的夹角,cos()为余弦函数,arccos()为反余弦函数。\n[0132] 进一步地,根据第一差分互相关值包括的信号分量和噪声分量以及第二差分互相关值包括的信号分量和噪声分量,按照如下公式(13)计算计算第三夹角,\n[0133] \n[0134] 可选地,当第一差分互相关值的信号分量远远大于噪声分量,并且第二差分互相关值的信号分量远远大于噪声分量时,可以根据横轴方向加速度波形和竖轴方向加速度波形的第一差分互相关值的信号分量以及纵轴方向加速度波形和竖轴方向加速度波形的第二差分互相关值的信号分量,按照如下公式(14)计算第三夹角,并根据第三夹角,按照上述公式(12)计算导航目标的运动轨迹与平面坐标系中的纵轴之间的夹角,\n[0135] \n[0136] 其中,在公式(14)中,θ为第三夹角。\n[0137] 其中,导航目标的运动轨迹与平面坐标系中的纵轴之间的夹角 大于或等于0°而小于或等于360°。\n[0138] 其中,对第一差分互相关值包括的信号分量与噪声分量作减法运算,得到第三差值,当第三差值大于预设阈值时,则确定第一差分互相关值的信号分量远远大于噪声分量,同理,对第二差分互相关值包括的信号分量与噪声分量作减法运算,得到第四差值,当第四差值大于预设阈值时,则确定第二差分互相关值的信号分量远远大于噪声分量。\n[0139] 进一步地,根据导航设备中包括的电子罗盘确定地理坐标系中的正南方向,并根据导航目标的运动轨迹和平面坐标系中的纵轴之间的夹角,确定导航目标的运动轨迹和地理坐标系中的正南方向的夹角,该夹角即为加速度相关算法计算终端的水平投影角度即相关航向角,并根据该夹角从而确定导航目标的运动轨迹在地理坐标系中的运动方向。该相关航向角可以在电子罗盘确定地理坐标系中确定终端运动的方向,例如相关航向角计算得到为0度时,则在电子罗盘确定地理坐标系中确定终端运动的方向为向北运动。\n[0140] 其中,导航目标的运动轨迹和地理坐标系中的正南方向的夹角大于或等于0°而小于或等于360°。\n[0141] 本发明实施例通过根据检测用户行进时是否进行转向,当转向时通过终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法;当未转向时通过当前计步周期和上一计步周期中翘起航向角算法和加速度相关算法分别计算得到的翘起航向角之间的差值以及相关航向角之间的差值,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法。弥补了用户手持终端时终端位置与运动方向不一致时通过电子罗盘获取到错误方向的缺陷,提高了定位的准确度。\n[0142] 实施例三\n[0143] 本发明实施例提供了一种获取终端运动方向的装置,参见图5,该装置包括:\n[0144] 判断模块501,用于当检测到用户行进过程中完成一个计步周期时,根据当前计步周期中电子罗盘获取到的第一水平投影角度和上一个计步周期中所述电子罗盘获取到的第二水平投影角度,判断所述用户行进过程中是否进行了转向;\n[0145] 第一确定方向模块502,用于若判断出所述用户行进过程中进行了转向,则计算终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度;根据所述第一角度和所述第二角度,在翘起航向角算法和加速度相关算法中选取第一目标算法,并选取所述第一目标算法计算的所述终端的第三水平投影角度,根据所述第三水平投影角度确定所述终端当前的运动方向;\n[0146] 第二确定方向模块503,用于若未判断出所述用户行进过程中进行了转向,则获取所述当前计步周期中所述翘起航向角算法计算的第一翘起航向角与所述当前计步周期中所述加速度相关算法计算的第一相关航向角之间的第一差值,以及所述上一个计步周期中所述翘起航向角算法计算的第二翘起航向角与所述上一个计步周期中所述加速度相关算法计算的第二相关航向角之间的第二差值;根据所述第一差值,所述第二差值在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法,并选取所述第二目标算法计算的所述终端的第四水平投影角度,根据所述第四水平投影角度确定所述终端当前的运动方向。\n[0147] 其中,所述第一确定方向模块502,包括:\n[0148] 第一选取单元,用于当所述第一角度或所述第二角度中任意一个角度的绝对值大于或等于第一预设角度时,则选取所述翘起航向角算法作为第一目标算法;\n[0149] 第二选取单元,用于当所述第一角度和所述第二角度的绝对值都小于第一预设角度时,则选取所述加速度相关算法作为第一目标算法。\n[0150] 其中,所述第二确定方向模块503,包括:\n[0151] 第三选取单元,用于当所述第一差值和所述第二差值都大于或等于第二预设角度时,则选取所述加速度相关算法作为第二目标算法;\n[0152] 第四选取单元,用于当所述第一差值或所述第二差值中任意一个差值小于第二预设角度时,则计算所述终端当前姿态相对于水平面的俯仰角的第三角度和横滚角的第四角度,并根据所述第三角度和所述第四角度,在所述翘起航向角算法和所述加速度相关算法中选取第二目标算法。\n[0153] 其中,所述第四选取单元,包括:\n[0154] 第一选取子单元,用于当所述第三角度或所述第四角度中任意一个角度的绝对值大于或等于第三预设角度时,则选取所述翘起航向角算法作为第二目标算法;\n[0155] 第二选取子单元,用于当所述第三角度和所述第四角度的绝对值都小于第三预设角度时,则选取所述加速度相关算法作为第二目标算法。\n[0156] 其中,所述装置还包括:\n[0157] 获取模块504,用于获取所述终端中的加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形;\n[0158] 转换模块505,用于将获取到的所述加速度传感器的坐标系的横轴、纵轴以及竖轴的加速度波形转换到地理坐标系中,并获取转换后的所述地理坐标系的竖轴的加速度波形;\n[0159] 确定模块506,用于根据当检测到所述地理坐标系的竖轴的加速度波形到达一个正弦周期时,则确定检测到用户行进过程中完成一个计步周期。\n[0160] 本发明实施例通过根据检测用户行进时是否进行转向,当转向时通过终端当前姿态相对于水平面的俯仰角的第一角度和横滚角的第二角度,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法;当未转向时通过当前计步周期和上一计步周期中翘起航向角算法和加速度相关算法分别计算得到的翘起航向角之间的差值以及相关航向角之间的差值,在翘起航向角算法或加速度相关算法中选取确定终端当前运动方向的算法。弥补了用户手持终端时终端位置与运动方向不一致时通过电子罗盘获取到错误方向的缺陷,提高了定位的准确度。\n[0161] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。\n[0162] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。\n[0163] 以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
法律信息
- 2016-01-27
- 2014-03-12
实质审查的生效
IPC(主分类): G01P 13/00
专利申请号: 201310462760.X
申请日: 2013.09.30
- 2014-01-29
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| | 暂无 |
2010-10-26
| | |
2
| |
2013-05-08
|
2013-01-11
| | |
3
| |
2005-08-10
|
2004-11-08
| | |
4
| |
2011-08-31
|
2011-05-23
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |