3. UR协作机器人坐标系与运动学基础

要让UR协作机器人完成柔性装配,第一步不是写程序,而是把“机器人在哪里、工具指向哪里、工件在哪里”用统一的数学语言描述清楚。UR控制器内部始终在做一件事:把用户给出的目标位姿,换算成六个关节的角度,再驱动伺服电机运动。理解这套换算所依赖的坐标系与运动学概念,是后续标定、编程和排障的基础。

一、四类坐标系及其作用

UR系统中与装配任务直接相关的坐标系主要有四个,它们构成一条从“机器人本体”到“作业对象”的参照链:

  • 基坐标系(Base):原点位于机器人底座安装面中心,Z轴垂直向上,X轴指向底座电缆接口方向(UR约定)。它是机器人所有运动的绝对参照,关节角度与TCP位姿最终都相对基坐标系表达。
  • 工具坐标系(Tool / TCP):定义在法兰末端所装工具的工作点上,例如夹爪的抓取中心或吸盘表面中心。它决定“机器人认为自己的手在哪里”。UR通过四个参数描述TCP:相对法兰的偏移量 x、y、z 以及绕Z轴的旋转 Rx(UR默认工具姿态由法兰姿态决定,仅需标定一个旋转量)。
  • 工件坐标系(Work Object / Feature):定义在被装配工件上,例如定位销孔中心或托盘基准角。它让程序可以“相对工件”编程,当工件位置有微小偏移时,只需修正工件坐标系,而不必重写所有路径点。
  • 用户坐标系(User Frame):常与工件坐标系配合使用,用于把整个工作台或工装作为一个整体参照,便于多工位切换。

四者的关系可以概括为:基坐标系是“大地”,工具坐标系是“手”,工件坐标系是“目标”,用户坐标系是“工位”。任何一条运动指令,本质上都是在这几个坐标系之间做变换。

UR协作机器人坐标系参照链 基坐标系 Base 原点:底座安装面中心 Z轴垂直向上 全局绝对参照 工具坐标系 TCP 原点:夹爪抓取中心 参数:x, y, z, Rx 决定“手”的位置 工件坐标系 原点:定位销孔中心 随工件位置变化 决定“目标”位置 法兰变换 工件定位 位姿表示:位置 + 姿态 位置 (x, y, z) 单位 mm TCP相对基坐标系的平移量 示例:x=320, y=-150, z=210 姿态 (Rx, Ry, Rz) 单位 ° UR采用旋转矢量表示 示例:Rx=180, Ry=0, Rz=90

二、关节空间与笛卡尔空间

UR机器人有六个旋转关节,每个关节的角度构成一个六维向量 [θ1, θ2, θ3, θ4, θ5, θ6],这组角度所在的空间称为关节空间。而TCP在基坐标系下的位置和姿态 [x, y, z, Rx, Ry, Rz] 所在的空间称为笛卡尔空间(也称任务空间)。

两者通过正运动学和逆运动学相互转换:

  • 正运动学(FK):已知六个关节角度,通过DH参数或UR官方几何模型,逐级计算各连杆变换矩阵,最终得到TCP位姿。UR控制器实时执行FK,用于在示教器上显示当前TCP坐标。
  • 逆运动学(IK):已知目标TCP位姿,反解出六个关节角度。UR的IK通常存在多组解(如肘部上/下、腕部翻转),控制器会根据关节限位、奇异位形和路径连续性选择最合适的一组。

实际编程时,movej 指令在关节空间做插补,适合大范围快速移动;movel 指令在笛卡尔空间做直线插补,适合接近、插入、拧紧等对轨迹形状有要求的装配动作。理解这一点,就能解释为什么有时 movel 会报“无法到达”而 movej 可以——因为笛卡尔直线路径上可能存在机器人无法到达的点或奇异位形。

三、位姿表示与坐标变换方法

UR使用旋转矢量(也称轴角表示)描述姿态:向量方向表示旋转轴,向量长度表示旋转角度(弧度制)。例如 Rx=180° 表示绕X轴旋转180°。这种表示比欧拉角更紧凑,且不存在万向节死锁问题,但在做复合变换时不如旋转矩阵直观。

坐标变换的核心是齐次变换矩阵。一个位姿可以写成4×4矩阵:

T = [ R  p ]
    [ 0  1 ]

其中 R 为 3×3 旋转矩阵,p 为 3×1 平移向量。

若已知工具坐标系相对法兰的变换 T_flange_tool,以及法兰相对基坐标系的变换 T_base_flange,则TCP在基坐标系下的位姿为:

T_base_tool = T_base_flange × T_flange_tool

这就是UR示教器上“TCP位置”显示值的计算来源。反过来,若希望TCP到达工件坐标系中的某一点 P_work,则需要先求出工件坐标系相对基坐标系的变换 T_base_work,再计算:

T_base_tool_target = T_base_work × T_work_tool_target

然后通过逆运动学求解关节角度。实际项目中,工件坐标系往往通过三点法标定:在工件上选取一个原点、一个X轴方向点、一个Y轴方向点,控制器据此建立工件坐标系。标定精度直接影响装配成功率,因此标定后应使用验证点检查——让TCP移动到工件上已知坐标的标记点,观察偏差是否在允许范围内(例如±0.2 mm)。

实用建议:在柔性装配中,建议将工具坐标系和工件坐标系都显式命名并记录在程序中,例如 Tool_Gripper、Work_Pallet_A。当更换夹爪或工件批次时,只需重新标定对应坐标系,无需修改路径点坐标,大幅提升程序复用性。

四、装配任务中的典型坐标变换链

以一个“从托盘取件并插入定位孔”的装配动作为例,完整的坐标变换链如下:

  1. 在工件坐标系中定义抓取点 P_pick_work 和插入点 P_insert_work。
  2. 通过 T_base_work 将两点转换到基坐标系,得到 P_pick_base 和 P_insert_base。
  3. 结合工具坐标系偏移,计算法兰需要到达的位姿 T_base_flange = T_base_tool × T_tool_flange。
  4. 调用逆运动学求解关节角,生成 movej 到接近点、movel 到抓取点、闭合夹爪、movel 提升、movel 到插入点上方、movel 插入的轨迹。

这条链中任何一环的坐标系标定误差,都会在最终插入时被放大。例如工具坐标系Z轴偏移偏差0.5 mm,在插入深度20 mm时可能导致侧向力增大,触发UR的力保护而停止。因此,在调试阶段应逐级验证:先验证基坐标系下TCP位置与示教器显示一致,再验证工件坐标系原点与工件实际基准重合,最后验证工具坐标系在抓取时的实际接触点。

注意:UR的旋转矢量表示中,角度单位为弧度,而示教器界面通常显示为度。在编写脚本或与上位机通信时,务必确认单位约定,避免出现180倍量级的姿态错误。

掌握坐标系与运动学基础后,后续的TCP标定、工件坐标系标定、路径规划和力控参数设置才有可靠的数学依据。实际调试中,建议养成“先看坐标系、再看运动指令、最后看关节限位”的排查顺序,这能解决大部分“机器人不动”或“轨迹异常”的问题。