1. 课程导入

机器人视觉抓取是智能制造与柔性自动化中的关键使能技术,它让工业机器人不再只是按固定轨迹重复动作的“机械臂”,而是能够通过视觉感知环境、识别目标物体、计算抓取位姿并实时调整动作的“智能体”。一个完整的视觉抓取系统,通常由相机(成像单元)、光源(照明单元)、工控机(计算单元)、机器人控制器(运动单元)以及末端执行器(夹爪或吸盘)组成。理解这一系统的整体流程,是进入该领域的第一步,也是后续所有算法调试、标定优化和工程落地的基础。

机器人视觉抓取系统整体流程与核心概念 ① 感知 相机采集 / 光源控制 ② 手眼标定 相机-机器人坐标变换 ③ 目标检测 识别 / 定位 / 姿态估计 ④ 抓取规划 路径 / 姿态 / 避障 ⑤ 执行抓取 机器人运动 / 夹爪控制 视觉反馈 / 结果校验(闭环) 三大核心概念 手眼标定 Eye-in-Hand / Eye-to-Hand 求解 AX=XB 矩阵方程 精度直接影响抓取成功率 目标检测 传统CV / 深度学习 2D检测 + 6D姿态估计 输出:类别 + 位置 + 姿态 抓取规划 抓取点 / 抓取姿态 路径规划 / 碰撞检测 力控 / 柔顺控制

上图展示了视觉抓取系统的五阶段闭环流程。从感知层开始,相机采集图像数据,经过手眼标定建立像素坐标与机器人基座坐标之间的映射关系,再通过目标检测算法从图像中提取物体的类别、位置和姿态信息,随后抓取规划模块根据这些信息计算最优抓取点与机器人运动路径,最终由执行层完成抓取动作。值得注意的是,整个流程并非单向的“开环”执行,而是通过视觉反馈进行结果校验,形成闭环控制。例如,当夹爪接近目标时,可通过“手在眼上”(Eye-in-Hand)配置的相机进行二次定位,补偿运动误差或物体微小位移。

1.1 机器人视觉抓取的整体流程

一个典型的视觉抓取系统,其工作流程可以拆解为以下五个关键环节,每个环节都有其独立的输入、输出和性能指标。

1.1.1 核心原理:从图像到动作的坐标变换链

视觉抓取的本质是“将像素坐标转换为机器人可执行的关节角度”。这条坐标变换链贯穿整个系统:像素坐标系 → 图像坐标系 → 相机坐标系 → 机器人末端坐标系 → 机器人基座坐标系。其中,相机内参(焦距、畸变系数)描述像素与相机坐标系的关系,而手眼矩阵(外参)描述相机坐标系与机器人坐标系的关系。任何一环的误差都会在最终抓取位置中放大,因此标定精度是系统成败的关键。

1.1.2 操作流程:五步闭环工作法

  1. 图像采集:根据物体材质、反光特性和环境光,选择合适的光源(环形光、条形光、同轴光)和曝光参数,确保目标与背景有足够对比度。
  2. 手眼标定:通过移动机器人到多个已知位姿,采集标定板图像,求解相机与机器人之间的旋转和平移矩阵。常见方法包括Tsai两步法、张正友标定法及OpenCV的calibrateHandEye函数。
  3. 目标检测与定位:使用传统图像处理(阈值分割、边缘检测、模板匹配)或深度学习模型(YOLO、Mask R-CNN、DOPE)识别目标物体,并输出其2D包围框或6D位姿(位置+旋转)。
  4. 抓取规划:根据物体位姿、夹爪几何尺寸和机器人工作空间,计算抓取点(Grasp Pose)。对于已知CAD模型的物体,可离线预计算抓取候选集;对于未知物体,则需在线分析点云或深度图。
  5. 执行与反馈:机器人按规划路径运动至抓取点,闭合夹爪。若使用力控或视觉伺服,可在接近阶段实时调整位姿,提高抓取鲁棒性。

1.1.3 案例拆解:3C电子元件装配中的视觉抓取

以某3C工厂的PCB板元件插装工位为例。该工位需要将散乱堆叠的Micro-USB连接器(尺寸约5mm×8mm)抓取并插入PCB板对应孔位。初始方案采用固定向下相机(Eye-to-Hand),但实际运行中抓取成功率仅为82%。分析发现,问题出在以下环节:

  • 标定误差:标定板平面与工件平面存在约3mm的高度差,导致Z方向定位偏差。
  • 检测干扰:连接器金属外壳反光,在图像中产生高光区域,导致边缘检测不稳定。
  • 抓取规划:夹爪中心与连接器中心未对齐,插入时产生侧向力。

针对上述问题,工程师采取了以下措施:首先,将标定板放置在工件实际高度平面重新标定,并将标定误差控制在0.2mm以内;其次,改用偏振光源消除反光,并训练了一个轻量级YOLOv5s模型替代传统模板匹配;最后,在抓取规划中增加了夹爪中心偏移补偿。优化后,抓取成功率提升至99.2%,节拍从3.5秒缩短至2.8秒。

