我正在尝试在 STM Cortex M3 微控制器上的 LSM9DS0 传感器(加速度计、陀螺仪和磁力计)上实现Madgwick 传感器融合算法。
所有传感器的原始数据似乎都很好。
我的问题是:当我将传感器的 z 轴水平或向下(即滚动或俯仰角超过 90 度)握住传感器时 - 来自过滤器的四元数变得非常不稳定并随机翻转 180 度。更准确地说,q0 和 q3 是不断变化的符号,导致旋转 180 度翻转。
我尝试使用常量值而不是真实的传感器输出,但仍然出现这种行为。
当 z 轴或多或少垂直时,四元数似乎是合理的。
我没有在示例视频中看到过这样的内容。
我试图忽略磁力计数据并使用 6DOF 版本的滤波器,但这是一场灾难;四元数只是飞来飞去,不受控制地旋转。
我必须将 beta 参数设置得非常大(~100),因为较小的值会在突然翻转时给出非常不稳定的结果。我确实觉得这很奇怪,因为通常 beta 约为 0.5-0.05。
滤波器更新频率为 1KHz。
谁能帮帮我吗?