amoBBS 阿莫电子论坛

 找回密码
 注册
搜索
bottom↓
楼主: seanwood

捷联惯导算法心得

  [复制链接]
发表于 2013-5-9 19:44:01 | 显示全部楼层
很不错!
发表于 2013-5-17 19:48:21 | 显示全部楼层
mark 学习下
发表于 2013-5-23 09:52:50 | 显示全部楼层
楼主 请问一下 这个整个融合算法的时间会不会太长了?怎样可以减少融合时间?我用程序记录整个算法的时间为0.32s
发表于 2013-5-31 09:06:41 | 显示全部楼层
学习
发表于 2013-5-31 12:36:12 | 显示全部楼层
谢谢分享。
发表于 2013-6-1 14:54:49 | 显示全部楼层
seanwood 发表于 2013-3-20 13:27
我什么时候说过每个周期都要初始化啊?
初始化,就是把 加速度计、电子罗盘的三轴结合算出的欧拉角,转换成 ...

试了一下,效果蛮好。不过我这显示的结果跟加速度计基本一样,有什么方法才能检验在有加速度的情况下的准确性呢?还有就是只有加上磁传感器才能得出偏航角吗?
发表于 2013-6-1 14:56:37 | 显示全部楼层
zouyf12 发表于 2013-4-28 12:00
请教前辈一个问题,   前辈帖子里写更新四元数的方法是用一阶龙库法,  但是我看其他有些讲四元数的文章里 ...

一阶的准确性没那么高吧..还有你在那看到四元数乘法更新的资料吗?
发表于 2013-6-1 15:01:03 | 显示全部楼层
lologame 发表于 2013-5-4 08:40
void IMUupdate(float gx, float gy, float gz, float ax, float ay, float az)

这个函数的参数

gx是弧度制的角速度,ax可以是直接读出来的数据也可以乘以增益gain,因为后边一进来就将ax,ay,az单位化了。
发表于 2013-6-1 15:12:02 | 显示全部楼层
gao20072007 发表于 2012-12-11 21:22
我看到你的捷联惯导算法心得真的很有帮助 我现在卡住了。
1.我现在把加速度和陀螺仪的roll和pitch用卡尔曼 ...

可以交流一下四轴姿态问题吗?
发表于 2013-6-18 18:08:06 | 显示全部楼层
又认真过了一遍,好东西
发表于 2013-6-19 11:59:41 | 显示全部楼层
这么好的东西,感谢楼主。
发表于 2013-6-19 13:04:42 | 显示全部楼层
好资料,马上会用到,标记一下。
发表于 2013-6-19 13:48:23 | 显示全部楼层
xukkkkkk 发表于 2013-3-29 13:12
问下下面这个函数这两段怎么理解
// 估计方向的重力
        vx = 2*(q1*q3 - q0*q2);

你的摄像头和图传以及控上面的显示器哪里买的呢?
发表于 2013-6-21 09:03:34 | 显示全部楼层
中学生没学过高数雾水啊~假期得好好看看高数
发表于 2013-6-30 11:10:04 | 显示全部楼层
如此好的资料,必须mark,研究研究!
发表于 2013-6-30 15:27:49 | 显示全部楼层
持续关注
发表于 2013-6-30 16:12:39 | 显示全部楼层
看不懂就必须顶
发表于 2013-7-5 12:58:22 | 显示全部楼层
写的很好,学习下。
发表于 2013-7-11 15:31:50 | 显示全部楼层
楼主厉害。。。还在啃中。。。
发表于 2013-7-17 12:56:29 来自手机 | 显示全部楼层
mark mark mark
发表于 2013-7-20 20:32:34 | 显示全部楼层
理解了

楼主说的很好
发表于 2013-7-29 22:41:57 | 显示全部楼层
不错,顶了
发表于 2013-7-30 07:55:39 | 显示全部楼层
mark......
发表于 2013-7-31 16:38:37 | 显示全部楼层
seanwood 发表于 2012-9-5 08:01
这里误差没说清楚,不是指向量差。这个叉积误差是指将带有误差的加计向量转动到与重力向量重合,需要绕什 ...

