【问题标题】:how can i combine three sensor values accelerometer, gyroscope and magnetometer using kalman filter?如何使用卡尔曼滤波器组合三个传感器值加速度计、陀螺仪和磁力计?
【发布时间】:2013-06-17 05:45:54
【问题描述】:

如何使用卡尔曼滤波器组合加速度计、陀螺仪和磁力计三个传感器值?我们正在使用 arm 和 avr uC。

我已经阅读了有关堆栈溢出的所有问题,并在网上进行了很多搜索,但对于使用卡尔曼滤波器组合值的基本信息,我没有得到满意的结果。

Extended Kalman Filter Magnetometer Yaw drifting

Combine Gyroscope and Accelerometer Data

【问题讨论】:

    标签: kalman-filter


    【解决方案1】:

    不幸的是,没有“程序员的卡尔曼滤波器”之类的东西。不要指望某些公式可以盲目使用,一切都会神奇地起作用。

    如果您对卡尔曼滤波器方法一无所知,请在 Google 上搜索(关键字:态度、错误状态、卡尔曼滤波器):

    http://scholar.google.com/scholar?q=attitude+%22error+state%22+kalman+filter

    特别是,相对轻读是Indirect Kalman filter for 3D attitude estimation。确保您对其中的数学感到满意并且完全理解它;否则你将无法实现它。 :(

    如果你在理解上面的东西时有困难,我强烈推荐

    这基本上是一个教程,我无法想象一种更简单的方法来实现传感器融合。当作者开发它以在微控制器上运行时,它可以很好地在微控制器上运行。


    只是一个旁注。卡尔曼滤波器之所以如此受欢迎是因为

    • 在某些条件下是最优的

    • 理论告诉你如何估计你的滤波器参数。

    至于过滤器参数,您最终可能会调整它们,因此在我看来后者并不是一个很大的优势。请参阅SIGGRAPH Course Pack 中的5.1 参数估计或调整

    至于最优性,在实际应用中,根据领域的不同,这些条件通常不再成立;卡尔曼滤波器降级为(良好)启发式。

    但是,如果您仍然使用启发式算法,为什么不选择一个更容易实现的呢?例如方向余弦矩阵IMU:理论中介绍的那个。

    【讨论】:

    • 不幸的是,其中一些链接已经过时,即“程序员的卡尔曼滤波器”和“直接余弦矩阵 IMU:理论”。否则很好的参考资料
    • @pionium 感谢您告诉我!我将“直接余弦矩阵 IMU:理论”上传到我的 Google Drive,并分享了一个链接。该链接有望保持稳定。至于“程序员的卡尔曼滤波器”,这是一个很好回答的好问题,但不幸的是它被删除了。如果您有足够的声誉,您仍然可以阅读它,但我删除了该链接,因为很多人无法阅读它。 :-( 无论如何,答案都有所有相关信息,所以不要太担心。感谢您的反馈。
    • 太好了,感谢您的更新。非常感激。我会怀着极大的兴趣阅读您的 Theory 文档。亲切的问候
    【解决方案2】:

    现在,这是一个相当古老的问题,但人们可能会继续寻找这个问题。 目前最好的指南/论文之一是 J. Solá (http://www.iri.upc.edu/people/jsola/JoanSola/objectes/notes/kinematics.pdf) 的“Quaternion kinematics for the error-state KF

    它提供了关于四元数的完整入门知识,以及如何在错误状态卡尔曼滤波器中使用它们,以及易于遵循的嵌入式实现方程。 此外,如果您只是测试算法并希望稍后获得性能(并且拥有 ARM Cortex-M4/M7),您可以使用带有 C++ 的 Eigen 模板库在几个小时内实现。

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2011-07-15
      • 2017-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 2021-01-01
      相关资源
      最近更新 更多