2. 机器臂基础

工业机器人的本质是一台由多个刚体连杆通过关节串联而成的空间运动装置。要让机械臂精确完成视觉引导抓取,首先必须建立一套统一的数学语言来描述“机器人末端在哪里”“工件在哪里”“相机看到的点对应机器人哪个坐标”。本章围绕工业机器人运动学的基本框架、坐标系定义以及位姿的三种数学表示方法展开,为后续手眼标定奠定严格的空间变换基础。

工业机器人空间描述与位姿表示体系 工业机器人本体 6自由度串联结构 关节角 θ₁~θ₆ 连杆参数 aᵢ, αᵢ, dᵢ 正运动学 关节角 → 末端位姿 逆运动学 末端位姿 → 关节角 基坐标系 {B} 机器人底座原点 末端坐标系 {E} 法兰盘中心/工具 旋转矩阵 R 3×3 正交矩阵 欧拉角 (α,β,γ) 绕轴旋转序列 四元数 q (w, x, y, z) 齐次变换矩阵 T = [R t; 0 1] 统一描述旋转 + 平移,用于坐标系间位姿变换 视觉引导抓取核心链路 相机坐标系 → 基坐标系 → 末端坐标系 → 工件坐标系

3.1 工业机器人运动学基础

工业机器人运动学研究的是关节空间与笛卡尔空间之间的映射关系。关节空间由各关节的旋转角度或平移量构成,而笛卡尔空间描述的是机器人末端执行器在三维空间中的位置和姿态。正运动学(Forward Kinematics)已知各关节角,求解末端位姿;逆运动学(Inverse Kinematics)则相反,已知期望的末端位姿,反解各关节角。

对于六轴串联机器人,正运动学通常采用Denavit-Hartenberg(D-H)参数法建模。每个连杆用四个参数描述:连杆长度 aᵢ、连杆扭转角 αᵢ、关节距离 dᵢ、关节角 θᵢ。相邻连杆之间的齐次变换矩阵为:

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

将六个连杆变换矩阵依次相乘,即可得到末端坐标系相对于基坐标系的位姿矩阵 T₆ = T₁·T₂·T₃·T₄·T₅·T₆。逆运动学则更为复杂,通常存在多组解,需要根据关节限位、避障和运动平滑性进行最优解选择。

核心要点:正运动学是唯一确定的映射,而逆运动学可能存在 0 组、1 组或多组解。在实际视觉引导抓取中,相机给出的目标位姿必须经过逆运动学求解,若目标点超出机器人工作空间或处于奇异位形,则无法完成抓取。

3.2 机器人坐标系体系

在视觉引导抓取系统中,至少涉及以下四个关键坐标系:

坐标系 原点位置 用途
基坐标系 {B} 机器人底座安装面中心 全局参考,所有坐标最终统一到此系
末端坐标系 {E} 法兰盘中心 描述工具安装位置与姿态
工具坐标系 {T} 夹爪/吸盘末端 实际执行抓取动作的参考点
相机坐标系 {C} 相机光心 视觉测量结果的原始参考系

手眼标定的本质就是求解相机坐标系与机器人坐标系之间的固定变换关系。根据相机安装方式分为两种:眼在手上(Eye-in-Hand)和眼在手外(Eye-to-Hand)。前者相机固定在机械臂末端,随臂运动;后者相机固定在工作空间外部。两种方式对应的标定方程不同,但核心都是求解齐次变换矩阵 X 满足 AX = XB 或 AX = YB 的形式。

3.3 位姿表示方法

位姿(Pose)由位置(Position)和姿态(Orientation)两部分组成。位置用三维向量 t = [x, y, z]ᵀ 表示;姿态则有三种主流数学表示方法,各有优劣。

3.3.1 旋转矩阵

旋转矩阵 R 是一个 3×3 的正交矩阵,满足 RᵀR = I 且 det(R) = +1。其列向量分别表示旋转后坐标系各轴在原坐标系中的方向余弦。旋转矩阵的优点是无奇异点、组合变换方便,缺点是参数冗余(9个元素只有3个独立自由度),且不直观。

