CN108801292A - 一种陀螺仪数据校准方法及计算机可读存储介质 - Google Patents
一种陀螺仪数据校准方法及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108801292A CN108801292A CN201710298778.9A CN201710298778A CN108801292A CN 108801292 A CN108801292 A CN 108801292A CN 201710298778 A CN201710298778 A CN 201710298778A CN 108801292 A CN108801292 A CN 108801292A
- Authority
- CN
- China
- Prior art keywords
- gyro
- data
- temperature
- gyroscope
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000003860 storage Methods 0.000 title claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 35
- 230000003068 static effect Effects 0.000 claims description 28
- 241001269238 Data Species 0.000 claims description 22
- 230000007613 environmental effect Effects 0.000 abstract description 6
- 230000000694 effects Effects 0.000 abstract description 5
- 230000008859 change Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000000007 visual effect Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000006641 stabilisation Effects 0.000 description 1
- 238000011105 stabilization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C25/00—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
- G01C25/005—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices
Landscapes
- Engineering & Computer Science (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Gyroscopes (AREA)
Abstract
本发明公开了一种陀螺仪数据校准方法及计算机可读存储介质,包括:获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。上述方案用于解决现有技术中存在的,由于陀螺仪传感器容易受到温度等环境因素的干扰,导致陀螺仪传感器的误差变大的技术问题,实现了消除温度对陀螺仪传感器的干扰,减小陀螺仪传感器的误差,使得陀螺仪传感器能够适应不同环境的技术效果。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种陀螺仪数据校准方法及计算机可读存储介质。
背景技术
陀螺仪传感器是一种用来传感与维持方向的装置,现在被广泛运用于手机、平板电脑,头戴显示设备HMD(英文全称:Head Mount Display)等移动便携设备上。
通常情况下,电子设备在出厂前已经进行了陀螺仪数据校准,得到校准数据,校准数据用于对陀螺仪传感器的零速率偏移等误差进行校准,并且,现有技术中,在得到校准数据后,会将校准数据存放在电子设备中,不再改变。然后,在电子设备的实际使用过程中,采用校准数据对陀螺仪传感器上报的陀螺仪数据进行零速率偏移补偿,得到实际的陀螺仪数据,从而消除由于陀螺仪传感器的零速率偏移导致的误差。
但是陀螺仪传感器是比较敏感的传感器,随着外界环境的改变,陀螺仪传感器容易受到温度等环境因素的干扰,导致陀螺仪数据随之变化,采用原来的校准数据不能有效够消除陀螺仪传感器的误差,从而导致陀螺仪传感器的误差变大。
发明内容
本发明的目的是提供一种陀螺仪数据校准方法及计算机可读存储介质,用于解决现有技术中存在的,由于陀螺仪传感器容易受到温度等环境因素的干扰,导致陀螺仪传感器的误差变大的技术问题。
为了实现上述发明目的,本发明实施例第一方面提供陀螺仪数据校准方法,包括:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;
根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。
可选的,所述自动校准数据为预先存储在电子设备中的数据。
可选的,计算所述自动校准数据的方法包括:
在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于预设持续时间阈值的状态;
对每个预设陀螺仪温度下的多个所述陀螺仪数据样本进行加权平均,得到每个所述预设陀螺仪温度下的自动校准数据。
可选的,在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本,包括:
鉴别电子设备是否处于预设状态;
在所述电子设备处于所述预设状态时,根据陀螺仪传感器上报的实时陀螺仪温度,从多组陀螺仪数据样本中选择出与所述实时陀螺仪温度匹配的一组陀螺仪数据样本;其中,每组所述陀螺仪数据样本中包括处于相同陀螺仪温度下的多个陀螺仪数据样本;
判断与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中是否包括N个陀螺仪数据样本,如果不包括,则将所述陀螺仪传感器上报的实时陀螺仪数据作为所述陀螺仪数据样本,其中,N为预设值。
可选的,所述方法还包括:
如果与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中包括N个陀螺仪数据样本,将所述N个陀螺仪数据样本按照获取时间进行排序,从N个所述陀螺仪数据样本中选择出最早获取的陀螺仪数据样本和最晚获取的陀螺仪数据样本;
计算所述陀螺仪传感器上报实时陀螺仪数据的当前时刻与最早获取的陀螺仪数据样本的获取时刻之间的时间差,并在所述时间差大于等于预设时间差阈值时,根据所述实时陀螺仪数据,对最早获取的陀螺仪数据样本进行更新;或
计算所述实时陀螺仪数据与最晚获取的陀螺仪数据样本之间的数据差,并在所述数据差大于等于预设数据差阈值时,根据所述实时陀螺仪数据,对最晚获取的陀螺仪数据样本进行更新。
可选的,所述鉴别电子设备是否处于预设状态的方法包括:
记录所述陀螺仪传感器上报的陀螺仪数据小于等于陀螺仪数据阈值的持续时间;其中,所述陀螺仪数据阈值为根据所述电子设备处于静止状态时,对所述陀螺仪传感器上报的多个陀螺仪数据进行加权平均获得的值;
若所述持续时间超过所述预设持续时间阈值,则确定所述电子设备处于所述预设状态。
本发明实施例第二方面提供一种陀螺仪数据校准方法,包括:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个预设陀螺仪温度中选择出与所述当前陀螺仪温度匹配的第一陀螺仪温度,多个所述预设陀螺仪温度与多个自动校准数据一一对应;
获取实时校准数据对应的第二陀螺仪温度,所述实时校准数据为电子设备处于静止状态时,对所述陀螺仪传感器在预设时长内上报的多个陀螺仪数据进行平滑处理获得的值;
根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准;
其中,所述数据校准策略包括根据所述第一陀螺仪温度对应的自动校准数据对当前陀螺仪数据进行校准,或根据所述实时校准数据对当前陀螺仪数据进行校准。
可选的,根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准,包括:
计算所述第一陀螺仪温度与所述当前陀螺仪温度之间的第一温度差值,计算所述第二陀螺仪温度与所述当前陀螺仪温度之间的第二温度差值;
若所述第一温度差值和所述第二温度差值之间的差值小于等于预设差值,则根据所述实时校准数据对所述当前陀螺仪数据进行校准;
若所述第二温度差值和所述第二温度差值之间的差值大于所述预设差值,则根据所述自动校准数据对所述当前陀螺仪数据进行校准。
可选的,计算所述实时校准数据的方法包括:
鉴别所述电子设备是否处于预设状态;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态;
在所述电子设备处于预设状态时,获取所述陀螺仪传感器在当前时刻上报的陀螺仪数据;
根据平滑函数gyro_smooth=gyro*α+gyro_F*(1-α)计算所述实时校准数据;
其中,gyro_smooth为实时校准数据,gyro为所述当前时刻的陀螺仪数据,α为所述当前时刻的陀螺仪数据的权值,gyro_F为在所述当前时刻之前的预设时长内获取的多个陀螺仪数据的平均值。
可选的,所述方法还包括:
在所述电子设备处于所述预设状态时,比较所述实时校准数据对应的陀螺仪温度和当前陀螺仪温度;
如果所述实时校准数据对应的陀螺仪温度和所述当前陀螺仪温度之间的温度差值大于等于预设温度阈值,则计算新的实时校准数据。
可选的,所述自动校准数据为预先存储在电子设备中的数据。
可选的,计算所述自动校准数据的方法包括:
鉴别所述电子设备是否处于预设状态;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态;
在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;
对每个预设陀螺仪温度下的多个所述陀螺仪数据样本进行加权平均,得到每个所述预设陀螺仪温度下的自动校准数据。
本发明实施例第三方面提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时包括如下步骤:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;
根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:
从电子设备中读取预先存储在电子设备中的自动校准数据。
可选的,所述存储介质中存储的与步骤:计算所述自动校准数据的方法,对应的计算机程序在具体被执行过程中,包括如下步骤:
在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于预设持续时间阈值的状态;
对每个预设陀螺仪温度下的多个所述陀螺仪数据样本进行加权平均,得到每个所述预设陀螺仪温度下的自动校准数据。
可选的,所述存储介质中存储的与步骤:在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本,对应的计算机程序在具体被执行过程中,包括如下步骤:
鉴别电子设备是否处于预设状态;
在所述电子设备处于所述预设状态时,根据陀螺仪传感器上报的实时陀螺仪温度,从多组陀螺仪数据样本中选择出与所述实时陀螺仪温度匹配的一组陀螺仪数据样本;其中,每组所述陀螺仪数据样本中包括处于相同陀螺仪温度下的多个陀螺仪数据样本;
判断与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中是否包括N个陀螺仪数据样本,如果不包括,则将所述陀螺仪传感器上报的实时陀螺仪数据作为所述陀螺仪数据样本,其中,N为预设值。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:如果与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中包括N个陀螺仪数据样本,将所述N个陀螺仪数据样本按照获取时间进行排序,从N个所述陀螺仪数据样本中选择出最早获取的陀螺仪数据样本和最晚获取的陀螺仪数据样本;
计算所述陀螺仪传感器上报实时陀螺仪数据的当前时刻与最早获取的陀螺仪数据样本的获取时刻之间的时间差,并在所述时间差大于等于预设时间差阈值时,根据所述实时陀螺仪数据,对最早获取的陀螺仪数据样本进行更新;或
计算所述实时陀螺仪数据与最晚获取的陀螺仪数据样本之间的数据差,并在所述数据差大于等于预设数据差阈值时,根据所述实时陀螺仪数据,对最晚获取的陀螺仪数据样本进行更新。
可选的,所述存储介质中存储的与步骤:鉴别电子设备是否处于预设状态,对应的计算机程序在具体被执行过程中,包括如下步骤:
记录所述陀螺仪传感器上报的陀螺仪数据小于等于陀螺仪数据阈值的持续时间;其中,所述陀螺仪数据阈值为根据所述电子设备处于静止状态时,对所述陀螺仪传感器上报的多个陀螺仪数据进行加权平均获得的值;
若所述持续时间超过所述预设持续时间阈值,则确定所述电子设备处于所述预设状态。
本发明实施例第四方面提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时包括如下步骤:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个预设陀螺仪温度中选择出与所述当前陀螺仪温度匹配的第一陀螺仪温度,多个所述预设陀螺仪温度与多个自动校准数据一一对应;
获取实时校准数据对应的第二陀螺仪温度,所述实时校准数据为电子设备处于静止状态时,对所述陀螺仪传感器在预设时长内上报的多个陀螺仪数据进行平滑处理获得的值;
根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准;
其中,所述数据校准策略包括根据所述第一陀螺仪温度对应的自动校准数据对当前陀螺仪数据进行校准,或根据所述实时校准数据对当前陀螺仪数据进行校准。
可选的,所述存储介质中存储的与步骤:根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准,对应的计算机程序在具体被执行过程中,包括如下步骤:
计算所述第一陀螺仪温度与所述当前陀螺仪温度之间的第一温度差值,计算所述第二陀螺仪温度与所述当前陀螺仪温度之间的第二温度差值;
若所述第一温度差值和所述第二温度差值之间的差值小于等于预设差值,则根据所述实时校准数据对所述当前陀螺仪数据进行校准;
若所述第二温度差值和所述第二温度差值之间的差值大于所述预设差值,则根据所述自动校准数据对所述当前陀螺仪数据进行校准。
可选的,所述存储介质中存储的与步骤:计算所述实时校准数据,对应的计算机程序在具体被执行过程中,包括如下步骤:
鉴别所述电子设备是否处于预设状态;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态;
在所述电子设备处于预设状态时,获取所述陀螺仪传感器在当前时刻上报的陀螺仪数据;
根据平滑函数gyro_smooth=gyro*α+gyro_F*(1-α)计算所述实时校准数据;
其中,gyro_smooth为实时校准数据,gyro为所述当前时刻的陀螺仪数据,α为所述当前时刻的陀螺仪数据的权值,gyro_F为在所述当前时刻之前的预设时长内获取的多个陀螺仪数据的平均值。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:
在所述电子设备处于所述预设状态时,比较所述实时校准数据对应的陀螺仪温度和当前陀螺仪温度;
如果所述实时校准数据对应的陀螺仪温度和所述当前陀螺仪温度之间的温度差值大于等于预设温度阈值,则计算新的实时校准数据。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:
从电子设备中读取预先存储在电子设备中的自动校准数据。
可选的,所述存储介质中存储的与步骤:计算所述自动校准数据,对应的计算机程序在具体被执行过程中,包括如下步骤:
鉴别所述电子设备是否处于预设状态;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态;
在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;
对每个预设陀螺仪温度下的多个所述陀螺仪数据样本进行加权平均,得到每个所述预设陀螺仪温度下的自动校准数据。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
本发明实施例的方案中,在对陀螺仪数据进行校准时,获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。可见,本发明实施例的方案中,对于不同陀螺仪温度下的陀螺仪数据,采用与不同陀螺仪温度匹配的自动校准数据,对陀螺仪数据进行校准,从而解决现有技术中存在的,由于陀螺仪传感器容易受到温度等环境因素的干扰,导致陀螺仪传感器的误差变大的技术问题,实现了消除温度对陀螺仪传感器的干扰,减小陀螺仪传感器的误差,使得陀螺仪传感器能够适应不同环境的技术效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图:
图1为本发明实施例提供的陀螺仪数据校准方法的流程示意图;
图2为本发明实施例提供的一种可能的计算自动校准数据的方法的流程示意图;
图3为本发明实施例提供的预设陀螺仪温度和自动校准数据的对应关系的示意图;
图4为本发明实施例提供的鉴别电子设备是否处于预设状态的方法流程示意图;
图5为本发明实施例提供的另一陀螺仪数据校准方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例提供的陀螺仪数据校准方法的流程示意图,该方法可应用于智能手机、平板电脑、头戴显示设备等移动电子设备中。
对于智能手机和平板电脑而言,通过陀螺仪传感器可以对电子设备进行控制,例如:在进行游戏控制时,通过对电子设备的偏转、倾斜等动作角速度测量,可以实现用手控制游戏主角的视野和方向;另外,陀螺仪传感器还可以辅助摄像头防抖、辅助GPS进行惯性导航等等。对于头戴显示设备而言,头戴显示设备在向用户提供的VR(Virtual Reality;虚拟现实)世界时,需要检测用户的头部姿态来确定提供给用户的信息,从而带给用户沉浸感,而用户的头部姿态通常是通过头戴显示设备中的IMU(Inertial measurement unit;惯性测量单元)传感器来捕捉的,陀螺仪传感器就是一种常用的IMU传感器。本发明实施例中只是对陀螺仪传感器的功能进行举例说明,并不作限制。
请参考图1,该方法包括以下步骤。
步骤10,获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
步骤11,从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;
步骤12,根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。
在步骤10中,陀螺仪传感器在上报数据时,会上报当前时刻的陀螺仪温度和陀螺仪数据,即陀螺仪传感器的三轴数据。
然后,在步骤11中,从多个自动校准数据中选择出与当前陀螺仪温度匹配的自动校准数据。
本发明实施例中,电子设备中存储有多个预设陀螺仪温度下的多个自动校准数据,自动校准数据与预设陀螺仪温度一一对应。例如:陀螺仪传感器上报的当前陀螺仪温度为30度,则从电子设备存储的多个自动校准数据中选择出与30度匹配的自动校准数据,该自动校准数据为陀螺仪传感器在30度或者靠近30度的温度下的校准数据。
进一步,在确定与当前陀螺仪温度匹配的自动校准数据后,根据该自动校准数据,对陀螺仪传感器上报的当前陀螺仪数据进行校准。本发明实施例中,自动校准数据可以为陀螺仪传感器的零速率偏移数据,则通过自动校准数据对陀螺仪传感器上报的数据进行校准,可以消除或者减小由于零速率偏移导致的陀螺仪数据误差。
在实际应用中,对于陀螺仪传感器可能存在的其他误差,也可以采用与本发明实施例类似的方法进行校准,本发明对此不做限制。
从上述方案可以看出,通过选择与当前陀螺仪温度匹配的自动校准数据,对当前陀螺仪数据进行校准,可以消除温度对陀螺仪传感器的干扰,减小陀螺仪传感器的误差,使得陀螺仪传感器能够适应不同环境。
接下来,对本发明实施例中计算自动校准数据的方法进行说明,请参考图2,图2为本发明实施例提供的一种可能的计算自动校准数据的方法的流程示意图,该方法包括以下步骤。
步骤20,在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本。
其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于预设持续时间阈值的状态。
本发明实施例中,首先,对温度范围进行划分,将温度范围划分为多个区间,每个区间可以用预设陀螺仪温度表示,从而得到多个预设陀螺仪温度,然后,在电子设备处于预设状态时,获取每个预设陀螺仪温度下的一组陀螺仪数据样本,则每组陀螺仪数据样本中包括预设陀螺仪温度和预设陀螺仪温度下的多个陀螺仪数据样本。
举例来讲,可以将温度范围设置为-10-85,5为一个区间,则共计20组数据,每个区间可以用中间值进行表示,例如:区间0-5用2.5表示,区间5-10用7.5表示等,在具体实施过程中,可以根据实际需要对温度区间的大小进行设置,例如:2为一个区间,或8为一个区间,本发明对此不做限制。
本发明实施例中,每个预设陀螺仪温度,以及该预设陀螺仪温度下的多个陀螺仪数据样本可以以文件的形式存储在电子设备中。
本发明实施例中,通过步骤20计算每个预设陀螺仪温度下自动校准数据,将预设陀螺仪温度和自动校准数据保存在电子设备中,预设陀螺仪温度和自动校准数据的关系如图3中的表格所示,其中,x、y、z分别为陀螺仪传感器的三轴数据。
步骤21,根据每个预设陀螺仪温度下的多个所述陀螺仪数据样本,计算得到所述陀螺仪传感器在每个所述预设陀螺仪温度下的自动校准数据。
具体的,自动校准数据的计算公式如下:
Gyro_ref=gyro_newest*α1+gyro_avg*(1-α1) (1)
其中,Gyro_ref为自动校准数据,gyro_newest为获取时间最晚的陀螺仪数据样本,即最新的陀螺仪数据样本,α1为最新的陀螺仪数据样本的权值,为了使自动校准数据能够更加真实的反映陀螺仪传感器的当前数据误差,α1大于0.5,gyro_avg为一组陀螺仪数据样本中的所有陀螺仪数据样本的平均值。
本发明实施例中,可以在电子设备初始化过程中,提取电子设备中有效的陀螺仪数据样本进行计算,得到自动校准数据,然后,在电子设备使用过程中,实时更新自动校准数据或者周期性更新自动校准数据。
接下来,对电子设备获取预设陀螺仪温度下的陀螺仪数据样本的方法进行说明。
具体的,在电子设备出厂之前,预设陀螺仪温度下的多个陀螺仪数据样本可以包括工厂校准的数据,通常情况下,工厂校准的数据只有一个,然后,在电子设备使用过程中,逐渐完善多个陀螺仪数据样本。例如:预设陀螺仪温度下均包括5个样本,在电子设备出厂之前,存在1个有效的数据样本,为工厂校准数据,然后,在电子设备使用过程中,完善其他4个陀螺仪数据样本,并对所有陀螺仪数据样本进行更新。
在电子设备的使用过程中,在获取预设陀螺仪温度下的陀螺仪数据样本时,首先,鉴别电子设备是否处于预设状态,如前所述,预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态。然后,电子设备获取陀螺仪传感器上报的实时陀螺仪数据和实时陀螺仪温度,将实时陀螺仪温度与预设陀螺仪温度进行比较,选出与实时陀螺仪温度匹配的预设陀螺仪温度,匹配的预设陀螺仪温度是指与实时陀螺仪温度相同或者最接近的温度。
进一步,判断匹配的预设陀螺仪温度下的一组陀螺仪数据样本中是否包括N个陀螺仪数据样本,如果不包括,则将陀螺仪传感器上报的陀螺仪数据保存在匹配的预设陀螺仪温度下的陀螺仪数据样本中,从而对匹配的预设陀螺仪温度下的陀螺仪数据样本进行完善。
其中,关于N的取值,N可以为预设的固定值,例如:N的值可以为5、7或10等。
而如果匹配的预设陀螺仪温度下的一组陀螺仪数据样本中包括N个陀螺仪数据样本,则根据实时陀螺仪数据对N个陀螺仪数据样本进行更新。
具体来讲,在确定是否对N个陀螺仪数据样本进行更新时,首先,将N个陀螺仪数据样本按照获取时间进行排序,从N个陀螺仪数据样本中选择出最早获取的陀螺仪数据样本和最晚获取的陀螺仪数据样本,其中,最早获取的陀螺仪数据样本为N个陀螺仪数据样本中最旧的数据样本,最晚获取的陀螺仪数据样本为N个陀螺仪数据样本中最新的数据样本。
然后,在一种可能的实施方式中,计算陀螺仪传感器上报实时陀螺仪数据的时刻与最早获取的陀螺仪数据样本的获取时刻之间的时间差,在所述时间差大于预设时间差阈值时,根据实时陀螺仪数据,对最早获取的陀螺仪数据样本进行更新。举例来讲,假设预设时间差差值为1小时,预设陀螺仪温度下包括5个陀螺仪数据样本,最早获取的陀螺仪数据样本的获取时刻与当前时刻超过了1小时,则根据实时陀螺仪数据,对最早获取的陀螺仪数据样本进行更新,更新后的陀螺仪数据样本中包括时间参数(即当前时刻)和当前时刻的实时陀螺仪数据,而如果最早获取的陀螺仪数据样本的获取时刻与当前时刻小于1小时,则可以不进行更新。
在另一种可能的实施方式中,计算陀螺仪传感器上报的实时陀螺仪数据与最晚获取的陀螺仪数据样本之间的数据差,在数据差大于等于所述预设的数据差阈值时,根据实时陀螺仪数据,对最晚获取的陀螺仪数据样本进行更新。
其中,预设数据差阈值用于衡量实时陀螺仪数据与最晚获取的陀螺仪数据样本相比,数据是否发生了较大变化,例如:预设数据差阈值可以为0.05,如果数据差大于等于0.05,表明实时陀螺仪数据与最晚获取的陀螺仪数据样本相比,发生了较大变化,则根据实时陀螺仪数据,对最晚获取的陀螺仪数据样本进行更新,如果数据差小于0.05,表明数据变化较小,则不用进行更新。
在实际应用中,预设数据差阈值可以用角度值表示,如:0.05;预设数据差阈值也可以用变化幅度进行表示,例如:实时陀螺仪数据与最晚获取的陀螺仪数据样本相比,变化幅度为10%,本发明对此不做限制。
本发明实施例中,通过在电子设备的使用过程中,对预设陀螺仪温度下的陀螺仪数据样本进行完善和更新,使得陀螺仪数据样本更符合陀螺仪传感器的使用环境,使得根据陀螺仪数据样本计算的自动校准数据更加准确,从而通过自动校准数据对陀螺仪传感器上报的数据进行准确校准,减小陀螺仪传感器由于外界环境变化引起的误差,使得电子设备能够根据校准后的陀螺仪数据对电子设备进行准确控制。
本发明实施例中,以电子设备为头戴显示设备为例进行说明,在静止状态下,由于陀螺仪传感器存在零速度偏移,并且零速率偏移的数据会随着温度等外界环境的变化而改变,如果采用一个固定不变的校准数据对陀螺仪数据进行校准,误差会变大,导致头戴显示设备的视角发生缓慢漂移现象,这种视角漂移是用户不希望发生的,举例来讲,头戴显示设备处于静止状态时,如果误差较大,头戴显示设备根据误差对视角进行调整后,用户隔一段时间就会发现头戴显示设备的视角发生了明显变化。通过采用本发明实施例中的陀螺仪数据校准方法进行校准,可以减小陀螺仪数据的误差,从而缓解头戴显示设备在静止状下的缓慢漂移。
接下来,对本发明实施例中鉴别电子设备状态的方法进行说明。
在一种可能的实施方式中,可以根据陀螺仪传感器上报的陀螺仪数据,鉴别电子设备是否处于预设状态,如图4所示,图4为本发明实施例提供的鉴别电子设备是否处于预设状态的方法流程示意图,该方法包括以下步骤。
步骤40,记录所述陀螺仪传感器的上报的陀螺仪数据小于等于陀螺仪数据阈值的持续时间。
步骤41,若所述持续时间超过所述持续时间阈值,则确定所述电子设备处于所述预设状态。
在步骤40中,陀螺仪数据阈值可以为预先计算并存储在电子设备中的值。具体的,陀螺仪数据阈值为根据头戴显示设备处于静止状态时,对所述陀螺仪传感器上报的多个陀螺仪数据进行加权平均获得的值。
具体的,在电子设备处于静止状态时,获取电子设备处于静止状态下,陀螺仪传感器上报的多个陀螺仪数据,多个陀螺仪数据可以为陀螺仪传感器在预设时长内上报的数据,预设时长可以为5min,也可以为10min等等。
然后,对获取的多个陀螺仪数据进行加权平均,计算陀螺仪数据阈值,本发明实施例中,加权平均函数如下:
threshold_new=threshold_max*α2+threadhold*(1–α2) (2)
其中,threshold_new为陀螺仪数据阈值,threshold_max为对预设时长内的多个陀螺仪数据进行排序,取出最大的M个陀螺仪数据的平均值,α2为最大的M个陀螺仪数据的平均值的权值,threadhold为预设时长内的多个陀螺仪数据的平均值。本发明实施例中,为了保证陀螺仪数据阈值能够有效过滤电子设备处于静止状态时,陀螺仪传感器的零速率偏移等误差数据,M个传感器数据的平均值的权值α2可以大于0.5。
在具体实施过程中,也可以采用其他方式计算静止状态下,陀螺仪传感器的陀螺仪数据阈值,本发明对此不作限制。
由于陀螺仪传感器的零速率偏移一直存在,因此,多个陀螺仪数据至少包括静止状态下的零速率偏移,根据多个陀螺仪数据计算获得的陀螺仪数据阈值能够反映电子设备处于静止状态时,包括零独立偏移在内的陀螺仪数据的变化情况。然后,记录陀螺仪传感器的陀螺仪数据小于等于陀螺仪数据阈值的持续时间。
本发明实施例中,在计算陀螺仪数据阈值时,陀螺仪传感器在预设时长内检测到的多个陀螺仪数据可以是校准后的数据,校准后的数据是指根据当前的自动校准数据进行校准后的数据;多个陀螺仪数据也可以根据校准后的数据进行平滑处理后,得到的平滑后的数据。具体的,平滑函数如下:
gyroi_smooth=gyroi*α3+gyroi_F*(1–α3) (3)
其中,在依次获取多个陀螺仪数据时,gyroi为校准后的第i个陀螺仪数据,gyroi_smooth为平滑后的数据,即多个陀螺仪数据中的第i个陀螺仪数据,α3为第i个陀螺仪数据的权值,gyroi_F为在所述第i个陀螺仪数据之前的i-1个陀螺仪数据的平均值,为了使平滑后的数据能够更加真实的反映陀螺仪传感器的数据变化情况,gyroi的权值可以大于gyroi_F的权值,α3为根据经验值设定的值,使得平滑处理后的陀螺仪数据既可以避免由于陀螺仪传感器的数据跳变,引起的陀螺仪数据突然变大,又能够真实的反映出陀螺仪传感器在预设时长内的数据变化情况。
在步骤41中,比较所述持续时间和预设持续时间阈值,若所述持续时间大于或者等于预设持续时间阈值,则确定所述电子设备当前处于所述预定状态。举例来讲,假设在静止状态下,电子设备计算获得的陀螺仪数据阈值为0.1,预先设置的时间阈值为6秒,如果电子设备的陀螺仪传感器的陀螺仪数据在超过6秒内都小于0.1,则确定电子设备当前处于预设状态。
在另一种可能的实施方式中,也可以结合上述实施例中的陀螺仪传感器,以及加速度传感器或重力传感器等的数据共同确定头戴显示设备的运动状态。例如:沿用上述陀螺仪数据阈值为0.1,预先设置的时间阈值为6秒的例子,假设螺仪传感器的陀螺仪数据在超过6秒内都小于0.1,并且加速度传感器在这6秒内的数据都为零或者接近零,则确定头戴显示设备处于静止状态。通过结合陀螺仪传感器,以及加速度传感器或重力传感器等的数据可以使得鉴别出的运动状态更加准确。
本发明实施例中,通过在电子设备处于静止状态时,根据陀螺仪传感器上报的实时陀螺仪数据和实时陀螺仪温度,对陀螺仪传感器的自动校准数据进行更新,使得更新后的自动校准数据更加适应陀螺仪传感器所在的外界环境,从而防止由于环境因素的改变,导致误差变大。
本发明实施例中,可以对自动校准数据进行实时更新,从而提高陀螺仪数据校准的准确性;另一方面,为了降低电子设备的负载,也可以对自动校准数据进行周期性更新,本领域技术人员可以根据实际需要选择更新方式,本发明对此不做限制。
基于同一发明构思,本发明实施例还提供一种陀螺仪数据校准方法,如图5所示,所述陀螺仪数据校准方法包括以下步骤。
步骤50,获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
步骤51,从多个预设陀螺仪温度中选择出与所述当前陀螺仪温度匹配的第一陀螺仪温度,多个所述预设陀螺仪温度与多个自动校准数据一一对应;
步骤52,获取实时校准数据对应的第二陀螺仪温度,所述实时校准数据为电子设备处于静止状态时,对所述陀螺仪传感器在预设时长内上报的多个陀螺仪数据进行平滑处理获得的值;
步骤53,根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准;
其中,所述数据校准策略包括根据所述第一陀螺仪温度对应的自动校准数据对当前陀螺仪数据进行校准,或根据所述实时校准数据对当前陀螺仪数据进行校准。
在步骤50中,陀螺仪传感器在上报数据时,会上报当前时刻的陀螺仪温度和陀螺仪数据,即陀螺仪传感器的三轴数据。
在步骤51中,从多个预设陀螺仪温度中选择出与当前陀螺仪温度匹配的第一陀螺仪温度。本发明实施例中,电子设备存储有多个预设陀螺仪温度下的多个自动校准数据,自动校准数据与预设陀螺仪温度一一对应。例如:陀螺仪传感器上报的当前陀螺仪温度为30度,则从电子设备中的多个预设陀螺仪温度中选择出与当前陀螺仪温度匹配的第一陀螺仪温度,则第一陀螺仪温度为30度或者靠近30度。
在步骤53中,根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准。
本发明实施例中,数据校准策略包括根据第一陀螺仪温度对应的自动校准数据对当前陀螺仪数据进行校准,或者,根据实时校准数据对当前陀螺仪数据进行校准。
具体的,在选择合适的数据校准策略时,计算第一陀螺仪温度与当前陀螺仪温度之间的第一温度差值,计算第二陀螺仪温度与当前陀螺仪温度之间的第二温度差值;若第一温度差值和第二温度差值之间的差值小于等于预设差值,则根据实时校准数据对所述当前陀螺仪数据进行校准;也就是说,由于实时传陀螺仪数据更接近电子设备的真实情况,在第一陀螺仪温度和第二陀螺仪温度都比较接近当前陀螺仪温度时,优先采用实时校准数据对当前陀螺仪数据进行校准。
而在所述第二温度差值和所述第二温度差值之间的差值大于所述预设差值时,则根据所述自动校准数据对所述当前陀螺仪数据进行校准,也就是说,在第一陀螺仪温度较接近当前陀螺仪温度,而第二陀螺仪温度与当前陀螺仪温度相距较远时,采用自动校准数据对当前陀螺仪数据进行校准。
本发明实施例中,所述实时校准数据为电子设备处于静止状态时,对所述陀螺仪传感器在预设时长内上报的多个陀螺仪数据进行平滑处理获得的值。具体的,在电子设备处于静止状态时,获取陀螺仪传感器在当前时刻上报的陀螺仪数据,然后,根据平滑函数gyro_smooth=gyro*α+gyro_F*(1-α)计算所述实时校准数据,其中,gyro_smooth为实时校准数据,gyro为所述当前时刻的陀螺仪数据,α为所述当前时刻的陀螺仪数据的权值,gyro_F为在所述当前时刻之前的预设时长内获取的多个陀螺仪数据的平均值。
前述图4实施例中的鉴别电子设备状态的方法中的各种变化方式和具体实例同样适用于本实施例,所以为了说明书的简洁,在此不再详述。
需要说明的是,本实施例中的预设时长可以小于鉴别电子设备状态时的预设持续时间阈值,使得在计算实时校准数据时,陀螺仪数据均为电子设备处于静止状态下的数据。
本发明实施例中,在电子设备处于预设状态后,陀螺仪传感器上报的陀螺仪数据都满足对实时校准数据进行更新的条件,因此,可以对实时校准数据进行实时更新。
在另一实施例中,为了降低电子设备的负载,可以对实时校准数据进行周期性更新或者增加更新条件,在满足更新条件时才进行更新。根据一种可能的实施方式,更新条件可以为:在电子设备处于预设状态时,比较所述实时校准数据对应的陀螺仪温度和当前陀螺仪温度,如果实时校准数据对应的陀螺仪温度和当前陀螺仪温度之间的温度差值大于等于预设温度阈值,则计算新的实时校准数据,即对实时校准数据进行更新。
举例来讲,temp_diff为温度差值,temp_diff=Abs(temp_intime-temp),其中,temp_intime为当前陀螺仪温度,temp为当前的实时校准数据对应的温度。在具体实施过程中,可以将实时校准数据和实时校准数据对应的温度存储在实时校准文件中,在更新时,对实时校准文件中的实施校准数据和温度数据均进行更新。假设预设温度阈值为1度,则如果temp_diff大于等于1度时,则更新实时校准数据,如果temp_diff小于1度时,则电子设备不会重新计算实时校准数据。
本发明实施例中,计算自动校准数据的方法包括:鉴别所述电子设备是否处于预设状态;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态;在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;根据每个预设陀螺仪温度下的多个所述陀螺仪数据样本,计算得到所述陀螺仪传感器在每个所述预设陀螺仪温度下的自动校准数据。
对于自动校准数据的计算方法,前述图1-图4对应的实施例中的中的各种变化方式和具体实例同样适用于本实施例,所以为了说明书的简洁,在此不再详述。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁带、磁盘、光盘、磁光盘、ROM、PROM、VCD、DVD等)上实施的计算机程序产品的形式。
具体来讲,本发明实施例中的陀螺仪数据校准方法对应的计算机程序可以被存储在计算机可读存储介质上,所述计算机程序被处理器执行时包括如下步骤:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;
根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:
从电子设备中读取预先存储在电子设备中的自动校准数据。
可选的,所述存储介质中存储的与步骤:计算所述自动校准数据的方法,对应的计算机程序在具体被执行过程中,包括如下步骤:
在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于预设持续时间阈值的状态;
对每个预设陀螺仪温度下的多个所述陀螺仪数据样本进行加权平均,得到每个所述预设陀螺仪温度下的自动校准数据。
可选的,所述存储介质中存储的与步骤:在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本,对应的计算机程序在具体被执行过程中,包括如下步骤:
鉴别电子设备是否处于预设状态;
在所述电子设备处于所述预设状态时,根据陀螺仪传感器上报的实时陀螺仪温度,从多组陀螺仪数据样本中选择出与所述实时陀螺仪温度匹配的一组陀螺仪数据样本;其中,每组所述陀螺仪数据样本中包括处于相同陀螺仪温度下的多个陀螺仪数据样本;
判断与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中是否包括N个陀螺仪数据样本,如果不包括,则将所述陀螺仪传感器上报的实时陀螺仪数据作为所述陀螺仪数据样本,其中,N为预设值。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:如果与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中包括N个陀螺仪数据样本,将所述N个陀螺仪数据样本按照获取时间进行排序,从N个所述陀螺仪数据样本中选择出最早获取的陀螺仪数据样本和最晚获取的陀螺仪数据样本;
计算所述陀螺仪传感器上报实时陀螺仪数据的当前时刻与最早获取的陀螺仪数据样本的获取时刻之间的时间差,并在所述时间差大于等于预设时间差阈值时,根据所述实时陀螺仪数据,对最早获取的陀螺仪数据样本进行更新;或
计算所述实时陀螺仪数据与最晚获取的陀螺仪数据样本之间的数据差,并在所述数据差大于等于预设数据差阈值时,根据所述实时陀螺仪数据,对最晚获取的陀螺仪数据样本进行更新。
可选的,所述存储介质中存储的与步骤:鉴别电子设备是否处于预设状态,对应的计算机程序在具体被执行过程中,包括如下步骤:
记录所述陀螺仪传感器上报的陀螺仪数据小于等于陀螺仪数据阈值的持续时间;其中,所述陀螺仪数据阈值为根据所述电子设备处于静止状态时,对所述陀螺仪传感器上报的多个陀螺仪数据进行加权平均获得的值;
若所述持续时间超过所述预设持续时间阈值,则确定所述电子设备处于所述预设状态。
基于同一发明构思,本发明实施例还提供一种存储有计算机程序的计算机可读存储介质,所述计算机程序被处理器执行时包括如下步骤:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个预设陀螺仪温度中选择出与所述当前陀螺仪温度匹配的第一陀螺仪温度,多个所述预设陀螺仪温度与多个自动校准数据一一对应;
获取实时校准数据对应的第二陀螺仪温度,所述实时校准数据为电子设备处于静止状态时,对所述陀螺仪传感器在预设时长内上报的多个陀螺仪数据进行平滑处理获得的值;
根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准;
其中,所述数据校准策略包括根据所述第一陀螺仪温度对应的自动校准数据对当前陀螺仪数据进行校准,或根据所述实时校准数据对当前陀螺仪数据进行校准。
可选的,所述存储介质中存储的与步骤:根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准,对应的计算机程序在具体被执行过程中,包括如下步骤:
计算所述第一陀螺仪温度与所述当前陀螺仪温度之间的第一温度差值,计算所述第二陀螺仪温度与所述当前陀螺仪温度之间的第二温度差值;
若所述第一温度差值和所述第二温度差值之间的差值小于等于预设差值,则根据所述实时校准数据对所述当前陀螺仪数据进行校准;
若所述第二温度差值和所述第二温度差值之间的差值大于所述预设差值,则根据所述自动校准数据对所述当前陀螺仪数据进行校准。
可选的,所述存储介质中存储的与步骤:计算所述实时校准数据,对应的计算机程序在具体被执行过程中,包括如下步骤:
鉴别所述电子设备是否处于预设状态;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态;
在所述电子设备处于预设状态时,获取所述陀螺仪传感器在当前时刻上报的陀螺仪数据;
根据平滑函数gyro_smooth=gyro*α+gyro_F*(1-α)计算所述实时校准数据;
其中,gyro_smooth为实时校准数据,gyro为所述当前时刻的陀螺仪数据,α为所述当前时刻的陀螺仪数据的权值,gyro_F为在所述当前时刻之前的预设时长内获取的多个陀螺仪数据的平均值。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:在所述电子设备处于所述预设状态时,比较所述实时校准数据对应的陀螺仪温度和当前陀螺仪温度;
如果所述实时校准数据对应的陀螺仪温度和所述当前陀螺仪温度之间的温度差值大于等于预设温度阈值,则计算新的实时校准数据。
可选的,所述存储介质中还存储有另外一些计算机程序,这些计算机程序在被执行时包括如下步骤:
从电子设备中读取预先存储在电子设备中的自动校准数据。
可选的,所述存储介质中存储的与步骤:计算所述自动校准数据,对应的计算机程序在具体被执行过程中,包括如下步骤:
鉴别所述电子设备是否处于预设状态;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于持续时间阈值的状态;
在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;
对每个预设陀螺仪温度下的多个所述陀螺仪数据样本进行加权平均,得到每个所述预设陀螺仪温度下的自动校准数据。
本发明实施例中的一个或者多个技术方案,至少具有如下技术效果或者优点:
本发明实施例的方案中,在对陀螺仪数据进行校准时,获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。可见,本发明实施例的方案中,对于不同陀螺仪温度下的陀螺仪数据,采用与不同陀螺仪温度匹配的自动校准数据,对陀螺仪数据进行校准,从而解决现有技术中存在的,由于陀螺仪传感器容易受到温度等环境因素的干扰,导致陀螺仪传感器的误差变大的技术问题,实现了消除温度对陀螺仪传感器的干扰,减小陀螺仪传感器的误差,使得陀螺仪传感器能够适应不同环境的技术效果。
本说明书中公开的所有特征,或公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合。
本说明书(包括任何附加权利要求、摘要和附图)中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
本发明并不局限于前述的具体实施方式。本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
Claims (10)
1.一种陀螺仪数据校准方法,其特征在于,包括:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;
根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。
2.如权利要求1所述的方法,其特征在于,所述自动校准数据为预先存储在电子设备中的数据。
3.如权利要求1或2所述的方法,其特征在于,计算所述自动校准数据的方法包括:
在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本;其中,所述预设状态是指所述电子设备处于静止状态的持续时间大于等于预设持续时间阈值的状态;
对每个预设陀螺仪温度下的多个所述陀螺仪数据样本进行加权平均,得到每个所述预设陀螺仪温度下的自动校准数据。
4.如权利要求3所述的方法,其特征在于,在电子设备处于预设状态时,获取每个预设陀螺仪温度下的多个陀螺仪数据样本,包括:
鉴别电子设备是否处于预设状态;
在所述电子设备处于所述预设状态时,根据陀螺仪传感器上报的实时陀螺仪温度,从多组陀螺仪数据样本中选择出与所述实时陀螺仪温度匹配的一组陀螺仪数据样本;其中,每组所述陀螺仪数据样本中包括处于相同陀螺仪温度下的多个陀螺仪数据样本;
判断与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中是否包括N个陀螺仪数据样本,如果不包括,则将所述陀螺仪传感器上报的实时陀螺仪数据作为所述陀螺仪数据样本,其中,N为预设值。
5.如权利要求4所述的方法,其特征在于,所述方法还包括:
如果与所述实时陀螺仪温度匹配的一组陀螺仪数据样本中包括N个陀螺仪数据样本,将所述N个陀螺仪数据样本按照获取时间进行排序,从N个所述陀螺仪数据样本中选择出最早获取的陀螺仪数据样本和最晚获取的陀螺仪数据样本;
计算所述陀螺仪传感器上报实时陀螺仪数据的当前时刻与最早获取的陀螺仪数据样本的获取时刻之间的时间差,并在所述时间差大于等于预设时间差阈值时,根据所述实时陀螺仪数据,对最早获取的陀螺仪数据样本进行更新;或
计算所述实时陀螺仪数据与最晚获取的陀螺仪数据样本之间的数据差,并在所述数据差大于等于预设数据差阈值时,根据所述实时陀螺仪数据,对最晚获取的陀螺仪数据样本进行更新。
6.如权利要求4所述的方法,其特征在于,所述鉴别电子设备是否处于预设状态的方法包括:
记录所述陀螺仪传感器上报的陀螺仪数据小于等于陀螺仪数据阈值的持续时间;其中,所述陀螺仪数据阈值为根据所述电子设备处于静止状态时,对所述陀螺仪传感器上报的多个陀螺仪数据进行加权平均获得的值;
若所述持续时间超过所述预设持续时间阈值,则确定所述电子设备处于所述预设状态。
7.一种陀螺仪数据校准方法,其特征在于,包括:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个预设陀螺仪温度中选择出与所述当前陀螺仪温度匹配的第一陀螺仪温度,多个所述预设陀螺仪温度与多个自动校准数据一一对应;
获取实时校准数据对应的第二陀螺仪温度,所述实时校准数据为电子设备处于静止状态时,对所述陀螺仪传感器在预设时长内上报的多个陀螺仪数据进行平滑处理获得的值;
根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准;
其中,所述数据校准策略包括根据所述第一陀螺仪温度对应的自动校准数据对当前陀螺仪数据进行校准,或根据所述实时校准数据对当前陀螺仪数据进行校准。
8.如权利要求7所述的方法,其特征在于,根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准,包括:
计算所述第一陀螺仪温度与所述当前陀螺仪温度之间的第一温度差值,计算所述第二陀螺仪温度与所述当前陀螺仪温度之间的第二温度差值;
若所述第一温度差值和所述第二温度差值之间的差值小于等于预设差值,则根据所述实时校准数据对所述当前陀螺仪数据进行校准;
若所述第二温度差值和所述第二温度差值之间的差值大于所述预设差值,则根据所述自动校准数据对所述当前陀螺仪数据进行校准。
9.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时包括如下步骤:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个自动校准数据中选择出与所述当前陀螺仪温度匹配的自动校准数据,多个所述自动校准数据分别为所述陀螺仪传感器在多个预设陀螺仪温度下的校准数据;
根据与所述当前陀螺仪温度匹配的自动校准数据,对所述当前陀螺仪数据进行校准。
10.一种存储有计算机程序的计算机可读存储介质,其特征在于,所述计算机程序被处理器执行时包括如下步骤:
获取陀螺仪传感器上报的当前陀螺仪数据及当前陀螺仪温度;
从多个预设陀螺仪温度中选择出与所述当前陀螺仪温度匹配的第一陀螺仪温度,多个所述预设陀螺仪温度与多个自动校准数据一一对应;
获取实时校准数据对应的第二陀螺仪温度,所述实时校准数据为电子设备处于静止状态时,对所述陀螺仪传感器在预设时长内上报的多个陀螺仪数据进行平滑处理获得的值;
根据所述当前陀螺仪温度、所述第一陀螺仪温度和所述第二陀螺仪温度,选择数据校准策略对所述当前陀螺仪数据进行校准;
其中,所述数据校准策略包括根据所述第一陀螺仪温度对应的自动校准数据对当前陀螺仪数据进行校准,或根据所述实时校准数据对当前陀螺仪数据进行校准。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710298778.9A CN108801292A (zh) | 2017-04-27 | 2017-04-27 | 一种陀螺仪数据校准方法及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710298778.9A CN108801292A (zh) | 2017-04-27 | 2017-04-27 | 一种陀螺仪数据校准方法及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108801292A true CN108801292A (zh) | 2018-11-13 |
Family
ID=64053680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710298778.9A Pending CN108801292A (zh) | 2017-04-27 | 2017-04-27 | 一种陀螺仪数据校准方法及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108801292A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110987002A (zh) * | 2019-11-25 | 2020-04-10 | 中国工程物理研究院电子工程研究所 | 惯导数据优化方法、训练方法、模型、设备及存储介质 |
CN111521196A (zh) * | 2020-04-14 | 2020-08-11 | 京东方科技集团股份有限公司 | 传感器校正方法、装置、虚拟现实设备、存储介质 |
CN112971983A (zh) * | 2021-02-03 | 2021-06-18 | 广州导远电子科技有限公司 | 姿态数据的测量方法、装置、电子设备及存储介质 |
CN112985383A (zh) * | 2019-12-14 | 2021-06-18 | 北京原子机器人科技有限公司 | 基于相互补偿的多陀螺仪系统 |
CN113758515A (zh) * | 2021-08-16 | 2021-12-07 | 深圳市睿联技术股份有限公司 | 零点校准方法、装置、电子设备及计算机可读存储介质 |
-
2017
- 2017-04-27 CN CN201710298778.9A patent/CN108801292A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110987002A (zh) * | 2019-11-25 | 2020-04-10 | 中国工程物理研究院电子工程研究所 | 惯导数据优化方法、训练方法、模型、设备及存储介质 |
CN110987002B (zh) * | 2019-11-25 | 2022-02-01 | 中国工程物理研究院电子工程研究所 | 惯导数据优化方法、训练方法、模型、设备及存储介质 |
CN112985383A (zh) * | 2019-12-14 | 2021-06-18 | 北京原子机器人科技有限公司 | 基于相互补偿的多陀螺仪系统 |
CN111521196A (zh) * | 2020-04-14 | 2020-08-11 | 京东方科技集团股份有限公司 | 传感器校正方法、装置、虚拟现实设备、存储介质 |
CN112971983A (zh) * | 2021-02-03 | 2021-06-18 | 广州导远电子科技有限公司 | 姿态数据的测量方法、装置、电子设备及存储介质 |
CN113758515A (zh) * | 2021-08-16 | 2021-12-07 | 深圳市睿联技术股份有限公司 | 零点校准方法、装置、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108801292A (zh) | 一种陀螺仪数据校准方法及计算机可读存储介质 | |
CN110133582B (zh) | 补偿电磁跟踪系统中的畸变 | |
EP3535687B1 (en) | Automatic magnetometer calibration for mobile devices | |
EP3491334B1 (en) | Method and system for calibrating components of an inertial measurement unit (imu) using scene-captured data | |
CN106500728B (zh) | 一种陀螺仪的温度漂移补偿方法和装置 | |
US11073407B2 (en) | Electronic device and pose-calibration method thereof | |
US8209055B2 (en) | System for sensing state and position of robot | |
US11054638B2 (en) | Tracking pointing direction of device | |
RU2285902C1 (ru) | Способ определения и компенсации ухода гиростабилизированной платформы и устройство для его осуществления | |
CN106153042A (zh) | 航向角获取方法和装置 | |
US20120296596A1 (en) | Mobile device | |
CN110132271B (zh) | 一种自适应卡尔曼滤波姿态估计算法 | |
WO2019055113A1 (en) | FIELD DISTORTION CORRECTION IN ELECTROMAGNETIC POSITION TRACKING SYSTEMS | |
CN112567097A (zh) | 用于确定机器的作业设备的角度的方法 | |
US20150241390A1 (en) | Automatically updating hard iron and soft iron coefficients of a magnetic sensor | |
US20140067305A1 (en) | Stabilizing orientation values of an electronic device | |
EP2488829A1 (en) | A method of detecting parasitic movements while aligning an inertial unit | |
WO2014185027A1 (ja) | オフセット推定装置、オフセット推定方法、およびプログラム | |
CN109186635A (zh) | 三轴陀螺仪的零点校准方法及系统 | |
CN102135431B (zh) | 一种惯性测量单元精度补偿的方法 | |
CN108287607A (zh) | 一种控制hmd视角的方法及头戴显示设备 | |
JP3666875B2 (ja) | 磁気コンパスの水平安定化のための方法 | |
EP2972682B1 (en) | Computing a magnetic heading | |
TWI680382B (zh) | 電子裝置及其姿態校正方法 | |
CN108153406A (zh) | 一种控制hmd视角的方法及头戴显示设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200708 Address after: No.18 Xilin 1st Street, Chenghua District, Chengdu, Sichuan 610051 Applicant after: Chengdu Ideal Zhimei Technology Co.,Ltd. Address before: Two road 610041 Sichuan city of Chengdu province Chengdu high tech Zone Tianhua No. 219 Building 1 unit 2 1 floor No. 3 Applicant before: IDEALENS TECHNOLOGY (CHENGDU) Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20181113 |
|
WD01 | Invention patent application deemed withdrawn after publication |