2. 机器人运动学基础:刚体位姿描述、旋转矩阵、欧拉角、四元数、齐次变换矩阵及其在机器人建模中的应用
机器人运动学研究的核心问题是:机器人的关节变量与末端执行器位姿之间的映射关系。要建立这种映射,首先需要解决一个基础问题——如何在数学上精确、简洁地描述空间中一个刚体的位置和姿态。本章将系统讲解刚体位姿描述的四种主流方法(旋转矩阵、欧拉角、四元数、齐次变换矩阵),分析各自的数学本质、适用场景与转换关系,并结合六轴工业机器人与移动机器人的建模案例,展示这些工具在实际工程中的具体应用路径。
2.1 刚体位置与姿态的数学描述
2.1.1 核心原理:从点、向量到坐标系
在机器人学中,刚体(如连杆、末端执行器)的完整位姿由位置和姿态两部分构成。位置描述刚体上某参考点(通常取质心或工具中心点TCP)在参考坐标系中的三维坐标;姿态描述刚体坐标系相对于参考坐标系的旋转关系。
- 位置向量:\(^A P_{B} = [p_x, p_y, p_z]^T\),表示B坐标系原点在A坐标系中的坐标。
- 姿态描述:本质上是描述B坐标系三个坐标轴在A坐标系中的方向余弦。将B系的三个单位主向量 \(X_B, Y_B, Z_B\) 在A系中投影,构成一个3×3矩阵,即旋转矩阵 \(^A_B R\)。
旋转矩阵的列向量两两正交且模长为1,满足 \(R^T R = I\),\(\det(R) = +1\),属于特殊正交群 \(SO(3)\)。这种描述是后续所有姿态表示方法的数学基础。
2.1.2 判断方法与操作流程:选择合适的位置描述方式
工程中,选择位置描述方式主要取决于任务需求:
| 场景 | 推荐方式 | 原因 |
|---|---|---|
| 理论推导、坐标变换 | 旋转矩阵 | 运算规则清晰,可连续复合 |
| 人机交互、示教器显示 | 欧拉角(RPY) | 直观,易于理解 |
| 姿态插值、平滑过渡 | 四元数 | 无万向锁,插值均匀 |
| 运动学链式建模 | 齐次变换矩阵 | 统一处理旋转和平移 |
2.1.3 案例拆解:移动机器人底盘位姿描述
考虑一个室内移动机器人,其位姿通常简化为 \((x, y, \theta)\),即平面上的位置和朝向角。但在三维空间中,若机器人行驶在坡道上,则必须使用完整的6自由度描述。例如,当机器人爬坡时,其底盘坐标系相对于世界坐标系的旋转矩阵可分解为绕X轴的俯仰角 \(\alpha\) 和绕Z轴的偏航角 \(\theta\) 的复合旋转:
R = Rz(θ) * Rx(α)
这种分解方式使得控制器可以分别处理转向和坡度补偿,简化了运动学解算。
2.1.4 常见误区与总结
2.2 旋转矩阵与欧拉角
2.2.1 核心原理:旋转矩阵的构造与欧拉角的定义
旋转矩阵 \(R\) 的每一列是旋转后坐标系各轴在原坐标系中的方向余弦。绕固定轴X、Y、Z旋转 \(\theta\) 角的基本旋转矩阵为:
Rx(θ) = [1, 0, 0; 0, cosθ, -sinθ; 0, sinθ, cosθ]
Ry(θ) = [cosθ, 0, sinθ; 0, 1, 0; -sinθ, 0, cosθ]
Rz(θ) = [cosθ, -sinθ, 0; sinθ, cosθ, 0; 0, 0, 1]
欧拉角则是将任意旋转分解为三个依次绕轴旋转的角度。常见的ZYX欧拉角(即RPY角)表示:先绕Z轴旋转 \(\gamma\)(偏航),再绕新Y轴旋转 \(\beta\)(俯仰),最后绕新X轴旋转 \(\alpha\)(翻滚)。其复合旋转矩阵为 \(R = Rz(\gamma) \cdot Ry(\beta) \cdot Rx(\alpha)\)。
2.2.2 判断方法与操作流程:从旋转矩阵提取欧拉角
给定旋转矩阵 \(R = [r_{ij}]\),提取ZYX欧拉角的流程:
- 计算俯仰角 \(\beta = \text{atan2}(-r_{31}, \sqrt{r_{11}^2 + r_{21}^2})\)。
- 若 \(\beta \neq \pm 90^\circ\),则 \(\alpha = \text{atan2}(r_{21}, r_{11})\),\(\gamma = \text{atan2}(r_{32}, r_{33})\)。
- 若 \(\beta = 90^\circ\)(万向锁),则 \(\alpha = 0\),\(\gamma = \text{atan2}(r_{12}, r_{22})\),此时自由度丢失。
2.2.3 案例拆解:六轴机器人腕部姿态设定
在ABB IRB 120六轴机器人示教器中,操作员通过示教器设定末端姿态时,界面显示的是欧拉角(通常为ZYX或ZYZ格式)。例如设定末端绕基座Z轴旋转30°,绕新Y轴旋转-45°,绕新X轴旋转60°。控制器内部将其转换为旋转矩阵,再与位置向量组合成齐次变换矩阵,用于逆运动学求解。若操作员设定的俯仰角接近90°,示教器会发出警告,提示可能接近奇异位形,此时应调整路径点。
2.2.4 常见误区与总结
- 误区1:认为欧拉角的旋转顺序无关紧要。实际上,不同的旋转顺序产生不同的结果,必须明确约定。
- 误区2:直接对欧拉角进行线性插值。这会导致姿态路径不平滑,甚至出现反转。应使用四元数插值。
2.3 四元数:无奇异性的姿态表示
2.3.1 核心原理:四元数的数学定义与旋转表达
四元数由一个实部和三个虚部组成:\(q = w + xi + yj + zk\),其中 \(w^2 + x^2 + y^2 + z^2 = 1\) 时为单位四元数,用于表示旋转。单位四元数 \(q = [\cos(\theta/2), \sin(\theta/2) \cdot \vec{u}]\) 表示绕单位轴 \(\vec{u}\) 旋转 \(\theta\) 角。相比欧拉角,四元数避免了万向锁问题,且两个四元数之间的球面线性插值(Slerp)能生成平滑的旋转路径。
2.3.2 判断方法与操作流程:四元数与旋转矩阵的互转
从旋转矩阵 \(R\) 转换为四元数 \(q\) 的流程:
- 计算矩阵的迹 \(tr = r_{11} + r_{22} + r_{33}\)。
- 若 \(tr > 0\),则 \(w = \frac{1}{2}\sqrt{1+tr}\),\(x = \frac{r_{32} - r_{23}}{4w}\),\(y = \frac{r_{13} - r_{31}}{4w}\),\(z = \frac{r_{21} - r_{12}}{4w}\)。
- 若 \(tr \leq 0\),需根据对角线最大元素选择不同分支计算,避免除零。
反向转换时,给定单位四元数 \((w,x,y,z)\),旋转矩阵为:
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²)]
2.3.3 案例拆解:机械臂末端姿态平滑过渡
在机器人喷涂或焊接应用中,要求末端执行器在两点之间平滑改变姿态。若使用欧拉角线性插值,中间姿态可能出现剧烈抖动。某汽车焊装产线机器人从点A(姿态角 \(0^\circ, 0^\circ, 0^\circ\))运动到点B(\(90^\circ, 45^\circ, -30^\circ\)),工程师改用四元数Slerp插值后,末端姿态变化均匀,焊枪与工件表面夹角保持稳定,焊缝质量显著提升。具体实现时,先将两端欧拉角转为四元数,再按时间参数 \(t \in [0,1]\) 进行插值:
q_interp = slerp(q_A, q_B, t) = q_A * (q_A^{-1} * q_B)^t
2.3.4 常见误区与总结
2.4 齐次变换矩阵与机器人运动学建模
2.4.1 核心原理:齐次变换矩阵的构造
齐次变换矩阵 \(T\) 是一个4×4矩阵,将旋转矩阵和平移向量统一在一个矩阵中:
T = [R, P; 0, 1] = [r11 r12 r13 px; r21 r22 r23 py; r31 r32 r33 pz; 0 0 0 1]
其逆矩阵为 \(T^{-1} = [R^T, -R^T P; 0, 1]\),表示从目标坐标系到参考坐标系的逆变换。齐次变换矩阵的链式乘法 \(T_{0n} = T_{01} \cdot T_{12} \cdots T_{(n-1)n}\) 是建立机器人正运动学模型的核心工具。
2.4.2 判断方法与操作流程:建立机器人D-H模型
使用Denavit-Hartenberg(D-H)参数法建立机器人运动学模型的流程:
- 为每个关节建立坐标系,遵循D-H约定。
- 确定四个参数:\(a_i\)(连杆长度)、\(\alpha_i\)(连杆扭转角)、\(d_i\)(关节偏距)、\(\theta_i\)(关节角)。
- 构造相邻坐标系的齐次变换矩阵 \(T_i = \text{Rz}(\theta_i) \cdot \text{Tz}(d_i) \cdot \text{Tx}(a_i) \cdot \text{Rx}(\alpha_i)\)。
- 连乘所有 \(T_i\) 得到末端相对于基座的变换矩阵 \(T_{06}\)。
| 关节i | a_i (mm) | α_i (°) | d_i (mm) | θ_i (°) |
|---|---|---|---|---|
| 1 | 0 | -90 | 290 | θ1 |
| 2 | 270 | 0 | 0 | θ2 |
| 3 | 70 | -90 | 0 | θ3 |
| 4 | 0 | 90 | 302 | θ4 |
| 5 | 0 | -90 | 0 | θ5 |
| 6 | 0 | 0 | 72 | θ6 |
2.4.3 案例拆解:六轴机器人正运动学求解
以某六轴关节机器人(类似KUKA KR6)为例,已知D-H参数表如上。给定关节角 \(\theta = [0^\circ, -30^\circ, 60^\circ, 0^\circ, 45^\circ, 0^\circ]\),通过连乘六个齐次变换矩阵,可求得末端工具坐标系相对于基坐标系的位姿。计算得到的位置向量约为 \(P = [270\cos30^\circ + 70\cos(-30^\circ+60^\circ), \ldots]\),姿态矩阵为三个基本旋转的复合。该结果可直接用于验证逆运动学算法的正确性,或用于离线编程仿真。