旋转矩阵与欧拉角

来源:互联网 发布:淘宝工商执照可信吗 编辑:程序博客网 时间:2024/05/21 17:49

旋转矩阵与欧拉角

  描述两个坐标系间的相对姿态有多种方式,比如:旋转矩阵、欧拉角、四元数、罗德里格参数等。我们很多本科生或研究生课程中都或多或少涉及到坐标系变换,而且有些人还不止听过一遍,但还是感觉云里雾里(在下就是)。尤其是当旋转矩阵和欧拉角结合起来的时候,一听就会,一用就错。

  下面我根据自己在使用中碰到的容易混淆的地方梳理一下,希望对各位的理解有些帮助。为了节约篇幅,我就默认大家对旋转矩阵和欧拉角有一些了解,或者看过相关的文献介绍。

坐标变换与旋转矩阵

  我们大多数情况下遇到的都是欧氏变化,即同一个向量在各坐标系下的长度和夹角都不发生变化。定义两个坐标系1和2,对应的两组坐标基为f1=[i1,j1,k1]Tf2=[i2,j2,k2]T,同一个向量在这两个坐标系下的坐标表示分别为[x1,y1,z1]T[x2,y2,z2]T。根据坐标系定义,有:

[i1,j1,k1]x1y1z1=[i2,j2,k2]x2y2z2(1)

  接下来就是可能混淆的地方了,下面我们有两种方式来表示坐标系1和坐标系2之间的旋转矩阵,这取决于方程(1)等式两边左乘哪组坐标基。

  如果方程两边同时左乘坐标系1的坐标基:

x1y1z1=f1fT2x2y2z2=C12x2y2z2(2)

  这里的C12表示坐标系1相对于坐标系2的方向余弦矩阵(旋转矩阵),即从坐标系2到坐标系1的旋转矩阵。

  如果方程两边同时左乘坐标系2的坐标基:

x2y2z2=f2fT1x1y1z1=C21x1y1z1(3)

  这里的C21表示坐标系2相对于坐标系1的方向余弦矩阵(旋转矩阵),即从坐标系1到坐标系2的旋转矩阵。

  由于方向余弦矩阵是正交矩阵,因此C21C12之间差一个转置。

欧拉角

  欧拉角具有直观、易于理解的特点,能让我们清楚的看到两个坐标系间是怎么转动过去的,虽然欧拉角会碰到万向锁的问题,但它仍然是我们在描述刚体运动学过程中的重要参数。

  学过相关内容的同学应该知道,根据旋转顺序不同,描述两个坐标系间转换的欧拉角共有12组。这里只介绍一种比较常见的转换方式,ZYX顺序转动,也就是航空航天领域常用“偏航-俯仰-滚转”(yaw-pitch-roll)方式:

  • 绕Z轴旋转,得到偏航角ψ;
  • 绕旋转之后的Y轴旋转,得到俯仰角θ
  • 绕旋转之后的X轴旋转,得到俯仰角ϕ

  以卫星或无人机为例,这里的“偏航-俯仰-滚转”指的是本体系b相对于参考坐标系i(世界坐标系)的转动,转换为姿态矩阵表示为参考坐标系到本体系的转换矩阵。这一点在仿真过程中极为重要,有时感觉理论上好像懂了,但是如果顺序搞反了在仿真中会差一个转置,得不到正确的结果,而且不太好发现。

  经过ZYX顺序三次旋转得到的旋转矩阵为:

xbybzb=Cx(ϕ)Cy(θ)Cz(ψ)xiyizi=Cbixiyizi(4)

原创粉丝点击