如何使用卡尔曼滤波器将三个传感器值加速度计,陀螺仪和磁力计结合起来?我们正在使用arm和avr uC。
我已经阅读了关于堆栈溢出的所有问题并在网上搜索了很多但是我没有得到关于使用kalman过滤器组合值的基本信息的满意结果。
答案 0 :(得分:12)
令人遗憾的是,没有“程序员的卡尔曼过滤器”这样的东西。不要希望你可以盲目使用的一些公式,一切都会神奇地起作用。
如果您对卡尔曼滤波器方法设置不合理,那么Google(关键词:态度,错误状态,卡尔曼滤波器):
http://scholar.google.com/scholar?q=attitude+%22error+state%22+kalman+filter
在particaluar中,相对光读取为Indirect Kalman filter for 3D attitude estimation。确保你对数学中的数学感到满意并且你完全理解它;否则你将无法实现它。 :(
如果您无法理解上述内容,我强烈推荐
它基本上是一个教程,我无法想象实现传感器融合的更简单方法。它可以很好地在微控制器上工作,因为作者开发它可以在微控制器上运行。
只是旁注。卡尔曼滤波器非常受欢迎,因为
在某些条件和
该理论告诉您如何估算滤波器参数。
至于过滤器参数,你很可能最终调整它们,所以后者在我看来不是一个很大的优势。请参阅SIGGRAPH Course Pack中的 5.1参数估计或调整。
至于最优性,在现实生活中,根据领域的不同,这些条件往往不再适用;卡尔曼滤波器降级为(良好)启发式算法。
但是如果你正在使用启发式,为什么不选择一个更容易实现的?例如在方向余弦矩阵IMU:Theory中提出的那个。
答案 1 :(得分:2)
现在,这是一个相当古老的问题,但人们可能会继续寻找这个问题。 目前最好的当前指南/论文之一是J.Solá(http://www.iri.upc.edu/people/jsola/JoanSola/objectes/notes/kinematics.pdf)
的“错误状态KF的四元数运动学”它提供了关于四元数的完整入门以及如何在错误状态卡尔曼滤波器中使用它们,其中嵌入式实现具有易于遵循的等式。 此外,如果您只是测试算法并希望以后获得性能(并且拥有ARM Cortex-M4 / M7),您可以使用带有C ++的Eigen模板库在几个小时内实现它。
祝你好运!