三维直角坐标系旋转相关问题-欧拉旋转角与旋转矩阵的关系

欧拉角定义:

在刚体运动学中常用欧拉角作为刚体绕固定轴旋转的描述。引入的三个角度(α,β,γ)

欧拉旋转可以通过一定的顺序组合来实现,目前组合方式一共分为24种方案,统一被称为转角排列设定法,12种称为固定角,另外12种为欧拉设定法,本文重点讲解一种目前流行的欧拉设定方式:Z-Y-X欧拉旋转,如果对其他的方法感兴趣,后期我再单独更新。

Z-Y-X欧拉角:把坐标{A}和坐标{B}重合,把{B}绕Z旋转α角度,{B}再绕Y旋转β角度,最后{B}再绕X旋转γ角度,这种表示的方法,每次都是绕着运动{B}坐标的各个轴进行运动,而不是绕{A}固定轴。

欧拉角转化为旋转矩阵:

任何旋转可以通过绕着三个轴分别旋转三个角度得到,组合起来就是一个旋转矩阵。以下分别是绕着Z-Y-X 轴旋转的三个旋转矩阵。

综合上述即可得到{B}相对于{A}得最终旋转姿态(Z-Y-X):

万向锁问题

在使用欧拉角表示旋转时,可能会遇到万向锁(gimbal lock)问题

【 关于死锁问题的详细介绍可以参考如下文章:有了欧拉角,为什么还要引入四元数?欧拉旋转方式与万向节死锁问题-CSDN博客

当两个旋转轴重合时,物体的旋转自由度会降低,导致无法表示一些旋转。这种情况下,可以通过调整欧拉角序列或使用其他表示旋转的方法(如四元数)来解决。

我们也可以以下公式来证明,

若绕X 旋转角度为90度,则上式变为:

此时,旋转自由度变为2。

欧拉角与四元数之间的转换

一个旋转对应的四元数的表示是唯一的,但对应的欧拉角会因定义的不同而不同,因此在转换时一定要弄清楚自己的目标欧拉角是如何定义的。

欧拉角的转换代码可以参考:C++实现四元数和欧拉角之间的相互转化_c++实现四元数转欧拉角-CSDN博客

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

驽马匠人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值