本发明涉及智能产品技术领域,特别涉及一种测量物体姿态角的方法和装置。
背景技术:
在虚拟现实、平衡车、飞行器或机器人等很多领域中,需要计算物体或物体上某部件的姿态角。现有方案普遍采用陀螺仪结合加速度计来测量姿态角。
使用陀螺仪测量时,在一个时刻由陀螺仪得到的姿态数据是相对前一时刻的姿态数据,而陀螺仪测量的数据有偏移误差,则根据陀螺仪数据再积分求取的角度的误差也会随时间不断累积,导致长时间测量时误差过大;而加速度计不但测量了重力还测量了比力,计算姿态角只需要重力数据,所以在比力存在的情况下,计算出的姿态角会存在误差,误差大小随比力增大而增大。
由上,现有方案需要的硬件较多,且需要配合较复杂的滤波算法,计算量大,成本高;且现有方案得到的姿态角会随时间、比力增大而误差大、准确度差。
技术实现要素:
本发明实施例提供了一种测量物体姿态角的方法和装置,以解决现有方案测量姿态角时计算量大、成本高和准确度差的问题等。
为达到上述目的,本发明的技术方案是这样实现的:
一方面,本发明实施例提供了一种测量物体姿态角的方法。该方法包括:
在被测物体上设置传感器,该传感器能够测量三维方向上的磁场特征量;
开始测量过程时,启动传感器,利用传感器获取物体当前在载体坐标系下磁场特征量的测量值;
获取物体在地理坐标系下磁场特征量的基准值;
根据基准值和测量值分别指示的各方向上磁场特征量的数值,计算得到被测物体当前的姿态角。
又一方面,本发明实施例提供了一种测量物体姿态角的装置。该装置包括:
测量值获取单元,用于开始测量过程时,启动被测上设置的传感器,利用传感器获取物体当前在载体坐标系下磁场特征量的测量值,其中,该传感器能够测量三维方向上的磁场特征量;
基准值获取单元,用于获取物体在地理坐标系下磁场特征量的基准值;
姿态角计算单元,用于根据基准值和测量值分别指示的各方向上磁场特征量的数值,计算得到被测物体当前的姿态角。
本发明实施例利用物体的磁场特性提供了一种新型的姿态角测量方案,通过物体的磁场特征量的变化计算出姿态角。本方案只需使用同一种类型的传感器,需要处理的数据也是同一类型,从而显著降低了硬件成本和数据计算量;并且,本方案无需使用陀螺仪或加速度计,当前时刻获取到的测量数据与上一时刻的测量数据不关联,是一种绝对数据,也不存在比力的影响,从而能够实时准确测量得到物体的姿态角。
附图说明
图1为本发明一个实施例提供的一种测量物体姿态角的方法流程示意图;
图2为本发明又一个实施例提供的一种测量物体姿态角的装置结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明一个实施例提供的一种测量物体姿态角的方法,可以在智能终端上实现,智能终端(被测物体)包括但不局限于智能手机、无人机、智能眼镜、hmd(headmountdisplay,头戴式显示器)等。参见图1,该方法包括:
s101:在被测物体上设置传感器,该传感器能够测量三维方向上的磁场特征量;本步骤并非在每次测量过程都需要执行,可在初始使用之前预先执行。或者,当被测物体上已经设置了具有相同或类似功能的传感器时,本步骤可以略去,本实施例可以使用物体上已有的传感器来实现方案。
s102:开始测量过程时,启动传感器,利用传感器获取物体当前在载体坐标系下磁场特征量的测量值;
s103:获取物体在地理坐标系下磁场特征量的基准值。
步骤s101中三维方向形成的坐标系、s102中的载体坐标系和s103中的地理坐标系都可以为三维笛卡尔坐标系。
s104:根据基准值和测量值分别指示的各方向上磁场特征量的数值,计算得到被测物体当前的姿态角。
步骤s102至s104由被测物体中内部的功能模块执行或由在被测物体外部的独立器件执行。步骤s102至s104为一次测量过程的说明,在物体的运动过程中,可以不断重复步骤s102至s104实时得到被测物体在各个时刻的姿态角。图1并不对本方法的执行次序进行严格限定,例如,步骤s102和s103可以同时执行。
在图1所示实施例的基础上,进一步的,本发明又一实施例中步骤s101中可以通过下述两种规则来设置传感器:
规则一、将传感器设置在被测物体的质心位置,或将传感器设置在与被测物体的质心位置距离不超过第一阈值的位置。
对于精度要求较高的场景或物体上存在多个可转动部件时,将传感器设置在质心附近,有助于得到较稳定的测量结果,且得到物体主体的姿态角。
规则二、将传感器设置在与被测物体中的磁性器件距离大于第二阈值的位置。
本实施例中的传感器包括但不局限于磁力计,可以为其他具有方向指向功能,且测量的磁性数值基本固定不变的传感器件。
由于本实施例利用了物体的磁性特性,为了避免被测物体中固有的磁性器件产生的磁场对测量结果产生干扰,本实施例将传感器设置在远离物体中磁场干扰较强的元器件的位置,以保证测量结果的准确性。
例如,被测物体为飞行器时,飞行器中的电机通常会产生较大的电磁干扰,将传感器设置在与飞行器的电机距离大于第二阈值的位置,即将传感器设置在远离飞行器电机的位置。
上述两种规则可以同时使用,也可以任选一种使用。
进一步的,步骤s102中,在利用传感器获取物体当前在载体坐标系下磁场特征量的测量值之前,还包括:对传感器进行校准,以保证测量值的准确性。
进一步的,步骤s103中可以包括如下操作:
s1031,记录在不同地区的地理坐标系下磁场特征量的基准值,生成基准数据表。
本方案可以预先测量不同地区的地理坐标系下磁场特征量的基准值并记录,或者,也可以从已经存在的磁场数据中得到该基准值,如从国家海洋局或大气管理局记载的国际地磁参考场数据中得到该基准值。将各个地区及其对应的基准值记录在列表中生成基准数据表。
当磁场特征量为磁场强度时,为每个地区的三维方向上(如东北天三个方向)的磁场强度的基准值生成一条记录,由所有地区对应的记录得到基准数据表
s1032,当需要获取基准值时,先确认物体当前所在的地区。
不同地区下磁场特征量的基准值不同,需要先确定地区。
s1033,根据确定的地区,查询基准数据表,得到该地区的磁场特征量的基准值,作为物体的基准值。
本步骤中将地区作为索引量,查询表格,得到基准值。
进一步的,步骤s104中可以包括如下操作:
s1041:选取需要计算的姿态角包括翻滚角,俯仰角和偏航角三种类型。
姿态角指物体相对于参照物的空间方位角,通常包括俯仰角(pitch)、翻滚角(roll)和偏航角(yaw),本实施例以同时计算三种类型的角度为例进行说明,一些场景中,也可以仅计算出其中一种或两种类型的角度。
s1042:利用三种类型的姿态角为基准值和测量值设置转换矩阵。
具体地,转换矩阵
公式一:
公式二:
其中,mb表示磁场特征量的测量值,mt表示磁场特征量的基准值,γ表示翻滚角,θ表示俯仰角,
s1043:当前测量过程中,根据基准值和测量值分别指示的各方向上磁场特征量的数值和转换矩阵,计算得到姿态角。
用x,y,z表示三维方向上磁场特征量的数值时,mb表示为mb=[xb,yb,zb],mt表示为mt=[xt,yt,zt],则可得到如下关系式:
从而根据基准值和测量值可以计算出翻滚角,俯仰角和偏航角。
本发明又一实施例提供了一种测量物体姿态角的装置200。参见图2,该装置200包括:
测量值获取单元210,用于开始测量过程时,启动被测物体上设置的传感器,利用传感器获取物体当前在载体坐标系下磁场特征量的测量值,其中,该传感器能够测量三维方向上的磁场特征量;可选的,在利用传感器测量之前,对传感器进行校准。
基准值获取单元211,用于获取物体在地理坐标系下磁场特征量的基准值;
姿态角计算单元212,用于根据基准值和测量值分别指示的各方向上磁场特征量的数值,计算得到被测物体当前的姿态角。
装置200中的上述传感器包括但不局限于磁力计,测量的磁场特征量包括但不局限于三维方向上的磁场强度的数值。
在图2所示实施例的基础上,进一步的,本发明又一实施例中传感器设置在装置200中,装置200安装在被测物体上,从而将传感器设置在被测物体上。这时在安装装置200时,可以参照上述两种规则中的一种或同时参照两种规则。
进一步的,基准值获取单元211,具体用于记录在不同地区的地理坐标系下磁场特征量的基准值,生成基准数据表;当需要获取基准时,先确认物体当前所在的地区;根据确定的地区,查询基准数据表,得到该地区的磁场特征量的基准值,作为物体的基准值;
姿态角计算单元212,具体用于选取需要计算的姿态角包括翻滚角,俯仰角和偏航角三种类型;利用三种类型的姿态角为基准值和测量值设置转换矩阵;当前测量过程中,根据基准值和测量值分别指示的各方向上磁场特征量的数值和转换矩阵,计算得到姿态角。
本发明装置实施例中各单元的具体工作方式,可以参见本发明方法实施例的相关内容,在此不再赘述。
由上所述,本发明实施例利用物体的磁场特性提供了一种新型的姿态角测量方案,通过物体的磁场特征量的变化计算出姿态角。本方案只需使用同一种类型的传感器,需要处理的数据也是同一类型,从而显著降低了硬件成本和数据计算量;并且,本方案无需使用陀螺仪或加速度计,当前时刻获取到的测量数据与上一时刻的测量数据不关联,是一种绝对数据,也不存在比力的影响,从而能够实时准确测量得到物体的姿态角。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。