机器人运动学基础:刚体变换、旋转矩阵、欧拉角、四元数、齐次变换矩阵及其在机器人中的应用

机器人运动学研究的核心问题是:如何描述机器人各连杆在空间中的位置与姿态,以及如何建立关节空间与末端执行器位姿之间的映射关系。无论是六轴工业机器人、SCARA机器人还是移动机械臂,其运动学求解都建立在刚体变换的数学框架之上。本章将系统梳理刚体变换的数学工具——旋转矩阵、欧拉角、四元数与齐次变换矩阵,并结合实际工程场景说明它们的适用边界与转换方法。

刚体变换数学工具关系与工程选择 刚体位姿描述 位置 + 姿态 旋转矩阵 R 3×3 正交矩阵 9个元素,6个约束 欧拉角 ZYX / RPY 等 3个角度,直观但奇异 四元数 q w + xi + yj + zk 无奇异,适合插值 齐次变换 T 4×4 矩阵 旋转+平移统一表达 工程转换路径 旋转矩阵 代数转换 欧拉角 奇异规避 四元数 归一化 齐次矩阵 应用:正运动学 FK · 逆运动学 IK · 轨迹规划 · 标定 · 视觉手眼系统

2.1 刚体变换的核心原理

刚体(Rigid Body)是指在外力作用下形状和大小保持不变的物体。在机器人学中,我们将每个连杆视为刚体,其空间位姿由位置(Position)和姿态(Orientation)两部分组成。位置用三维向量 p = [x, y, z]ᵀ 表示,姿态则描述连杆坐标系相对于参考坐标系的旋转关系。

刚体变换的本质是坐标系的映射:将一个点在一个坐标系中的坐标,转换到另一个坐标系中的坐标。这种变换必须保持两点间的距离不变(等距变换),同时保持向量的夹角不变(保角变换)。数学上,刚体变换可以分解为一次旋转和一次平移:

p_A = R_AB · p_B + t_AB

其中 p_A 和 p_B 分别是点在坐标系 {A} 和 {B} 中的坐标,R_AB 是旋转矩阵,t_AB 是平移向量。这个公式是机器人运动学中最基本的映射关系,后续所有正解、逆解计算都建立在此基础之上。

工程要点:在机器人控制器中,每个关节坐标系相对于前一坐标系的变换通常用齐次变换矩阵 T_i 表示。从基座到末端执行器的总变换为 T_0n = T_01 · T_12 · … · T_(n-1)n,这就是正运动学的基本链式法则。

2.2 旋转矩阵:姿态描述的基础工具

旋转矩阵 R 是一个 3×3 的正交矩阵,满足 RᵀR = I 且 det(R) = +1。其列向量表示旋转后坐标系各轴在原坐标系中的方向余弦。例如,绕 Z 轴旋转 θ 角的旋转矩阵为:

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

旋转矩阵的优点是唯一性:任意姿态对应唯一的旋转矩阵,不存在多义性。但其缺点是参数冗余——9个元素只有3个自由度,且数值计算中容易因累积误差导致矩阵不再正交,需要定期正交化处理。

2.2.1 旋转矩阵的构建与判断方法

在实际工程中,我们通常通过以下步骤构建旋转矩阵:

  1. 确定旋转顺序(如固定轴 X-Y-Z 或欧拉角 Z-Y-X);
  2. 分别计算各基本旋转矩阵 Rx、Ry、Rz;
  3. 按旋转顺序进行矩阵乘法(注意左乘与右乘的区别)。

判断一个矩阵是否为合法旋转矩阵,需要验证:① 矩阵是否正交(RᵀR = I);② 行列式是否为 +1;③ 各列向量是否为单位向量且两两正交。在机器人仿真中,若发现旋转矩阵退化(行列式接近0),说明发生了数值异常,需要立即排查。

2.3 欧拉角:直观但存在奇异问题

欧拉角用三个角度(α, β, γ)描述姿态,常见的有 ZYX 欧拉角(即横滚-俯仰-偏航角,Roll-Pitch-Yaw)和 ZYZ 欧拉角。其优点是直观易懂,适合人机交互和姿态显示。例如,在示教器中显示末端姿态时,通常显示为 RPY 角度。

然而,欧拉角存在两个严重缺陷:

  • 万向锁(Gimbal Lock):当第二个旋转角为 ±90° 时,第一个和第三个旋转轴重合,丢失一个自由度,导致姿态无法唯一表示。
  • 多值性:同一姿态可能对应多组欧拉角(如角度加 360° 的整数倍),在插值计算中容易产生跳变。
