2. 数学基础:向量、矩阵、旋转矩阵、齐次变换矩阵、刚体姿态描述(欧拉角、四元数)及其在机器人学中的应用

工业机器人运动控制的本质,是在三维空间中精确描述工具(末端执行器)的位置与姿态,并规划其随时间变化的轨迹。无论是正运动学求解、逆运动学迭代,还是速度与力控制,其底层数学语言都统一为线性代数与刚体变换理论。本章将系统梳理从基础向量运算到齐次变换矩阵的完整知识链条,并深入解析欧拉角与四元数在姿态描述中的工程取舍,为后续章节的DH参数建模与轨迹插补奠定坚实的数学基础。

机器人学数学基础:从向量到刚体姿态描述 基础数学对象 向量 · 矩阵 · 点积/叉积 旋转矩阵 R 3×3 正交 · det=+1 齐次变换矩阵 T 4×4 · 旋转+平移 姿态描述 欧拉角/四元数 机器人学核心应用 正运动学 · 逆运动学 · 速度雅可比 · 动力学建模 旋转矩阵特性 • R^T = R^{-1}(正交性) • det(R) = +1(右手系) • 组合:R = Rz·Ry·Rx • 9个元素,6个约束 • 奇异点:无(全局描述) 欧拉角特性 • 3个参数(α, β, γ) • 直观,易理解 • 万向锁问题(奇异) • 插值不平滑 • 适合人机交互显示 四元数特性 • 4个参数(w, x, y, z) • 无奇异点 • 插值平滑(SLERP) • 计算效率高 • 适合实时控制与规划

2.1 向量与矩阵:机器人学中的基本代数工具

核心原理

在机器人学中,向量用于表示三维空间中的点、位移、速度、力等物理量。一个空间点 p 在基坐标系 {A} 中的位置可表示为 p = [px, py, pz]T。向量的点积(内积)用于计算投影与夹角,叉积(外积)用于构造法向量与力矩。矩阵则用于表示线性映射,例如旋转矩阵将向量从一个坐标系变换到另一个坐标系。矩阵的乘法满足结合律但不满足交换律,这直接对应了旋转顺序的不可交换性。

判断方法或操作流程

在工程应用中,需要快速判断向量与矩阵运算的合法性:

  • 维度匹配:矩阵乘法 A(m×n) × B(n×p) 要求 A 的列数等于 B 的行数,结果维度为 m×p。
  • 叉积方向:a × b 的结果向量垂直于 a 与 b 所在平面,方向由右手定则确定。
  • 矩阵转置:对于旋转矩阵 R,RT = R-1,利用该性质可快速求逆。

案例拆解或实战场景

考虑一个六轴关节型机器人,其基座坐标系原点位于安装面中心。当我们需要计算末端工具在基座坐标系下的位置时,首先将各关节的旋转矩阵与平移向量依次相乘。例如,从关节1到关节2的变换涉及绕z轴旋转θ1,再沿新x轴平移a1。这一过程可表示为 T1 = Rot(z, θ1) × Trans(a1, 0, 0)。通过连续矩阵乘法,最终得到末端位姿矩阵 T06 = T01 × T12 × ... × T56。

常见误区或总结复盘

常见误区:混淆矩阵乘法的左乘与右乘。在固定坐标系下,每次变换左乘新矩阵;在运动坐标系(当前坐标系)下,每次变换右乘新矩阵。例如,绕固定轴先转X再转Y,与绕自身轴先转X再转Y的结果完全不同。工程中建议统一采用“右乘”规则(即后一次变换相对于前一次变换的坐标系),这与大多数机器人DH模型一致。

2.2 旋转矩阵:姿态描述的核心载体

核心原理

