欧拉角的概念理解和欧拉角旋转矩阵推导

欧拉角用来计算空间中刚体的旋转位置,目的是改变刚体的朝向.

具体来说,空间中有一个点p和一根轴k,点p绕轴k旋转θ角度到p',求p'的坐标.这就是欧拉角要解决的问题.

只不过,欧拉角将1个点绕1根轴旋转1个角"转化为"1个点绕3个轴连续旋转3个角".

欧拉角的最终目的是为了改变刚体的朝向,刚体可以看做向量的集合,所有的向量都绕着同一个轴旋转相同的角度,达到改变刚体朝向的目的.
这里用"朝向"来描述刚体的位置变化,是为了表明刚体围绕某个目标变化其位置.从数学角度理解,将目标抽象为旋转轴.旋转轴可以在刚体上,也可以在刚体之外,事实上可以在任何位置.

欧拉角分为内旋(动态)欧拉角和外旋(静态)欧拉角.

内旋欧拉角旋转矩阵的推导过程

空间中刚体上一点p在固定坐标系oxyz中对应的向量为v.刚体的活动坐标系oX0Y0Z0与oxyz重合,刚体及活动坐标系oX0Y0Z0旋转过程如下:

  1. 刚体及其坐标系oX0Y0Z0绕oZ0逆时针旋转γ角度,设旋转后的新坐标系为oX1Y1Z1.
  2. 刚体及其坐标系oX1Y1Z1绕oX1逆时针旋转α角度,设旋转后的新坐标系为oX2Y2Z2.
  3. 刚体及其坐标系oX2Y2Z2绕oY2逆时针旋转β角度,设旋转后的新坐标系为oX3Y3Z3.

这就是内旋欧拉角的旋转过程,如下图所示:

旋转轴序:Z0-X1-Y2;角序(γ,α,β).

因为刚体上的p点随着活动坐标系同步旋转,所以旋转完成后p点在活动坐标系oX3Y3Z3中对应的向量V3=v;求此时(完成3次旋转后)p点在oX0Y0Z0/oxyz中的向量V30及复合旋转矩阵R(γ,α,β)?

注意V3和V30的关系,这两个向量描述空间中同一个点p在两个不同坐标系(oX3Y3Z3,oX0Y0Z0)中的位置,需要将坐标系oX3Y3Z3中的V3变换到oX0Y0Z0中的V30.设变换矩阵R,那么V30 = R * V3.

根据条件,需要间接计算R,本质上其实是三次坐标变换:

  1. 将oX3Y3Z3中的V3变换到oX2Y2Z2中的V32,相当于oX3Y3Z3绕Y3轴顺时针旋转β到oX2Y2Z2位置(旋转方向X3 => Z3).设基础变换矩阵R(Y3,β),则:V32 = R(Y3,β) * V3.,求得:

    2.将oX2Y2Z2中的V32变换到oX1Y1Z1中的V31,相当于oX3Y3Z3从oX2Y2Z2位置绕X2轴顺时针旋转α角度到oX1Y1Z1位置(旋转方向Z2 => Y2)设基础变换矩阵R(X2,α),则:V31 = R(X2,α) * V32.,求得:

 3.将oX1Y1Z1中的V31变换到oX0Y0Z0中的V30,相当于oX3Y3Z3从oX1Y1Z1位置绕Z1轴顺时针旋转γ角度到oX0Y0Z0位置(旋转方向Y1 => Z1)设基础变换矩阵R(Z1,γ),则:V30 = R(Z1,γ) * V31.,求得:

变换关系推导,V30 = R(Z1,γ) * V31 = R(Z1,γ) * R(X2,α) * V32 = R(Z1,γ) * R(X2,α) * R(Y3,β) * V3 = R * V3 = R * v.

这3个基础变换矩阵就是内旋欧拉角(γ,α,β)连续绕轴Z0-X1-Y2旋转对应的3个基础旋转矩阵;复合变换矩阵R就是复合旋转矩阵R(γ,α,β): R(γ,α,β) = R = R(Z1,γ) * R(X2,α) * R(Y3,β),最终求得:

这个结果与万维百科的结果相同(该网页底部的表最后一个,只是这里表示欧拉角的符号顺序跟表中的不一样,替换掉就行了),如下图所示:

表中的Z1X2Y3=......是轴序:y-x-z的外旋欧拉角(α, β, γ)的复合旋转矩阵;不过没关系,轴序相反(Z0-X1-Y2),角序相同的动态欧拉角(α,β,γ)也是这个旋转矩阵.

注:所谓旋转矩阵,是针对点p在固定坐标系oxyz中旋转而言,假设没有活动坐标系参与,那么点p在固定坐标系oxyz中其实绕着3条直线(分别与活动坐标系3个轴Z0-X1-Y2重合)旋转,直接求这3个旋转矩阵很困难,所以要通过坐标变换的方法间接求旋转矩阵。

外旋欧拉角旋转矩阵的推导过程

外旋欧拉角很容易理解,就是刚体在固定坐标系oxyz中绕坐标轴旋转,将问题简化为刚体上的点p在固定坐标系oxyz中绕坐标轴y-x-z分别旋转(γ,α,β)角度,其实并不涉及活动坐标系,只不过为了跟内旋欧拉角对比,这里仍然令活动坐标系参与旋转.

设初始状态p点在固定坐标系oxyz中的向量v.

  1. 刚体活动坐标系oX0Y0Z0绕oy轴逆时针旋转γ角度,设旋转后的新坐标系为oX1Y1Z1,v旋转到v1,设基础旋转矩阵r(y,γ),有: v1 = r(y,γ) * v.

    2.刚体活动活动坐标系oX1Y1Z1绕ox轴逆时针旋转α角度,设旋转后的新坐标系为oX2Y2Z2,v1旋转到v2,设基础旋转矩阵r(x,α),有: v2 = r(x,α) * v1.

  3.刚体活动活动坐标系oX2Y2Z2绕oz轴逆时针旋转β角度,设旋转后的新坐标系为oX3Y3Z3,v2旋转到v3,设基础旋转矩阵r(z,β),有: v3 = r(z,β) * v2.

设复合旋转矩阵r(γ,α,β),有:v3 = r(z,β) * v2 = r(z,β) * r(x,α) * v1= r(z,β) * r(x,α) * r(y,γ) * = r(γ,α,β) * v,求得:

结果与万维百科的结果相同(上面那个图表,只是这里表示欧拉角的符号顺序跟表中不一样,替换的即可).

 

内旋欧拉角和外旋欧拉角旋转矩阵对比,对旋转的理解

比较上述内旋欧拉角复合旋转矩阵R(γ,α,β)和外旋欧拉角复合旋转矩阵r(γ,α,β),发现R(γ,α,β) = r(γ,α,β).由此可以得出一个结论,角序相同轴序相反(当然轴所在的坐标系不同)的内,外旋欧拉角复合旋转矩阵相同.

可见,内旋欧拉角和外旋欧拉角只是用不同的计算方法来解决同一个问题.
如果将三次旋转合并为一次旋转,就是轴角法.
 

 

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值