3D数学基础——欧拉角与万向节死锁

欧拉角

      欧拉角可以看做一个坐标,此坐标都是相对于同一个初始状态即(0,0,0)即物体坐标系和世界坐标系重合,且三角度都是0,从此初试状态开始,按照定义的旋转顺序,按照静态或动态的方式,旋转指定的角度,从而得到最终的状态。

        1.欧拉角给出旋转角度的同时也要给出旋转顺序,顺序不同结果也不同

        2.根据旋转选择的坐标系,可以分为静态和动态:

             a. 静态:即绕世界坐标系三个轴的旋转,由于物体旋转过程中坐标轴保持静止,所以称为静态。

             b. 动态:即绕物体坐标系三个轴的旋转,由于物体旋转过程中坐标轴随着物体做相同的转动,所以称为动态。使用动态欧拉角会出现万向锁现象;静态欧拉角不存在万向锁的问题。

 俯仰角 pitch

航向角  yaw

 滚转角 Roll

对于坐标系E下的欧拉角(α,β,r),三个绕轴旋转的旋转矩阵绕的是什么坐标系下的轴?和以下哪个旋转矩阵是等价的?

  1. 绕坐标系E下的x轴旋转α,绕坐标系E下的y轴旋转β,绕坐标系E下的z轴旋转r,三个矩阵的复合
  2. 绕坐标系E下的x轴旋转α,绕 坐标系E在绕x轴旋转α后的新系E'下的y轴旋转β,绕 坐标系E'在绕y轴旋转β后的新系E''下的z轴旋转r,三个矩阵的复合

 

事实上两种理解都可以,当然,两种转法并不等价,下面来解释这个问题;当我们讲到坐标系E下的欧拉角(α,β,r)时,这句话是有歧义的,我们必须定义旋转顺序,因为旋转顺序会影响旋转结果。

如果假设旋转顺序是先绕x轴再y轴再z轴,x-y-z,那么这个欧拉角对应的旋转矩阵是指上述的2所表示的旋转矩阵。

如果假设旋转顺序是先绕z轴再y轴再x轴,z-y-x,那么这个欧拉角对应的旋转矩阵是指上述的1所表示的旋转矩阵(当然也可以理解是2中的旋转"绕坐标系E下的z轴旋转r,绕 坐标系E在绕z轴旋转r后的新系E'下的y轴旋转β,绕 坐标系E'在绕y轴旋转β后的新系E''下的x轴旋转α,三个矩阵的复合",这里是为了验证绕物体自身坐标系按z-y-x旋转 和 绕 世界坐标系按 x-y-z旋转是等价的);

下面来证明两种复合方式是相等的,为了方便证明先定义一些记号:

  • 绕坐标系E下的x轴旋转α的旋转矩阵为Rx,
  • 绕坐标系E下的y轴旋转β的旋转矩阵为Ry,
  • 绕坐标系E下的z轴旋转r的旋转矩阵为Rz,

 

  • 绕坐标系E下的z轴旋转r的旋转矩阵为Rr(Rr=Rz),
  • 绕 坐标系E在绕z轴旋转r后的新系E'下的y轴旋转β的旋转矩阵为Rb,
  • 绕 坐标系E'在绕y轴旋转β后的新系E''下的x轴旋转α的旋转矩阵为Ra,

 

  • 将矩阵R的逆记作R~


求证:Rx*Ry*Rz = Rr*Rb*Ra

证明:
Rr = Rz  定义就是一样的,显然相等

Rb = Rr~*Ry*Rr 要得到绕 坐标系E在绕z轴旋转r后的新系E'下的y轴旋转β的旋转矩阵为Rb,可以先应用Rr~这时可以视作在E下,然后使用E下的旋转Ry绕旧的y轴旋转,在应用Rr转回到E'

Ra = (Rr*Rb)~*Rx*(Rr*Rb) 理由同上

所以 Rr*Rb * Ra
         =Rr*Rb * (Rr*Rb)~*Rx*(Rr*Rb)
         =(Rr*Rb)* (Rr*Rb)~*Rx*(Rr*Rb)
         =Rx*(Rr*Rb)
         =Rx*(Rr*Rr~*Ry*Rr)
         =Rx*Ry*Rz =左边

这与DirectX在文档中对D3DXMatrixRotationYawPitchRoll的描述是一致的

D3DXMATRIX * D3DXMatrixRotationYawPitchRoll(
  D3DXMATRIX *pOut,
  FLOAT Yaw,     //绕y轴的转动角
  FLOAT Pitch,   //绕x轴的转动角
  FLOAT Roll     //绕z轴的转动角
);

The order of transformations is roll first, then pitch, then yaw. Relative to the object's local coordinate axis, this is equivalent to rotation around the z-axis, followed by rotation around the x-axis, followed by rotation around the y-axis.

 

万向节死锁

如视频https://www.bilibili.com/video/av9140886中所讲和上述旋转方式2的描述,在物体绕自身的坐标系旋转时,因为上一次的旋转,会导致物体自身的坐标系发生变化;欧拉角的三个轴的旋转顺序是确定的,当指定第二个旋转轴的旋转角度为90度时,在世界坐标系下观察这个旋转过程,会发现在实际旋转过程中,第一个旋转轴和第二个旋转轴正交,第三个旋转轴和第二个旋转轴正交,但第一个旋转轴和第三个旋转轴是重合的,此时三个万向节其中两个的轴发生重合时,会失去一个自由度的情形,从而导致万向节锁。

 

以上参考:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值