2、机器人运动学基础:关节空间、笛卡尔空间、正逆运动学、齐次变换矩阵与坐标系变换
手眼标定的本质,是求解相机坐标系与机器人基坐标系(或末端执行器坐标系)之间的空间变换关系。而这一切的数学根基,正是机器人运动学。若运动学概念不牢,标定矩阵的推导、误差分析与补偿便无从谈起。本章将系统梳理关节空间与笛卡尔空间的映射逻辑、正逆运动学的求解路径,以及齐次变换矩阵如何统一描述旋转与平移,为后续手眼标定方程 AX = XB 的构建打下坚实的数学与物理基础。
2.1 关节空间与笛卡尔空间:机器人的两种“语言”
核心原理:机器人运动学描述的是机械臂各关节运动与末端执行器位姿之间的映射关系。关节空间(Joint Space)由所有关节变量(旋转关节为角度 θ,移动关节为位移 d)构成,维度等于机器人的自由度(DOF)。例如,六轴工业机器人(如ABB IRB 120、发那科 M-20iA)的关节空间为六维向量 q = [q₁, q₂, q₃, q₄, q₅, q₆]ᵀ。而笛卡尔空间(Cartesian Space)描述末端执行器在三维直角坐标系中的位置 (x, y, z) 与姿态(通常用欧拉角、旋转矩阵或四元数表示),是一个六维空间(3位置 + 3姿态)。
这两种空间的本质区别在于:关节空间是“执行域”,电机和驱动器直接接收关节角度指令;笛卡尔空间是“感知域”,视觉系统、力传感器和轨迹规划器都在此空间工作。手眼标定的核心任务之一,就是建立这两个空间之间的精确数学桥梁。
| 对比维度 | 关节空间 | 笛卡尔空间 |
|---|---|---|
| 变量表示 | q = [q₁, q₂, ..., qₙ]ᵀ | T = [R | t](4×4齐次矩阵) |
| 物理意义 | 各关节的旋转角度/平移量 | 末端执行器的位置与姿态 |
| 维度 | 等于机器人自由度(通常6) | 6(3位置 + 3姿态) |
| 控制方式 | 伺服电机直接执行 | 需经逆运动学转换为关节指令 |
| 视觉测量 | 不直接可见 | 相机直接测量目标位姿 |
| 标定关联 | 通过编码器读取关节角 | 通过相机获取末端/标定板位姿 |
2.2 正运动学与逆运动学:双向映射的求解逻辑
核心原理:正运动学(Forward Kinematics, FK)是已知各关节变量 q,求解末端执行器位姿 T 的过程。其数学表达为:T = f(q)。对于串联机器人,FK 通过将各连杆的齐次变换矩阵依次相乘得到:
ᴮT_E = ᴮT₁(q₁) · ¹T₂(q₂) · ²T₃(q₃) · ³T₄(q₄) · ⁴T₅(q₅) · ⁵T₆(q₆)
其中 ᵢ₋₁Tᵢ(qᵢ) 是相邻连杆间的变换矩阵,由DH参数(Denavit-Hartenberg)或改进DH参数确定。FK 具有唯一解,计算量小,实时性好。
逆运动学(Inverse Kinematics, IK)则是已知末端位姿 T,求解关节变量 q = f⁻¹(T)。IK 通常具有多解性(如六轴机器人可达同一末端位姿的关节组合可能有8组),且可能存在奇异位形(如腕部翻转导致无解)。IK 的求解方法包括解析法(适用于满足Pieper准则的机器人)和数值迭代法(如雅可比矩阵伪逆法)。
2.2.1 正运动学计算流程
- 建立DH参数表:根据机器人连杆长度 aᵢ₋₁、连杆偏距 dᵢ、连杆转角 αᵢ₋₁、关节角 θᵢ 建立参数表。
- 构造单连杆变换矩阵:每个连杆的变换矩阵为 ᵢ₋₁Tᵢ = Rot(z, θᵢ) · Trans(z, dᵢ) · Trans(x, aᵢ₋₁) · Rot(x, αᵢ₋₁)。
- 连乘得到末端位姿:将所有连杆变换矩阵依次相乘,得到 ᴮT_E。
- 提取位姿信息:从 ᴮT_E 中提取位置向量 t 和旋转矩阵 R,可进一步转换为欧拉角或四元数。
2.2.2 逆运动学求解策略
- 解析法:对于满足 Pieper 准则(三个相邻关节轴交于一点)的机器人,可将位置与姿态解耦,先求腕部位置,再求姿态。计算速度快,适合实时控制。
- 数值法:使用雅可比矩阵迭代求解,适用于任意结构机器人,但可能陷入局部最优,且计算量大。
- 多解处理:根据关节限位、避障要求、能耗最小等准则选择最优解。
2.3 齐次变换矩阵:旋转与平移的统一数学工具
核心原理:齐次变换矩阵 T 是一个 4×4 矩阵,将旋转矩阵 R(3×3)和平移向量 t(3×1)统一在一个矩阵中,使得复合变换可以简单地通过矩阵乘法实现。其形式为:
T = [R₃ₓ₃ t₃ₓ₁]
[0₁ₓ₃ 1 ]
旋转矩阵 R 是正交矩阵(RᵀR = I,det(R) = +1),其列向量表示目标坐标系各轴在参考坐标系中的方向余弦。平移向量 t 表示目标坐标系原点在参考坐标系中的位置。
齐次变换矩阵的三大核心性质:
- 复合变换:连续变换可通过矩阵乘法实现,T = T₁ · T₂ · T₃,注意乘法顺序不可交换(表示先进行 T₁ 变换,再进行 T₂,最后 T₃)。
- 逆变换:T⁻¹ = [Rᵀ -Rᵀt; 0 1],利用正交矩阵的逆等于转置的性质,计算高效。
- 坐标变换:点 p 在坐标系 {A} 中的坐标 ᴬp 与在坐标系 {B} 中的坐标 ᴮp 满足 ᴬp = ᴬT_B · ᴮp。
2.4 坐标系变换链:从基座到相机的完整链路
核心原理:在手眼标定中,我们面对的是一个多坐标系嵌套的变换链。以典型的“眼在手外”(Eye-to-Hand)构型为例,涉及以下坐标系:
- {B} 基坐标系:固定在机器人底座,是全局参考。
- {E} 末端坐标系:固定在机器人法兰盘,随机械臂运动。
- {C} 相机坐标系:固定在环境或末端上,是视觉测量的参考。
- {P} 标定板坐标系:固定在标定板上,特征点位置已知。
完整的变换链为:ᴮT_P = ᴮT_E · ᴱT_C · ᶜT_P。其中 ᴮT_E 由正运动学获得,ᶜT_P 由相机标定获得,未知量为 ᴱT_C(眼在手外)或 ᴮT_C(眼在手上)。手眼标定的本质就是求解这个未知变换矩阵。
| 变换矩阵 | 含义 | 获取方式 | 在手眼标定中的角色 |
|---|---|---|---|
| ᴮT_E | 末端在基坐标系中的位姿 | 正运动学(由关节角计算) | 已知量(每次采样不同) |
| ᶜT_P | 标定板在相机坐标系中的位姿 | 相机外参标定(PnP求解) | 已知量(每次采样不同) |
| ᴱT_C | 相机在末端坐标系中的位姿 | 待求解(手眼标定目标) | 未知常量(眼在手外) |
| ᴮT_C | 相机在基坐标系中的位姿 | 待求解(手眼标定目标) | 未知常量(眼在手上) |
2.5 案例拆解:六轴机器人正运动学计算与坐标系验证
场景与目标:某汽车零部件装配线使用一台六轴关节机器人(类似KUKA KR6),末端安装2D相机进行螺栓孔定位。工程师需要验证机器人控制器输出的末端位姿是否与视觉系统测量的标定板位姿在同一坐标系下对齐。初始现象:视觉引导抓取时,X轴方向存在约5mm的固定偏差,怀疑是坐标系变换错误。
关键输入数据:
- 机器人DH参数:a₁=150mm, a₂=600mm, a₃=120mm, d₁=400mm, d₄=650mm(简化示例)
- 当前关节角:q = [0°, 30°, -45°, 0°, 60°, 0°]
- 相机测量标定板位姿:ᶜT_P = [R_cp | t_cp],其中 t_cp = [50mm, -30mm, 800mm]
分析判断过程:
- 使用正运动学计算 ᴮT_E:将DH参数代入各连杆变换矩阵,依次连乘。
- 初步计算得到 ᴮT_E 的位置分量为 [520.4mm, 0.0mm, 850.0mm],姿态为绕Z轴旋转30°。
- 对比机器人控制器示教器显示的末端位姿,发现控制器显示位置为 [520.4mm, 0.0mm, 850.0mm],姿态角为 [0°, 0°, 30°],与计算一致。
- 进一步验证:将相机测量的标定板位姿通过 ᴮT_P = ᴮT_E · ᴱT_C · ᶜT_P 计算,与机器人直接示教标定板中心点的位姿对比。
实际操作步骤:
# 伪代码示例:正运动学计算
T_01 = dh_transform(a=0, alpha=-90°, d=400mm, theta=0°)
T_12 = dh_transform(a=150mm, alpha=0°, d=0, theta=30°)
T_23 = dh_transform(a=600mm, alpha=0°, d=0, theta=-45°)
T_34 = dh_transform(a=120mm, alpha=-90°, d=650mm, theta=0°)
T_45 = dh_transform(a=0, alpha=90°, d=0, theta=60°)
T_56 = dh_transform(a=0, alpha=0°, d=0, theta=0°)
T_0E = T_01 * T_12 * T_23 * T_34 * T_45 * T_56
print(T_0E) # 输出4×4齐次变换矩阵
结果对比与复盘:通过正运动学计算,确认机器人控制器输出的位姿与理论计算一致,排除了运动学参数错误。进一步检查发现,视觉系统输出的标定板位姿是以像素坐标系为参考,未转换为相机坐标系,导致5mm偏差。修正坐标转换后,偏差降至0.2mm以内。经验总结:在标定前,务必先独立验证正运动学计算的正确性,再检查视觉坐标系的定义。