机器人运动学基础:位姿描述、齐次变换矩阵、旋转矩阵与欧拉角、DH参数建模

工业机器人逆运动学求解的核心,是建立从关节空间到笛卡尔空间的数学映射。在求解逆解之前,必须先牢固掌握正运动学的描述工具——位姿描述、齐次变换矩阵、旋转矩阵与欧拉角,以及DH参数建模。这些工具构成了机械臂运动学分析的“语言系统”。本章将系统梳理这些基础概念,并重点说明它们如何在逆运动学求解中被实际调用,帮助学习者建立从数学符号到物理意义的完整对应关系。

机器人运动学基础:位姿描述与坐标变换知识框架 位姿描述与齐次变换 位置矢量与姿态矩阵 位置:³p = [px, py, pz]ᵀ 姿态:旋转矩阵 R ∈ SO(3) 正交性:RᵀR = I, det(R) = +1 旋转矩阵与欧拉角 绕X/Y/Z轴基本旋转矩阵 ZYX欧拉角:R = Rz(α)Ry(β)Rx(γ) 奇异点:β = ±90°(万向锁) 齐次变换矩阵 T ∈ SE(3) T = [R p; 0 1] = 4×4矩阵 复合变换:T = T₁·T₂·T₃ 逆变换:T⁻¹ = [Rᵀ -Rᵀp; 0 1] DH参数建模 4参数:a, α, d, θ 标准DH vs 改进DH 相邻关节变换:Aᵢ = Rot(z,θ)Trans(z,d)Trans(x,a)Rot(x,α) 逆运动学求解的数学基础 已知末端位姿 T → 求解关节变量 q = [q₁, q₂, ..., qₙ] 解析法(代数/几何) | 数值法(迭代优化)

3.1 位置矢量与姿态矩阵:描述刚体在空间中的完整状态

机器人学中,一个刚体(如机械臂的连杆、末端执行器)在三维空间中的完整状态由位置和姿态两部分组成,合称为位姿。位置描述刚体上某参考点(通常取质心或坐标系原点)在参考坐标系中的坐标,用3×1的位置矢量表示;姿态描述刚体坐标系相对于参考坐标系的指向关系,用3×3的旋转矩阵表示。

设参考坐标系为{A},刚体固连坐标系为{B},则{B}相对于{A}的姿态用旋转矩阵 ARB 表示,其列向量分别为{B}的三个坐标轴在{A}中的方向余弦。旋转矩阵属于特殊正交群SO(3),满足两个关键性质:正交性(RTR = I)和行列式为+1。这两个性质保证了旋转矩阵不会引入缩放或镜像变换,是后续推导逆矩阵和复合变换的基础。

核心理解:位置矢量与旋转矩阵共同构成位姿的完整描述。在逆运动学中,我们通常已知末端执行器在基坐标系中的目标位姿(即位置和姿态),需要反解各关节变量。因此,理解旋转矩阵的物理意义——每一列代表一个坐标轴的方向余弦——是建立直观几何直觉的第一步。

3.2 旋转矩阵的构造与欧拉角表示

旋转矩阵虽然数学上完备,但9个元素之间存在6个约束条件(正交性和行列式约束),直接使用不够直观。工程中更常用欧拉角来描述姿态。欧拉角的基本思想是:任意姿态可以通过绕固定轴或动坐标轴的有限次基本旋转组合得到。常用的ZYX欧拉角(即偏航-俯仰-滚转角,yaw-pitch-roll)定义为:先绕Z轴旋转α角,再绕新Y轴旋转β角,最后绕新X轴旋转γ角。

对应的旋转矩阵为:

R = Rz(α) · Ry(β) · Rx(γ)

其中:
Rz(α) = [cosα  -sinα  0;  sinα  cosα  0;  0  0  1]
Ry(β) = [cosβ   0     sinβ;  0    1    0;  -sinβ  0  cosβ]
Rx(γ) = [1      0     0;  0  cosγ  -sinγ;  0  sinγ  cosγ]

从旋转矩阵提取欧拉角时,需要特别注意奇异点问题。当β = ±90°时,旋转矩阵出现退化,α和γ无法唯一分离,这就是著名的“万向锁”现象。在实际机器人控制中,如果末端姿态接近万向锁区域,解析法求逆解可能产生数值不稳定,此时需要切换到其他姿态表示方法(如四元数)或采用数值迭代法。

