2013-03-19 181 views
10
  • 我想监视2轴上设备的方向:非常简单:哪个方向停下来。
  • 它必须保持对
  • 它会受到旋转和加速度延长的时间段(12小时)的准确性,对所有轴的

该设备将Android手机与标准陀螺/加速度计。对于这两种传感器类型,是否可以满足上述要求?使用陀螺仪和加速度计获取方向

我的想法至今:单独加速度计无法实现这一点,因为给出的任何值集合的时间瞬间,这是不可能的重力和空间加速组分分离。我无法理解陀螺仪如何帮助解决这个问题。是否有任何聪明的公式/算法可以管理这个?

由于

+1

尝试谷歌'加速度计陀螺仪数据融合'。这是IMU中非常常见的任务,绝对可行。 (在我头顶,你可以设置一个卡尔曼滤波器/在加速度计上做一个HPF,在陀螺仪上做一个LPF,但我没有任何实现细节)。 – sapi 2013-03-19 03:39:49

回答

21

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

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

角= 0.98 *(角度+ gyroData * DT)+ 0.02 * accAngle

通知你只如何利用加速度计数据的一小部分(刚够弥补漂移)。因此,您将使用陀螺仪数据进行快速更改,但从长远来看,您将继续遵循加速度计角度计算的平均值,因此您不会漂移。

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