8509|7

117

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

mpu6050互补滤波算法 [复制链接]

请问,用互补滤波算法后,直接由角速度和角加速度得到姿态角,那不需要用四元数和反三角函数了吗?怎么感觉这并不合理啊,一般如果是理论上可以由加速度得到角度:angleAx=atan2(ax,az)*180/PI。但是看了一下平衡小车之家的代码,互补滤波算法既没有用到四元数,也没用到反三角函数,这样就可以得到准确的角度了吗?代码如下:

还有就是这么简单的话,为什么好多飞控程序如圆点博士,姿态解算有很长一段代码而且还要用四元数转来转去头都晕了,直接这样得到三个角度不是更方便吗?
此帖出自stm32/stm8论坛

最新回复

我用的比上面的复杂得多,是用于跌倒算法的。我说的功课,我都做了,天分有限,花了好几个月。 这个公式也要看场景,如果你没有必要那么高精度,就用简易算法好咯。  详情 回复 发表于 2017-4-11 11:34
点赞 关注(1)
 

回复
举报

732

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
加速度计和陀螺仪都能直接得到角度,但是都会有不足之处,两者就和可以得到较好的结果
此帖出自stm32/stm8论坛

点评

那飞控红为什么还要把它转成四元数,然后再用四元数换成欧拉角,直接这样求角度不是更加简单吗?  详情 回复 发表于 2017-4-10 11:03
 
个人签名亚里士缺德
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
汤权 发表于 2017-4-10 09:39
加速度计和陀螺仪都能直接得到角度,但是都会有不足之处,两者就和可以得到较好的结果

那飞控红为什么还要把它转成四元数,然后再用四元数换成欧拉角,直接这样求角度不是更加简单吗?
此帖出自stm32/stm8论坛

点评

我做的四轴直接使用互补滤波,直接得到欧拉角,没有四元数,你说的可能是使用MPU6050的DMP引擎得到四元数,然后计算出欧拉角,没有使用互补滤波。  详情 回复 发表于 2017-4-10 11:17
 
 

回复

732

帖子

2

TA的资源

纯净的硅(中级)

4
 
赵怡彬 发表于 2017-4-10 11:03
那飞控红为什么还要把它转成四元数,然后再用四元数换成欧拉角,直接这样求角度不是更加简单吗?

我做的四轴直接使用互补滤波,直接得到欧拉角,没有四元数,你说的可能是使用MPU6050的DMP引擎得到四元数,然后计算出欧拉角,没有使用互补滤波。
此帖出自stm32/stm8论坛

点评

你用的互补滤波算法,就是我上述的那条代码吗?  详情 回复 发表于 2017-4-10 20:17
 
个人签名亚里士缺德
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

5
 
一定范围内合理,这个是用了简化运算,只要倾角在5度以内还行,超过10度就差得远咯。
真正准确值还是要用四元数,但一般单片机如果数字功底不好,根本算不过来,而且精度及适用范围也不是一般人能平衡的。
我统计了一下,如果不用取巧,真正要算一次四元数,sin加cos要计算48次,平方5次,除法18次,乘法更多。当然,数学好的能省掉一半小数量级的计算。再把重力互补进去,计算量又增加一倍。
真正要玩转好,你需要至少以下的功课:四元数的叉乘和归一化,空间想像能力,实实的数学功底,汇编和C的混编能力,matlab仿真能力,运气
此帖出自stm32/stm8论坛

点评

看来你肯定有至少以下功课:四元数的叉乘和归一化,实实的数学功底  详情 回复 发表于 2017-4-10 20:20
 
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

6
 
汤权 发表于 2017-4-10 11:17
我做的四轴直接使用互补滤波,直接得到欧拉角,没有四元数,你说的可能是使用MPU6050的DMP引擎得到四元数 ...

你用的互补滤波算法,就是我上述的那条代码吗?
此帖出自stm32/stm8论坛
 
 
 

回复

117

帖子

0

TA的资源

一粒金砂(中级)

7
 
adfaws 发表于 2017-4-10 17:04
一定范围内合理,这个是用了简化运算,只要倾角在5度以内还行,超过10度就差得远咯。
真正准确值还是要用 ...

看来你肯定有至少以下功课:四元数的叉乘和归一化,实实的数学功底
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

8
 
我用的比上面的复杂得多,是用于跌倒算法的。我说的功课,我都做了,天分有限,花了好几个月。
这个公式也要看场景,如果你没有必要那么高精度,就用简易算法好咯。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表