2. KUKA机器人基础操作与编程环境

在进入视觉抓取与手眼标定之前,必须先建立对 KUKA 机器人“怎么动、在哪动、由谁指挥”的完整认知。本节围绕四个相互咬合的基础对象展开:KRL 语言、示教器(smartPAD)、运动指令,以及坐标系与工作空间。它们不是并列的知识点,而是一条从“人下指令”到“机器人末端到达某点”的因果链:操作者在示教器上编写 KRL 程序,程序中的运动指令以某个坐标系为参照描述目标位姿,机器人再在该坐标系允许的范围内完成运动。理解这条链,后续标定得到的矩阵才有地方“落下去”。

KRL:机器人的指令语言

KRL(KUKA Robot Language)是 KUKA 机器人专用的编程语言,结构接近结构化文本。一个最小可运行的程序由程序声明、初始化、运动指令和结束语句组成。下面是一个把末端从当前位置沿工具坐标 Z 轴抬起 100 mm 的示例:

DEF pick_demo( )
  INI                        ; 初始化,复位默认状态
  PTP HOME Vel=100 % DEFAULT ; 回 HOME 点
  LIN {X 0,Y 0,Z 100,A 0,B 0,C 0} : {X 0,Y 0,Z -100,A 0,B 0,C 0}
      C_DIS                  ; 沿工具Z抬起100mm
  WAIT SEC 0.5
  PTP HOME Vel=100 % DEFAULT
END

需要重点理解三点。第一,DEF ... END 是程序框架,INI 负责把运行状态复位,缺少它常导致首次运行行为异常。第二,KRL 中的点用 {X,Y,Z,A,B,C} 表示,前三个是位置(mm),后三个是姿态(°),姿态默认按 A-B-C 欧拉角约定。第三,PTP 与 LIN 是两类运动方式,前者是关节空间点到点,后者是笛卡尔空间直线,二者对路径和奇异点的影响完全不同。

示教器:编程与手动操作的入口

smartPAD 是操作者与机器人交互的物理界面。它的关键区域包括:左侧的使能开关(三档,中间档为手动使能)、右侧的急停按钮、模式选择开关(T1/T2/AUT/EXT),以及触摸屏上的状态栏、信息窗口和软键。手动移动机器人时,必须同时满足:模式为 T1、按下使能开关到中间档、再操作轴键或笛卡尔键。松开使能或切到 AUT,手动运动立即失效,这是安全设计而非故障。

示教一个点的典型流程是:T1 模式下用轴键把机器人移到目标附近,切换到笛卡尔键微调姿态,确认状态栏显示的当前坐标系与工具号正确,然后按“点”软键记录当前位置,系统会生成一个 PTP Pn 或 LIN Pn 点。示教得到的点默认保存在 $config.dat 中,程序里通过点名引用。若发现机器人运动方向与预期相反,优先检查当前激活的坐标系和工具号,而不是怀疑程序逻辑。

运动指令:PTP、LIN、CIRC 的差别

三类运动指令决定了“怎么走”。PTP 只保证起点和终点,各轴独立插补,速度快但路径不可预测,适合大范围空走;LIN 保证末端沿直线运动,适合接近、插入、涂胶等对路径有要求的场合;CIRC 通过一个辅助点走圆弧,适合绕行或圆弧轨迹。速度参数 Vel 对 PTP 是百分比,对 LIN/CIRC 是 mm/s,混用会报错。此外 Approximate(逼近)参数让机器人不必精确停在点位上,可平滑过渡,但会牺牲定位精度——视觉抓取中抓取点通常设为精确停止,过渡点才用逼近。

坐标系与工作空间:运动的参照系

KUKA 中同时存在多个坐标系,理解它们的层级是本节的核心。世界坐标系(WORLD)是全局基准;基坐标系(BASE)描述工件或工作台相对世界的位置;工具坐标系(TOOL)描述末端工具相对法兰的位置;法兰坐标系固定在 A6 法兰上。运动指令中的点,默认是相对当前激活的 BASE 和 TOOL 解释的。也就是说,同一个 {X 100,Y 0,Z 0},在 TOOL 不同时,末端实际到达的物理位置完全不同。

工作空间则是机器人在给定安装方式和臂展下可达位置的集合。它受机械臂长、关节限位和奇异点约束。判断一个点是否可达,不能只看距离,还要看姿态是否在关节范围内。接近工作空间边界或腕部奇异点时,LIN 运动可能报 KSS01400 类错误或速度骤降,此时应改用 PTP 绕行或调整姿态。

KUKA 坐标系层级与运动指令参照关系 WORLD 世界坐标系(全局基准) BASE 基坐标系(工件/工作台) TOOL 工具坐标系(TCP) FLANGE 法兰坐标系(A6) 运动指令与路径特性 PTP 关节空间插补 路径不可预测,速度快 Vel 为百分比 LIN 笛卡尔直线插补 路径精确,适合接近/插入 Vel 为 mm/s CIRC 圆弧插补(经辅助点) 适合绕行/圆弧轨迹 Vel 为 mm/s 工作空间与可达性判断 可达工作空间边界 机器人基座 可达点 超出边界 奇异点附近 常见报错与对策 • KSS01400:接近奇异点 • 超出工作空间:改用 PTP 绕行 • 方向相反:检查 BASE/TOOL • 速度骤降:调整姿态或路径

把四者串起来:一次抓取前的准备动作

假设要在工作台上抓取一个工件,合理的准备顺序是:先用三点法或直接法标定 TOOL,得到 TCP 相对法兰的偏移;再把 BASE 设到工作台角点,使工件坐标可被程序直接引用;然后在 T1 模式下示教接近点、抓取点和抬起点,抓取点用 LIN 精确停止,抬起点用 LIN 沿工具 Z 轴退出;最后在 AUT 模式下空跑验证。若抓取点姿态与工件不匹配,优先调整 TOOL 的 A/B/C 或改用 BASE 重新定义,而不是在程序里硬改点位数值。

判断坐标系是否用对,有一个快速方法:在 T1 下把机器人移到示教点附近,观察状态栏显示的 BASE 号和 TOOL 号是否与程序头部设置一致。不一致时,同一个点位会走到完全不同的物理位置。
T1 模式下手动速度被限制在 250 mm/s 以内,这是安全限制。不要试图通过修改 $OV_PRO 绕过;在 AUT 模式下调试新程序时,应先用较低倍率空跑,确认路径无误后再提速。

本节建立的坐标系层级和运动指令语义,是后续手眼标定的直接前提。标定求解出的变换矩阵,本质上就是描述相机坐标系与机器人 BASE/TOOL 之间的相对关系;如果连 BASE 和 TOOL 的含义都不清晰,标定结果就无法正确代入抓取程序。因此建议在进入标定章节前,先在示教器上实际完成一次 TOOL 标定和一次 BASE 设定,并用手动移动验证点位解释是否正确。