假设加速度计和陀螺仪计算出的两个向量是在XY平面,那么叉乘得到Z轴的一个向量。陀螺仪绕这个向量方向转相应的角度,那陀螺仪应该是更远离加速度计吧?怎么收敛的呢?
发表于 2013-8-2 21:57:59 | 显示全部楼层
分析细微入理,顶贴
发表于 2013-8-3 09:38:06 | 显示全部楼层
学习了,先留个脚印,以后再好好研读@!
发表于 2013-8-3 15:42:20 | 显示全部楼层
黑眼豆豆 发表于 2013-3-22 14:33
不好意思,楼主不要怪我不求甚解啊!既然旋转矩阵有误差那么hxy就不一定是水平的,那么求参考地磁水平分 ...

同疑问啊,这其中转换要不是做了bx*bx=hx*hx+hy*hy,那就是一个矩阵转过去转回来啊,中间的物理含义实在想不明白..
发表于 2013-8-4 21:15:06 | 显示全部楼层
不错不错!
发表于 2013-8-5 01:52:25 | 显示全部楼层
QuadRotor 发表于 2012-8-28 21:11
如何理解“向量间的误差,可以用向量叉积(也叫向量外积、叉乘)来表示”?两个向量直接做差不就是误差吗? ...

这里的误差,主要是指两个向量不同向,如果同向,叉乘等于零,为90度时叉乘数值最大
发表于 2013-8-5 02:44:06 | 显示全部楼层
seanwood 发表于 2012-9-19 14:09
四元数q的初始值等同于是欧拉角为0,0,0,根据东北天的坐标定义,也就是机体完全水平朝北。前面不是有四元 ...

楼主,在加入磁计的这一段中,定义bx和bz又是做什么的呢?而且我看这一段代码的时候,与旋转顺序并无关系吧,可是你这一段解说说到旋转顺序又是什么意思呢?
发表于 2013-8-5 02:47:25 | 显示全部楼层
kmani 发表于 2012-12-12 12:37
带通滤波。

带通滤波的经验值是多少啊?可否告知?
发表于 2013-8-5 02:54:35 | 显示全部楼层
xukkkkkk 发表于 2013-3-29 13:12
问下下面这个函数这两段怎么理解
// 估计方向的重力
        vx = 2*(q1*q3 - q0*q2);

请问兄弟你公开的PCB等资料能不能给个链接啊?小弟最近想做INS+gps
发表于 2013-8-5 08:46:41 | 显示全部楼层
我也想研究研究
发表于 2013-8-6 19:03:46 | 显示全部楼层
不错不错!!
发表于 2013-8-7 16:08:21 | 显示全部楼层
每次看都有新的理解啊,再次感谢楼主了
发表于 2013-8-10 17:51:10 | 显示全部楼层
本帖最后由 lukefan2008 于 2013-8-10 17:55 编辑
john800422 发表于 2013-4-14 22:53
自己想的
自己寫的


台湾兄,理解太到位了。这里有个问题与你一起探讨一下,在计算hx,hy,hz的时候我感觉原来的代码优点问题呢
hx,hy,hz应该是将磁计测量的磁场向量在本体系下的分量投影到导航系下对吧,于是应该乘以的旋转余弦矩阵是不是有点问题呢,因为


而元算法中
hx = 2*mx*(0.5 - q2q2 - q3q3) + 2*my*(q1q2 - q0q3) + 2*mz*(q1q3 + q0q2);
hy = 2*mx*(q1q2 + q0q3) + 2*my*(0.5 - q1q1 - q3q3) + 2*mz*(q2q3 - q0q1);
hz = 2*mx*(q1q3 - q0q2) + 2*my*(q2q3 + q0q1) + 2*mz*(0.5 - q1q1 - q2q2);
这是不是把对应项的位置弄错了?
而将hx,hy,hz转换成wx,wy,wz的时候也存在弄串了的问题?

本帖子中包含更多资源

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

x
发表于 2013-8-10 18:28:00 | 显示全部楼层
楼主流逼,慢慢消化
发表于 2013-8-10 23:56:31 | 显示全部楼层
lukefan2008 发表于 2013-8-10 17:51
台湾兄,理解太到位了。这里有个问题与你一起探讨一下,在计算hx,hy,hz的时候我感觉原来的代码优点问题呢 ...

四元數+電子羅盤沒有詳細看過
目前是使用互補濾波實現航向的
发表于 2013-8-11 15:27:20 | 显示全部楼层
真是好贴啊值得实验检验一下
发表于 2013-8-11 16:24:37 | 显示全部楼层
john800422 发表于 2013-8-10 23:56
四元數+電子羅盤沒有詳細看過
目前是使用互補濾波實現航向的

