Madgwick IMU算法,如何获得360度自由变量?

时间:2014-07-07 04:15:31

标签: 3d rotation imu

我在我的项目中实施了不同的IMU方法,而我目前正在尝试着名的Madgwick's implementation of Mayhony's AHRS algorithm(MahonyAHRS.c)

到目前为止,它的工作方式与我自己实现的一样,基于矢量旋转和运行平均传感器融合(通常称为互补)。

但是,我希望从中获得360度的自由,我目前正在使用此功能:

void imu_mahony_getRollPitchYaw(float *roll_, float *pitch_, float *yaw_) 
{
    *yaw_ = fast_atan2f(2*q1*q2 - 2*q0*q3, 2*q0*q0 + 2*q1*q1 - 1); 
    *pitch_ = -asin(2*q1*q3 + 2*q0*q2); 
    *roll_ = atan2f(2*q2*q3 - 2*q0*q1, 2*q0*q0 + 2*q3*q3 - 1);
}

然而,这导致90度问题。 我想要的是以0-359度的形式接收俯仰和滚动。

0 个答案:

没有答案