欧拉角内旋外旋对应的旋转矩阵顺序为什么是反的(内旋的旋转矩阵链式乘法推导)

欧拉角内旋外旋对应的旋转矩阵顺序为什么是反的(内旋的旋转矩阵链式乘法推导)

之前提到过,欧拉角内旋与外旋对应的旋转矩阵的顺序是反的,这篇文章介绍原因。

推导

首先我们定义一些变量,方便后边进行描述:

  • (original)P : 原始坐标系下的 P 点坐标;
  • (original)RA : 原始坐标系到 A 坐标系的旋转矩阵;

下面从一个例子引入:

将原坐标系及其中一点 (original)P1 =(1,0,0)T 绕 Z 轴旋转 45°,得到点在原坐标系下的新位置 (original)P2 ,同时得到新的坐标系 A,以及 (original)P2 在坐标系 A 中的坐标位置 (A)P2,具体如下图所示

旋转示例

旋转后的 P 点在 A 坐标系中表示为 (A)P2,坐标 (1,0,0)T与原坐标系中旋转前的 P 点 (original)P1 的坐标(1,0,0)T相同,如果我们用同样的旋转矩阵 (original)RA 乘以 (A)P2 =(1,0,0)T, 我们得到的结果与 (original)P2 相同,也就是得到了这个点在原坐标系下旋转后的坐标,这个很关键,后边推导会利用这一点。

我们可以通过下边这张图总结一下

旋转示例

  • 左边的箭头:在原坐标系下,使用旋转矩阵 (original)RA 将点 (original)P1 旋转到了 (original)P2
  • 右边的箭头:对于坐标系 A 中的一个点 (A)P2,我们可以把他的坐标转换成原坐标系下的位置,方法就是用得到这个点所在坐标系的那个矩阵(original)RA 去乘以这个坐标,也就是在对他做同样的旋转变换,即:

(original)P2 = (original)RA * (A)P2

有了上边的基础,我们就可以看下多次旋转的链式乘法的推导了,下面是多次旋转的例子:

我们先绕 Z 轴旋转 45°,得到坐标系 A, 再绕新的坐标系的 Z 轴继续旋转 45°,得到坐标系 B,如下图所示:

旋转示例

同样的,可以用下边这张图总结一下:

旋转示例

我们把一个原始坐标系下的点 P 经过两次旋转后得到 B 坐标系下的该点坐标 BP3 = (1, 0, 0)T,这个点的坐标与原坐标系下原始点 (original)P1 的坐标一样,我们使用 A 坐标系 到 B 坐标系的变换矩阵去乘它,就得到了 A 坐标系下该点的坐标 AP3,在使用 (original)RA 乘以他,就得到了原始坐标系下该点的坐标值,过程如下图所示:

旋转示例

这就是为什么内旋时,旋转矩阵要倒着写的原因了。

参考
  1. https://dominicplein.medium.com/extrinsic-intrinsic-rotation-do-i-multiply-from-right-or-left-357c38c1abfd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值