使用陀螺仪和加速度计获得方向

时间:2013-03-19 03:28:02

标签: orientation accelerometer gyroscope

  • 我想在2轴上监控设备的方向:非常简单:哪条路向下。
  • 必须在延长的时间段(12小时)内保持准确性
  • 它将受到关于所有轴的旋转和加速度

该设备将是带有标准陀螺仪/加速度计的Android手机。对于这两种传感器类型,是否可以满足上述要求?

到目前为止我的想法:单独的加速度计无法实现这一点,因为在瞬间给定任何一组值,就不可能将重力和空间加速度分量分开。我无法理解陀螺仪如何帮助解决这个问题。有没有聪明的公式/算法来管理这个?

由于

1 个答案:

答案 0 :(得分:21)

结合加速度计和陀螺仪数据的简便方法是使用互补滤波器。这样,您就不会遇到陀螺仪的漂移和加速度计的噪音问题。理解和使用它比卡尔曼滤波器更容易。

您将使用积分计算陀螺仪的角度。对于加速度计,您将使用tan2函数来确定重力矢量的位置。然后,互补滤波器将这两个角度组合如下:

angle = 0.98 *(angle + gyroData * dt)+ 0.02 * accAngle

注意你如何只获取加速度计数据的一小部分(足以补偿漂移)。因此,您将使用陀螺仪数据进行快速更改,但从长远来看,您将始终遵循加速度计角度计算的平均值,以便您不会漂移。

我希望这会有所帮助。如果您需要更多信息和C代码示例,我写了一篇关于它的文章here