3. 手眼标定基础
在机器人视觉抓取系统中,视觉传感器(如2D相机、3D结构光相机或ToF相机)与机器人本体之间的空间关系,是决定抓取精度与稳定性的核心前提。手眼标定(Hand-Eye Calibration)正是求解这一空间关系的数学过程。本章将系统阐述手眼标定的定义、必要性,并深入对比“眼在手上”(Eye-in-Hand)与“眼在手外”(Eye-to-Hand)两种经典构型的原理、标定方法及工程选型要点。
3.1 手眼标定的定义与数学本质
手眼标定,本质上是求解机器人末端执行器(Tool)坐标系与视觉传感器(Camera)坐标系之间的齐次变换矩阵(Homogeneous Transformation Matrix)。该矩阵描述了相机在机器人基座坐标系(或末端坐标系)下的位置与姿态。在数学上,手眼标定问题通常被归结为求解形如 AX = XB 的矩阵方程,其中:
- A:机器人末端在基座坐标系下的位姿变化(由机器人正运动学提供);
- B:标定板(或特征点)在相机坐标系下的位姿变化(由视觉算法解算);
- X:待求的手眼变换矩阵(即相机与末端或基座之间的固定关系)。
该方程的核心思想是:通过多次移动机器人并同时记录视觉观测数据,利用多组位姿约束来迭代求解未知矩阵X。实际工程中,常采用Tsai-Lenz法、Park-Martin法或非线性优化法(如Levenberg-Marquardt)进行求解。标定精度不仅取决于算法本身,更依赖于数据采集的质量——包括机器人位姿的多样性、标定板特征点的清晰度以及光照条件的稳定性。
3.2 为什么需要手眼标定:从坐标转换到抓取闭环
在视觉抓取系统中,相机识别到工件后,输出的是工件在相机坐标系下的坐标。而机器人执行抓取时,需要的是工件在机器人基座坐标系下的坐标。两者之间必须通过一个明确的变换关系进行转换,这个变换关系正是手眼标定所求解的内容。没有标定,视觉系统就像“看得见但摸不着”——即使识别再准确,机器人也无法将视觉信息转化为实际动作。
具体而言,手眼标定的必要性体现在以下三个层面:
- 坐标统一:将视觉测量数据映射到机器人运动空间,实现“眼”与“手”的信息对齐;
- 误差补偿:消除相机安装角度、镜头畸变、机器人连杆参数误差等系统性偏差;
- 动态适应性:在Eye-in-Hand构型中,标定结果使得相机随末端运动时仍能准确计算目标位置,为动态抓取提供基础。
以一个典型的3C装配场景为例:机器人需要从料盘中抓取一个Micro-USB连接器并插入产品壳体。视觉系统识别连接器中心在图像中的像素坐标,通过相机内参转换为相机坐标系下的三维坐标。若手眼标定矩阵存在0.5mm的平移误差,当机器人末端以垂直姿态接近时,抓取爪中心与连接器中心将偏移0.5mm,对于间距仅0.3mm的插针来说,必然导致插接失败。因此,手眼标定是视觉抓取系统可靠运行的第一道保障。
3.3 眼在手上(Eye-in-Hand)构型详解
在Eye-in-Hand构型中,相机被刚性固定在机器人末端法兰盘上,随机械臂一起运动。这种构型的核心优势在于:相机视野始终跟随末端移动,可以灵活地对准不同角度的工件,尤其适合需要近距离观察或复杂姿态抓取的场景。
从标定方程角度看,Eye-in-Hand的求解目标是相机坐标系相对于末端坐标系的变换矩阵(记为X = T_cam2tool)。该矩阵在机器人运动过程中保持不变,而相机相对于基座的位姿则随末端运动而变化。标定时,通常将标定板固定在工作台面上,机器人带动相机从多个视角拍摄标定板,同时记录每个视角下的机器人末端位姿(来自控制器)和标定板位姿(来自视觉解算)。
| 对比维度 | 眼在手上(Eye-in-Hand) | 眼在手外(Eye-to-Hand) |
|---|---|---|
| 相机安装位置 | 固定在机器人末端法兰 | 固定在工作空间外部(支架/天花板) |
| 标定目标矩阵 | T_cam2tool(相机→末端) | T_cam2base(相机→基座) |
| 视野特点 | 随末端移动,视野灵活但范围有限 | 视野固定,覆盖整个工作区域 |
| 标定板放置位置 | 固定在工作空间内 | 固定在机器人末端 |
| 典型应用场景 | 精密装配、小工件抓取、多角度检测 | 大范围分拣、码垛、上下料 |
| 误差传播特性 | 末端定位误差直接叠加到视觉测量 | 相机固定,误差相对稳定 |
Eye-in-Hand构型的工程实现中,需要注意相机与末端的刚性连接。任何微小的机械松动都会导致标定失效。推荐使用定制法兰盘连接,并定期检查紧固力矩。此外,由于相机随末端运动,线缆管理(尤其是相机供电和通信线缆)需要采用拖链或柔性线缆保护,避免运动过程中线缆拉扯导致相机位置偏移。
3.4 眼在手外(Eye-to-Hand)构型详解
Eye-to-Hand构型将相机固定在工作空间上方的支架或天花板上,不随机器人运动。这种构型的最大优势是视野稳定、覆盖范围大,适合对全局场景进行监控和定位。标定目标是求解相机坐标系相对于机器人基座坐标系的变换矩阵(记为X = T_cam2base)。
在Eye-to-Hand标定中,标定板被固定在机器人末端,机器人携带标定板在相机视野内做多姿态运动。视觉系统实时检测标定板在相机坐标系下的位姿,同时控制器记录对应的机器人末端位姿。通过多组数据对,即可求解相机与基座之间的固定变换关系。
这种构型的典型应用包括:
- 大范围分拣:传送带上的工件随机摆放,固定相机俯拍整个区域,识别后引导机器人抓取;
- 码垛与拆垛:相机固定在高处,识别托盘上货物的位置和姿态,规划抓取路径;
- 安全监控:固定相机同时监控机器人工作区域,实现碰撞预警或人员入侵检测。
Eye-to-Hand构型的标定精度受相机安装稳定性影响较大。如果支架存在振动或热胀冷缩,会导致标定矩阵漂移。因此,在精密应用中,建议采用重型支架并增加减震垫,同时定期进行标定校验。
3.5 两种构型的选型决策与实战案例
在工程实践中,选择哪种构型并非随意决定,而是需要根据任务需求、现场约束和精度要求综合判断。以下通过一个实际案例说明选型与标定过程。
初始方案评估:工程师最初考虑Eye-in-Hand构型,认为相机随动可以更灵活地观察料箱内部。但经过现场勘察发现,料箱深度较大,且工件表面有油污反光,Eye-in-Hand在深入料箱时相机视野受限,且油污容易污染镜头。此外,由于工件较重,末端负载已接近机器人额定负载的80%,再加装相机和支架将影响机器人的动态性能。
最终方案:改为Eye-to-Hand构型,在料箱上方2.2m处安装一台3D结构光相机(分辨率1280×1024,Z轴精度±0.3mm@2m)。相机固定于独立支架上,与机器人基座通过膨胀螺栓固定在同一水泥地面上,确保相对位置稳定。
标定实施步骤:
- 将标定板(300mm×300mm陶瓷板,带9×9圆点阵列)通过专用夹具固定在机器人末端;
- 编写机器人程序,使末端在相机视野内走20个不同姿态(包含平移、旋转、俯仰变化),每个姿态停留2秒;
- 同步采集:每个姿态下,视觉系统输出标定板位姿(平移+四元数),机器人控制器输出末端位姿;
- 使用OpenCV的
calibrateHandEye()函数(基于Tsai-Lenz法)求解T_cam2base; - 验证:将标定板放置在料箱内5个不同位置,视觉系统测量坐标,机器人实际抓取并记录偏差。
结果与复盘:初次标定后,平均位置误差为1.2mm,超出±0.5mm要求。分析发现,部分姿态下标定板反光导致视觉解算精度下降。改进措施包括:调整相机曝光时间、增加偏振滤光片、剔除误差大于0.5mm的异常数据点后重新标定。最终平均误差降至0.4mm,满足生产要求。复盘经验:标定数据质量比数量更重要,应确保每个姿态下视觉解算的置信度。
3.6 常见误区与工程经验总结
在手眼标定的实施过程中,工程师常陷入以下误区,导致标定结果不理想或现场反复调试:
此外,对于Eye-in-Hand构型,还需注意相机与末端的连接刚度。建议使用航空铝材质的定制法兰,并采用三点定位+螺栓紧固的方式,避免使用3D打印件或塑料支架。对于Eye-to-Hand构型,则要关注相机支架的长期稳定性,建议在支架上设置参考点,定期用激光跟踪仪或全站仪校验相机位置是否发生漂移。
最后,无论哪种构型,标定过程都应记录完整的日志,包括:机器人位姿序列、视觉解算结果、标定算法参数、验证误差数据。这些数据不仅用于追溯问题,也为后续机器人维护或相机更换后的重新标定提供参考基线。