我正在使用Lego Mindstorm的NXT系统构建一个平衡机器人.我使用的是HiTechnic的两个传感器,第一个是加速度计,第二个是陀螺仪.我已经成功地滤除了传感器和衍生角度的噪声,两者的范围在-90到90度之间,0度完全平衡.
我的下一个挑战是结合两个传感器值来校正陀螺仪随时间的漂移.下面是我根据实际数据创建的示例图,用于演示陀螺仪的漂移:
我见过的最常用的方法是将这些传感器结合起来使用卡尔曼滤波器.但是,我不是微积分的专家,我真的不懂数学符号,但我确实理解源代码中的数学.
我正在使用RobotC(就像任何其他C衍生产品一样),如果有人能给我一些如何在C中完成此任务的例子,我将非常感激.
谢谢您的帮助!
解决方案结果:
好吧,kersny通过向我介绍补充过滤器解决了我的问题.这是一个说明我的结果的图表:
结果#1
结果#2
如您所见,滤波器校正陀螺仪漂移并将两个信号组合成单个平滑信号.
编辑:因为我正在修复破碎的图像,我认为显示我用来生成这些数据的装备会很有趣:
可能重复:
组合陀螺仪和加速度计数据
我已经阅读了很多论文Kalman filters
,但似乎没有什么好的公开可访问的工作实例从数学论文到实际工作代码.
我有一个系统,包含一个三轴加速度计和一个陀螺仪测量围绕其中一个加速度计轴的旋转.该系统设计为由人控制,并且陀螺仪将在很大程度上测量围绕重力矢量或靠近重力矢量的旋转.(在同一行业工作的人可能会认识到我正在谈论的内容;))我意识到这是不受约束的.
陀螺仪似乎具有接近恒定的偏差,对于系统的每个实例略有不同.如何在系统倾斜时使用加速度计读数来校准陀螺仪,以便陀螺仪轴与重力不共线,并围绕陀螺仪轴旋转,我将如何编码滤波器以使用加速度计读数来校准陀螺仪?似乎应该有足够的信息来做到这一点,但被告知没有,为什么会是一个答案:)
我正在设计一个机器人,需要跟踪机器人运动的距离和方向,3D中没什么,我只需要xy平面中的x,y和角度.
我的问题 :
我的限制:我没有空间包括gps(由于功率要求)或电机编码器(由于电机支持)
我想使用陀螺仪,加速度计和磁力计在3轴上获得完全平滑的旋转.
第一个问题是我的输出单独有噪音,我想知道如何删除它.
第二个问题是我认为它应该用卡尔曼滤波器解决的陀螺漂移.
第三个问题是加速度计.如果我在不旋转设备的情况下移动设备时将陀螺仪和加速度计组合在一起,输出将会改变.卡尔曼滤波器是否也能从输出中消除移动效果?
我正在创建一个音叉应用程序,您可以将 iPhone 轻拍到另一只手的手掌上,或者轻拍到柔软的表面上,以设置音叉的声音。
所以我想检测每个“凹凸”中包含的能量
(编辑:删除了大量的gumpf)
谁能帮我破解这个吗?