请选择 进入手机版 | 继续访问电脑版

搜索
查看: 1815|回复: 3

关于6050姿态解算部分的疑问

[复制链接]

1

主题

1

帖子

5

积分

新手上路

Rank: 1

积分
5
发表于 2017-8-3 12:59:46 | 显示全部楼层 |阅读模式
snipaste20170803_125151.png snipaste20170803_125115.png
我的理解是两个函数里面是不是都解算出了Pitch角一个应用了陀螺仪和加速度计进行的解算一个是用四元数结算的,不知道我的理解是否正确
想请教一下如何用图二中的方法解算Roll和Yaw角就是
Gyro_Y=(I2C_ReadOneByte(devAddr,MPU6050_RA_GYRO_YOUT_H)<<8)+I2C_ReadOneByte(devAddr,MPU6050_RA_GYRO_YOUT_L);   
Accel_Z=(I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_ZOUT_H)<<8)+I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_ZOUT_L);   
Accel_X=(I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_XOUT_H)<<8)+I2C_ReadOneByte(devAddr,MPU6050_RA_ACCEL_XOUT_L);
                 if(Gyro_Y>32768)  Gyro_Y-=65536;     
                if(Accel_Z>32768)  Accel_Z-=65536;   
                  if(Accel_X>32768) Accel_X-=65536;   
                   Accel_Y=atan2(Accel_X,Accel_Z)*180/PI;                 
                Gyro_Y=Gyro_Y/16.4;                                 
                  Kalman_Filter(Accel_Y,-Gyro_Y);
这段程序如何更改;可以得到Roll和Yaw
谢谢各位大神这个问题我查了好多资料都没有结果。希望可以得到解答。                        

回复

使用道具 举报

2

主题

6

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2017-9-13 11:58:42 | 显示全部楼层
我也是最近刚开始研究这个,根据这个程序上的公式可以发现,这个公式是可以计算俯仰角和横滚角的。也就是yaw,和roll可以这样算。
回复

使用道具 举报

2

主题

6

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2017-9-13 12:11:09 | 显示全部楼层
用卡尔曼滤波方法的话我对程序的理解是这样的,先算出这个Accel_Angle,        Accel_Angle=atan2(Accel_Y,Accel_Z)*180/PI;然后呢对陀螺仪数据进行量程转换Gyro_X=Gyro_X/16.4;然后就是通过卡尔曼滤波的函数算出角度Kalman_Filter(Accel_Angle,Gyro_X);
回复

使用道具 举报

1

主题

195

帖子

697

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
697
发表于 2017-10-10 20:38:52 | 显示全部楼层
卡尔曼得到了一个轴了,使用另外一轴的陀螺仪和加速度计,做一次卡尔曼,得到另外一轴的即可。
回复

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|平衡小车之家  

GMT+8, 2019-8-25 20:04 , Processed in 0.060627 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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