6

在 Android 4.3 中,新增了 type_gyroscope_uncalibrated、magnetic_field_uncalibrated、game_rotation_vector、significant_motion 传感器。

我想知道type_gyroscope 和 type_gyroscope_uncalibrated 有什么不同。 (我可以理解 type_magnetic_field_uncalibrated 和 hardiron 错误。)

首先,Type_gyroscope 可以返回以 rad/sec 为单位的角速度。是原始数据! 如果我将这些值用于角度,我必须整合值 [0]、[1]、[2]。然后,积分值(角度)有一些漂移误差。

其次,Type_gyroscope_uncalibrated 可以返回具有 rad/sec 和漂移偏差值的角速度。在 API(developers.android.com)中,谷歌表示 type_gyroscope_uncalibrated 的值表示未校准的值* (他们说这也是原始数据..) *。

问题1. 那么type_gyroscope的数值是标定的角速度吗?校准的参考是什么?没有积分(因为它只是角速度)!

所以,我认为漂移偏差(在 type_gyroscope_uncalibrated 中)意味着不是积分漂移误差。如果这是真的,那么校准的参考就是磁(或加速度)值。type_gyroscope 可以参考参考数据,可以进行校准。Type_gyroscope_uncalibrated 的值没有参考数据(它只是原始数据)。

问题 2. 对吗?如果正确,API 指南中的“漂移补偿”一词一定是正确的。

4

2 回答 2

10

可以对普通陀螺仪传感器进行动态校准,以消除读数中的恒定偏差。大多数开发人员可以直接使用普通陀螺仪,但是想要融合数据(例如使用卡尔曼滤波器)的高级用户可能希望自己执行动态校准。在这种情况下,他们可以使用未校准的传感器,该传感器报告 values[0,1,2] = uncal_x|y|z 和 values[3,4,5] = biased_estimate_x|y|z 与未校准的磁力计类似。您很可能对普通磁力计感兴趣。

您可以在此处找到有关这些传感器的更多信息:http: //source.android.com/devices/sensors/composite_sensors.html#Uncalibrated http://developer.android.com/reference/android/hardware/SensorEvent.html#values

于 2013-12-05T21:30:12.047 回答
2

您可以通过在握住设备的同时在空中绘制“8”来校准设备陀螺仪,当您这样做时,您会校准您的陀螺仪,这意味着您的旋转数据被重置并且它将在平放时返回 [0,0,0]表面并指向北,你可以通过赋值来获得这样的值type_gyroscope

另一个注意事项是不时会有一些漂移,并且您的设备北与实际北不匹配,因此如果设备与其北匹配而不是实际北匹配,您会得到 [0,0,0],您可以通过分配得到type_gyroscope_uncalibrated

于 2013-10-30T07:33:00.277 回答