旋转矩阵 R ∈ SO(3) 是一个3×3正交矩阵,满足 RTR = I 且 det(R) = +1。其列向量表示旋转后坐标系各轴在原坐标系中的方向余弦。旋转矩阵的9个元素并非独立,而是受到6个正交约束的限制,因此实际自由度为3。旋转矩阵的乘法对应旋转的复合,但顺序敏感。例如,R = Rz(α) · Ry(β) · Rx(γ) 表示先绕x轴转γ,再绕新y轴转β,最后绕新z轴转α。

判断方法或操作流程

验证一个矩阵是否为合法旋转矩阵的步骤:

  1. 检查矩阵是否为方阵且维度为3×3。
  2. 计算 RTR,结果应为单位矩阵(允许微小数值误差)。
  3. 计算行列式 det(R),结果应为+1(若为-1则包含反射,非法)。
  4. 检查列向量是否两两正交且模长为1。

案例拆解或实战场景

以SCARA机器人(平面关节型)为例,其末端姿态仅涉及绕z轴的旋转。此时旋转矩阵简化为:

R = | cosθ  -sinθ  0 |
    | sinθ   cosθ  0 |
    |  0      0     1 |

在轨迹规划中,若需要从当前姿态 Rcur 插补到目标姿态 Rgoal,可先计算相对旋转 Rrel = RcurT · Rgoal,再将其分解为等效旋转轴与角度,进行线性插值。

常见误区或总结复盘

经验提醒:旋转矩阵虽然无奇异点,但直接使用9个参数进行优化或插值会引入冗余。在实时控制系统中,通常将旋转矩阵转换为轴角表示或四元数进行插值,计算完成后再转换回旋转矩阵用于坐标变换。此外,数值漂移问题需要定期正交化处理(如使用SVD分解修正)。

2.3 齐次变换矩阵:统一位置与姿态的数学工具

核心原理

齐次变换矩阵 T ∈ SE(3) 是一个4×4矩阵,其结构为:

T = | R   p |
    | 0   1 |

其中 R 为3×3旋转矩阵,p 为3×1平移向量。齐次变换矩阵将旋转与平移统一为一次矩阵乘法,使得复合变换 TAC = TAB · TBC 可以直接计算。其逆变换为 T-1 = | RT -RTp |,避免了单独求逆的复杂运算。

判断方法或操作流程

构建齐次变换矩阵的流程:

  1. 确定当前坐标系相对于参考坐标系的旋转矩阵 R。
  2. 确定当前坐标系原点在参考坐标系中的位置向量 p。
  3. 组合为4×4矩阵,最后一行固定为 [0 0 0 1]。
  4. 验证:将齐次坐标点 [x, y, z, 1]T 左乘 T,得到变换后的坐标。

案例拆解或实战场景

在视觉引导的抓取任务中,相机坐标系 {C} 与机器人基坐标系 {B} 之间的变换 TBC 通过手眼标定获得。当视觉系统检测到目标物体在相机坐标系下的位姿 TCO 时,机器人需要移动到的目标位姿为 TBO = TBC · TCO。这一计算在每帧视觉反馈中实时执行,要求矩阵乘法效率极高。实际工程中,TBC 通常固定不变,可预先计算并缓存。

常见误区或总结复盘

风险说明:齐次变换矩阵的数值精度问题。在长链路运动学计算中(如6轴机器人),连续矩阵乘法会导致数值误差累积。建议在关键节点(如每个关节变换后)进行正交化修正,或使用双精度浮点数。此外,平移向量 p 的单位必须统一(通常为毫米或米),否则会导致严重的定位偏差。

2.4 欧拉角与四元数:姿态描述的工程选择

核心原理

欧拉角使用三个角度(如ZYX顺序:偏航-俯仰-滚转)描述姿态,直观但存在万向锁问题(当β=±90°时,α与γ的旋转轴重合,丢失一个自由度)。四元数 q = w + xi + yj + zk 是四维单位向量,满足 w² + x² + y² + z² = 1。四元数无奇异点,且通过球面线性插值(SLERP)可实现平滑旋转过渡。其与旋转矩阵的转换公式为:

