当前位置: 首页 > news >正文

深入解析:三维旋转矩阵的左乘与右乘

三维旋转矩阵的左乘与右乘

在三维旋转、机器人学、计算机图形学和视觉SLAM等领域,3x3旋转矩阵是描述刚体方向的核心数学工具。然而,一个常见且关键的困惑点在于:旋转矩阵的左乘和右乘有什么区别?理解这一区别对于正确进行坐标变换、姿态估计和运动学计算至关重要。本文将深入解析其概念、计算公式、几何含义及实际应用。

1. 基础:旋转矩阵与向量变换

一个3x3的旋转矩阵R\mathbf{R}R属于特殊正交群 SO(3),满足RTR=I\mathbf{R}^T\mathbf{R} = \mathbf{I}RTR=Idet⁡(R)=1\det(\mathbf{R}) = 1det(R)=1

向量的左乘变换(标准形式)

当我们谈论“用旋转矩阵旋转一个向量”时,通常指的是左乘。设有一个三维列向量v=[vx,vy,vz]T∈R3\mathbf{v} = [v_x, v_y, v_z]^T \in \mathbb{R}^3v=[vx,vy,vz]TR3和一个旋转矩阵R\mathbf{R}R,旋转后的向量v′\mathbf{v}'v计算公式为:

v′=Rv \mathbf{v}' = \mathbf{R} \mathbf{v}v=Rv

这是一个标准的主动变换,其几何意义是:在一个固定的世界坐标系下,将向量 v\mathbf{v}v旋转到了新的位置v′\mathbf{v}'v。向量在空间中的实际位置发生了改变,但描述它的坐标系是固定不变的。

计算示例
假设有一个绕Z轴旋转θ\thetaθ 角的矩阵 Rz(θ)\mathbf{R}_z(\theta)Rz(θ)

