我正在使用Lego Mindstorm的NXT系统构建平衡机器人。我使用了来自HiTechnic的两个传感器,第一个是加速度计,第二个是陀螺仪。我已经成功地过滤掉了两个传感器的噪声,并为两个传感器派生了角度,这些角度在-90和90度之间,其中0度是完全平衡的。
我的下一个挑战是将两个传感器值组合起来,以纠正陀螺仪随时间漂移的问题。以下是我从实际数据创建的示例图形,用于演示陀螺仪漂移:
我看到最常用的方法是使用卡尔曼滤波器使这两个传感器组合更可靠。但是,我不是微积分方面的专家,我真的不理解数学符号,但我可以理解源代码中的数学。
我正在使用RobotC(类似于任何其他C衍生产品),如果有人能给出如何在C中完成此操作的示例,我将非常感激。
谢谢你的帮助!
解决方案结果:
好的,kersny通过介绍互补滤波器来解决了我的问题。这是一张图表,说明了我的结果:
结果 #1
结果 #2
如您所见,该滤波器纠正了陀螺仪漂移,并将两个信号组合成单个平滑信号。
编辑:由于我正在修复损坏的图像,我认为展示我用来生成这些数据的装置会很有趣: