Pitch范围扩展为-180~180,四元素换算代码如下
Roll = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // roll
if(fabs(Roll) < 90.0) Pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3;
else Pitch = (fabs(q0* q2 - q1 * q3)/(q0* q2 - q1 * q3)) *(180.0 - fabs(asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3));
Yaw = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3; //yaw
好处是强迫症看起来比较爽,坏处是在-90和90度时,Pitch会突变(其实Roll的变化也很剧烈了) |