Rz(θ)=(cos⁡θ−sin⁡θ0sin⁡θcos⁡θ0001) \mathbf{R}_z(\theta) = \begin{pmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{pmatrix}Rz(θ)=cosθsinθ0sinθcosθ0001

旋转向量 v=[1,0,0]T\mathbf{v} = [1, 0, 0]^Tv=[1,0,0]T 的结果为:

v′=Rz(90∘)v=(0−10100001)(100)=(010) \mathbf{v}' = \mathbf{R}_z(90^\circ) \mathbf{v} = \begin{pmatrix} 0 & -1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}v=Rz(90)v=010100001100=010


2. 核心困惑点:旋转矩阵的串联与“右乘”

单纯的“向量右乘矩阵”(vR\mathbf{v} \mathbf{R}vR)在数学上是不成立的,因为维度不匹配(3x1矩阵无法右乘3x3矩阵)。“右乘”的真正含义体现在多个旋转矩阵的串联顺序上,这对应了两种截然不同的几何解释。

2.1 左乘串联:固定坐标系下的连续旋转

当我们需要进行一系列连续的旋转时,如果所有这些旋转都是相对于同一个固定的世界坐标系的轴来执行的,那么我们使用左乘串联

计算规则各个旋转矩阵的就是:最终的旋转矩阵从右到左的乘法。

Rfinal=Rn⋯R2R1 \mathbf{R}_{final} = \mathbf{R}_n \cdots \mathbf{R}_2 \mathbf{R}_1Rfinal=RnR2R1

几何意义:先执行 R1\mathbf{R}_1R1,再执行 R2\mathbf{R}_2R2,…,最后执行Rn\mathbf{R}_nRn每一次旋转的参考轴都是最初的那个固定坐标系的轴

应用示例(无人机姿态描述):
一架无人机先绕世界坐标系的Z轴偏航(Yaw)α\alphaα,再绕世界坐标系的Y轴俯仰(Pitch)β\betaβ。其总旋转矩阵为:

Rworld=Ry(β)Rz(α) \mathbf{R}_{world} = \mathbf{R}_y(\beta) \mathbf{R}_z(\alpha)Rworld=Ry(β)Rz(α)

2.2 右乘串联:局部坐标系下的连续旋转

相对于就是当连续旋转物体自身当前的、运动着的坐标系的轴来执行时,我们利用右乘串联

计算规则:最终的旋转矩阵是各个旋转矩阵的从左到右的乘法。

Rfinal=R1R2⋯Rn \mathbf{R}_{final} = \mathbf{R}_1 \mathbf{R}_2 \cdots \mathbf{R}_nRfinal=R1R2Rn

几何意义:先执行 R1\mathbf{R}_1R1,再执行 R2\mathbf{R}_2R2,…,最后执行Rn\mathbf{R}_nRn每一次旋转的参考轴,都是在上一次旋转之后得到的新的物体局部坐标系的轴

应用示例(机械臂关节运动):
一个机械臂先绕自身的基座关节Z轴旋转α\alphaα,然后绕其新的第二个关节的Y轴旋转β\betaβ。其总旋转矩阵为:

Rlocal=Rz(α)Ry(β) \mathbf{R}_{local} = \mathbf{R}_z(\alpha) \mathbf{R}_y(\beta)Rlocal=Rz(α)Ry(β)

2.3 对比实验:为何顺序如此重要?

让我们用一个具体的例子来展示其巨大差异。

  • Rz(90∘)\mathbf{R}_z(90^\circ)Rz(90): 绕Z轴旋转90度。
  • Ry(90∘)\mathbf{R}_y(90^\circ)Ry(90): 绕Y轴旋转90度。
  • 初始向量 v=[1,0,0]T\mathbf{v} = [1, 0, 0]^Tv=[1,0,0]T

固定系(左乘)
Rfixed=Ry(90∘)Rz(90∘) \mathbf{R}_{fixed} = \mathbf{R}_y(90^\circ) \mathbf{R}_z(90^\circ)Rfixed=Ry(90)Rz(90)
vfixed′=Rfixedv=(001100010)(100)=(010) \mathbf{v}'_{fixed} = \mathbf{R}_{fixed} \mathbf{v} = \begin{pmatrix} 0 & 0 & 1 \\ 1 & 0 & 0 \\ 0 & 1 & 0 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}vfixed=Rfixedv=010001100100=010

局部系(右乘)
Rlocal=Rz(90∘)Ry(90∘) \mathbf{R}_{local} = \mathbf{R}_z(90^\circ) \mathbf{R}_y(90^\circ)Rlocal=Rz(90)Ry(90)
vlocal′=Rlocalv=(0−10001−100)(100)=(00−1) \mathbf{v}'_{local} = \mathbf{R}_{local} \mathbf{v} = \begin{pmatrix} 0 & -1 & 0 \\ 0 & 0 & 1 \\ -1 & 0 & 0 \end{pmatrix} \begin{pmatrix} 1 \\ 0 \\ 0 \end{pmatrix} = \begin{pmatrix} 0 \\ 0 \\ -1 \end{pmatrix}vlocal=Rlocalv=001100010100=001

结果 (010)\begin{pmatrix} 0 \\ 1 \\ 0 \end{pmatrix}010(00−1)\begin{pmatrix} 0 \\ 0 \\ -1 \end{pmatrix}001完全不同!这清晰地证明了固定系旋转和局部系旋转是两种本质不同的物理过程。


3. 另一种视角:坐标系变换与“右乘”向量

在坐标系变换的语境下,大家确实会遇到一种形式上的“向量右乘”。

被动变换与行向量

假设旋转矩阵BAR{}^A_B\mathbf{R}BAR描述了坐标系 {B} 相对于 {A} 的姿态。我们想知道同一个向量v\mathbf{v}v在 {B} 系中的坐标Bv{}^B\mathbf{v}Bv与其在 {A} 系中的坐标Av{}^A\mathbf{v}Av之间的关系。

标准形式(列向量左乘)
Av=BAR Bv {}^A\mathbf{v} = {}^A_B\mathbf{R} \ {}^B\mathbf{v}Av=BARBv

如果我们将向量表示为行向量,并对上述公式两边取转置,利用RT=R−1\mathbf{R}^T = \mathbf{R}^{-1}RT=R1,许可得到:

Avrow=Bvrow BART {}^A\mathbf{v}_{row} = {}^B\mathbf{v}_{row} \ {}^A_B\mathbf{R}^TAvrow=BvrowBART

这个公式在形式上变成了行向量右乘旋转矩阵的转置。其几何意义被动变换改变了观察(描述)它的坐标系。就是:向量在空间中的实际位置不变,我们只


4. 实际应用与总结

左乘一致性与右乘一致性

在构建麻烦的坐标系系统(如机器人D-H模型或SLAM中的姿态图)时,必须选定并遵循一套统一的乘法规则,这被称为一致性

  • 左乘一致性:整个框架的变换推导都遵循左乘规则,变换链的串联是从右到左
  • 右乘一致性:整个系统的变换推导都遵循右乘规则,变换链的串联是从左到右

混合采用规则是许多错误的首要根源。

应用场景总结

场景推荐用法几何解释
无人机/飞船姿态控制左乘串联 (R_final = Ry * Rz)易于理解,所有旋转都相对于固定的大地坐标系。
机械臂逆运动学右乘串联 (R_final = R1 * R2)天然符合关节链结构,每个关节运动都相对于其父关节。
三维建模软件通常给出两种模式(Local/Parent),内部可能统一为一种乘法。为用户提供直观选择,但底层实现需保持一致。
坐标系变换列向量左乘 (ᴬv = ᴬ_BR * ᴮv)标准、无歧义的公式,被大多数数学库采用。

关键结论

  1. 向量旋转用左乘v′=Rv\mathbf{v}' = \mathbf{R}\mathbf{v}v=Rv是唯一标准。
  2. 固定系旋转用左乘串联R_final = R_last ... R_first
  3. 局部系旋转用右乘串联R_final = R_first ... R_last
  4. 理解本质:左乘与右乘的差异源于旋转所参考的坐标系是固定的还是运动的这一根本区别。
  5. 保持一致性:在一个项目或架构中,选定一种乘法规则并始终坚持下去。

希望这篇博客能援助你彻底理解旋转矩阵左乘与右乘的奥秘,从而在未来的工程和科研实践中游刃有余。

http://www.jsqmd.com/news/39625/

相关文章:

  • HEVC视频扩展免费下载
  • 框架架构设计师备考第41天——软件可靠性建模、管理与设计​
  • 奇怪的问题(们)
  • 序列化概念及Jackson注解实现动态JSON响应
  • 基于多模态AI技术的传统行业智能化升级路径研究——以开源AI大模型、AI智能名片与S2B2C商城小程序为例 - 实践
  • 2025热门学宠物美容师榜:黑龙江学宠物美容师/宠物美容师培训学校毛孩精致变美秘籍!
  • react-window API完全手册:参数、方法与事件全解析 - 指南
  • 2025智慧康养/智慧养老标杆机构推荐榜:教之道五星领跑 实训室建设与虚拟仿真领域 3 家公司凭实力上榜
  • 2025氮化硼陶瓷/高温绝缘体/坩埚/套管/基板/高温构件/中子吸收材料优质厂家推荐榜:福维科五星领跑,多场景制品赋能工业升级
  • 2025健康营养饮品推荐榜:惠植健活力菌仓领衔,5 家品牌凭技术与品质,重塑火麻仁肽爆爆纤维/火麻仁肽/固体饮料与燕麦/西梅/果蔬营养素饮品新生态
  • IOS抓包------Stream
  • coze 搭建能写文案导出word pdf
  • Siemens PLCSIM V18
  • 详细介绍:Wireshark:HTTP、MQTT、WebSocket 抓包详细教程
  • 《密码系统设计》第十二周预习
  • 实用指南:数据库的事务和索引
  • 一键账户接管漏洞分析:XSS与CSRF链式攻击实战
  • C++之变量与基本类型(三) - Invinc
  • 1 移动端开发概念与环境准备
  • Vue 3 完全指南:响应式原理、组合式 API 与实战优化 - 实践
  • 创建你的第一个Java文件
  • (八大排序)快速排序(递归)
  • (八大排序)冒泡排序
  • 深入解析:手写MyBatis第111弹:Spring Boot自定义注解@MybatisMapperScan注解深度解析:从注解定义到接口代理的完整实现
  • Imbalance
  • (八大排序)堆排序
  • 2025 年 11 月展厅设计公司权威推荐榜:企业展厅、校史馆、博物馆、多媒体数字及VR线上虚拟展厅设计厂家精选
  • 点赞!开幕式背后的云力量!
  • #20232329 2025-2026-1 《网络与系统攻防技术》 实验六实验报告
  • 易路AI人才罗盘:点亮组织内部的人才“星空”,让每一次人才决策都精准有据