嗯,这个问题主要就是用四元数表示旋转余弦矩阵的时候,表示的各个项的问题。台湾兄,你的互补滤波效果如何啊?
发表于 2013-8-11 16:42:42 | 显示全部楼层
lukefan2008 发表于 2013-8-11 16:24
嗯,这个问题主要就是用四元数表示旋转余弦矩阵的时候,表示的各个项的问题。台湾兄,你的互补滤波效果如 ...

航向角誤差3度內吧
沒有仔細調整參數
发表于 2013-8-11 17:16:24 | 显示全部楼层
john800422 发表于 2013-8-11 16:42
航向角誤差3度內吧
沒有仔細調整參數

额,效果很好哦~是基于你之前开源的硬件做的么?嗯,加油哦~顺便请教一下你的NRF24L01的程序哈,我这边实现全双工通信遇到了点问题,能不能请教一下您的NRF24L01的程序流程啊?
发表于 2013-8-11 17:41:36 | 显示全部楼层
lukefan2008 发表于 2013-8-11 17:16
额,效果很好哦~是基于你之前开源的硬件做的么?嗯,加油哦~顺便请教一下你的NRF24L01的程序哈,我这边实 ...

define : K → 0.985
define : dt → 400Hz 取樣&更新

陀螺儀積分角度 = 航向角 + 角速度*dt
航向角 = K*陀螺儀積分角度 + ( 1-K )*電子羅盤角度

四軸做的
之前帖子裡應該有


記得nRF24l01不能同時收發
所以應該無法實現全雙工通訊

大致流程:

初始化
while(1) {
  轉成接收模式
  接收資料
  轉成發射模式
  發送資料
}
发表于 2013-8-11 19:04:28 | 显示全部楼层
john800422 发表于 2013-8-11 17:41
define : K → 0.985
define : dt → 400Hz 取樣&更新

这个算法里的互补体现在哪儿呢?而且你的权重系数是如何得到的啊?
发表于 2013-8-11 22:44:34 | 显示全部楼层
lukefan2008 发表于 2013-8-11 19:04
这个算法里的互补体现在哪儿呢?而且你的权重系数是如何得到的啊?



系數是直接實驗的
感覺在0.9多, 效果還不錯

係數越大→陀螺儀影響就越大→誤差會累積
係數越小→電子羅盤影響就越大→靈敏度低

本帖子中包含更多资源

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

x
发表于 2013-8-12 14:52:35 | 显示全部楼层
john800422 发表于 2013-8-11 22:44
系數是直接實驗的
感覺在0.9多, 效果還不錯

也就是说在你的程序里面,加速度计并没有用到对吧,另外请教一下,你不是用的MPU9150么,你用I2C这一次读完加计、陀螺、磁计的数据要花多少时间呢
发表于 2013-8-12 18:23:42 | 显示全部楼层
lukefan2008 发表于 2013-8-12 14:52
也就是说在你的程序里面,加速度计并没有用到对吧,另外请教一下,你不是用的MPU9150么,你用I2C这一次读 ...

翻滾和俯仰角是透過四元數計算的, 再用加速度計校正
只有航向角是用互補濾波算的

MPU9150是預計要用
之前的飛控用的是 L3G4200 + LSM303
I2C讀取時間沒有算過
发表于 2013-8-12 20:50:21 | 显示全部楼层
john800422 发表于 2013-8-12 18:23
翻滾和俯仰角是透過四元數計算的, 再用加速度計校正
只有航向角是用互補濾波算的

哦,这样啊,你是先用加计更新四元数,这部分用的卡尔曼滤波还是论坛里的算法?不知兄弟看过英国人Madgwick写的一篇文章没有,他的代码也公开了,文章名为Estimation of IUM and MARG orientation using a gradient descent algorithm
发表于 2013-8-12 23:48:15 | 显示全部楼层
lukefan2008 发表于 2013-8-12 20:50
哦,这样啊,你是先用加计更新四元数,这部分用的卡尔曼滤波还是论坛里的算法?不知兄弟看过英国人Madgwi ...

我是用角速度更新四元數
再用加速度計較正翻滾和俯仰角
航向角則是用互補濾波
並沒有用到卡爾曼

詳細可以看下Code或檔案
帖子裡都有

