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

我正在使用乐高 Mindstorm 的 NXT 系统建造一个平衡机器人。我使用了两个来自高科技公司的传感器,第一个是加速度计,第二个是陀螺仪。我已经成功滤除了两个传感器和导出角度在 -90到90度范围内的噪音0度是完美平衡的。

我的下一个挑战是结合两个传感器值,以纠正陀螺仪的漂移随着时间的推移。下面是我根据实际数据创建的示例图,用来演示陀螺仪的漂移:

enter image description here

我所见过的将这些传感器组合在一起的最常用的方法是使用卡尔曼滤波器。然而,我不是微积分专家,我真的不理解数学符号,但我理解源代码中的数学。

我正在使用 RobotC (就像任何其他 C 衍生物一样) ,如果有人能给我一些如何在 C 中实现这一点的例子,我会非常感激。

谢谢你的帮助!

解决方案结果:

好的,Kersny 通过介绍互补滤波器解决了我的问题,下面是一个图表说明了我的结果:

结果 # 1

enter image description here

结果 # 2

enter image description here

正如你所看到的,滤波器纠正陀螺漂移,并将两个信号合并成一个单一的平滑信号。

编辑: 由于我正在修复损坏的图像,我想展示一下我用来生成这些数据的装置会很有趣:

enter image description here

103521 次浏览

卡尔曼滤波器是伟大的和所有,但我发现互补滤波器更容易实现类似的结果。我找到的最好的文章编码补充过滤器是 这个维基(随着 这篇文章关于转换传感器到工程单位)和一个 PDF 在压缩文件的 这一页(在技术文档,我相信在压缩文件的名称是 Filter.PDF) ;

如果你坚持使用卡尔曼滤波器,那么 给你就是实现它的 Arduino 的一些 C 语法代码。