丁丁

四元素法

0
阅读(5700)

前几个月已经完成了ADXL345,ITG3200,HMMC5883L的硬件调试,所以这些天一直在看相关的算法,但是由于工作太忙,花在这上面的时间确实不多啊。没办法,还是得先解决温饱问题在来弄自己的兴趣吧。

首先我先学习四元素法。下面的一些是在网上找到的资料,加上个人理解,分享给大家。

  • 四元数的定义

另外一种表示方法,是一样的。

   通过旋转轴和绕该轴旋转的角度可以构造一个四元数:

       其中是绕旋转轴旋转的角度,为旋转轴在x,y,z方向的分量(由此确定了旋转轴)。

二、欧拉角到四元数的转换

三、四元数到欧拉角的转换

       arctan和arcsin的结果是,这并不能覆盖所有朝向(对于的取值范围已经满足),因此需要用atan2来代替arctan。

四、在其他坐标系下使用

在其他坐标系下,需根据坐标轴的定义,调整一下以上公式。如在Direct3D中,笛卡尔坐标系的X轴变为Z轴,Y轴变为X轴,Z轴变为Y轴(无需考虑方向)。