三维旋转矩阵 左乘和右乘分析

突然发现自己被旋转矩阵的左乘右乘给搞糊涂了,查了不少博客还是有点晕,这里自己总结一下:
本文所讨论均是基于右手坐标系,旋转也是以正方向旋转,如图所示:
右手坐标系及旋转正方向
左乘: 坐标系不动,点动,则左乘。【若绕静坐标系(世界坐标系)旋转,则左乘,也是变换矩阵乘坐标矩阵;】
右乘: 点不动,坐标系动,则右乘。【若是绕动坐标系旋转(自身建立一个坐标系),则右乘,也就是坐标矩阵乘变换矩阵】

由于三维旋转可以分解成分别绕三个轴旋转,然后其实就是二维旋转了。为了方便,这里就使用二维旋转举例。
比如绕z轴旋转 theta 角度;
左乘分析如图所示:
在这里插入图片描述
而右乘分析:
则是旋转坐标系;点逆时针旋转了theta角,其实也就是相当于坐标轴也逆时针旋转theta角。如图所示:
在这里插入图片描述
设点原坐标为 [ x , y , z ] [x,y,z] [x,y,z],旋转后的坐标为 [ x ′ , y ′ , z ′ ] [x',y',z'] [x,y,z], 设左乘旋转矩阵为 R l e f t R_{left} Rleft,右乘旋转矩阵为 R r i g h t R_{right} Rright
则:
[ x ′ y ′ z ′ ] = R l e f t ∗ [ x y z ] \begin{bmatrix}x'\\y'\\z'\end{bmatrix}={R_{left}}*\begin{bmatrix}x\\y\\z\end{bmatrix} xyz=Rleftxyz
[ x ′ y ′ z ′ ] = [ x y z ] ∗ R r i g h t \begin{bmatrix}x'&y'&z'\end{bmatrix}=\begin{bmatrix}x&y&z\end{bmatrix}*{R_{right}} [xyz]=[xyz]Rright

观察上面两图计算出来的旋转矩阵还可以得出结论, R l e f t ∗ R r i g h t = I R_{left}*{R_{right}} = I RleftRright=I,这意味这这两个矩阵是互为逆。
另外, R l e f t ( θ ) = R r i g h t ( − θ ) R_{left}(\theta) = {R_{right}} (-\theta) Rleft(θ)=Rright(θ)
【可以说,如果一个旋转矩阵左乘表示逆时针旋转 theta 角,那么将此矩阵右乘的话则表示顺时针旋转 theta 角】
左乘与右乘是可以变换的。也即是说:

R l e f t 3 ( θ ) ∗ R l e f t 2 ( θ ) ∗ R l e f t 1 ( θ ) ∗ [ x y z ] = R r i g h t 3 ( − θ ) ∗ R r i g h t 2 ( − θ ) ∗ R r i g h t 1 ( − θ ) ∗ [ x y z ] {R_{left_3}}(\theta)*{R_{left_2}}(\theta)*{R_{left_1}}(\theta)*\begin{bmatrix}x\\y\\z\end{bmatrix} = {R_{right_3}}(-\theta)*{R_{right_2}}(-\theta)*{R_{right_1}}(-\theta)*\begin{bmatrix}x\\y\\z\end{bmatrix} Rleft3(θ)Rleft2(θ)Rleft1(θ)xyz=Rright3(θ)Rright2(θ)Rright1(θ)xyz

不过建议只是用一种方法来计算旋转矩阵,以免混淆。

【如有错误,欢迎各位批评指正。】

参考博客:https://blog.csdn.net/csxiaoshui/article/details/65446125

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值