美文网首页
[VR]欧拉角

[VR]欧拉角

作者: st0rm23 | 来源:发表于2017-01-02 20:18 被阅读235次

定义

用来确定定点转动刚体位置的3个一组独立角参量。也就是一个三维向量R(ψ,θ,φ)。除了上述静态的定义,还可以类比欧式空间的坐标P(x,y,z)进行动态的理解。坐标P(x,y,z)可以理解成从原点向X轴走x远,再向Y轴走y远,最后向Z轴走z远的位置。欧拉角也可以表示成相继的三个旋转过程的合成,分别是绕X轴旋转,绕Y轴旋转,绕Z轴旋转之后的位置。

目的

对于一个点,我们用位置来描述就够了,只需要三个自由度,也就可以用通俗的三维坐标来表示。然而对一个刚体,三个自由度是不够的,因为有了体积的存在,还需要有三个角参量来描述姿态,一共是6个自由度,这时候坐标已经不能够满足了,所以欧拉角就是为了描述这件事情产生的。

理解

相比于坐标,欧拉角相对难理解一点。因为对于一个欧拉角R(ψ,θ,φ),如果没有定义旋转顺序的话是有歧义的。而在定义了旋转顺序下,还要注意对角度对参考系的理解。

  • 旋转顺序
    我们先回顾坐标,对于一个点(x,y,z),我们是无所谓顺序的,从原点无论先按照哪个方向走x,y,z最后都会到达相同的地方。而旋转不是,“先对X轴旋转90度再对Y轴旋转45度”和“先对Y轴旋转45度再对X轴旋转90度”是会有不同的结果。怎么理解这种不同呢?如果把这些变化对应成矩阵,位置的变化是对坐标进行加法运算,而旋转的变化是对坐标进行矩阵的乘法运算。矩阵加法满足交换律,而矩阵乘法是不满足交换律的。

  • 参考坐标系
    在刚才提到的旋转复合的过程中,参考系非常重要。通常来说参考系可以分为两种,一种是全局参考系E,可以视为静止的。另外一种是局部参考系E’,是固定在刚体上的一个参考系,会随着刚体的运动相应地参考系会进行变化。那么我们在实际运用中的时候角度是相对哪一个参考系来进行定义的显得尤为重要。

那么说了这两件事情后,一个欧拉角到底是怎么描述的呢?
首先,对于旋转顺序其实是并没有约定俗成的规矩的。我们以X->Y->Z的顺序为例。在这个顺序下,欧拉角R(a,b,c)在全局与局部坐标系下有这么两种描述:

  • R(a,b,c)在全局坐标系下描述,这里三个过程中的E都是相同的
    在E下绕坐标轴Z旋转c,在E下绕坐标轴Y旋转b,在E下绕坐标轴旋转a。R(a,b,c)就是上述三个过程的合成
  • R(a,b,c)在局部坐标系下的描述,这里三个过程中的E都是不同的,因为旋转后刚体自身的坐标系发生了变化
    在初始的E’下绕坐标轴X旋转a,在前一个过程中得到的新坐标系E''中绕Y轴旋转b,在前一个过程中得到的新坐标系E'''中绕Z轴旋转c。R(a,b,c)就是上述三个过程的合成。

这两种过程其实是等价的,现在我们来证明一下,不妨设初始的时候两个坐标系E’和E重合。

  • 前提
    全局坐标系下的三个过程代表的矩阵按顺序设为Rz, Ry, Rx。那么R(a,b,c)代表的过程=RzRyRx。
    局部坐标系下的三个过程代表的矩阵按顺序设为Qx, Qy, Qz。那么R(a,b,c)代表的过程=QxQyQz。
    如果我们需要证明两种描述等价,我们只要证明RzRyRx=QxQyQz。
  • 过程
    • step1 可知Qx=Rx,因为局部描述的第一步中E'和E是一样的,“在E’下绕坐标轴X旋转a”也就是“在E下绕坐标轴X旋转a”
    • step2 可知Qy=Qx-1RyQx,“在坐标系E''中绕Y轴旋转b”相当于这么几个过程的叠加“把坐标系E''的描述变成坐标系E'(也就是E)的描述->在E下绕Y轴旋转b->把坐标系E变成坐标系E''”,对应的就是Qx-1RyQx-1,这样子转化的目的是为了得到Qy与Ry的关系。
  • step3 同理可知Qz = (QxQy)-1Rz(QxQy)
  • step4 就有了QxQyQz=RxQx-1RyQx(QxQy)-1Rz(QxQy)
    利用Rx=Qx,Ry=QxQyQx-1,Rz=(QxQy)Qz(QxQy)-1反复替换带进去,消掉以后就变成了QxQyQz=RzRyRx证明完毕

所以,说到这里,欧拉角的描述应该是清晰了:欧拉角应该定义旋转顺序,有全局/局部两种描述方式。

相关文章

  • [VR]欧拉角

    定义 用来确定定点转动刚体位置的3个一组独立角参量。也就是一个三维向量R(ψ,θ,φ)。除了上述静态的定义,还可以...

  • 欧拉角

    在我们的3D数学中,如果使用矩阵来旋转的话就会显得十分的复杂和笨拙。计算中使用最为广泛的旋转方式为欧拉角。  欧拉...

  • 欧拉角

    个人理解思路 欧拉角===》旋转矩阵(一般直接得到单位正交阵)==》旋转向量(一个轴,一个角)==》旋转矢量(一般...

  • 欧拉角

    之前不明白欧拉角的定义,有一篇博客讲的很清楚。mark下https://www.matongxue.com/mad...

  • iOS SceneKit欧拉角转四元数

    使用欧拉角 使用欧拉角会造成万向锁,转成四元数就没有问题了

  • Unity-万向节死锁(Gimbal Lock)问题总结

    一、欧拉角 1.1 欧拉角定义 Unity API中对Transform.eulerAngles的定义是,本身是V...

  • VR-四元素、欧拉角转换条件

    转自欧拉角细节/旋转顺序/内旋外旋[https://zhuanlan.zhihu.com/p/85108850] ...

  • Cocos 3.x 四元数 rotateAroundLocal

    一、欧拉角 如何通俗地解释欧拉角?之后为何要引入四元数?[https://www.zhihu.com/questi...

  • 相机跟随

    相机前向:front,由欧拉角计算,方向为(x,y,z)欧拉角:侧滚角、俯仰角、偏航角sin pitch =》yc...

  • 计算机图形学-欧拉角

    欧拉角(Euler angles) 什么是欧拉角:用来表示物体旋转用的一种方法 介绍如下图:xyz 是原始坐标轴(...

网友评论

      本文标题:[VR]欧拉角

      本文链接:https://www.haomeiwen.com/subject/mnowvttx.html