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 绕行或调整姿态。
把四者串起来:一次抓取前的准备动作
假设要在工作台上抓取一个工件,合理的准备顺序是:先用三点法或直接法标定 TOOL,得到 TCP 相对法兰的偏移;再把 BASE 设到工作台角点,使工件坐标可被程序直接引用;然后在 T1 模式下示教接近点、抓取点和抬起点,抓取点用 LIN 精确停止,抬起点用 LIN 沿工具 Z 轴退出;最后在 AUT 模式下空跑验证。若抓取点姿态与工件不匹配,优先调整 TOOL 的 A/B/C 或改用 BASE 重新定义,而不是在程序里硬改点位数值。
$OV_PRO 绕过;在 AUT 模式下调试新程序时,应先用较低倍率空跑,确认路径无误后再提速。本节建立的坐标系层级和运动指令语义,是后续手眼标定的直接前提。标定求解出的变换矩阵,本质上就是描述相机坐标系与机器人 BASE/TOOL 之间的相对关系;如果连 BASE 和 TOOL 的含义都不清晰,标定结果就无法正确代入抓取程序。因此建议在进入标定章节前,先在示教器上实际完成一次 TOOL 标定和一次 BASE 设定,并用手动移动验证点位解释是否正确。