majianjia 发表于 2011-10-26 12:29:34

HMC5883L 如何计算出当前角度?即如何用三轴磁阻数据计算出当前的姿态欧拉角?

HMC5883L 如何计算出当前角度?即如何用三轴磁阻数据计算出当前的姿态欧拉角?
我用来做陀螺仪中点修正用的。陀螺仪已经用四元数计算出姿态欧拉角。

磁阻得到三轴数据,可是该如何计算姿态角度?

majianjia 发表于 2011-10-26 22:37:50

很奇怪。。还是不懂怎么算。。

majianjia 发表于 2011-10-28 17:01:38

还在纠结。。应该是用方向余弦算吧。
结果还没出来。唉

robertwang 发表于 2011-10-28 20:48:30

需要知道当地的地磁在地理坐标系的分量,就可以求出来了

racede 发表于 2011-10-28 21:01:46

回复【2楼】majianjia阿嘉^_^
-----------------------------------------------------------------------
LZ我也在弄这个...地平面上校正后用反余弦就OK...
现在我在地平面上已经能非常准确地求出航向角了...但是在横滚和俯仰角不为0的时候, 用扁率方程怎么弄效果都不好....
希望多多探讨, 共同进步!!!


传个基本资料~~希望对你有帮助
点击此处下载 ourdev_689703FTSXT5.pdf(文件大小:767K) (原文件名:AN3192 Using LSM303DLH for a tilt compensated electronic compass.pdf)

majianjia 发表于 2011-10-29 09:13:51

回复【4楼】racede
回复【2楼】majianjia阿嘉^_^
-----------------------------------------------------------------------
lz我也在弄这个...地平面上校正后用反余弦就ok...
现在我在地平面上已经能非常准确地求出航向角了...但是在横滚和俯仰角不为0的时候, 用扁率方程怎么弄效果都不好....
希望多多探讨, 共同进步!!!
传个基本资料~~希望对你有帮助
点击此处下载(原文件名:an3192 using lsm303dlh for a tilt compensated electronic compass.pdf)

-----------------------------------------------------------------------

回复【3楼】robertwang
-----------------------------------------------------------------------


谢谢你们,磁阻纠结死了。 搞了很久现在概念都有点弄不清了。

还有就是陀螺仪用四元数算法出来的结果里,是指飞行器坐标系相对初始坐标系的旋转角度是吗?如果是的话,应该可以通过简单的加减角度后与阻反余弦出来的角度相对应?

而飞行器相对地平面的角度可以直接用陀螺仪积分后求出来吧?

现在越来越混乱了。真的得去买一本惯性导航的书来看看。

robertwang 发表于 2011-10-29 09:20:17

在同一个平面内角度具有相加减的性能,在三维空间里面,需要采用姿态更新算法才能解决,四元数就是姿态更新的一个应用。

lijieamd 发表于 2011-10-29 10:45:11

(1)模为1的四元数可以用来表述两个坐标系之间的角位置关系,单独用陀螺仪做四元数积分,就是机体坐标系和初始四元数所描述的坐标系之间的角位置关系,是三维角位置关系
(2)磁传感器和加速度计其中之一都只能得到不完全的角位置关系,例如磁场方向向量是A,机体绕着A旋转,磁传感器不会有任何变化
就像机体绕着g旋转,加速度计不会有任何变化一样
(3)之所以使用四元数,是因为四元数描述的是非常直观的一次旋转,这个旋转只有方向和大小这两个属性,所以尽量不要用欧拉角或者任何试图解耦这个角度(例如和水平面的夹角,和g的夹角等等)的思想来考虑问题,否则容易迷惑。

zht9961020 发表于 2011-10-29 11:47:56

回复【7楼】lijieamd
-----------------------------------------------------------------------

不转换为欧拉角怎么进行姿态控制啊

lijieamd 发表于 2011-10-29 11:59:25

整个控制环路都用四元数表述就可以嘛
至于用什么控制那是后话,只是在姿态测量这里,引入一些解耦角度会很麻烦

majianjia 发表于 2011-10-30 09:31:08

回复【9楼】lijieamd
-----------------------------------------------------------------------

我现在的路是 陀螺仪转输出的值转成弧度后就进行四元数计算,然后又从四元数转换成欧拉角。
看来路走错了,要买本惯性导航的书好好分析了。

jmp2002911 发表于 2011-10-30 12:00:32

将陀螺仪给出的角速度使用四元数进行计算,再转化为欧拉角。

jmp2002911 发表于 2011-10-30 12:00:33

将陀螺仪给出的角速度使用四元数进行计算,再转化为欧拉角。

racede 发表于 2011-10-30 18:35:28

回复【5楼】majianjia阿嘉^_^
-----------------------------------------------------------------------

汗....再来看才发现说错了...是反正切...不是反余弦....

nirvanasyl 发表于 2011-11-10 17:32:25

MARK

feiling208 发表于 2012-1-25 23:22:02

mark

54anson 发表于 2012-1-25 23:32:21

https://code.google.com/p/imumargalgorithm30042010sohm/

参考这个

feiling208 发表于 2012-1-31 20:42:45

回复【13楼】racede
-----------------------------------------------------------------------

我的HMC5883L的Z轴负向与重力方向相同

结果用反正切之后发现,公式里面的y轴的值要用Z的值替换才行,这是怎么回事?能给个提示不?

elsonx 发表于 2012-1-31 21:31:32

回复【17楼】feiling208
-----------------------------------------------------------------------

你读错寄存器了吧~~~传感器里的顺序是X、Z、Y~~不是X、Y、Z~~~

wj0755 发表于 2012-10-2 16:43:07

将陀螺仪给出的角速度使用四元数进行计算,再转化为欧拉角
页: [1]
查看完整版本: HMC5883L 如何计算出当前角度?即如何用三轴磁阻数据计算出当前的姿态欧拉角?