我有一个3轴加速度计和2轴陀螺仪。我打算测量仅在X和Z轴上移动的东西。我听说过使用卡尔曼滤波器来平滑加速度矢量,但是对于该主题的完整初学者,我找不到很好的教程。另外,我知道我可以对加速度进行两次积分以获得位置,但是如何使用有限数量的采样加速度矢量来做到这一点呢?对于这两个主题的初学者,我都希望能获得指向不错的教程的链接。
我有一个3轴加速度计和2轴陀螺仪。我打算测量仅在X和Z轴上移动的东西。我听说过使用卡尔曼滤波器来平滑加速度矢量,但是对于该主题的完整初学者,我找不到很好的教程。另外,我知道我可以对加速度进行两次积分以获得位置,但是如何使用有限数量的采样加速度矢量来做到这一点呢?对于这两个主题的初学者,我都希望能获得指向不错的教程的链接。
Answers:
这是有关为IMU实现方向余弦矩阵的教程:http : //gentlenav.googlecode.com/files/DCMDraft2.pdf
看看ArduIMU页面:http : //code.google.com/p/ardu-imu/wiki/Theory
这里有几个这样做的开源项目。阅读代码应该提供一些线索:
http://code.google.com/p/gluonpilot/source/browse/trunk/Firmware/#Firmware/rtos_pilot%3Fstate%3D关闭
我在大约6个月前开始构建四边形,但在正确确定角度时存在很多问题:)
首先,您应该尝试一下此演示文稿-http: //web.mit.edu/scolton/www/filter.pdf 它确实很全面,可以帮助您更好地了解自己真正想要的东西,这几乎可以解决问题为了我。
我想这完全取决于您,但是,实现卡尔曼滤波器并不需要在数学,系统理论以及本例中的物理知识上扎实的专业知识,但是对CPU负载的要求也很高。如果您打算使用,假设时钟频率为16Mhz的Atmega328,使用这种滤波器可能会遇到问题。如果您使用DSP,则非常有效,因此您可以对acc输入进行低通滤波。
总而言之,我的建议是-如果您对结果不满意,请尝试使用一阶互补滤波器甚至二阶互补滤波器。如果您的系统没有高频振动,那应该会起作用。JustJeff的链接是您开始实施时的理想起点:)
祝一切顺利Dan
我还是新手,也正在寻找导航解决方案。和您一样,我有一块配置了3轴加速度计和2D陀螺仪的电路板。到目前为止,我已经阅读了许多有关此内容的材料,同样,我决定在信号处理中采用卡尔曼滤波器。可能是我对您没有任何建议,但我想与您分享我以前见过的东西。有一些指向它们的链接,希望对您有用。
由于我的声誉,我仅有权发布少于2个链接。所以我要发布的其他两个如下: