陀螺传感器漂移和正确角度估计

时间:2011-08-30 16:07:54

标签: android accelerometer gyroscope coordinate-transformation

我正在使用LG Optimus 2x智能手机(陀螺仪和加速计传感器)进行定位。

我希望从陀螺仪中获得正确的旋转角度,以后可以用于身体到地球的坐标转换。我的问题是

如何测量和消除陀螺仪传感器的漂移。

一种方法是将陀螺样本的平均值(当移动设备处于静止状态时)一段时间并从当前样本中减去,这不是好方法。

当手机处于旋转/运动状态时,如何获得漂移角度?

3 个答案:

答案 0 :(得分:2)

据我所知,在SensorManager中实现卡尔曼滤波器或类似的东西。查看Sensor Fusion on Android Devices: A Revolution in Motion Processing

您正在尝试解决已经解决的问题。

答案 1 :(得分:2)

我是罗盘应用程序的作者,该应用程序集成了磁性和陀螺仪传感器(steady compass)的数据。我已经在运行Android 2.2的LG Optimus black(你可以在视频上看到的设备)测试了这个应用程序,所以我将分享我的经验:

  • 陀螺仪读数非常准确。该传感器与加速度计和磁传感器正好相反,它们会给读数带来很多抖动。
  • 来自陀螺仪的读数(即角速度)根本不会漂移。如果只是整合陀螺仪读数,你将会对方向的估计有所偏差。由于您要在不同的时间集成样本,因此您将获得一种在每个集成步骤后都会降级的方法。
  • 为了避免方向估计出现这种偏差,您必须考虑其他输入源来校正陀螺仪数据集成的结果。解决方案是集成来自方向传感器(磁+加速度)的数据和来自陀螺仪的数据。

小心使用LG手机:根据Android API,陀螺仪将以rad / s的形式返回数据。带有Froyo的LG Optimus Black以度/秒为单位给出读数。 Android 2.3的更新刚刚针对此类手机发布。我必须测试新版本是否符合规范。

您的手机有哪些Android版本?你用陀螺仪测试过任何应用吗?你有没有得到预期的结果?

答案 2 :(得分:1)

基本上陀螺仪会长时间漂移。加速度计没有漂移,但往往不稳定。通过使用卡尔曼滤波器组合来自两个传感器的信息,您可以获得准确的姿态。对于一些不那么复杂的东西,你也可以使用补充滤波器。

有关详情,请参阅此帖子: Combine Gyroscope and Accelerometer Data