我正在使用Lego Mindstorm的NXT系统构建一个平衡机器人.我使用的是HiTechnic的两个传感器,第一个是加速度计,第二个是陀螺仪.我已经成功地滤除了传感器和衍生角度的噪声,两者的范围在-90到90度之间,0度完全平衡.
我的下一个挑战是结合两个传感器值来校正陀螺仪随时间的漂移.下面是我根据实际数据创建的示例图,用于演示陀螺仪的漂移:

我见过的最常用的方法是将这些传感器结合起来使用卡尔曼滤波器.但是,我不是微积分的专家,我真的不懂数学符号,但我确实理解源代码中的数学.
我正在使用RobotC(就像任何其他C衍生产品一样),如果有人能给我一些如何在C中完成此任务的例子,我将非常感激.
谢谢您的帮助!
解决方案结果:
好吧,kersny通过向我介绍补充过滤器解决了我的问题.这是一个说明我的结果的图表:
结果#1

结果#2

如您所见,滤波器校正陀螺仪漂移并将两个信号组合成单个平滑信号.
编辑:因为我正在修复破碎的图像,我认为显示我用来生成这些数据的装备会很有趣:

很多帖子谈论陀螺漂移问题.有些人说陀螺仪阅读有漂移,但也有人说整合有漂移.
所以,我进行了一次实验.接下来的两个数字就是我得到的.下图显示陀螺仪读数根本没有漂移,但有偏移.由于偏移,整合是可怕的.所以似乎整合就是漂移,是吗?

下图显示,当偏移减小时,积分根本不会漂移.

另外,我进行了另一个实验.首先,我将手机固定在桌面上大约10秒钟.然后将其旋转到左侧然后恢复到后面.然后正确和返回.下图很好地说明了角度.我使用的只是减少偏移然后进行整合.

所以,我最大的问题是,偏移是陀螺漂移(积分漂移)的本质吗?在这种情况下,可以使用互补滤波器或卡尔曼滤波器来消除陀螺漂移吗?
任何帮助表示赞赏.
我正在使用Android设备获取标题(方位角或偏航角).
Android API使用Accelerometer值+ mganetic字段来计算矩阵旋转,然后从矩阵中提取方位角(也称为SensorManager.getOrientation(...))但结果非常不准确!特别是如果手机受到某些磁性物质的干扰.
然后我有陀螺仪,如果我整合了陀螺仪时间的价值,我就能得到一个实际的角度,但是像所有人都知道的那样:p,这可能会漂移... 10秒后甚至很难我'我没有移动10°漂移的角度......
所以在这里,我在一侧有accel + magneto的结果,它在磁场附近相当废话,另一方面我有陀螺的结果非常好,但随着时间的推移漂移......
所以我的问题是,是否有一种简单或聪明的方法将两个结果组合在一起以获得一种"稳健"的航向估算?我说很容易,因为我知道有卡尔曼滤波器..但即使是艰难的我读了理论50次我也不能得到一个该死的东西:).
谢谢!