1.1.4 常见误区与总结

误区一:认为标定一次即可永久使用。实际上,机器人碰撞、相机松动、温度变化都会导致手眼矩阵漂移,建议每班次或每周进行快速校验。
误区二:忽略光源对检测的影响。在工业现场,环境光变化是检测失败的首要原因,必须使用主动光源并做遮光处理。
误区三:将2D检测结果直接用于3D抓取。2D包围框中心并不等于物体质心,对于堆叠物体,必须结合深度信息或3D点云。

1.2 核心概念:手眼标定、目标检测与抓取规划

这三个概念构成了视觉抓取的技术支柱,理解它们的内涵与边界,有助于后续章节的深入学习。

1.2.1 手眼标定:连接视觉与机器人的桥梁

手眼标定解决的是“相机看到的物体在哪里”与“机器人需要移动到哪里”之间的数学关系。根据相机安装位置,分为两种模式:

对比维度 Eye-in-Hand(眼在手上) Eye-to-Hand(眼在手外)
相机安装位置 固定在机器人末端法兰上 固定在工作空间上方或侧面
标定方程 AX = XB(手眼矩阵与机器人运动相关) AX = YB(需同时求解相机到基座、末端到标定板)
优点 视野随机器人移动,可近距离观察目标,精度高 视野固定,适合大范围监控,标定后无需随动
缺点 标定复杂,机器人运动可能遮挡视野 分辨率受安装距离限制,近距离精度较低
典型应用 精密装配、螺丝锁付、小零件抓取 码垛、分拣、大工件定位

标定精度通常用重投影误差(Reprojection Error)和位置误差(Position Error)两个指标衡量。对于大多数工业应用,位置误差应控制在±0.5mm以内,姿态误差应小于0.5°。

1.2.2 目标检测:从“看见”到“理解”

目标检测的任务是回答“场景中有什么物体,它们在哪里”。在视觉抓取场景中,检测算法不仅要输出2D包围框,还需要提供物体的6D位姿(3D位置+3D旋转)。当前主流方案分为两类:

  • 传统方法:基于几何特征(点云配准、边缘匹配)或模板匹配,适用于纹理少、形状规则的工业零件,计算量小,但鲁棒性差。
  • 深度学习方法:基于CNN的2D检测(YOLO系列、Faster R-CNN)结合PnP求解或直接回归6D位姿(PoseCNN、DenseFusion)。深度学习模型对光照、遮挡和堆叠场景的适应性更强,但需要标注数据。
选型建议:如果物体是标准件(如螺栓、齿轮)且背景单一,优先使用传统方法,部署简单且推理速度快;如果物体种类多、形状复杂或存在堆叠,建议采用深度学习方案。对于6D位姿估计,可先使用2D检测裁剪ROI区域,再在ROI内进行点云配准或位姿回归,以降低计算复杂度。

1.2.3 抓取规划:决定“如何抓”

抓取规划的核心是生成一个满足力闭合(Force Closure)或形闭合(Form Closure)的抓取位姿。对于平行夹爪,需要确定夹爪中心位置、接近方向和夹持宽度。规划流程通常包括:

  1. 抓取点生成:在物体表面采样候选点,评估每个点的抓取质量(如力传递率、接触面积)。
  2. 姿态优化:考虑夹爪与物体、夹爪与环境的碰撞约束,调整接近角度。
  3. 路径规划:在机器人关节空间或笛卡尔空间规划无碰撞路径,常用RRT、PRM或梯形速度规划。

对于已知CAD模型的物体,可使用开源工具GraspIt!或PyBullet离线生成抓取数据库;对于未知物体,则需在线分析点云的法向量和曲率,寻找平行平面或凹槽区域作为抓取点。

1.3 课程目标与学习路径

本课程旨在培养学员从零搭建一套可落地的机器人视觉抓取系统。学完本课程后,学员应具备以下能力:

  • 独立完成相机选型、光源设计和手眼标定,并能够诊断标定误差来源。
  • 掌握传统图像处理与深度学习检测算法的工程实现,能够针对具体工件选择合适方案。
  • 理解抓取规划的基本原理,能够使用MoveIt或自研算法生成无碰撞抓取路径。
  • 具备系统集成与调试能力,能够处理视觉抓取中的常见故障(如丢帧、误检、抓取滑落)。

课程共30章,分为四大模块:基础篇(第1-8章)讲解相机成像、标定原理与图像处理基础;算法篇(第9-18章)深入目标检测、6D位姿估计与抓取点生成;实战篇(第19-26章)通过3个完整项目(散乱零件分拣、传送带动态抓取、高精度装配)进行案例教学;进阶篇(第27-30章)涵盖深度学习模型部署、视觉伺服控制与系统性能优化。

学习建议:建议学员在每章学习后,结合仿真环境(如CoppeliaSim + ROS)进行动手实践。仿真环境可以避免硬件损坏风险,同时便于调试算法参数。对于手眼标定,建议使用OpenCV的calibrateHandEye函数配合棋盘格标定板,先掌握标准流程,再尝试自编标定程序以加深理解。