4. 手眼标定
手眼标定是3D机器视觉引导机器人抓取系统中连接“视觉感知坐标”与“机器人运动坐标”的核心桥梁。无论是固定安装的相机(眼在手外),还是安装在机器人末端法兰上的相机(眼在手上),其根本目的都是求解相机坐标系与机器人基坐标系(或末端工具坐标系)之间的齐次变换矩阵。标定精度直接决定了机器人抓取时对目标物体空间位姿的还原准确度,是整条自动化产线能否稳定运行的关键前提。本章将系统讲解两种标定模式的数学原理、标定板设计要点、完整操作流程以及精度验证方法,并结合实际工程案例进行拆解。
上图展示了两种标定模式下的核心坐标系关系。在眼在手外模式中,相机固定于工作空间上方,标定板安装在机器人末端,通过移动机器人获取多组位姿数据,求解相机与机器人基座之间的变换矩阵;在眼在手上模式中,相机随机器人末端运动,标定板固定于工作空间,求解相机与机器人末端之间的变换矩阵。两种模式的数学本质均为求解齐次变换方程 AX = XB,其中 A 和 B 分别由机器人运动学与视觉观测获得。
4.1 核心原理:AX = XB 方程与坐标系变换
手眼标定的数学基础是刚体变换的闭合链。设机器人基坐标系为 {B},末端工具坐标系为 {E},相机坐标系为 {C},标定板坐标系为 {P}。对于眼在手外模式,相机固定,标定板随末端运动,则存在以下关系:
Base_T_Cam = Base_T_End * End_T_Cal * Cal_T_Cam
其中 Base_T_Cam 是待求的固定变换,Base_T_End 由机器人正运动学读取,End_T_Cal 是标定板在末端坐标系下的位姿(未知但固定),Cal_T_Cam 由视觉检测标定板角点获得。通过两次不同位姿的观测,消去未知的 End_T_Cal,即可得到形如 A·X = X·B 的方程,其中 A = Base_T_End1⁻¹ · Base_T_End2,B = Cal_T_Cam1⁻¹ · Cal_T_Cam2,X = Base_T_Cam。
对于眼在手上模式,相机与末端刚性连接,标定板固定,则关系变为:
Base_T_End * End_T_Cam * Cam_T_Cal = Base_T_Cal
同理,通过多次移动机器人并观测固定标定板,可构造 A·X = X·B 方程,其中 X = End_T_Cam。求解该方程通常采用两步法:先求解旋转矩阵 R,再求解平移向量 t。旋转矩阵的求解可使用 Tsai-Lenz 方法、Park-Martin 方法或基于李代数的优化方法;平移向量则通过线性最小二乘获得。
| 对比维度 | 眼在手外 (Eye-to-Hand) | 眼在手上 (Eye-in-Hand) |
|---|---|---|
| 相机安装位置 | 固定于工作空间(支架/天花板) | 安装于机器人末端法兰 |
| 标定板位置 | 安装在机器人末端 | 固定于工作空间 |
| 待求变换 | Base_T_Cam(相机到基座) | End_T_Cam(相机到末端) |
| 标定板视野 | 随末端移动,需保证始终可见 | 固定,相机随末端移动观测 |
| 典型应用 | 大范围抓取、固定工位检测 | 近距离精细操作、避障抓取 |
| 精度影响因素 | 机器人定位精度、相机畸变 | 末端负载变化、相机安装刚性 |
4.2 标定板设计与视觉检测要点
标定板是视觉系统获取精确 3D-2D 对应点的基准。对于 3D 相机(如结构光、ToF 或双目),标定板通常采用平面棋盘格或圆点阵列,但需要额外考虑深度数据的有效性。设计标定板时需关注以下参数:
- 格子尺寸与数量:对于 3D 相机,建议使用 7×9 或 9×11 的棋盘格,单格边长 20-40mm,确保在相机工作距离下,单格在图像中占据 20-50 像素,既能保证角点检测精度,又能覆盖足够大的视野范围。
- 材质与平整度:标定板必须采用低热膨胀系数的材料(如陶瓷、玻璃基板或碳纤维),表面平整度优于 0.05mm,避免因温度变化或自重变形引入误差。
- 漫反射处理:对于 3D 相机,标定板表面应做哑光处理,避免镜面反射干扰深度测量。可在表面覆盖专业漫反射涂层,确保在 30°-60° 入射角下反射率均匀。
- 深度有效性验证:在标定前,需验证标定板在相机工作距离范围内,深度数据的平面拟合残差小于 0.1mm,否则应调整相机曝光或增益参数。
视觉检测流程包括:图像采集 → 角点/圆心提取 → 亚像素优化 → 位姿解算(PnP 或 EPnP)→ 输出 Cal_T_Cam。对于 3D 相机,可使用点云平面分割结合 2D 角点投影的方式,提高在复杂光照下的鲁棒性。
4.3 标定流程与操作规范
一个完整的手眼标定流程包含准备、数据采集、求解、验证四个阶段。以下以眼在手外模式为例,给出标准操作流程:
- 环境准备:固定相机,确保支架无振动;清洁标定板表面;记录机器人工作空间范围。
- 机器人运动规划:在机器人示教器中编写标定程序,规划 15-25 个标定位姿。位姿应满足:覆盖视野的 9 个区域(中心、四角、四边中点);每个位姿下标定板与相机光轴夹角在 0°-30° 之间;相邻位姿的旋转角度差大于 15°。
- 数据采集:依次移动机器人至每个位姿,记录机器人末端位姿(Base_T_End),同时触发相机采集标定板图像并解算 Cal_T_Cam。保存为一一对应的数据对。
- 数据筛选:剔除标定板检测置信度低(重投影误差 > 0.5 像素)或机器人到位误差大的样本。建议保留至少 12 组有效数据。
- 方程求解:使用开源库(如 OpenCV 的 calibrateHandEye)或自研算法求解 X。旋转矩阵求解后需进行正交化修正,平移向量使用 RANSAC 剔除离群点。
- 精度验证:将求解的 X 代入所有样本,计算重投影误差;再额外采集 5-10 组验证位姿,评估实际抓取精度。
// OpenCV 求解示例(C++)
cv::Mat R_cam2base, t_cam2base;
cv::calibrateHandEye(
R_gripper2base, t_gripper2base, // 机器人末端位姿
R_target2cam, t_target2cam, // 标定板在相机下的位姿
R_cam2base, t_cam2base, // 输出:相机到基座的变换
cv::CALIB_HAND_EYE_TSAI_LENZ); // 使用 Tsai-Lenz 方法
4.4 精度验证方法与实战案例拆解
标定完成后,必须通过独立于标定数据的验证实验来评估精度。常用的验证方法包括:
- 重投影误差:将标定板角点通过标定结果投影回图像,计算像素误差。通常要求平均误差 < 0.3 像素。
- 3D 点重复性:将标定板固定在机器人末端,移动至多个位姿,通过视觉测量标定板中心在机器人基座坐标系下的位置,计算标准差。要求 < 0.5mm。
- 抓取测试:放置标准工件(如圆柱体、立方体)于工作空间,视觉引导机器人抓取,测量实际抓取位置与理论位置的偏差。
案例拆解:汽车零部件装配线的 3D 视觉引导抓取
某汽车零部件产线需要机器人从料筐中抓取异形支架(尺寸约 150×80×60mm),节拍要求 12 秒/件,抓取精度要求 ±1mm。现场采用眼在手外方案,相机安装于料筐上方 1.2m 处,使用结构光 3D 相机。
初始现象与目标:初次标定后,抓取测试发现 X/Y 方向平均偏差 3.2mm,Z 方向偏差 1.8mm,超出工艺要求。分析认为标定精度不足。
关键输入数据与诊断:检查标定数据发现,采集的 20 组位姿中,有 8 组标定板位于视野边缘,且机器人末端姿态变化集中在俯仰方向,翻滚方向变化不足 10°。这导致旋转矩阵求解时条件数过大,数值不稳定。
操作步骤:重新规划标定路径,确保每个位姿的翻滚角变化在 15°-30° 之间;增加 5 组视野中心区域的位姿;使用 Park-Martin 方法替代 Tsai-Lenz 方法(后者对旋转轴分布更敏感);标定后使用 10 组独立位姿验证,重投影误差从 0.8 像素降至 0.2 像素。
结果对比:重新标定后,抓取测试 X/Y 偏差降至 0.6mm,Z 偏差降至 0.4mm,满足 ±1mm 要求。同时,由于位姿覆盖更合理,标定结果对机器人运动学误差的鲁棒性增强,连续运行 200 次抓取,偏差标准差保持在 0.15mm 以内。
风险与代价:重新标定耗时约 40 分钟,期间产线停机。为降低未来风险,制定了每季度例行标定校验制度,并保存了标准标定板工装,便于快速复标。
4.5 常见误区与总结复盘
在手眼标定实施过程中,工程师常遇到以下误区,需特别注意规避:
| 误区 | 后果 | 正确做法 |
|---|---|---|
| 标定位姿过于集中 | 旋转矩阵求解病态,精度差 | 位姿覆盖视野 9 宫格,旋转轴变化充分 |
| 忽略相机内参标定 | 畸变导致角点提取偏差 | 先单独标定相机内参,再执行手眼标定 |
| 使用机器人名义 DH 参数 | 运动学误差直接传递到手眼矩阵 | 优先使用经过标定的机器人参数 |
| 标定板平面度不足 | 深度数据引入系统性偏差 | 使用陶瓷/玻璃基板,定期校验平面度 |
| 数据采集时机器人未完全静止 | 图像模糊,位姿读取不准 | 到位后延时 0.5s 再采集 |
总结而言,手眼标定的核心在于“数据质量”与“求解稳定性”的双重保障。数据质量取决于标定板设计、相机成像质量、机器人到位精度;求解稳定性则依赖于位姿分布的合理性与算法的选择。建议工程师在项目初期就建立标准化的标定流程文档,明确每一步的验收指标,并在产线调试阶段预留足够的标定时间,避免因标定不充分而影响后续的抓取调试。