姿态解算--欧拉角、四元数、方向余弦的理解,方便以后回顾

大概从去年冬天就开始接触姿态解算的内容了,中间走过很多弯路,当时一度迷糊在理论中,那时前辈让先学习方向余弦矩阵,但实际上,这个实际不常用,弄了两周后面因为其他原因就搁置了,现在特意写下这篇文章记录搞明白是个怎么回事。不过关于旋转矩阵的那个不正交矫正的原理倒是可以看看,非常巧妙。

本篇主要讲欧拉角与四元数旋转的关系,对方向余弦感兴趣的小伙伴可以评论区评论,我有时间会更新补上详细的方向余弦(可能在年后了,最近有点忙)

如果你有什么迷糊的点,相信读完本文,你说不定就茅塞顿开,恍然大悟,豁然开朗了

欧拉角

讲3个概念:
静态欧拉角;
动态欧拉角;
欧拉角旋转矩阵与次序的关系;

  • 静态欧拉角
    指物体旋转时,机体参考的坐标系为大地参考系,或者说全局参考系。这时,假如A作为一个旁观者来观察某个物体的姿态,转述给B,A和B约定好按照静态欧拉角来描述物体的姿态。则这个时候,B可以很直观的想象到物体的姿态。
    简言之:静态欧拉角以全局坐标系为参考,可以很直观的想象物体的姿态。

  • 动态欧拉角
    指物体旋转时,机体参考的坐标系为本身。这时,假如A作为一个旁观者来观察某个物体的姿态,转述给B,A和B约定好按照动态欧拉角来描述物体的姿态。则这个时候,B可以不能够直观的想象到物体的姿态。
    这个,读者朋友可以自己想想,因为始终以自身作参考,因此每次旋转都会耦合之前的旋转,所以作为观察者而言,很难直观的想象物体的姿态

  • 欧拉角旋转矩阵与次序的关系
    欧拉角按照旋转可以有多种次序,因为可以两轴也可以三轴,比如ZXY,ZXZ.类似的,根据高中的排列组合我们可以得到共有:
    3 * 2 * 2=12种
    每一种都对应一种旋转矩阵,因为矩阵乘法不满足交换律,因此同一种姿态可以有多种欧拉角旋转矩阵来表示。
    常常把这样得到的旋转矩阵,与四元数旋转矩阵结合起来,进行姿态解算求取欧拉角。因此,一定要确定自己的欧拉角旋转顺序,然后再依次相乘得到旋转矩阵,如果发现自己和别人的不一样,不要害怕,不要气馁,可能是旋转次序不一样。

要注意的两点:
1、确定绕单轴旋转的旋转矩阵时,也会因为旋转的方向不一样导致最后的结果与你参考的别人资料不一样,这个一定要按照自己定义的旋转方向进行,一般情况下,我们以轴正向向上,右手螺旋为正,这也是常用标准的规定方法,不容易出错。(可以借助matlab对旋转矩阵进行计算,避免出错)
2、如上面第三点所说,你的旋转次序以及旋转轴可能和别人不一样,首先要确定你是两轴旋转还是三轴旋转,然后旋转次序及旋转方向是什么样的,一定要按照自己需要规定的旋转顺序来。这样得到的旋转矩阵一定是对的。

四元数

四元数的旋转矩阵也可以通过matlab来进行计算,这个具体的推导过程有点复杂,可以参考一下秦永元老师的《惯性导航》,不过只要有数学基础基本都能看懂推导过程,可能一遍看下来不懂,但是再看几遍你肯定能懂。

四元数是表示轴角旋转的一种描述方法,对于轴角描述来讲,一旦旋转轴确定了,那么可以正转theta角,或者反转360-theta角度得到同一个姿态。
所以四元数是二对一的旋转描述。但是我们只要确定一种就可以,因为他所对应的姿态是一定的。

基于上面所说,那么可以选取一种四元数旋转矩阵来对应多种欧拉角旋转矩阵,从而通过反三角函数求得实际的动态欧拉旋转角,那么此时得到的旋转角是机体旋转角,因为欧拉角旋转矩阵是按照动态欧拉角来计算的。

但是动态欧拉角不直观,因此,需要通过旋转矩阵的转置,转换到全局坐标系中得到直观的欧拉角,这样就可以反映直观可想象的物体空间姿态。

方向余弦矩阵

方向余弦矩阵机令机体坐标系与参考全局坐标系初始重合,原点始终重合,通过机体到参考坐标系各个轴的投影也就是9个余弦值来表述。具体的就不细讲了,网上有很多,建议参考英文原文进行阅读,但是据说磁力计校准那一块有问题,但是其他内容都是OK的。

好了就写这么多,希望能帮助到和我一样曾经迷茫的人,共同学习!

猜你喜欢

转载自blog.csdn.net/ericanxuanxuan/article/details/110008405