Dyl*_*ter 69 c algorithm accelerometer lego nxt
我正在使用Lego Mindstorm的NXT系统构建一个平衡机器人.我使用的是HiTechnic的两个传感器,第一个是加速度计,第二个是陀螺仪.我已经成功地滤除了传感器和衍生角度的噪声,两者的范围在-90到90度之间,0度完全平衡.
我的下一个挑战是结合两个传感器值来校正陀螺仪随时间的漂移.下面是我根据实际数据创建的示例图,用于演示陀螺仪的漂移:
我见过的最常用的方法是将这些传感器结合起来使用卡尔曼滤波器.但是,我不是微积分的专家,我真的不懂数学符号,但我确实理解源代码中的数学.
我正在使用RobotC(就像任何其他C衍生产品一样),如果有人能给我一些如何在C中完成此任务的例子,我将非常感激.
谢谢您的帮助!
解决方案结果:
好吧,kersny通过向我介绍补充过滤器解决了我的问题.这是一个说明我的结果的图表:
结果#1
结果#2
如您所见,滤波器校正陀螺仪漂移并将两个信号组合成单个平滑信号.
编辑:因为我正在修复破碎的图像,我认为显示我用来生成这些数据的装备会很有趣:
ker*_*sny 44
卡尔曼滤波器很棒,但我发现互补滤波器更容易实现,结果相似.我已经找到了编码互补滤波器最理想的用品是这个wiki(连同这篇文章,并在zip文件为PDF约传感器转换为工程单位)此页面(在技术文档,我在zip相信文件名是filter.pdf);
PS.如果你卡在卡尔曼滤波器上,这里有一些实现它的Arduino的C语法代码.