9

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

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

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

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

4

2 回答 2

12

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

如果您对卡尔曼滤波器方法一无所知,谷歌这个(关键字:态度,错误状态,卡尔曼滤波器):

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

特别是,相对较轻的阅读是用于 3D 姿态估计的间接卡尔曼滤波器。确保您对其中的数学感到满意并且完全理解它;否则你将无法实现它。:(

如果您无法理解上述内容,我强烈推荐

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


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

  • 它在某些条件下是最佳的,并且

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

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

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

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

于 2013-06-20T13:45:20.653 回答
2

现在,这是一个相当古老的问题,但人们可能会来寻找这个。目前最好的指南/论文之一是J. Solá的“错误状态 KF 的四元数运动学”( http://www.iri.upc.edu/people/jsola/JoanSola/objectes/notes/kinematics .pdf )

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

祝你好运!

于 2016-09-26T17:05:45.713 回答