3d Madgwick IMU算法,如何获取360度自由度变量?
我在我的一个项目中实现了不同的3d Madgwick IMU算法,如何获取360度自由度变量?,3d,rotation,imu,3d,Rotation,Imu,我在我的一个项目中实现了不同的IMU方法,目前我正在试验著名的方法(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 +
IMU
方法,目前我正在试验著名的方法(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度的俯仰和滚转