3、运动学基础(一):刚体在空间中的位姿描述、旋转矩阵、齐次变换矩阵

各位同学,欢迎来到运动学基础的第一讲。

说实话,很多初学者一上来就盯着DH参数、逆解公式猛啃,结果越学越懵。为什么?因为最底层的概念没搞透——刚体在空间里到底怎么描述?

我当年刚入行时也犯过这个错。有一次调试一个六轴协作臂,明明正解算出来位置是对的,但末端就是歪的。查了两天,最后发现是旋转矩阵的乘法顺序搞反了。嗯,从那以后,我再也不敢小看这节内容了。

3.1 刚体在空间中的位姿描述

先问一个问题:一个机械臂的末端执行器,在空间里到底有几个自由度?

答案是6个。3个位置自由度(x, y, z),3个姿态自由度(绕三个轴的旋转)。这6个量合在一起,就叫做位姿。

核心概念:

  • 位置:用三维坐标 (x, y, z) 表示,描述刚体上某一点在参考坐标系中的位置。
  • 姿态:用旋转矩阵或欧拉角表示,描述刚体相对于参考坐标系的朝向。
  • 位姿 = 位置 + 姿态,完整描述刚体在空间中的状态。

我个人习惯把位姿想象成「一个坐标系」。每个刚体都固连一个坐标系,这个坐标系的原点就是位置,坐标轴的指向就是姿态。你想想看,这样理解是不是直观多了?

3.2 旋转矩阵

旋转矩阵是描述姿态最基础的工具。它是一个3×3的正交矩阵,行列式为+1。

为什么用矩阵?因为方便计算。两个坐标系之间的旋转关系,说白了就是一个线性变换。

3.2.1 绕单轴的旋转矩阵

绕x轴旋转角度θ:

R_x(θ) = [1      0       0    ]
         [0   cosθ   -sinθ   ]
         [0   sinθ    cosθ   ]

绕y轴旋转角度θ:

R_y(θ) = [ cosθ   0   sinθ   ]
         [ 0      1   0      ]
         [-sinθ   0   cosθ   ]

绕z轴旋转角度θ:

R_z(θ) = [cosθ  -sinθ   0   ]
         [sinθ   cosθ   0   ]
         [0      0      1   ]

小技巧:记不住正负号?我有个笨办法——用右手定则。大拇指指向旋转轴正方向,四指弯曲的方向就是正角度方向。绕z轴旋转时,从z轴正向往原点看,x轴转向y轴就是正方向。

3.2.2 旋转矩阵的性质

旋转矩阵有几个重要性质,我在项目中经常用到:

  • 正交性:RT = R-1,即转置等于逆。这意味着求逆运算变得极其简单。
  • 行列式为+1:保证是纯旋转,没有缩放或镜像。
  • 不满足交换律:R1·R2 ≠ R2·R1。这一点特别容易踩坑。

避坑指南:我曾经在写轨迹规划代码时,把两个旋转矩阵的乘法顺序搞反了。结果机械臂末端画出来的圆变成了椭圆。记住:先旋转的矩阵放在右边,后旋转的放在左边。即 R = R后 · R先。

3.3 齐次变换矩阵

旋转矩阵只能描述姿态,不能描述位置。那位置和姿态一起描述怎么办?用齐次变换矩阵。

齐次变换矩阵是一个4×4的矩阵:

T = [R   p]
    [0   1]

其中R是3×3旋转矩阵,p是3×1位置向量,0是1×3零向量。

为什么叫「齐次」?因为引入了第4个维度,把旋转和平移统一到了一个矩阵里。这样,一个点从一个坐标系变换到另一个坐标系,只需要一次矩阵乘法:

P' = T · P

其中P是齐次坐标 (x, y, z, 1)T。

3.3.1 齐次变换矩阵的逆

求逆也很方便:

T⁻¹ = [Rᵀ   -Rᵀ·p]
      [0     1    ]

不用去算4×4矩阵的逆,直接用这个公式就行。我在写代码时都是这么干的,省时省力。

3.4 知识体系结构图

下面我用一张SVG图来总结本章的核心逻辑:

刚体位姿描述知识体系 刚体位姿 (6自由度) 位置 (3自由度) 姿态 (3自由度) 坐标 (x, y, z) 旋转矩阵 R (3×3) 齐次变换矩阵 T (4×4) 应用:正运动学、坐标变换、轨迹规划 位姿 = 位置 + 姿态 → 齐次变换矩阵统一描述

3.5 实际应用中的注意事项

讲完了理论,说说实际中怎么用。

场景 常用方法 我的建议
描述末端位姿 齐次变换矩阵 用4×4矩阵,方便链式乘法
视觉标定 旋转矩阵 + 平移向量 注意坐标系定义要统一
轨迹插补 欧拉角或四元数 避免万向锁用四元数
逆解计算 旋转矩阵分块 利用正交性简化运算

经验之谈:写代码时,我建议把所有旋转矩阵和齐次变换矩阵封装成类。这样不容易搞混坐标系。我自己的库里就有一个Transform类,包含R和p,重载了乘法运算符,用起来特别顺手。

好了,这一讲就到这里。刚体位姿描述是运动学的基石,后面的正解、逆解、雅可比矩阵全都建立在这个基础上。把旋转矩阵和齐次变换矩阵搞透,后面的路就好走了。

本章要点回顾:

  • 位姿 = 位置 (3) + 姿态 (3) = 6自由度
  • 旋转矩阵是正交矩阵,RT = R-1
  • 齐次变换矩阵统一描述旋转和平移
  • 矩阵乘法顺序不可交换,先旋转的放右边

可可精品资料库