标题: mpu6050如何求解自然轴的角度 附程序 [打印本页]

作者: xuer300    时间: 2022-4-5 16:39
标题: mpu6050如何求解自然轴的角度 附程序
原子的程序可以通过四元数的方式求出机体的俯仰角/横滚角/航向角
/*
        q0 = quat[0] / q30;        //q30格式转换为浮点数
                q1 = quat[1] / q30;
                q2 = quat[2] / q30;
                q3 = quat[3] / q30;
                //计算得到俯仰角/横滚角/航向角
                *pitch = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3;        // pitch反正弦
                *roll  = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3;        // roll反正切
                *yaw   = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;        //yaw反正切

*/
但是与自然轴的角度 怎么去求呢?
若使用下方的程序是需要每次使用前手动校准吗?还是通过四元数可以求出mpu6050的Z轴与重力的角度?
/*
short MPU6050_Get_Angle(float x,float y,float z,u8 dir)
{
        float temp;
        float res=0;
        switch(dir)
        {
                case 0://与自然Z轴的角度
                        temp=sqrt((x*x+y*y))/z;
                        res=atan(temp);
                        break;
                case 1://与自然X轴的角度
                        temp=x/sqrt((y*y+z*z));
                        res=atan(temp);
                        break;
                case 2://与自然Y轴的角度
                        temp=y/sqrt((x*x+z*z));
                        res=atan(temp);
                        break;
        }
        return res*1800/3.14;//把弧度转换成角度
}
*/

作者: xuer300    时间: 2022-4-5 16:42
使用的是DMP库




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1