R = | 1-2(y²+z²)   2(xy-wz)     2(xz+wy) |
    | 2(xy+wz)     1-2(x²+z²)   2(yz-wx) |
    | 2(xz-wy)     2(yz+wx)     1-2(x²+y²) |

判断方法或操作流程

选择姿态描述方式的决策依据:

需求场景推荐方式原因
人机交互界面显示欧拉角直观,易于操作者理解
实时轨迹插补四元数无奇异点,插值平滑
运动学正解计算旋转矩阵直接用于坐标变换
姿态误差反馈控制四元数误差计算简单,避免角度缠绕

案例拆解或实战场景

在焊接机器人圆弧轨迹规划中,要求焊枪姿态连续变化。若使用欧拉角插值,当经过万向锁位置时,角度突变会导致焊枪抖动。改用四元数后,通过SLERP插值:q(t) = (q0 · sin((1-t)Ω) + q1 · sin(tΩ)) / sin(Ω),其中 Ω 为两四元数夹角。该插值保证旋转轴恒定,焊枪运动平稳。实际测试中,四元数插值的角速度波动比欧拉角插值降低约60%。

常见误区或总结复盘

总结复盘:欧拉角与四元数并非互斥,工程中常混合使用。例如,在示教器中用欧拉角显示当前姿态,在控制器内部用四元数进行插值与滤波。转换时需注意欧拉角旋转顺序的一致性(ZYX、ZYZ等),不同顺序对应不同的旋转矩阵。四元数还存在双覆盖问题(q 与 -q 表示同一姿态),在插值前需确保 q0 · q1 ≥ 0,否则取负号缩短插值路径。

2.5 数学基础在机器人学中的综合应用

核心原理

上述数学工具共同构成了机器人运动学的完整表达体系。正运动学通过齐次变换矩阵链计算末端位姿;逆运动学通过解析法或数值法求解关节角度;速度雅可比矩阵 J 将关节速度映射到末端笛卡尔速度,其推导依赖于旋转矩阵的导数;动力学建模(如牛顿-欧拉法)则大量使用向量叉积与矩阵运算。

判断方法或操作流程

在实际控制器中,数学库的调用流程通常为:

  1. 接收关节角度传感器数据(弧度制)。
  2. 计算各关节齐次变换矩阵 Ti-1,i。
  3. 连乘得到末端位姿 T0,n。
  4. 提取旋转矩阵 R,转换为四元数用于轨迹插值。
  5. 插值完成后,将四元数转回旋转矩阵,再结合平移向量生成新的 T0,n。
  6. 通过逆运动学求解关节角度,下发至伺服驱动器。

案例拆解或实战场景

以六轴机器人直线运动为例,要求末端从点A(200, 100, 300, 姿态qA) 直线运动到点B(400, 200, 500, 姿态qB)。控制器将路径细分为多个插补周期(如1ms),每个周期内位置线性插值,姿态四元数SLERP插值。然后通过逆运动学计算各关节角度,并经过雅可比矩阵进行速度前馈补偿。整个过程中,齐次变换矩阵用于将插补得到的笛卡尔位姿转换到关节空间。

常见误区或总结复盘

经验提醒:数学库的数值稳定性至关重要。建议使用双精度浮点,并定期对旋转矩阵进行正交化(如每1000次运算执行一次)。对于长时间运行的机器人,累积误差可能导致末端漂移数毫米。此外,不同品牌机器人的DH参数约定不同(标准DH vs. 修正DH),在编写通用算法时需注意坐标系定义的一致性。

本章所建立的数学框架是后续所有运动学与轨迹规划算法的基石。掌握向量、矩阵、旋转矩阵、齐次变换矩阵以及欧拉角与四元数的本质联系与工程取舍,是进行机器人运动控制开发的基本功。在实际项目中,建议建立统一的数学工具库,封装常用变换与转换函数,并配套完善的单元测试,以确保数值计算的正确性与实时性。