沒有看過
Estimation of IUM and MARG orientation using a gradient descent algorithm
有時間可以看看
发表于 2013-8-13 11:27:36 | 显示全部楼层
绝顶好帖,留名学习
发表于 2013-8-13 11:30:40 | 显示全部楼层
还有个问题就是卡尔曼滤波要怎么加进来啊
发表于 2013-8-13 12:52:40 | 显示全部楼层
谢谢楼主  留着以后用
发表于 2013-8-13 14:34:55 | 显示全部楼层
继续顶帖
发表于 2013-8-14 10:50:46 | 显示全部楼层
这帖子值得反复回味~我今天也把姿态仪调出点雏形了,好开心~
发表于 2013-8-15 18:55:42 | 显示全部楼层
john800422 发表于 2013-8-12 23:48
我是用角速度更新四元數
再用加速度計較正翻滾和俯仰角
航向角則是用互補濾波

请问捷联惯导算法是不是用的互补滤波?

他的总体思路我没看懂,能简单的说下吗
发表于 2013-8-15 21:24:04 | 显示全部楼层
马学家 发表于 2013-8-15 18:55
请问捷联惯导算法是不是用的互补滤波?

他的总体思路我没看懂,能简单的说下吗 ...

該講的程式、註解都有了
還要講甚麼?
发表于 2013-8-21 16:18:05 | 显示全部楼层
做个记号,好好学习天天向上
发表于 2013-8-21 16:28:51 | 显示全部楼层
seanwood 发表于 2013-3-21 09:56
有人问加电子罗盘的融合是怎么回事,我再献丑一回,开课讲解喽,来鼓掌来顶
我嚓,顶楼不能编 ...

一页一页的翻 果然看到了惊喜
发表于 2013-8-21 23:15:11 | 显示全部楼层
精辟,接收学习
发表于 2013-8-22 00:42:32 | 显示全部楼层
请问楼主为什么我用了这个算法算出来的角度总是跳的很厉害,得出来的结果不稳定,有时候跳的很离谱 这是咋回事啊  能指点一下吗  谢谢 初始化弄好了(除了z轴的那个角度)周期也试过好多结果都是这样
发表于 2013-8-22 01:57:31 | 显示全部楼层
学习了。。。
发表于 2013-8-22 10:45:21 | 显示全部楼层
先收藏下,搞完硬件就开始着手软件
发表于 2013-8-22 16:23:50 | 显示全部楼层
xukkkkkk 发表于 2013-3-29 13:12
问下下面这个函数这两段怎么理解
// 估计方向的重力
        vx = 2*(q1*q3 - q0*q2);

大手子,在哪儿能看到你开源的资料啊,我也想搞gps自主飞行,但是要是要从入门开始啊,现在在搞小四轴,安全,好调试。
发表于 2013-8-22 16:56:45 | 显示全部楼层
john800422 发表于 2013-3-30 00:59
我的理解

还是你的解释详细啊!请问 这是在哪本书上看到的啊 我也想买
发表于 2013-8-22 17:00:01 | 显示全部楼层
收藏先了,后面再来研究!
发表于 2013-8-22 18:33:17 | 显示全部楼层
lian洁 发表于 2013-8-22 16:56
还是你的解释详细啊!请问 这是在哪本书上看到的啊 我也想买

加速度耦合是看1F的程式理解
自己再寫成的數學式
沒有書籍
发表于 2013-8-23 23:21:10 | 显示全部楼层
楼主,Madgwick's IMU and AHRS algorithms  最新的算法使用的梯度下降发,ARHS算法中有这么一句,
_2bx = sqrt(hx * hx + hy * hy); 跟原来是两倍的关系,怎么理解,
发表于 2013-8-27 23:38:23 | 显示全部楼层
好贴!谢谢楼主
发表于 2013-8-28 14:18:54 | 显示全部楼层
mark,标注一下,好贴
发表于 2013-8-28 19:30:40 | 显示全部楼层
高手!学习一下
发表于 2013-8-29 22:40:09 | 显示全部楼层
好东西啊,正好用得到
发表于 2013-8-31 08:27:41 | 显示全部楼层
好贴,感谢楼主分享
发表于 2013-8-31 12:40:42 | 显示全部楼层
太棒了!!!!!!!!!!!!!!!!!!!!
发表于 2013-8-31 16:17:42 | 显示全部楼层
表示看不太懂。  数学没学好啊!
发表于 2013-9-1 10:49:35 | 显示全部楼层
,好文章啊,顶起!!!!
发表于 2013-9-1 17:19:13 | 显示全部楼层
像楼主学习!!!
发表于 2013-9-2 05:08:54 | 显示全部楼层

