欧拉角求解旋转角_刚体旋转知识

596857adb81c3004387c20059ecb0b29.png点击上方蓝字关注我们 7fbdd24349f950215d539ec35dd7133e.gif

三维空间中刚体旋转实质是对所定义的刚体坐标系的旋转,如相机坐标系的旋转。目前,刚体旋转的表示有轴角(旋转向量)、四元数、欧拉角、旋转矩阵等方法。本文主要阐述这些表示方法以及优缺点。

欧拉角求解旋转角_刚体旋转知识_第1张图片

01旋转向量

对于坐标系的旋转,任意旋转都可以采用一个旋转轴(单位向量)n 和一个旋转角 θ 表示,称之为轴角法。那么,三维空间坐标系的旋转可以描述为一个三维向量,即旋转向量。如向量  a

       a =[ a1, a2, a3 ]        

其中,向量方向(单位向量)即旋转轴,向量大小即旋转角度。

优缺点:

1)同轴的两次旋转可直接相加等效为一次旋转,但两次不同轴的连续旋转的等效则需要通过其它旋转表示(四元数)进行辅助计算;

2)旋转角度为 0 时,旋转轴可以任意表示,无法满足一一对应关系;

0 2四元数

四元数是简单的超复数,由一个实部 s 和三个虚部 i、j、k 组成,如四元数 q 可表示为:

        q=s+xi+yj+zk        

也可写成标量 s 和向量 v  的形式:

       q=[ s, v ]        

其中, s 是四元数的实部,v 是四元数虚部构成的三维向量

旋转表示中,单位四元数可以表示三维空间中的任意一个旋转。对于绕旋转轴(单位向量)n 旋转 θ 度的旋转向量,其相应的四元数形式是:

    q=[cosθ/2, nxsinθ/2, nysinθ/2,nzsinθ/2]    

其中

        θ = 2arccos ( s )        

    [nx, ny, nz]T = [x, y, z]T/sinθ/2    

特别的,由于旋转 θ+2π 与旋转 θ 是相同旋转,因而任意旋转可以表示成两个互为相反数的四元数。推导过程如下:

q=

  =[cos(θ/2+π),nxsin(θ/2+π), nysin(θ/2+π),nzsin(θ/2+π)]

  =[-cosθ/2,-nxsinθ/2, -nysinθ/2,-nzsinθ/2]

  =-q

上述说明了四元数的数学形式以及其旋转含义。那么对于三维空间中点 p 是如何利用四元数 q 求解旋转后的坐标 p' 呢?计算过程如下:

首先写出空间点 p 的四元数形式,

        p=xi+yj+zk        

然后通过如下公式可以求解旋转后 p' 的四元数形式:

        p'=qpq-1        

其中,p' 为纯虚四元数(无实部),其虚部值即为旋转后的坐标值

优缺点:

1)当旋转角为 0 时,此时轴角法无法明确旋转轴,但是有固定的四元数与之对应,即:

       q=[ ±1, 0, 0, 0 ]        

2)任意两次旋转q1、q2等效为一次旋转 q’

        q’=q1∗q2        

0 3欧拉角

上述旋转向量和四元数均可以理解为通过一次旋转表示姿态(按某个旋转轴转动一定角度),欧拉角则是通过绕三个确定轴进行三次独立旋转来表示姿态。欧拉角共有24种,其具体划分如下:

1)根据绕轴数量和顺序不同可以划分为12种:

绕轴数量为 2 时,有如下 6 种顺序:

    z-x-z,    z-y-z,    x-y-x    

    x-z-x,    y-x-y,    y-z-y    

绕轴数量为 3 时,有如下 6 种顺序:

    x-y-z,    x-z-y,    y-x-z    

    y-z-x,    z-x-y,    z-y-x    

2)根据绕轴种类不同可以划分为 2 种:

固定轴(外旋):绕轴为初始轴(第一次旋转前的坐标轴)

运动轴(内旋):绕轴为每次旋转后的坐标轴

因而结合上述两大类,欧拉角共有 24 种

通常不同的应用领域都有其默认的欧拉角定义方式。在这里我们只指出一种常见的欧拉角旋转方式,即外旋 z-y-x。具体如下:

首先绕 z 轴旋转,常称为偏航角(yaw角)

欧拉角求解旋转角_刚体旋转知识_第2张图片

再绕旋转后的 y 轴旋转,常称为俯仰角(pitch角)

欧拉角求解旋转角_刚体旋转知识_第3张图片

在绕第二次旋转后的x轴旋转,常称为滚转角(roll角)

欧拉角求解旋转角_刚体旋转知识_第4张图片

优缺点:

1)简单直观、能够比划出旋转结果

2)万向节死锁,旋转过程中存在两个坐标轴平行的现象。如绕 Z 轴(黑色) 旋转 α ,绕旋转后 Y 轴(红色)旋转 β=90°,此时, X 轴(黄色)和未旋转时 Z 轴(黑色)重合,若再绕 X 轴(黄色)旋转,其实与先前绕 Z 轴(黑色)旋转雷同, 导致绕两个轴的单独旋转和绕Z轴(黑色)的单次旋转等效,缺少了一个自由度。

欧拉角求解旋转角_刚体旋转知识_第5张图片

3)无法进行旋转叠加,通过旋转矩阵辅助计算

0 4旋转矩阵

旋转矩阵是大小为 3x3 的标准正交矩阵 R ,其为欧拉角提供了数学方法,使其能够进行加减。对三维空间中点 p 可通过如下计算方法获得旋转后的的坐标 p'。

        p' = R p        

优缺点:

1)同一姿态的旋转矩阵是唯一的

2)可直接进行叠加运算

3)相比于四元数,计算更加明了

4)含有9个变量,但自由度为3,因而冗余度较大

05相互关系

刚体旋转的四种表示之间能够相互转换,在这只描述常用的转换关系:通过罗德里格斯公式实现轴角(旋转向量)向旋转矩阵的转换

    R = cosθ I + (1-cosθ) n n T+sinθ n^    

其中,R 是旋转矩阵, I 是单位向量,n 是旋转向量的单位向量(即旋转轴),θ 是旋转向量的模(即旋转角度)。

END

欧拉角求解旋转角_刚体旋转知识_第6张图片 扫码关注我们 臭皮匠快速编程

你可能感兴趣的:(欧拉角求解旋转角)