首页> 中国专利> 姿态四元数确定方法、装置及用户朝向确定方法、装置

姿态四元数确定方法、装置及用户朝向确定方法、装置

摘要

本申请公开了一种姿态四元数确定方法、装置及用户朝向确定方法、装置,本申请当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;根据加速度计梯度增益、磁力计梯度增益,对当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;根据上一时刻的姿态四元数、修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。本申请方案通过确定加速度计梯度增益和磁力计梯度增益,对姿态梯度进行修正,加快了姿态梯度的收敛速度,进而根据修正后的姿态梯度确定终端当前时刻的姿态四元数,能够加快方位角收敛速度。

著录项

  • 公开/公告号CN108507567A

    专利类型发明专利

  • 公开/公告日2018-09-07

    原文格式PDF

  • 申请/专利权人 高德信息技术有限公司;

    申请/专利号CN201710104781.2

  • 发明设计人 郑志超;毛灵飞;杨志强;

    申请日2017-02-24

  • 分类号G01C21/16(20060101);G01C21/20(20060101);

  • 代理机构11227 北京集佳知识产权代理有限公司;

  • 代理人王宝筠

  • 地址 100080 北京市海淀区苏州街3号16层2号房

  • 入库时间 2023-06-19 06:25:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-07-10

    授权

    授权

  • 2020-05-26

    专利申请权的转移 IPC(主分类):G01C21/16 登记生效日:20200508 变更前: 变更后: 申请日:20170224

    专利申请权、专利权的转移

  • 2018-10-09

    实质审查的生效 IPC(主分类):G01C21/16 申请日:20170224

    实质审查的生效

  • 2018-09-07

    公开

    公开

说明书

技术领域

本申请涉及定向技术领域,更具体地说,涉及一种姿态四元数确定方法、装置及用户朝向确定方法、装置。

背景技术

四元数是由一个实数和三个复数组成的超复数,可用于描述物体的转动。其中实数表征转动的大小,三个复数分别表征转轴在三维空间的方向。姿态四元数是表征载体三维空间姿态的四元数。确定了载体的姿态四元数之后,可以通过姿态四元数求解载体的方位角。

现有技术在求解载体的姿态四元数时通过多传感器融合技术,常见的如卡尔曼滤波算法、Madgwick梯度下降算法等,其根据加速度计、陀螺仪、磁力计等运动传感器的测量值实现载体方位角的求解过程。但是,本案发明人对现有算法研究发现,现有算法普遍存在方位角收敛时间长,无法快速得到准确的方位角的问题。

发明内容

有鉴于此,本申请提供了一种姿态四元数确定方法、装置及用户朝向确定方法、装置,用于加快方位角快速收敛速度,快速得到准确的方位角。

为了实现上述目的,现提出的方案如下:

一种姿态四元数确定方法,包括:

根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;以及,根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,还包括:

根据修正后的当前时刻的姿态梯度确定陀螺仪误差;

根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果,所述补偿后的当前时刻的陀螺仪测量结果作为所述确定的当前时刻的陀螺仪测量结果。

优选地,在所述根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度之前,该方法还包括:

根据当前时刻的加速度计测量结果,确定终端的加速度值是否超过设定加速度阈值;

若否,执行所述根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度的步骤;

若是,根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,所述根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数,包括:

根据当前时刻的陀螺仪测量结果,计算陀螺仪的转动四元数;

将所述上一时刻的姿态四元数及所述陀螺仪的转动四元数相加,结果确定为终端当前时刻的姿态四元数。

一种用户朝向确定方法,该方法包括:

确定终端当前时刻的姿态四元数;

根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向;

判断表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向是否相同;

若否,根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数;

根据修正后的当前时刻的姿态四元数求解方位角,所述方位角表示用户当前朝向与设定基准方向的夹角。

优选地,所述确定终端当前时刻的姿态四元数,包括:

根据当前时刻加速度计的测量结果,确定终端的加速度值是否超过设定加速度阈值;

若否,根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

根据所述当前时刻的姿态梯度确定陀螺仪误差;

根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果;

根据所述上一时刻的姿态四元数、所述当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,该方法还包括:

若确定终端的加速度值超过设定加速度阈值,则根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,在所述确定当前时刻的姿态梯度之后,该方法还包括:

根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;以及,根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

所述根据所述当前时刻的姿态梯度确定陀螺仪误差,包括:

根据所述修正后的当前时刻的姿态梯度确定陀螺仪误差;