描述方式参数数量优点缺点适用场景
旋转矩阵9唯一、无奇异冗余、需正交化底层计算、坐标变换
欧拉角3直观、易理解万向锁、多值性示教器显示、人机交互
四元数4无奇异、适合插值不直观、需归一化轨迹规划、姿态平滑
齐次变换矩阵16统一表达旋转+平移参数多、计算量大运动学链式计算

2.4 四元数:无奇异的姿态表示

四元数由爱尔兰数学家哈密顿于1843年提出,形式为 q = w + xi + yj + zk,其中 w 为实部,(x, y, z) 为虚部。单位四元数(模长为1)可以表示三维空间中的旋转:

q = [cos(θ/2), nx·sin(θ/2), ny·sin(θ/2), nz·sin(θ/2)]

其中 [nx, ny, nz] 是旋转轴单位向量,θ 是旋转角度。四元数的主要优势在于:

  • 无奇异问题:不存在万向锁现象;
  • 计算效率高:四元数乘法比矩阵乘法少约 25% 的运算量;
  • 插值平滑:球面线性插值(SLERP)可以生成平滑的旋转过渡。
工程经验:在机器人轨迹规划中,若需要末端执行器从姿态 A 平滑过渡到姿态 B,应使用四元数 SLERP 插值,而不是欧拉角线性插值。后者会导致姿态路径出现不自然的摆动。

2.5 齐次变换矩阵:运动学计算的统一框架

齐次变换矩阵 T 是一个 4×4 矩阵,将旋转矩阵和平移向量统一表达:

T = [R  t]
    [0  1]

其中 R 为 3×3 旋转矩阵,t 为 3×1 平移向量,最后一行固定为 [0 0 0 1]。齐次变换矩阵使得连续变换可以通过矩阵乘法直接串联:T_AC = T_AB · T_BC。这一性质是机器人正运动学链式计算的数学基础。

2.5.1 齐次变换矩阵的逆变换

在机器人控制中,经常需要求逆变换。齐次变换矩阵的逆具有简洁形式:

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

这一性质在视觉伺服、手眼标定中非常实用。例如,已知相机相对于基座的变换 T_base_cam,要求基座相对于相机的变换,直接取逆即可,无需重新计算。

2.6 实战案例:六轴机器人正运动学求解

以典型的六轴串联机器人(如 ER3A-C60)为例,其 D-H 参数表如下:

关节 ia(i-1) (mm)α(i-1) (°)d(i) (mm)θ(i) (°)
100330θ1
2150-900θ2
360000θ3
4120-90630θ4
50900θ5
60-9085θ6

给定关节角 θ = [0°, 30°, -60°, 45°, 90°, 0°],求解末端位姿。计算过程如下:

  1. 根据 D-H 参数构建每个关节的齐次变换矩阵 T_i;
  2. 依次计算 T_01、T_12、T_23、T_34、T_45、T_56;
  3. 将六个矩阵连乘得到 T_06 = T_01·T_12·T_23·T_34·T_45·T_56。

最终得到的 T_06 中,左上 3×3 子矩阵为末端姿态(旋转矩阵),右上 3×1 向量为末端位置。通过该矩阵,我们可以提取出末端执行器的 XYZ 坐标和 RPY 角度,用于示教器显示或后续逆解计算。

常见误区:在构建 D-H 变换矩阵时,初学者常混淆 a、α、d、θ 四个参数的定义。请牢记:a 是沿 X 轴平移的距离,α 是绕 X 轴旋转的角度,d 是沿 Z 轴平移的距离,θ 是绕 Z 轴旋转的角度。顺序不能颠倒。

2.7 常见误区与总结复盘

在本章的学习中,以下误区需要特别警惕:

  • 旋转矩阵与欧拉角的混用:在同一个计算链路中,应统一使用一种表示方式,避免频繁转换引入误差。
  • 忽略四元数的归一化:四元数在连续乘法后模长会漂移,必须定期归一化,否则会导致姿态失真。
  • 齐次变换矩阵的连乘顺序:矩阵乘法不满足交换律,T_AB·T_BC ≠ T_BC·T_AB,必须严格按照坐标系链式关系进行。
  • 万向锁的规避:在规划末端姿态时,若发现欧拉角的第二个角度接近 ±90°,应切换为四元数表示。

总结而言,刚体变换的四种数学工具各有优劣:旋转矩阵适合底层计算,欧拉角适合人机交互,四元数适合插值与平滑,齐次变换矩阵则是运动学链式计算的统一框架。在实际机器人系统中,通常混合使用这些工具——控制器内部使用齐次变换矩阵和四元数,示教器界面显示欧拉角,而底层数学库则基于旋转矩阵运算。理解它们之间的转换关系,是掌握机器人运动学求解的关键一步。