姿态表示方法参数数量优点缺点适用场景
旋转矩阵9无奇异点,复合方便冗余参数多,不直观理论推导、坐标变换
欧拉角(ZYX)3直观,物理意义明确存在万向锁奇异人机交互、姿态指令
四元数4无奇异点,插值平滑不够直观姿态插值、滤波、控制
工程警示:在编写逆解程序时,务必检查从旋转矩阵提取欧拉角的函数是否处理了奇异情况。许多开源库(如Eigen、ROS的tf库)默认返回的欧拉角在奇异点附近会产生跳变,导致关节角指令突变,引发机械臂振动甚至安全事故。

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

为了将旋转和平移统一在一个矩阵运算中,机器人学采用4×4的齐次变换矩阵。其形式为:

T = [R  p;  0  1]  =  [r11 r12 r13 px;
                         r21 r22 r23 py;
                         r31 r32 r33 pz;
                         0   0   0   1]

其中R为3×3旋转矩阵,p为3×1位置矢量。齐次变换矩阵属于特殊欧氏群SE(3),其逆变换具有简洁形式:

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

这一性质在逆运动学中极为重要——当我们需要将某点从末端坐标系变换回基坐标系时,直接使用逆矩阵即可,无需重新构建变换。

齐次变换的复合运算遵循矩阵乘法顺序:T = T₁ · T₂ · T₃ 表示先进行T₁变换,再在T₁的结果上进行T₂变换,最后进行T₃变换。注意矩阵乘法不满足交换律,变换顺序不可颠倒。在机械臂运动学中,从基座到末端的总变换为:

T_base_to_end = T_0_1 · T_1_2 · T_2_3 · ... · T_(n-1)_n

其中每个T_(i-1)_i表示第i个关节坐标系相对于第i-1个关节坐标系的变换。

记忆技巧:齐次变换矩阵的左上3×3块是姿态,右上3×1块是位置,左下1×3块全零,右下角为1。逆变换时,旋转矩阵转置,位置矢量变为-Rᵀp。这个结构在编程实现时可以直接套用模板,减少出错概率。

3.4 DH参数建模:从关节到坐标系的标准化流程

Denavit-Hartenberg(DH)参数法是目前工业机器人运动学建模最通用的方法。其核心思想是:在每个连杆上固连一个坐标系,通过4个参数(连杆长度a、连杆扭转角α、关节距离d、关节转角θ)描述相邻连杆之间的相对位姿关系。根据坐标系放置方式的不同,分为标准DH(SDH)和改进DH(MDH)两种约定。

标准DH的变换顺序为:绕Z轴旋转θ → 沿Z轴平移d → 沿X轴平移a → 绕X轴旋转α。对应的齐次变换矩阵为:

Aᵢ = Rot(z, θᵢ) · Trans(z, dᵢ) · Trans(x, aᵢ) · Rot(x, αᵢ)

= [cosθᵢ  -sinθᵢcosαᵢ   sinθᵢsinαᵢ   aᵢcosθᵢ;
   sinθᵢ   cosθᵢcosαᵢ  -cosθᵢsinαᵢ   aᵢsinθᵢ;
   0       sinαᵢ        cosαᵢ        dᵢ;
   0       0            0            1]

DH参数建模的操作流程如下:

  1. 定义关节轴:确定每个关节的旋转轴或移动轴方向,通常沿Z轴方向。
  2. 建立连杆坐标系:从基座开始,依次为每个连杆建立坐标系{i},使Zi轴沿关节轴i+1方向,Xi轴沿相邻Z轴的公垂线方向。
  3. 确定DH参数:根据坐标系间的几何关系,逐一确定ai、αi、di、θi四个参数。
  4. 写出变换矩阵:将参数代入上述Aᵢ矩阵,得到相邻坐标系的变换关系。
  5. 计算正运动学:将所有Aᵢ依次相乘,得到末端相对于基座的总变换矩阵。
DH参数物理含义关节变量典型值范围
ai(连杆长度)Zi-1轴到Zi轴沿Xi轴的距离固定(常数)0.1~1.5 m
αi(连杆扭转角)Zi-1轴到Zi轴绕Xi轴的转角固定(常数)-90°~90°
di(关节距离)Xi-1轴到Xi轴沿Zi-1轴的距离移动关节时为变量0~1.0 m
θi(关节转角)Xi-1轴到Xi轴绕Zi-1轴的转角旋转关节时为变量-180°~180°
标准DH与改进DH的区别:标准DH将坐标系{i}固连在连杆i的远端(关节i+1处),变换顺序为绕Zi-1旋转θi、沿Zi-1平移di、沿Xi平移ai、绕Xi旋转αi;改进DH将坐标系{i}固连在连杆i的近端(关节i处),变换顺序为绕Xi-1旋转αi-1、沿Xi-1平移ai-1、绕Zi旋转θi、沿Zi平移di。两种约定在参数定义和坐标系放置上存在差异,混用会导致严重的建模错误。