所述根据所述上一时刻的姿态四元数、所述当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数,包括:

根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,所述终端包括显示屏,由显示屏长边方向作为y轴,由显示屏短边方向作为x轴,垂直于显示屏方向作为z轴;

所述根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向,包括:

判断当前时刻加速度计测量的x轴向的加速度值的绝对值,是否不超过y轴向和z轴向的加速度值的绝对值的和值;

若是,确定y轴向表示用户当前朝向,并在y轴向的加速度值大于零时确定y轴正向表示用户当前朝向,在y轴向的加速度值小于零时确定y轴反向表示用户当前朝向;

若否,确定x轴向表示用户当前朝向,并在x轴向的加速度值大于零时确定x轴正向表示用户当前朝向,在x轴向的加速度值小于零时确定x轴反向表示用户当前朝向。

优选地,所述根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数,包括:

确定表示用户当前朝向的轴向及表示用户上一时刻朝向的轴向的组合对应的四元数修正系数;

将确定的四元数修正系数与所述当前时刻的姿态四元数进行四元数相乘,得到修正后的当前时刻的姿态四元数。

优选地,所述根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数,包括:

根据当前时刻的陀螺仪测量结果,计算陀螺仪的转动四元数;

将所述上一时刻的姿态四元数及所述陀螺仪的转动四元数相加,结果确定为终端当前时刻的姿态四元数。

一种姿态四元数确定装置,包括:

姿态梯度确定单元,用于根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

加速度计梯度增益确定单元,用于根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;

磁力计梯度增益确定单元,用于根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

姿态梯度修正单元,用于根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

第一姿态四元数确定单元,用于根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,还包括:

陀螺仪误差确定单元,用于根据修正后的当前时刻的姿态梯度确定陀螺仪误差;

陀螺仪测量结果补偿单元,用于根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果,所述补偿后的当前时刻的陀螺仪测量结果作为所述确定的当前时刻的陀螺仪测量结果。

优选地,还包括:

加速度值判断单元,用于根据当前时刻的加速度计测量结果,确定终端的加速度值是否超过设定加速度阈值;若否,执行所述第一姿态四元数确定单元,若是,执行第二姿态四元数确定单元;

所述第二姿态四元数确定单元,用于根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,所述第二姿态四元数确定单元根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数的过程,具体包括:

根据当前时刻的陀螺仪测量结果,计算陀螺仪的转动四元数;

将所述上一时刻的姿态四元数及所述陀螺仪的转动四元数相加,结果确定为终端当前时刻的姿态四元数。

一种用户朝向确定装置,该装置包括:

姿态四元数确定单元,用于确定终端当前时刻的姿态四元数;

轴向确定单元,用于根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向;

轴向判断单元,用于判断表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向是否相同;

姿态四元数修正单元,用于在所述轴向判断单元的判断结果为否时,根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数;

方位角求解单元,用于根据修正后的当前时刻的姿态四元数求解方位角,所述方位角表示用户当前朝向与设定基准方向的夹角。

优选地,所述姿态四元数确定单元确定终端当前时刻的姿态四元数的过程,具体包括:

根据当前时刻加速度计的测量结果,确定终端的加速度值是否超过设定加速度阈值;

若否,根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

根据所述当前时刻的姿态梯度确定陀螺仪误差;

根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果;

根据所述上一时刻的姿态四元数、所述当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,所述姿态四元数确定单元确定终端当前时刻的姿态四元数的过程,还包括:

若确定终端的加速度值超过设定加速度阈值,则根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,所述姿态四元数确定单元确定终端当前时刻的姿态四元数的过程,还包括:

在确定当前时刻的姿态梯度之后,根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;以及,根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

所述姿态四元数根据所述当前时刻的姿态梯度确定陀螺仪误差的过程,具体包括:

根据所述修正后的当前时刻的姿态梯度确定陀螺仪误差;

所述姿态四元数根据所述上一时刻的姿态四元数、所述当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数的过程,具体包括:

根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

优选地,所述终端包括显示屏,由显示屏长边方向作为y轴,由显示屏短边方向作为x轴,垂直于显示屏方向作为z轴;

所述轴向确定单元根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向的过程,具体包括:

判断当前时刻加速度计测量的x轴向的加速度值的绝对值,是否不超过y轴向和z轴向的加速度值的绝对值的和值;

