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

问题描述 投票:0回答:1
  • 我想监控设备在 2 轴上的方向:非常简单:哪个方向朝下。
  • 必须在较长时间内(12 小时)保持准确性
  • 它将受到绕所有轴的旋转和加速度的影响

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

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

谢谢

orientation accelerometer gyroscope
1个回答
30
投票

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

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

角度 = 0.98*(角度 + 陀螺仪数据dt) + 0.02accAngle

注意如何仅获取一小部分加速度计数据(刚好足以补偿漂移)。因此,您将使用陀螺仪数据进行快速变化,但从长远来看,您将继续遵循加速度计角度计算的平均值,这样您就不会漂移。

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

© www.soinside.com 2019 - 2024. All rights reserved.