我正在为我的陀螺仪 X 和陀螺仪 Y 值使用互补过滤器:
float angle_x = alpha*gyro_angle_x + (1.0 - alpha)*accel_angle_x;
但是,由于陀螺仪Z漂移,我正在使用磁力计来尝试消除它。
我有我的局部倾角和 z 轴磁力计读数,但我不确定如何将其实现到互补滤波器中。
我试过猜测(我知道这没有帮助(来尝试这个:
float angle_z = alpha*gyro_angle_z + ((1.0 -alpha)*accel_angle_y*InclinationAngle)/magZ;
但是,它只是在移动时增加陀螺仪z值,然后在静止时将其恢复为0。
使用 Madgwick 过滤器效果最好。链接可以在这里找到。 它很容易实现(如果使用正确的库并且读数非常准确。目前唯一的缺点是,每次您想在新方向使用设备时,您都必须校准磁力计(。