若是,确定y轴向表示用户当前朝向,并在y轴向的加速度值大于零时确定y轴正向表示用户当前朝向,在y轴向的加速度值小于零时确定y轴反向表示用户当前朝向;

若否,确定x轴向表示用户当前朝向,并在x轴向的加速度值大于零时确定x轴正向表示用户当前朝向,在x轴向的加速度值小于零时确定x轴反向表示用户当前朝向。

优选地,所述姿态四元数修正单元根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数的过程,具体包括:

确定表示用户当前朝向的轴向及表示用户上一时刻朝向的轴向的组合对应的四元数修正系数;

将确定的四元数修正系数与所述当前时刻的姿态四元数进行四元数相乘,得到修正后的当前时刻的姿态四元数。

优选地,所述姿态四元数根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数的过程,具体包括:

根据当前时刻的陀螺仪测量结果,计算陀螺仪的转动四元数;

将所述上一时刻的姿态四元数及所述陀螺仪的转动四元数相加,结果确定为终端当前时刻的姿态四元数。

从上述的技术方案可以看出,本申请实施例提供的姿态四元数确定方法,根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;以及,根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。本申请方案通过确定加速度计梯度增益和磁力计梯度增益,对姿态梯度进行修正,加快了姿态梯度的收敛速度,进而根据修正后的姿态梯度确定终端当前时刻的姿态四元数,能够加快方位角收敛速度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请实施例公开的一种姿态四元数确定方法流程图;

图2为本申请实施例公开的另一种姿态四元数确定方法流程图;

图3为本申请实施例公开的又一种姿态四元数确定方法流程图;

图4为本申请实施例公开的一种用户朝向确定方法流程图;

图5为本申请实施例公开的又一种姿态四元数确定方法流程图;

图6a-6c分别示例的三种不同的手机摆放姿势示意图;

图7为本申请实施例公开的一种姿态四元数确定装置结构示意图;

图8为本申请实施例公开的一种用户朝向确定装置结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请实施例公开了一种姿态四元数确定方法,方法可以应用于终端设备,终端设备可以设置有加速度计、磁力计、陀螺仪等运行传感器。常见的终端设备可以包括智能手机、IPAD等。通过确定终端设备的姿态四元数,能够解算出终端设备的方位角。

参见图1,图1为本申请实施例公开的一种姿态四元数确定方法流程图。如图1所示,该方法包括:

步骤S100、根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

具体地,假定k表示当前时刻,k-1表示上一时刻,记上一时刻终端的姿态四元数为:

Q(k-1)=[qw>x>y>z]

当前时刻加速度计测量结果为A(k),归一化后为则当前时刻加速度计测量结果对应的特征函数和雅克比矩阵分别为:

当前时刻磁力计测量结果为M(k),归一化后为则当前时刻磁力计计测量结果对应的特征函数和雅克比矩阵分别为:

其中,hy、hz分别为磁力计在地里坐标系的水平投影和垂直投影,可以近似求解为:

Q*(k-1)表示Q(k-1)的共轭,即:

Q*(k-1)=[qw>x>y>z]

当前时刻的姿态梯度G(k)为:

可以理解的是,在初始时刻,可以设置终端的初始姿态四元数Q(0)。初始姿态四元数可以通过如下方式确定:

若加速度计为三轴加速度计,三轴加速度计输出为:

A=[ax>y>z]T

归一化为:

同理,磁力计为三轴磁力计,三轴磁力计输出为:

M=[mx>y>z]T

归一化为:

则,初始姿态四元数Q(0)为:

步骤S110、根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;

具体地,加速度计梯度增益计算公式如下:

Ka=1+sign(||fa||-0.5)

其中,sign(x)为符号函数,可以表示为:

步骤S120、根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

具体地,磁力计梯度增益计算公式如下:

Km=1+10·||fm||

可以理解的是,上述步骤S110和步骤S120的执行顺序并不限定,可以同时执行,图1仅仅示例了一种可选的执行方式。

步骤S130、根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

具体地,修正后的当前时刻的姿态梯度ΔQG(k)可以表示为:

ΔQG(k)=-β·Ka·Km·G(k)

其中,为陀螺零偏增益,与陀螺仪零偏系数εb有关。

步骤S140、根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

具体地,可以根据确定的当前时刻的陀螺仪测量结果,计算当前时刻的转动四元数,进而将当前时刻的转动四元数、上一时刻的姿态四元数以及修正后的当前时刻的姿态梯度相加,结果确定为当前时刻的姿态四元数。

