连续线性加速度下的AHRS算法

电器工程 加速度计 陀螺仪 伊穆 算法 磁力计
2022-01-06 11:36:10

我尝试了几种算法来获得连续线性加速度和振动(小于 0.4g,频率低于 10HZ)下的俯仰、滚动和偏航。它们都没有给出好的结果,因为读数要么漂移,要么受线性加速度的影响太大。我想要实现的是当外部加速度小于+-0.4g时,俯仰和滚动的误差应该小于+-1deg。

我已经尝试过这些算法:

  1. Madgwick 算法当 Beta 增益设置得非常高时,收敛速度很快,但角度更容易受到线性加速度的影响。我将其调低并将线性加速度下的误差降低到 +-0.5 度。但是,如果振动是连续的,则读数会漂移,并且需要永远收敛到真实值。这是有道理的,因为在线性加速度下,陀螺仪更受信任,并且计算出的角度随着陀螺仪积分的漂移而漂移。

  2. Mahony 算法与 Madgwick 的相反,无论我对 Ki 和 Kp 使用什么值,它都不会漂移。然而,它总是受到线性加速度的影响。(误差大于 +-6deg)

  3. 传统卡尔曼滤波器很多时间都花在调整那些巨大的 R 和 Q 向量上。到目前为止,它的性能与 Mahony 的相同。

我正在使用剃须刀 IMU我知道使用便宜的传感器不可能达到与这个相同的结果

还有更多选项,例如 UKF,但理解或实施起来很痛苦。

欢迎任何建议。

1个回答

首先,请确保您了解这里的两个关键点:

  1. 在存在线性加速度的情况下,仅根据 IMU 数据确定的姿态本质上是模棱两可的如果没有关于加速度性质的额外知识,您可以达到的准确度总会有一个上限。

  2. 精度受到集成陀螺仪测量漂移的限制有了完美的陀螺仪数据和集成,根本不需要加速度计数据。你越接近完美,你就越能忽略加速度。

定向算法的选择在很大程度上无关紧要。它们都按照相同的原理工作:使用重力加速度的方向来漂移校正积分陀螺仪数据,两者之间有一些可变的权重。如果您尝试调整参数但没有达到您想要的结果,那么您不太可能使用不同的算法做得更好。

所以,基本上你可以做两件事。

  1. 提高陀螺仪集成的准确性。
  2. 以某种方式对线性加速度的性质进行建模。

第二个选项很难讨论,因为它取决于您正在研究的议案的细节。有一些简单的技巧,例如在某个给定范围之外丢弃或减轻加速度。本质上,这些归结为仅将线性加速度建模为短暂出现。如果您的系统处于连续运动状态,则它们没有多大帮助。

不过,您可以做几件事来改善您的陀螺仪集成:

  1. 获得对陀螺仪偏差的最佳估计在使用前几秒钟获取静态陀螺仪读数,然后平均这些读数以获得您的偏移值。不要依赖一次性的事先校准。
  2. 尽量减少温度引起的漂移。在校准/使用之前让 IMU 预热到稳态工作温度。操作过程中尽量保持温度稳定。
  3. 改进您的校准模型。考虑包括交叉轴效应和非线性以及仅缩放和偏移。
  4. 使用更好的集成方法。关于您的问题的评论中已经有一些想法。
  5. 看看你是否可以跟踪陀螺漂移。如果定向算法必须始终如一地纠正特定方向的漂移,则可以检测到这一点并用于轻轻调整偏差值。

你是对的,你使用的传感器不是最高等级的。但是,如果充分表征和校准,消费者传感器可能会获得非常好的结果。