在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指南中的“漂移补偿”一词必须正确。
答案 0 :(得分:7)
可以动态校准普通陀螺仪传感器,以消除读数中的恒定偏差。 大多数开发人员可以直接使用普通陀螺仪,但想要融合数据的高级用户(例如使用卡尔曼滤波器)可能希望自己执行动态校准。 在这种情况下,他们可以使用未校准的传感器,它报告值[0,1,2] = uncal_x | y | z和值[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
答案 1 :(得分:2)
您可以通过绘制" 8"来校准设备陀螺仪。在你拿着你的设备的同时,当你这样做时,你校准你的陀螺仪,这意味着你的旋转数据被重置,当它在平面上并指向北,你会返回[0,0,0],你通过分配type_gyroscope
可以获得这样的价值。
另一个注意事项是,有时会有一些漂移,你的设备北方不会与实际的北方相匹配,所以如果设备匹配北方而不是实际的北方,你会得到[0,0,0]北,您可以通过分配type_gyroscope_uncalibrated