可选的,确定的当前时刻的陀螺仪测量结果可以是当前时刻陀螺仪输出的测量结果,也可以是对当前时刻陀螺仪输出的测量结果进行误差补偿后的结果。

本申请实施例提供的姿态四元数确定方法,根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;以及,根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。本申请方案通过确定加速度计梯度增益和磁力计梯度增益,对姿态梯度进行修正,加快了姿态梯度的收敛速度,进而根据修正后的姿态梯度确定终端当前时刻的姿态四元数,能够加快方位角收敛速度。

参见图2,图2为本申请实施例公开的另一种姿态四元数确定方法流程图。结合图2可知,该方法可以包括:

步骤S200、根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

步骤S210、根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;

步骤S220、根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

步骤S230、根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

具体地,上述步骤S200-S230与上一实施例中的步骤S100-S130一一对应。

步骤S240、根据修正后的当前时刻的姿态梯度确定陀螺仪误差;

具体地,记当前时刻陀螺仪的测量结果为:

ω(k)=[ωx>y>z]T

上一时刻陀螺仪误差为ε(k-1),则当前时刻陀螺仪误差为:

其中,初始化时ε(0)为0;为陀螺随机游走增益,与陀螺仪随机游走系数εw有关;Δt为采样时间间隔。

步骤S250、根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果;

具体地,补偿后的当前时刻的陀螺仪测量结果为:

步骤S260、根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

具体地,根据补偿后的当前时刻的陀螺仪测量结果,计算当前时刻的转动四元数为:

则终端当前时刻的姿态四元数为:

Q(k)=Q(k-1)+ΔQω(k)+ΔQG(k)

相比于上一实施例,本实施例中增加了根据修正后的当前时刻的姿态梯度确定陀螺仪误差,以及对陀螺仪测量结果进行补偿的过程,通过误差补偿使得陀螺仪测量结果更加准确,进而基于此确定的终端当前时刻的姿态四元数也更加准确。

参见图3,图3为本申请实施例公开的又一种姿态四元数确定方法流程图。如图3所示,该方法包括:

步骤S300、根据当前时刻的加速度计测量结果,确定终端的加速度值是否超过设定加速度阈值;若否,执行步骤S310,若是,执行步骤S360;

具体地,通过加速度计各测量轴向上测量得到的加速度分量,可以确定终端整体的加速度,以三轴加速度为例,终端的加速度为:

确定终端的加速度是否超过设定加速度阈值的过程,可以包括:

判断是否满足如下两个条件中的任意一个,如果是,则认为终端的加速度超过设定加速度阈值:

其中,α1和为大于1的数值,α2为小于1的数值,g为重力常数。

可选的,α1可以设置为1.2,α2可以设置为0.8。

在确定终端的加速度未超过设定加速度阈值时,可以按照下述步骤S310-S350的方式确定终端当前的姿态四元数,在确定过程可以使用加速度计测量结果。而在确定终端的加速度超过设定加速度阈值时,则为了避免加速度过大导致航向跳跃,可以不使用加速度计测量结果来确定终端当前的姿态四元数,具体如步骤S360。

步骤S310、根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

步骤S320、根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;

步骤S330、根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

步骤S340、根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

步骤S350、根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数;

具体地,上述步骤S310-S350与上述实施例中的步骤S100-S140一一对应。

步骤S360、根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

具体地,本步骤的执行方式可以包括:

S1、根据当前时刻的陀螺仪测量结果,计算陀螺仪的转动四元数;

陀螺仪的转动四元数可以为:

S2、将所述上一时刻的姿态四元数及所述陀螺仪的转动四元数相加,结果确定为终端当前时刻的姿态四元数。

终端当前时刻的姿态四元数为:

Q(k)=Q(k-1)+ΔQω(k)

相比于上述实施例,本实施例中在确定终端的加速度值超过设定加速度阈值时,为了避免动态情况下加速度过大导致的航向跳跃,本实施例仅使用陀螺仪测量结果来确定终端当前时刻的姿态四元数,有效解决了在加速度过大时定向结果容易出现航向跳跃的问题。

定向是指利用运动传感器计算载体运动方向的过程。常见的如无人机定向等。现有技术指定了传感器坐标系中某一轴向为终端的运动方向,进而通过解算该指定的轴向的朝向,即可确定终端的运动方向。以无人机定向为例,可以指定从无人机尾部指向头部的轴向为无人机运动方向。

