1. 课程导入与场景认知

在开始学习KUKA机器人视觉抓取之前,先建立一幅完整的系统图景,比急着写代码或调参数更重要。视觉抓取并不是“相机看到物体、机器人去拿”这么简单,它是一条从光信号到机械动作的完整链路:相机把三维世界投影成二维图像,视觉算法从像素中估计出目标的位置与姿态,标定把“相机坐标”翻译成“机器人坐标”,机器人再根据这个坐标规划并执行抓取。任何一环出错,最终都会表现为“抓不准”或“抓不到”。本课程的目标,就是让你能独立搭建并调通这条链路。

一、KUKA机器人视觉抓取系统的典型组成

一套典型的KUKA视觉抓取工作站,可以按“感知—计算—执行—承载”四个层面来理解。感知层是相机与光源:常用的是工业面阵相机(如Basler ace系列)或3D相机(如结构光、ToF),配合环形光、条形光或背光,保证目标特征稳定。计算层是视觉处理单元,可以是工控机、KUKA控制器上的KUKA.VisionTech,或外接PC运行Halcon、OpenCV、VisionPro等库。执行层是KUKA机器人本体(如KR 6 R900、KR 10 R1100)与末端执行器(气动夹爪、真空吸盘、电磁吸盘等)。承载层则是工件、料框、传送带与工作台,它们决定了抓取的空间约束。

这些部件之间不是简单堆叠,而是通过接口和坐标系耦合在一起。相机通过GigE或USB把图像传给计算单元;计算单元通过EthernetKRL、RSI或KUKA.RobotSensorInterface把抓取位姿发给机器人;机器人通过现场总线(Profinet、EtherCAT)控制夹爪开合。理解这些接口,是后续调试时定位问题的关键。

KUKA视觉抓取系统组成与信号链路 感知层 工业相机 / 3D相机 光源(环形/条形/背光) 计算层 视觉算法(Halcon/OpenCV) 手眼标定 / 坐标变换 执行层 KUKA机器人本体 夹爪 / 吸盘 承载层 工件 / 料框 传送带 / 工作台 图像 位姿 抓取 标定:连接视觉与机器人的“翻译层” 相机内参标定 焦距 / 畸变 / 主点 手眼标定 Eye-in-Hand / Eye-to-Hand 工具/工件坐标标定 TCP / Base 关键坐标系约定(本课程统一使用): 相机坐标系 C:原点在光心,Z轴沿光轴指向场景;机器人基坐标系 B:原点在机器人底座中心;工具坐标系 T:原点在TCP。 标定的本质:求取 C→B 与 T→B 的变换矩阵,使“像素坐标 → 机器人可执行位姿”成为可计算、可复现的映射。

二、标定在抓取任务中的位置

很多初学者会把标定当成“一次性准备工作”,实际上它是贯穿整个抓取任务的核心环节。抓取任务可以拆成五步:目标检测、位姿估计、坐标变换、路径规划、执行抓取。标定直接决定第三步的准确性,同时反向约束第一步和第二步——如果相机内参不准,畸变校正就会残留误差;如果手眼关系不准,即使视觉算法把目标中心定位到亚像素级,机器人仍会偏几毫米甚至几厘米。

以Eye-to-Hand(相机固定在支架上)为例,标定要解决的是:相机看到的物体在图像中的位置,如何换算成机器人基坐标系下的位置。这需要两个变换:相机内参矩阵把像素坐标映射到相机坐标系下的归一化坐标;手眼矩阵把相机坐标系下的点变换到机器人基坐标系。两者串联,才能得到机器人能用的抓取点。Eye-in-Hand(相机装在法兰上)则多了一层工具坐标系的动态变化,标定过程更复杂,但对大范围抓取更灵活。

判断标定是否合格的实用标准:在相机视野内均匀选取9~12个点,用标定结果换算成机器人坐标后,让机器人TCP依次走到这些点上方。若各点偏差都在±0.5 mm以内(视任务精度要求可放宽到±1 mm),说明标定可用;若边缘点偏差明显大于中心点,通常是畸变校正或手眼矩阵求解有问题。

三、课程目标与学习路径

本课程围绕“能搭、能标、能抓、能调”四个能力目标展开。学完后,你应当能够:根据工件与节拍要求选配合适的相机、镜头与光源;独立完成相机内参标定和手眼标定;用KUKA机器人语言或上位机接口实现视觉引导抓取;在抓取偏差出现时,按“视觉—标定—通信—执行”的顺序定位问题。

学习路径按“认知—标定—抓取—优化”推进。前几章建立系统认知与坐标系概念;中间章节集中讲解相机模型、标定板使用、手眼标定算法与KUKA端配置;后续章节进入抓取编程、通信接口与异常处理;最后以综合案例串联全流程。每章都会给出可操作的示例参数与判断依据,但示例数据仅用于教学演示,实际项目需以现场测量和标定结果为准。

四、一个最小可运行场景示例

为了让你对后续内容有具体预期,这里给出一个教学用最小场景。假设工作台上放置一个30 mm×30 mm的方形工件,相机固定在工件正上方约500 mm处,机器人使用KR 6 R900,夹爪TCP已标定。视觉流程为:采集图像→灰度化→阈值分割→轮廓提取→计算最小外接矩形中心与角度→输出像素坐标(u, v)和角度θ。标定流程为:用9×12棋盘格标定板完成内参标定,再用至少3个不同姿态的标定点求解手眼矩阵。抓取流程为:把(u, v, θ)经标定矩阵转换为机器人基坐标系下的(x, y, θ),机器人以该点为抓取中心,沿Z轴下降至工件表面上方5 mm处闭合夹爪。

这个场景中,最值得观察的中间量是:标定板角点重投影误差(一般应小于0.3像素)、手眼标定后的验证点偏差、以及抓取时TCP实际到达位置与目标位置的差值。这三个量分别对应相机标定质量、手眼关系质量和执行精度,是后续调试时最常用的判断依据。

常见误区:把标定当成“跑一次程序就完事”。实际上,相机松动、镜头更换、机器人碰撞、工件高度变化都可能使标定失效。建议在程序中加入定期验证点检查,或在每次换型后重新验证手眼关系,而不是等到抓偏了才回头查。