2. 数学基础:向量、矩阵、旋转矩阵、齐次变换矩阵、刚体姿态描述(欧拉角、四元数)及其在机器人学中的应用
工业机器人运动控制的本质,是在三维空间中精确描述工具(末端执行器)的位置与姿态,并规划其随时间变化的轨迹。无论是正运动学求解、逆运动学迭代,还是速度与力控制,其底层数学语言都统一为线性代数与刚体变换理论。本章将系统梳理从基础向量运算到齐次变换矩阵的完整知识链条,并深入解析欧拉角与四元数在姿态描述中的工程取舍,为后续章节的DH参数建模与轨迹插补奠定坚实的数学基础。
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。
常见误区或总结复盘
2.2 旋转矩阵:姿态描述的核心载体
核心原理
旋转矩阵 R ∈ SO(3) 是一个3×3正交矩阵,满足 RTR = I 且 det(R) = +1。其列向量表示旋转后坐标系各轴在原坐标系中的方向余弦。旋转矩阵的9个元素并非独立,而是受到6个正交约束的限制,因此实际自由度为3。旋转矩阵的乘法对应旋转的复合,但顺序敏感。例如,R = Rz(α) · Ry(β) · Rx(γ) 表示先绕x轴转γ,再绕新y轴转β,最后绕新z轴转α。
判断方法或操作流程
验证一个矩阵是否为合法旋转矩阵的步骤:
- 检查矩阵是否为方阵且维度为3×3。
- 计算 RTR,结果应为单位矩阵(允许微小数值误差)。
- 计算行列式 det(R),结果应为+1(若为-1则包含反射,非法)。
- 检查列向量是否两两正交且模长为1。
案例拆解或实战场景
以SCARA机器人(平面关节型)为例,其末端姿态仅涉及绕z轴的旋转。此时旋转矩阵简化为:
R = | cosθ -sinθ 0 |
| sinθ cosθ 0 |
| 0 0 1 |
在轨迹规划中,若需要从当前姿态 Rcur 插补到目标姿态 Rgoal,可先计算相对旋转 Rrel = RcurT · Rgoal,再将其分解为等效旋转轴与角度,进行线性插值。
常见误区或总结复盘
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 |,避免了单独求逆的复杂运算。
判断方法或操作流程
构建齐次变换矩阵的流程:
- 确定当前坐标系相对于参考坐标系的旋转矩阵 R。
- 确定当前坐标系原点在参考坐标系中的位置向量 p。
- 组合为4×4矩阵,最后一行固定为 [0 0 0 1]。
- 验证:将齐次坐标点 [x, y, z, 1]T 左乘 T,得到变换后的坐标。
案例拆解或实战场景
在视觉引导的抓取任务中,相机坐标系 {C} 与机器人基坐标系 {B} 之间的变换 TBC 通过手眼标定获得。当视觉系统检测到目标物体在相机坐标系下的位姿 TCO 时,机器人需要移动到的目标位姿为 TBO = TBC · TCO。这一计算在每帧视觉反馈中实时执行,要求矩阵乘法效率极高。实际工程中,TBC 通常固定不变,可预先计算并缓存。
常见误区或总结复盘
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%。
常见误区或总结复盘
2.5 数学基础在机器人学中的综合应用
核心原理
上述数学工具共同构成了机器人运动学的完整表达体系。正运动学通过齐次变换矩阵链计算末端位姿;逆运动学通过解析法或数值法求解关节角度;速度雅可比矩阵 J 将关节速度映射到末端笛卡尔速度,其推导依赖于旋转矩阵的导数;动力学建模(如牛顿-欧拉法)则大量使用向量叉积与矩阵运算。
判断方法或操作流程
在实际控制器中,数学库的调用流程通常为:
- 接收关节角度传感器数据(弧度制)。
- 计算各关节齐次变换矩阵 Ti-1,i。
- 连乘得到末端位姿 T0,n。
- 提取旋转矩阵 R,转换为四元数用于轨迹插值。
- 插值完成后,将四元数转回旋转矩阵,再结合平移向量生成新的 T0,n。
- 通过逆运动学求解关节角度,下发至伺服驱动器。
案例拆解或实战场景
以六轴机器人直线运动为例,要求末端从点A(200, 100, 300, 姿态qA) 直线运动到点B(400, 200, 500, 姿态qB)。控制器将路径细分为多个插补周期(如1ms),每个周期内位置线性插值,姿态四元数SLERP插值。然后通过逆运动学计算各关节角度,并经过雅可比矩阵进行速度前馈补偿。整个过程中,齐次变换矩阵用于将插补得到的笛卡尔位姿转换到关节空间。
常见误区或总结复盘
本章所建立的数学框架是后续所有运动学与轨迹规划算法的基石。掌握向量、矩阵、旋转矩阵、齐次变换矩阵以及欧拉角与四元数的本质联系与工程取舍,是进行机器人运动控制开发的基本功。在实际项目中,建议建立统一的数学工具库,封装常用变换与转换函数,并配套完善的单元测试,以确保数值计算的正确性与实时性。