随着地图导航技术的发展,如果能够确定用户的朝向,则可以为用户提供更加准确的导航服务。因此,如何将定向技术应用于确定用户的朝向,成为本领域技术人员迫切想要解决的问题。

可以理解的是,用户手持终端的方式可以存在多种,以终端为手机进行说明,用户可以平持手机且手机为竖屏状态,则这种情况下手机长度方向指向用户朝向;除此之外,用户还可以平持手机且手机为横屏状态,则这种情况下手机宽度方向指向用户朝向。显然,随着用户手持终端的姿态不同,用户朝向并不固定为传感器坐标系中某一特定轴向,按照现有定向方法无法准确的确定用户的朝向。有鉴于此,本申请的一个实施例中,介绍了一种用户朝向确定方法,参见图4所示,该方法包括:

步骤S400、确定终端当前时刻的姿态四元数;

需要解释的是,四元数为:由一个实数和三个复数组成的超复数,可用于描述物体的转动。其中实数表征转动的大小,三个复数表征转轴在三维空间的方向。姿态四元数为:表征载体三维空间姿态的四元数。

在确定终端当前时刻的姿态四元数时,可以使用现有方法确定,如卡尔曼滤波算法、Madgwick梯度下降算法等。当然,除此之外还可以采用上述图1-3对应实施例介绍的姿态四元数确定方法。

步骤S410、根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向;

具体地,加速度可以选用三轴加速度计,其能够测量三个轴向上的加速度值。如三轴加速度计输出为:

A=[ax>y>z]T

其中,ax、ay、az分别表示X轴、Y轴和Z轴方向的加速度值。

通过加速计当前时刻测量的各轴向的加速度值,确定表示用户当前朝向的轴向。具体地,通过当前时刻加速计测量的各轴向的加速度值,可以确定用户当前手持终端的方式,进而据此可以确定表示用户当前朝向的轴向。

步骤S420、判断表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向是否相同;若否,执行步骤S430;

具体地,若用户手持终端的方式发生变化,可能会导致表示用户朝向的轴向产生变化。本步骤中,判断表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向是否相同,如果不同,执行下述步骤。如果相同,则可以直接根据当前时刻的姿态四元数求解方位角。

步骤S430、根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数;

可以理解的是,终端当前时刻的姿态四元数是基于终端上一时刻的姿态四元数计算得到的,如果表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向不同,则表示前后两个时刻用户手持终端方式发生了变化,为了保证能正确解算出用户朝向,本步骤中需要对确定的终端当前时刻的姿态四元数进行修正。在修正时可以根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系进行修正。

步骤S440、根据修正后的当前时刻的姿态四元数求解方位角,所述方位角表示用户当前朝向与设定基准方向的夹角。

具体地,根据姿态四元数求解方位角的过程可以采用现有计算方式,参见如下公式:

其中,qw、qx、qy、qz表示修正后的当前时刻的姿态四元数,H表示方位角,该角度为以正北为基准,沿顺时针方向转动的角度。

本申请实施例提供的方法,根据加速度计的测量结果确定表示用户当前朝向的轴向,并在判断表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向不相同时,对终端当前时刻的姿态四元数进行修正,进而利用修正后的姿态四元数确定用户当前的朝向,保证了在用户变换终端的持有方式后,能够基于终端的修正后的姿态四元数准确解算出用户的朝向。

本申请提供的计算用户朝向的技术方案,可以应用在导航(比如步行导航、室内导航)、无人机定向等领域。以导航为例,在导航起始阶段,如果GPS定位定向效果较差,不容易将设备位置定位到正确的路上,依据本申请提供的方向,可以与GPS定位结果配合,搜索附近与该方向一致的道路作为优选位置。

可选的,上述步骤S400,确定终端当前时刻的姿态四元数的过程,可以采用上述图1-3对应实施例介绍的姿态四元数确定方法,此处不再赘述。除此之外,还可以采用其它类似方法来确定姿态四元数,本实施例介绍了另一种确定终端当前时刻的姿态四元数的过程,参见图5所示,包括:

步骤S500、根据当前时刻加速度计的测量结果,确定终端的加速度值是否超过设定加速度阈值;若否,执行步骤S510;

步骤S510、根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

步骤S520、根据所述当前时刻的姿态梯度确定陀螺仪误差;

步骤S530、根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果;

步骤S540、根据所述上一时刻的姿态四元数、所述当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