牛人,顶一个,慢慢看
发表于 2013-9-3 09:35:10 | 显示全部楼层
收着慢慢看
发表于 2013-9-3 22:34:06 | 显示全部楼层
这个帖子对初学者帮助太大了。
发表于 2013-9-3 23:25:12 来自手机 | 显示全部楼层
强帖 !!!mark!!!
发表于 2013-9-4 00:13:33 | 显示全部楼层
好贴,留着慢慢学习!
发表于 2013-9-4 10:33:56 | 显示全部楼层
楼主,为什么我看到的四元数微分方程结果跟你不一样:
q0 = q0 + (q1*gx + q2*gy + q3*gz)*halfT;

q1 = q1 + (-q0*gx + q2*gz - q3*gy)*halfT;

q2 = q2 + (-q0*gy - q1*gz + q3*gx)*halfT;

q3 = q3 + (-q0*gz + q1*gy - q2*gx)*halfT;
我是从《惯性导航系统技术》(高钟毓)得到的结果,是不是我哪里搞错了?
发表于 2013-9-4 10:52:49 | 显示全部楼层
很高端 留着用
发表于 2013-9-4 16:48:04 | 显示全部楼层
这个帖子还是好好再看看吧
发表于 2013-9-4 20:54:35 | 显示全部楼层
好东西一定要顶
发表于 2013-9-6 16:25:07 | 显示全部楼层
收藏了,以后慢慢研究
发表于 2013-9-7 22:00:43 | 显示全部楼层
必须感谢楼主的好贴
发表于 2013-9-9 11:04:13 | 显示全部楼层
楼主,请一个问题,我已经算出欧拉角了,静止转动角度正常,但是马达转起来后角度变化幅度很大,倾斜同样的角度马达不转时是-40度,但马达转动后有时会变成+30几度。跳动太大了,为什么会这样呢,是因为支架震动的原因吗?
发表于 2013-9-9 17:04:29 | 显示全部楼层
mark,以后学习用
发表于 2013-9-13 16:36:55 | 显示全部楼层
mark 捷联惯导算法心得
发表于 2013-9-18 17:57:10 | 显示全部楼层
厉害,学习了
发表于 2013-9-20 13:01:16 | 显示全部楼层
学习学习 ==
发表于 2013-10-1 10:39:31 | 显示全部楼层
感谢楼主,但是你文中有个描述性错误。
第62行,应该是第三行的三个元素 而不是第三列的三个元素。
发表于 2013-10-5 21:19:42 | 显示全部楼层
正在学习,苦于资料太杂,而且说得不清楚,楼主总结的简洁易懂,真心赞一个。。。。
发表于 2013-10-5 22:42:31 来自手机 | 显示全部楼层
Mark,学习了!
来自:amoBBS 阿莫电子论坛 Windows Phone 7 客户端
发表于 2013-10-6 14:13:29 | 显示全部楼层
坛子里这种有实践验证的理论贴真还不多,希望能出更多一些(道理上清楚后实践就相对容易了)。
发表于 2013-10-6 20:28:21 | 显示全部楼层
真心的不错,要顶。
发表于 2013-10-7 16:49:04 | 显示全部楼层
mark一下
发表于 2013-10-7 20:40:35 | 显示全部楼层
agnd 发表于 2012-10-30 13:15
问一下,我用两套一样的陀螺加计组合,安在不同位置,它们互为对方的观测者行吗? ...

不行,加起来除以2.
观测者的优点正是被观测者的缺点。
发表于 2013-10-7 22:05:33 | 显示全部楼层
john800422 发表于 2013-8-10 23:56
四元數+電子羅盤沒有詳細看過
目前是使用互補濾波實現航向的

你是台湾的?
友情提示:标题不合格、重复发帖,将会被封锁ID。详情请参考:论坛通告:封锁ID、获得注册邀请码、恢复被封ID、投诉必读
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|阿莫电子论坛(原ourAVR/ourDEV) ( 粤ICP备09047143号 )

GMT+8, 2017-9-24 13:09

阿莫电子论坛, 原"中国电子开发网"

© 2004-2016 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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