1. MOTOMAN机器人视觉抓取系统总览

视觉抓取并不是“给机器人装一只摄像头”这么简单。它是一套把成像、标定、识别、位姿计算、坐标变换、运动规划、抓取执行与结果校验串成闭环的工程系统。MOTOMAN(安川)机器人常见的视觉抓取方案,通常由机器人本体与控制器、视觉传感器、上位机或视觉控制器、通信链路、末端执行器以及工件与工装共同构成。课程的目标,是让读者能够独立完成从场景评估、相机选型与标定,到手眼关系建立、抓取位姿生成、通信联调与节拍优化的完整实施过程,而不是停留在调用某个视觉函数的层面。

系统由哪些部分组成

从信号与数据流的角度看,一套典型的 MOTOMAN 视觉抓取系统可以分成五层:

  • 感知层:2D 相机、3D 相机或激光轮廓仪,负责把工件表面信息转换为图像或点云。常见输出为灰度图、深度图或有序点云。
  • 计算层:上位机(如工控机)或智能相机,运行标定、模板匹配、点云分割、位姿估计算法,输出工件在相机坐标系下的位姿。
  • 变换层:通过手眼标定矩阵,把相机坐标系下的位姿转换到机器人基坐标系或工具坐标系,得到机器人可执行的抓取目标位姿。
  • 执行层:MOTOMAN 控制器接收目标位姿,完成逆解、轨迹规划与伺服控制,驱动本体到达抓取点。
  • 执行末端与反馈层:夹爪、吸盘或电磁铁完成抓取,并通过 I/O、力觉或视觉复检判断抓取是否成功。

这五层之间不是简单的串联,而是存在明确的接口约定:相机内参决定像素与物理尺寸的换算关系,手眼矩阵决定相机与机器人的空间关系,通信协议决定位姿数据如何被控制器理解。任何一层出错,最终都会表现为“机器人抓偏了”或“抓不到”。

MOTOMAN 视觉抓取系统数据流与坐标变换链 感知层 2D/3D 相机 灰度图 / 深度图 / 点云 相机坐标系 {C} 计算层 标定 / 匹配 / 分割 位姿估计 输出 T_C_obj 变换层 手眼矩阵 T_B_C 基坐标 → 抓取位姿 输出 T_B_grasp 执行层 MOTOMAN 控制器 逆解 / 轨迹规划 伺服驱动 末端执行器 夹爪 / 吸盘 工具坐标系 {T} 工件与工装 定位面 / 料框 / 输送线 物体坐标系 {O} 抓取结果反馈:成功 / 失败 / 重定位 坐标变换链: T_B_grasp = T_B_C · T_C_obj · T_obj_grasp 其中 T_B_C 由手眼标定获得,T_C_obj 由视觉算法输出,T_obj_grasp 由抓取策略决定

典型应用场景与选型差异

不同场景对视觉系统的要求差异很大。以常见的三类任务为例:

场景 典型工件 视觉方案 关键指标
平面分拣 纸盒、标签、扁平零件 2D 相机 + 模板匹配 识别率、节拍、光照稳定性
料框抓取 轴类、齿轮、铸件 3D 相机 + 点云分割 点云完整度、遮挡处理、抓取姿态
高精度装配 连接器、精密轴孔 高分辨率相机 + 亚像素定位 重复精度、标定误差、热漂移

选型时不能只看相机分辨率。以料框抓取为例,若工件最小特征为 5 mm,视野为 800 mm × 600 mm,则理论上至少需要 800/5 = 160 像素覆盖宽度,考虑 3~5 倍余量,实际常选 1280 或 1920 像素宽度的相机。但真正决定成败的往往是点云质量、遮挡比例和抓取姿态的可达性,而不是单纯的像素数。

工程实施流程

一个可落地的视觉抓取项目,通常按以下顺序推进,每一步都有明确的输入与输出:

  1. 场景评估:确认工件类型、来料方式、节拍要求、精度要求和现场光照条件,输出需求规格。
  2. 相机与镜头选型:根据视野、精度、工作距离和安装空间,确定相机分辨率、镜头焦距和光源方案。
  3. 手眼标定:确定相机与机器人的相对关系。眼在手外(Eye-to-Hand)时标定 T_B_C;眼在手上(Eye-in-Hand)时标定 T_T_C。
  4. 视觉算法开发:完成图像预处理、模板匹配或点云分割、位姿估计,输出 T_C_obj。
  5. 坐标变换与抓取策略:把 T_C_obj 转换到机器人基坐标系,结合夹爪尺寸和工件形状生成抓取位姿。
  6. 通信联调:通过 EtherNet/IP、TCP/IP 或 I/O 与 MOTOMAN 控制器交换位姿和状态信号。
  7. 节拍与稳定性优化:调整曝光、滤波、匹配参数和运动速度,验证连续运行下的成功率。
  8. 结果校验与异常处理:通过视觉复检、力觉或 I/O 反馈判断抓取结果,定义失败重试策略。
手眼标定的精度直接决定最终抓取精度。以 Eye-to-Hand 为例,标定误差 0.5 mm 时,若相机到工件距离为 600 mm,机器人抓取点可能产生接近 1 mm 的偏差。因此标定板应覆盖整个工作视野,标定点不少于 15 组,并尽量分布在视野边缘和中心。

一个可参考的工程参数示例

假设某 MOTOMAN 六轴机器人配合 Eye-to-Hand 2D 相机完成平面工件抓取,可参考以下示例参数(属于合理假设,非实测数据):

相机分辨率:2448 × 2048
镜头焦距:12 mm
工作距离:约 650 mm
视野范围:约 500 mm × 420 mm
像素当量:约 0.20 mm/pixel
标定方式:九点标定 + 手眼矩阵
通信方式:TCP/IP,位姿以 mm + 四元数发送
抓取节拍目标:≤ 3.5 s/件
允许定位误差:±0.5 mm

在这个示例中,像素当量 0.20 mm/pixel 意味着一个像素对应约 0.2 mm 的实际距离。若视觉算法能稳定定位到 ±2 像素,则理论定位误差约为 ±0.4 mm,加上标定误差和机器人重复定位误差,最终误差可能接近 ±0.8 mm。因此,若工件要求 ±0.5 mm,就需要提高相机分辨率、缩小视野或改用更高精度的标定方法。

视觉抓取系统中最容易被忽视的是坐标系一致性。相机坐标系、机器人基坐标系、工具坐标系和工件坐标系之间的正负方向、旋转顺序必须统一约定。例如,若相机输出的角度以逆时针为正,而机器人控制器以顺时针为正,抓取姿态就会反向。建议在项目初期就用一个已知姿态的标定块验证整条变换链。

本章后续内容将围绕上述流程逐层展开:先讲相机与镜头如何选,再讲手眼标定如何做,然后进入视觉算法、坐标变换、通信配置和异常处理。读者在学习过程中,应始终把“数据从哪来、经过什么变换、最终送到哪里”作为主线,这样才能在出现抓取偏差时快速定位问题所在。