对比图1-图3示例的方式可以发现,本实施例中并未考虑加速度计梯度增益和磁力计梯度增益,其计算结果相比于图1-图3示例的方式,姿态梯度收敛速度要降低,进而导致方位角收敛速度降低。但是,由于不需要计算加速度计梯度增益和磁力计梯度增益,其计算方式更加简单。

在本申请的一个实施例中,对上述步骤S410,根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向的过程进行介绍。

本申请的终端一般为智能手机等手持电子设备,一般都具备显示屏。本实施例中,定义由显示屏长边方向作为y轴,由显示屏短边方向作为x轴,垂直于显示屏方向作为z轴。其中,x、y、z三轴的正向可以自由设定,如设置显示屏长边由底部指向顶部的方向为y轴正向,显示屏短边由左侧指向右侧的方向为x轴正向,垂直于显示屏朝上的方向为z轴正向。

上述定义的坐标系为传感器坐标系,该传感器坐标系适用于终端设置的加速度计、磁力计、陀螺仪等运动传感器。

基于此,步骤S410的实施过程可以包括:

S1、判断当前时刻加速度计测量的x轴向的加速度值的绝对值,是否不超过y轴向和z轴向的加速度值的绝对值的和值;

S2、若是,确定y轴向表示用户当前朝向,并在y轴向的加速度值大于零时确定y轴正向表示用户当前朝向,在y轴向的加速度值小于零时确定y轴反向表示用户当前朝向;

S3、若否,确定x轴向表示用户当前朝向,并在x轴向的加速度值大于零时确定x轴正向表示用户当前朝向,在x轴向的加速度值小于零时确定x轴反向表示用户当前朝向。

参见图6a-6c举例说明,其中图6a-6c均为手机处于平行于大地的平面内的各中摆放方式。

其中,定义手机底部指向顶部方向为y轴正向,平行于显示屏由左边指向右边的方向为x轴正向,垂直于显示屏朝上方向为z轴正向。

由图可以确定,图6a中y轴正向为用户的朝向;图6b中x轴正向为用户朝向;图6c中x轴反向(即-x轴方向)为用户朝向。

三种朝向确定方式可以通过如下公式判断:

a):手机处于图6a的摆放方式的判断条件为:

|ax|≤|ay|+|az|

其中,|*|表示变量*的绝对值,ax、ay、az分别表示加速度计在三个轴向上的加速度分量。

b):手机处于图6b的摆放方式的判断条件为:

|ax|>|ay|+|az|,ax≥0

c):手机处于图6c的摆放方式的判断条件为:

|ax|>|ay|+|az|,ax<0

本实施例中,以手机的摆放方式仅存在如图6a-6c的三种方式为例进行说明,其中图6a表示手机竖屏放置,图6b和图6c表示手机横屏放置。可以理解的是,手机在横屏模式下用户手持手机左右摇摆的可能性要低于竖屏模式。即,用户在竖屏模式下左右摇摆手机的可能性更高。因此,本实施例中通过x轴加速度值的绝对值是否大于y轴和z轴加速度绝对值的和值作为手机是否处于横屏模式的判断条件,如果条件不满足,则表示手机处于竖屏模式。

此种判断方式相比于通过y轴加速度值的绝对值是否大于x轴和z轴加速度绝对值的和值作为手机是否处于竖屏模式的判断条件,其准确率更高。

进一步地,在本申请的另一个实施例中,对上述步骤S430,根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数的过程进行介绍。

本申请预先设置了不同轴向切换方式对应的四元数修正系数,进而可以确定表示用户当前朝向的轴向及表示用户上一时刻朝向的轴向的组合,对应的四元数修正系数。

这里,两个时刻的轴向切换顺序不同,对应的组合也不同。如从y轴正向切换至x轴正向对应的组合,与从x轴正向切换至y轴正向对应的组合不同。

在确定了四元数修正系数之后,将确定的四元数修正系数与所述当前时刻的姿态四元数进行四元数相乘,得到修正后的当前时刻的姿态四元数。

仍参见图6a-6c进行举例说明:

本申请预先建立不同轴向切换关系对应的四元数修正系数,对应关系如下表1所示:

表1

图6a切换至图6b时,表示用户朝向的轴向切换方式为y->x,即从y轴切换至x轴;图6b切换至图6a时,表示用户朝向的轴向切换方式为x->y,即从x轴切换至y轴;图6a切换至图6c时,表示用户朝向的轴向切换方式为y->-x,即从y轴切换至-x轴;图6c切换至图6a时,表示用户朝向的轴向切换方式为-x->y,即从-x轴切换至y轴。

