我正在使用乐高 Mindstorm 的 NXT 系统建造一个平衡机器人。我使用了两个来自高科技公司的传感器,第一个是加速度计,第二个是陀螺仪。我已经成功滤除了两个传感器和导出角度在 -90到90度范围内的噪音0度是完美平衡的。
我的下一个挑战是结合两个传感器值,以纠正陀螺仪的漂移随着时间的推移。下面是我根据实际数据创建的示例图,用来演示陀螺仪的漂移:
我所见过的将这些传感器组合在一起的最常用的方法是使用卡尔曼滤波器。然而,我不是微积分专家,我真的不理解数学符号,但我理解源代码中的数学。
我正在使用 RobotC (就像任何其他 C 衍生物一样) ,如果有人能给我一些如何在 C 中实现这一点的例子,我会非常感激。
谢谢你的帮助!
解决方案结果:
好的,Kersny 通过介绍互补滤波器解决了我的问题,下面是一个图表说明了我的结果:
结果 # 1
结果 # 2
正如你所看到的,滤波器纠正陀螺漂移,并将两个信号合并成一个单一的平滑信号。
编辑: 由于我正在修复损坏的图像,我想展示一下我用来生成这些数据的装置会很有趣: