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

问题描述 投票:0回答:3

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

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

扩展卡尔曼滤波器磁力计偏航漂移

结合陀螺仪和加速度计数据

kalman-filter
3个回答
12
投票

令人悲伤的消息是,不存在“程序员用卡尔曼滤波器”这样的东西。不要指望一些公式,你可以盲目使用,一切都会神奇地起作用。 如果您对卡尔曼滤波器方法死心塌地,请谷歌一下(关键词:态度、错误状态、卡尔曼滤波器):

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

特别是,

相对

轻读是用于 3D 姿态估计的间接卡尔曼滤波器。确保您对其中的数学感到满意并且完全理解它;否则你将无法实施它。 :( 如果您无法理解上述内容,我强烈推荐

    方向余弦矩阵IMU:理论
  • 这基本上是一个教程,我无法想象有更简单的方法来实现传感器融合。它可以很好地在微控制器上工作,因为作者将其开发为在微控制器上运行。

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

    在某些条件下
  • 是最佳的

    理论告诉您如何估计滤波器参数。
  • 至于过滤器参数,您可能最终会调整它们,因此我认为后者并不是一个很大的优势。请参阅
  • SIGGRAPH 课程包
中的

5.1 参数估计或调整 至于最优性,在现实生活中的应用中,根据领域的不同,这些条件通常不再成立;卡尔曼滤波器退化为(好的)启发式。

但是,如果您无论如何都在使用启发式方法,为什么不选择一种更容易实现的方法呢?例如方向余弦矩阵 IMU:理论中介绍的内容。

这是一个相当老的问题,但人们可能仍然会来寻找这个问题。 目前最好的指南/论文之一是 J. Solá 的“

2
投票
”(

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

祝你好运!

对于任何遇到这个问题的人,如果您是一名程序员并且有时间深入研究理论以更好地理解您正在做的事情,可以阅读由 Roger Labbe 编写的

0
投票
书。

它帮助我了解卡尔曼滤波器的理论以及如何使用各种方法对其进行编程。

它涵盖以下内容:多元卡尔曼滤波器、无迹卡尔曼滤波器、扩展卡尔曼滤波器等等。

虽然它可能无法涵盖您的具体情况,但它肯定会帮助您在寻找答案时理解您正在阅读的内容。

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