可以理解的是,图6b与图6c之间的切换必然经过中间状态图6a。因此,图6b与图6c之间的切换可以转换为上述切换方式中的某两个切换过程。

上表1中示例了不同轴向切换方式所对应的四元数修正系数。以表1中记录的第一条数据为例,假设修正前的四元数为Q(k),则修正后的四元数如下:

其中,表示四元数乘法,规则如下:

其中,在确定上述表1对应关系的过程中,首先确定与表示用户当前朝向的轴向对应的传感器坐标系变换方式,进而按照确定的传感器坐标系变换方式,对传感器坐标系中各轴向进行变换,在此基础上推导得出上表1的对应关系。

具体地,本申请中姿态解算是在姿态坐标系中进行,在姿态坐标系中,以用户朝向作为某一固定坐标轴,如设置用户朝向作为y轴,以垂直于终端屏幕向上方向作为z轴,右手定则确定x轴方向。

而根据上述实施例的介绍可知,在传感器坐标系中随着用户手持终端的方式不同,表示用户朝向的轴向也不同。因此,需要根据用户朝向将传感器坐标系变换至姿态坐标系。

因此,若确定当前时刻表示用户朝向的轴向,与姿态坐标系中设置的表示用户朝向的轴向相同,则不需要对传感器坐标系进行变换,或者说变换前后相同。若确定当前时刻表示用户朝向的轴向,与姿态坐标系中设置的表示用户朝向的轴向不相同,则需要对传感器坐标系进行变换。本申请预先设置了不同的表示用户朝向的轴向与传感器坐标系变换方式的对应关系,因此可以基于该对应关系,确定与表示用户当前朝向的轴向对应的传感器坐标系变换方式。

参见下表2所示,其示例了图6a-6c三种摆放方式下,表示用户朝向的不同轴向所对应的传感器坐标系变换方式:

用户朝向变换前顺序变换后顺序y[x y z][x y z]x[x y z][-y x z]-x[x y z][y -x z]

表2

表2示例的情况下,姿态坐标系中设置的表示用户朝向的轴向为y轴。因此,通过表2可以看出,当传感器坐标系中,表示用户朝向的轴向为y轴时,其变换前后顺序不变。而当传感器坐标系中,表示用户朝向的轴向不为y轴时,则需要按照表2示例的变换方式,对传感器坐标系进行变换。

下面对本申请实施例提供的姿态四元数确定装置进行描述,下文描述的姿态四元数确定装置与上文描述的姿态四元数确定方法可相互对应参照。

参见图7,图7为本申请实施例公开的一种姿态四元数确定装置结构示意图。

如图7所示,该装置包括:

姿态梯度确定单元11,用于根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

加速度计梯度增益确定单元12,用于根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;

磁力计梯度增益确定单元13,用于根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

姿态梯度修正单元14,用于根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度;

第一姿态四元数确定单元15,用于根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和确定的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

本申请方案通过确定加速度计梯度增益和磁力计梯度增益,对姿态梯度进行修正,加快了姿态梯度的收敛速度,进而根据修正后的姿态梯度确定终端当前时刻的姿态四元数,能够加快方位角收敛速度。

可选的,本申请的装置还可以包括:

陀螺仪误差确定单元,用于根据修正后的当前时刻的姿态梯度确定陀螺仪误差;

陀螺仪测量结果补偿单元,用于根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果,所述补偿后的当前时刻的陀螺仪测量结果作为所述确定的当前时刻的陀螺仪测量结果。

可选的,本申请的装置还可以包括:

加速度值判断单元,用于根据当前时刻的加速度计测量结果,确定终端的加速度值是否超过设定加速度阈值;若否,执行所述第一姿态四元数确定单元,若是,执行第二姿态四元数确定单元;

所述第二姿态四元数确定单元,用于根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

可选的,所述第二姿态四元数确定单元根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数的过程,具体可以包括:

根据当前时刻的陀螺仪测量结果,计算陀螺仪的转动四元数;

将所述上一时刻的姿态四元数及所述陀螺仪的转动四元数相加,结果确定为终端当前时刻的姿态四元数。

进一步对本申请实施例提供的用户朝向确定装置进行描述,下文描述的用户朝向确定装置与上文描述的用户朝向确定方法可相互对应参照。