R = [r₁₁ r₁₂ r₁₃; r₂₁ r₂₂ r₂₃; r₃₁ r₃₂ r₃₃]

3.3.2 欧拉角

欧拉角将任意旋转分解为绕固定轴或动轴的三个依次旋转。工业机器人最常用的是 ZYX 欧拉角(即先绕 Z 轴转 γ,再绕新 Y 轴转 β,最后绕新 X 轴转 α),也称为 RPY 角(Roll-Pitch-Yaw)。欧拉角直观、参数紧凑,但存在万向锁(Gimbal Lock)问题——当 β = ±90° 时,α 和 γ 的旋转轴重合,丢失一个自由度。

3.3.3 四元数

四元数 q = w + xi + yj + zk 是超复数,其中 w 为实部,(x, y, z) 为虚部。单位四元数(||q|| = 1)可以无奇异地表示任意三维旋转。四元数避免了欧拉角的万向锁问题,且插值平滑(如 SLERP),在视觉伺服和轨迹规划中广泛使用。但四元数不如欧拉角直观,调试时难以直接判断姿态方向。

表示方法 参数数量 优点 缺点 典型应用
旋转矩阵 9 无奇异、组合方便 冗余、不直观 坐标变换计算
欧拉角 3 直观、易理解 万向锁、插值不平滑 示教器显示、人工调试
四元数 4 无奇异、插值平滑 不够直观 视觉伺服、轨迹规划

3.4 案例拆解:视觉引导抓取中的位姿变换链路

以一个典型的 Eye-to-Hand 视觉引导抓取场景为例:固定相机拍摄传送带上的工件,机器人需要抓取并放置到指定位置。整个系统的坐标变换链路如下:

  1. 相机检测:视觉算法输出工件在相机坐标系 {C} 下的位姿 TC_obj,包含旋转矩阵 RC_obj 和平移向量 tC_obj。
  2. 手眼标定:通过标定获得相机坐标系到机器人基坐标系的变换 TB_C(Eye-to-Hand 场景)。
  3. 坐标统一:将工件位姿转换到基坐标系:TB_obj = TB_C · TC_obj。
  4. 逆运动学求解:根据 TB_obj 和工具坐标系 TE_T,计算目标关节角 θ = IK(TB_obj · TT_E)。
  5. 抓取执行:机器人运动到目标位姿,闭合夹爪完成抓取。
工程经验:在实际项目中,建议将旋转矩阵作为中间计算格式,欧拉角用于人工示教和界面显示,四元数用于轨迹插补。每次坐标变换后,应验证旋转矩阵的正交性(RᵀR ≈ I)和行列式值(det(R) ≈ +1),防止数值误差累积导致位姿漂移。

3.5 常见误区与总结

误区一:混淆坐标系顺序。在计算 TB_obj = TB_C · TC_obj 时,矩阵乘法的顺序不能颠倒。齐次变换矩阵的乘法不满足交换律,左乘和右乘代表不同的变换顺序。

误区二:忽略工具坐标系。视觉给出的目标位姿通常是工件表面,而机器人控制点默认在法兰盘中心。若不进行工具坐标系标定,抓取位置会存在固定偏差。

误区三:欧拉角万向锁导致姿态突变。当使用欧拉角进行视觉引导时,若目标姿态接近万向锁位置,微小变化可能引起角度跳变,导致机器人运动异常。应优先使用四元数进行姿态插补。

误区四:旋转矩阵非正交化。多次矩阵乘法后,由于浮点误差,旋转矩阵可能偏离正交性。应定期进行正交化修正:R ← (R · Rᵀ)⁻¹/² · R。

风险提示:在视觉引导抓取系统中,位姿表示不一致是导致抓取失败的首要原因。建议在项目启动时统一约定:所有视觉输出使用四元数+平移向量格式,所有机器人通信接口使用齐次变换矩阵格式,所有人工调试界面使用欧拉角格式。并在代码层面封装三种格式的互转函数,确保全局唯一的数据流。