EETOP 创芯网论坛

便捷登录,只需一步

找回密码

  登录   注册  

搜帖子
查看: 19010|回复: 24

[原创] mikrokopter 软件,硬件,算法结构讨论

[复制链接]
发表于 2013-3-31 12:23:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 santa_cruze 于 2013-3-31 13:17 编辑

MK是amobbs上的主打方案,里面几位大牛级人物都对他们的代码做了细致的分析,
不过,好多应该看了之后感觉不够形象,本帖力图通过图示和公式来解说,并借鉴
cnmusic的文档,讲MK的四轴做更进一步的解说。
MikroKopter四轴飞行器中文手册
MikroKopter四轴飞行器飞行控制板手册.pdf (1.69 MB, 下载次数: 415 )
 楼主| 发表于 2013-3-31 20:32:12 | 显示全部楼层
回复 1# santa_cruze
##转自 amobbs seanwood###########
先以seanwood的捷联算法心得开始,感兴趣请移步:
http://www.amobbs.com/thread-5492189-1-1.html


senbastian Madgwick的论文暂时先不摘抄了,后续会在bitcraze的四轴分析的帖子里谈到细节。


1、四个概念:“地理”坐标系、“机体”坐标系、他们之间换算公式、换算公式用的系数。

地理坐标系:东、北、天,以下简称地理。在这个坐标系里有重力永远是(0,0,1g),地磁永远是(0,1,x)(地磁的垂直不关心)两个三维向量。
机体坐标系:以下简称机体,上面有陀螺、加计、电子罗盘传感器,三个三维向量。
换算公式:以下简称公式,公式就是描述机体姿态的表达方法,一般都是用以地理为基准,从地理换算到机体的公式,有四元数、欧拉角、方向余弦矩阵。
换算公式的系数:以下简称系数,四元数的q0123、欧拉角的ROLL/PITCH/YAW、余弦矩阵的9个数。系数就是描述机体姿态的表达方法的具体数值。

姿态,其实就是公式+系数的组合,一般经常用人容易理解的公式“欧拉角”表示,系数就是横滚xx度俯仰xx度航向xx度。

2、五个数据源:重力、地磁、陀螺、加计、电子罗盘,前两个来自地理,后三个来自机体

3、陀螺向量:基于机体,也在机体上积分,因为地理上无参考数据源,所以很独立,直接在公式的老系数上积分,得到新系数。
狭义上的捷联惯导算法,就是指这个陀螺积分公式,也分为欧拉角、方向余弦矩阵、四元数,他们的积分算法有增量法、数值积分法(X阶龙格-库塔)等等

4、加计向量、重力向量:加计基于机体,重力基于地理,重力向量(0,0,1g)用公式换算到机体,与机体的加计向量算出误差。理论上应该没有误差,这误差逆向思维一下,其实就是换算公式的系数误差。所以这误差可用于纠正公式的系数(横滚、俯仰),也就是姿态。

5、电子罗盘向量、地磁向量:同上,只不过要砍掉地理上的垂直向量,因为无用。只留下地理水平面上的向量。误差可以用来纠正公式的系数(航向)。

6、就这样,系数不停地被陀螺积分更新,也不停地被误差修正,它和公式所代表的姿态也在不断更新。
如果积分和修正用四元数算法(因为运算量较少、无奇点误差),最后用欧拉角输出控制PID(因为角度比较直观),那就需要有个四元数系数到欧拉角系数的转换。常用的三种公式,它们之间都有转换算法。

再搞个直白一点的例子:
机体好似一条船,地理就是那地图,姿态就是航向(船头在地图上的方位),重力和地磁是地图上的灯塔,陀螺/积分公式是舵手,加计和电子罗盘是瞭望手。
舵手负责估计和把稳航向,他相信自己,本来船向北开的,就一定会一直往北开,觉得转了90度弯,那就会往东开。
当然如果舵手很牛逼,也许能估计很准确,维持很长时间。不过只信任舵手,肯定会迷路,所以一般都有地图和瞭望手来观察误差。
瞭望手根据地图灯塔方位和船的当前航向,算出灯塔理论上应该在船的X方位。然而看到实际灯塔在船的Y方位,那肯定船的当前航向有偏差了,偏差就是ERR=X-Y。
舵手收到瞭望手给的ERR报告,觉得可靠,那就听个90%*ERR,觉得天气不好、地图误差大,那就听个10%*ERR,根据这个来纠正估算航向。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-3-31 21:02:15 | 显示全部楼层
本帖最后由 santa_cruze 于 2013-3-31 21:07 编辑

回复 2# santa_cruze

OK 我们再来看,要完成捷联算法,要完成那些动作吧

1)从陀螺仪和加速度计上获取的信息,计算出当前的状态(角度,角加速度)
估算1.jpg
2)最直接的获取方式,简单,但对噪声和水平加速运动无特殊处理。
估算2.jpg
3)依然简单易懂,比2的优势是去除了横向的水平加速度的影响(低通滤波)
估算3.jpg
4)只使用陀螺仪进行计算,陀螺仪漂移严重
估算4.jpg
5)技术控最爱,kalman 滤波,复杂的矩阵和求逆求解运算,
     状态方程,观测方程较难建立
估算5.jpg
6) ok 今天主角到了,Mikrokopter主打算法,线性互补滤波器算法
估算6.jpg
7)流程图如下图所示
    对陀螺仪进行高通滤波,消除漂移,对加计进行低通滤波,滤除瞬时
    的水平加速干扰,低通高通的交叉点(crossover)处理是关键
    其实cnmusic的即时融合,长期融合,漂移补偿都包含在下面的两个
    图里,后面我们会结合代码,再进行进一步的解说。
估算7.jpg
回复 支持 反对

使用道具 举报

发表于 2013-3-31 21:50:42 | 显示全部楼层
围观,貌似不懂,顶下!
回复 支持 反对

使用道具 举报

发表于 2013-4-26 21:35:02 | 显示全部楼层
看看多谢了啊
回复 支持 反对

使用道具 举报

发表于 2013-4-28 19:07:33 | 显示全部楼层
谢谢!!!
回复 支持 反对

使用道具 举报

发表于 2013-6-3 22:03:36 | 显示全部楼层
资料汇总?
回复 支持 反对

使用道具 举报

发表于 2013-6-8 22:50:30 | 显示全部楼层
多谢了。
回复 支持 反对

使用道具 举报

发表于 2013-9-25 23:39:29 | 显示全部楼层
学习学习
回复 支持 反对

使用道具 举报

发表于 2013-10-16 22:40:31 | 显示全部楼层
不错,支持
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询 |  EETOP 创芯网 ( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2020-5-26 20:34 , Processed in 0.070829 second(s), 13 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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