参见图8,图8为本申请实施例公开的一种用户朝向确定装置结构示意图。

如图8所示,该装置包括:

姿态四元数确定单元21,用于确定终端当前时刻的姿态四元数;

轴向确定单元22,用于根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向;

轴向判断单元23,用于判断表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向是否相同;

姿态四元数修正单元24,用于在所述轴向判断单元的判断结果为否时,根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数;

方位角求解单元25,用于根据修正后的当前时刻的姿态四元数求解方位角,所述方位角表示用户当前朝向与设定基准方向的夹角。

本申请实施例中,根据加速度计的测量结果确定表示用户当前朝向的轴向,并在判断表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向不相同时,对终端当前时刻的姿态四元数进行修正,进而利用修正后的姿态四元数确定用户当前的朝向,保证了在用户变换终端的持有方式后,能够基于终端的修正后的姿态四元数准确识别用户的朝向。

可选的,所述姿态四元数确定单元确定终端当前时刻的姿态四元数的过程,具体可以包括:

根据当前时刻加速度计的测量结果,确定终端的加速度值是否超过设定加速度阈值;

若否,根据终端上一时刻的姿态四元数以及当前时刻的加速度计测量结果、磁力计测量结果,确定当前时刻的姿态梯度;

根据所述当前时刻的姿态梯度确定陀螺仪误差;

根据所述陀螺仪误差,对当前时刻陀螺仪的测量结果进行补偿,得到补偿后的当前时刻的陀螺仪测量结果;

根据所述上一时刻的姿态四元数、所述当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

可选的,所述姿态四元数确定单元确定终端当前时刻的姿态四元数的过程,还可以包括:

若确定终端的加速度值超过设定加速度阈值,则根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

可选的,所述姿态四元数确定单元确定终端当前时刻的姿态四元数的过程,还可以包括:

在确定当前时刻的姿态梯度之后,根据当前时刻的加速度计测量结果对应的特征函数,确定加速度计梯度增益;以及,根据当前时刻的磁力计测量结果对应的特征函数,确定磁力计梯度增益;

根据所述加速度计梯度增益、所述磁力计梯度增益,对所述当前时刻的姿态梯度进行修正,得到修正后的当前时刻的姿态梯度。基于此,

所述姿态四元数根据所述当前时刻的姿态梯度确定陀螺仪误差的过程,具体可以包括:

根据所述修正后的当前时刻的姿态梯度确定陀螺仪误差;

所述姿态四元数根据所述上一时刻的姿态四元数、所述当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数的过程,具体可以包括:

根据所述上一时刻的姿态四元数、所述修正后的当前时刻的姿态梯度和所述补偿后的当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数。

可选的,终端可以包括显示屏,由显示屏长边方向作为y轴,由显示屏短边方向作为x轴,垂直于显示屏方向作为z轴。基于此,

所述轴向确定单元根据当前时刻加速计测量的各轴向的加速度值,确定表示用户当前朝向的轴向的过程,具体可以包括:

判断当前时刻加速度计测量的x轴向的加速度值的绝对值,是否不超过y轴向和z轴向的加速度值的绝对值的和值;

若是,确定y轴向表示用户当前朝向,并在y轴向的加速度值大于零时确定y轴正向表示用户当前朝向,在y轴向的加速度值小于零时确定y轴反向表示用户当前朝向;

若否,确定x轴向表示用户当前朝向,并在x轴向的加速度值大于零时确定x轴正向表示用户当前朝向,在x轴向的加速度值小于零时确定x轴反向表示用户当前朝向。

可选的,所述姿态四元数修正单元根据表示用户当前朝向的轴向与表示用户上一时刻朝向的轴向之间的位置关系,对所述当前时刻的姿态四元数进行修正,得到修正后的当前时刻的姿态四元数的过程,具体可以包括:

确定表示用户当前朝向的轴向及表示用户上一时刻朝向的轴向的组合对应的四元数修正系数;

将确定的四元数修正系数与所述当前时刻的姿态四元数进行四元数相乘,得到修正后的当前时刻的姿态四元数。

可选的,所述姿态四元数根据所述上一时刻的姿态四元数和当前时刻的陀螺仪测量结果,确定终端当前时刻的姿态四元数的过程,具体可以包括:

根据当前时刻的陀螺仪测量结果,计算陀螺仪的转动四元数;

将所述上一时刻的姿态四元数及所述陀螺仪的转动四元数相加,结果确定为终端当前时刻的姿态四元数。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号