OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6265|回复: 12

麻烦大家帮我看看,YAW角度只在0-30之间偏转而已,真的很搞不懂

[复制链接]

21

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-2-1
在线时间
68 小时
发表于 2016-7-22 19:58:34 | 显示全部楼层 |阅读模式
15金钱
问题是这样的:我用的是MPU6050,然后我的航向角YAW很奇怪,向左转的时候从0转到25度之后就又变为0了,然后如果从0又右转动的话,又瞬间变成25度左右
纳闷了好久,其他两个角度倒是挺稳定的


用的是IMU四元数,
  Q_ANGLE.Y  = asin(-2 * q1 * q3 + 2 * q0* q2)* 57.3; // pitch
  Q_ANGLE.X = atan2(2 * q2 * q3 + 2 * q0 * q1, -2 * q1 * q1 - 2 * q2* q2 + 1)* 57.3; // roll
  Q_ANGLE.Z  +=  GYRO_AVG.Z* Gyro_G * 0.002f;//YAW,0.002是周期,GYRO_AVG.Z是陀螺仪的Z轴经过滑窗滤波之后的Z轴输出,Gyro_G 为常数,根据量程确定



然后还有一个问题就是计算航向角YAW还有这条公式,
Q_ANGLE.Z  = atan2(2 * q1 * q2 + 2 * q0 * q3, -2 * q2*q2 - 2 * q3* q3 + 1)* 57.3; // yaw
我之前用这条之后,发现随着时间推移,那个角度会慢慢增加,然后到差不多25度的时候也是变为从0开始


求大神帮忙解决一下,或者提供下你们的思路 1.png



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2016-7-22 20:54:35 | 显示全部楼层
航向角会偏移的,没有磁力计校准,会一直偏移。。。解决办法,可以加磁力计。
回复

使用道具 举报

21

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-2-1
在线时间
68 小时
 楼主| 发表于 2016-7-22 22:39:41 | 显示全部楼层
正点原子 发表于 2016-7-22 20:54
航向角会偏移的,没有磁力计校准,会一直偏移。。。解决办法,可以加磁力计。

原子哥哥,主要问题是这个,向左转的时候从0转到25度之后就又变为0了,然后如果从0又右转动的话,又瞬间变成25度左右,搞不懂~~~
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2016-8-7
在线时间
1 小时
发表于 2016-8-7 16:06:43 | 显示全部楼层
请问楼主这个问题解决了吗?我也遇到了类似的问题,yaw角度不对,而且往左送指令,停了之后它还会继续运动很久才停下来,往右类似。
回复

使用道具 举报

11

主题

35

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-1-31
在线时间
7 小时
发表于 2016-8-7 20:17:15 | 显示全部楼层
你对陀螺校准了后直接用陀螺仪的值积分吧~
回复

使用道具 举报

9

主题

45

帖子

0

精华

初级会员

Rank: 2

积分
143
金钱
143
注册时间
2016-7-15
在线时间
23 小时
发表于 2016-8-19 08:28:09 | 显示全部楼层
我用的是这一段代码,你看看是不是没有乘100





[mw_shl_code=c,true]void ANO_DT_Send_Status(float angle_rol, float angle_pit, float angle_yaw)
{
          /* s32 alt, u8 fly_model, u8 armed*/
    u8 _cnt=0;
    vs16 _temp;
   // vs32 _temp2 = alt;
   
    data_to_send[_cnt++]=0xAA;
    data_to_send[_cnt++]=0xAA;
    data_to_send[_cnt++]=0x01;
    data_to_send[_cnt++]=0;
   
    _temp = (int)(angle_rol*100); //这里乘100
    data_to_send[_cnt++]=BYTE1(_temp);
    data_to_send[_cnt++]=BYTE0(_temp);
    _temp = (int)(angle_pit*100);
    data_to_send[_cnt++]=BYTE1(_temp);
    data_to_send[_cnt++]=BYTE0(_temp);
    _temp = (int)(angle_yaw*100);
    data_to_send[_cnt++]=BYTE1(_temp);
    data_to_send[_cnt++]=BYTE0(_temp);

    data_to_send[3] = _cnt-4;
   
    u8 sum = 0;
    for(u8 i=0;i<_cnt;i++)
        sum += data_to_send;
    data_to_send[_cnt++]=sum;
               
                //将有用数据移入下一个数组data_to_use[]
                for(u8 i=0;i<(_cnt-4);i++)
          data_to_use01=data_to_send[i+4];
   
    ANO_DT_Send_Data(data_to_send, _cnt);
}
[/mw_shl_code]
回复

使用道具 举报

4

主题

65

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
461
金钱
461
注册时间
2016-8-4
在线时间
192 小时
发表于 2016-11-6 23:16:32 | 显示全部楼层
楼主你好,求教用这个上位机发给下位机的程序,我一直发不了
回复

使用道具 举报

106

主题

418

帖子

0

精华

高级会员

Rank: 4

积分
764
金钱
764
注册时间
2016-7-26
在线时间
123 小时
发表于 2016-11-9 21:37:15 | 显示全部楼层
请问楼主的硬件是基于STM32的吗?楼主能分享一下硬件吗?我也好想做一个,谢谢了!!!
回复

使用道具 举报

3

主题

49

帖子

0

精华

初级会员

Rank: 2

积分
192
金钱
192
注册时间
2015-2-28
在线时间
29 小时
发表于 2016-11-11 09:24:12 | 显示全部楼层
本帖最后由 星空旅行者 于 2016-11-11 09:27 编辑

计算航向角YAW的公式,我用的是*yaw   = atan2(2*(q1*q2 + q0*q3),q0*q0+q1*q1-q2*q2-q3*q3) * 57.3;        //yaw,
楼主可以试试,再乘以10,得出的航向角的范围为 -180.0°<---> +180.0°

回复

使用道具 举报

ashou 该用户已被删除
发表于 2016-12-27 22:49:04 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-11-3
在线时间
17 小时
发表于 2017-1-17 11:11:01 | 显示全部楼层
正点原子 发表于 2016-7-22 20:54
航向角会偏移的,没有磁力计校准,会一直偏移。。。解决办法,可以加磁力计。

原子哥,用卡尔曼滤波也要加磁力计吗?是不是要获得准确的欧拉角数据,必须加上磁力计?
回复

使用道具 举报

2

主题

11

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2016-11-3
在线时间
17 小时
发表于 2017-1-18 12:55:55 | 显示全部楼层
你们用的是原子哥的MPU6050模块吗?我试了一下,没有出现过你们说的零偏啊
回复

使用道具 举报

0

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
101
金钱
101
注册时间
2016-11-24
在线时间
8 小时
发表于 2017-1-23 23:41:34 | 显示全部楼层
1508572279 发表于 2017-1-17 11:11
原子哥,用卡尔曼滤波也要加磁力计吗?是不是要获得准确的欧拉角数据,必须加上磁力计?

卡尔曼滤波需要基准数据,航向观测比较困难,低动态条件下一般需要增加磁力计。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 23:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表