3.5 案例拆解:六轴关节机器人的DH建模与正运动学验证

以典型的六轴串联关节机器人(如ABB IRB 120或KUKA KR6)为例,演示DH参数建模的完整流程。该机器人具有6个旋转关节,前3个关节决定末端位置,后3个关节决定末端姿态(腕部)。

背景与约束:机器人基座固定于地面,各关节运动范围有限制(如J1: ±165°, J2: +90°~-110°, J3: +70°~-110°等)。目标是通过DH参数建立正运动学模型,并验证末端位姿计算的正确性。

DH参数表(标准DH约定):

关节iai (mm)αi (°)di (mm)θi (°)
10-90290θ1
227000θ2-90
370-900θ3
4090302θ4
50-900θ5
60072θ6

操作步骤:

  1. 根据DH参数表,依次写出每个关节的变换矩阵A1~A6。
  2. 计算总变换矩阵 T = A1·A2·A3·A4·A5·A6。
  3. 选取一组已知关节角(如零位:θ1=0°, θ2=90°, θ3=0°, θ4=0°, θ5=0°, θ6=0°),代入计算末端位置和姿态。
  4. 与机器人厂家提供的零位标定数据对比,验证模型正确性。

结果对比:在零位状态下,计算得到的末端位置应为(270, 0, 664)mm(假设基座坐标系原点在J1轴线与基座底面交点),姿态矩阵为单位阵。若计算结果与标定值偏差超过0.1mm,说明DH参数或坐标系定义有误,需要逐项检查。

常见误区:① 将标准DH与改进DH的参数混用,导致变换矩阵错误;② 忽略关节角偏移量(如θ2-90°中的-90°),导致零位姿态不对;③ 坐标系Z轴方向定义不一致,导致旋转方向相反;④ 忘记考虑减速比或传动误差,导致理论模型与实际运动不一致。

复盘经验:在完成DH建模后,建议至少验证三个特殊位姿:零位、某单关节旋转90°、末端指向特定方向。通过对比理论计算与实测数据,可以快速定位建模错误。此外,在编写逆解程序时,正运动学模型是验证逆解正确性的“金标准”——将逆解得到的关节角代入正运动学,应能还原目标位姿。

3.6 从正运动学到逆运动学的桥梁

逆运动学求解的本质是:已知末端位姿矩阵Ttarget,求解满足 Ttarget = f(q) 的关节变量q。其中f(q)就是通过DH参数建立的正运动学函数。因此,DH参数建模的质量直接影响逆解的精度和效率。

在解析法逆解中,通常利用齐次变换矩阵的特定元素来分离变量。例如,对于六轴机器人,可以通过矩阵方程两端的元素对应关系,先解出θ1,再逐步解出θ2、θ3等。这一过程高度依赖DH参数的结构——如果DH参数选择得当(如使多个ai=0或αi=±90°),可以显著简化代数运算。

对于无法解析求解的机器人构型(如存在偏置的腕部),则需要采用数值迭代法(如雅可比伪逆法、牛顿-拉夫森法)。此时,正运动学模型和雅可比矩阵的解析表达式是数值求解的基础。

学习建议:在动手编写逆解代码之前,务必先用符号计算工具(如MATLAB Symbolic、SymPy)推导正运动学表达式,并验证其正确性。一个经过验证的正运动学模型,是后续所有逆解算法调试的“锚点”。

3.7 本章小结与常见误区复盘

本章建立了机器人运动学描述的核心数学框架。位姿描述提供了位置和姿态的完整表达;旋转矩阵和欧拉角给出了姿态的两种等价表示,并揭示了奇异点问题;齐次变换矩阵统一了旋转和平移,为复合变换提供了简洁的矩阵运算工具;DH参数建模则将机械臂的几何结构转化为标准化的参数表,为计算机编程实现提供了清晰的流程。

在实际工程应用中,以下误区需要特别警惕:

  • 坐标系定义混乱:不同厂家、不同文献可能采用不同的坐标系约定(如基座坐标系原点位置、Z轴方向),在联合调试时必须统一。
  • 旋转顺序错误:欧拉角旋转顺序不同,得到的姿态矩阵不同。ZYX与XYZ、固定轴与动轴之间的转换需要严格区分。
  • 忽略奇异点:在逆解算法中未检测万向锁区域,导致关节角跳变或数值发散。
  • DH参数单位不一致:长度单位(mm vs m)和角度单位(度 vs 弧度)混用,是编程中最常见的低级错误。

掌握本章内容后,学习者应能够独立完成任意串联机械臂的DH建模、正运动学计算,并理解逆运动学求解所需的数学基础。下一阶段将在此基础上,深入探讨逆运动学的解析解法与数值解法。