4、手眼标定:眼在手上与眼在手外的标定原理、标定流程、误差分析与优化

手眼标定是机械臂视觉引导拣选系统中连接“眼睛”(相机)与“手”(机械臂)的关键环节。其本质是求解相机坐标系与机械臂末端(或基座)坐标系之间的空间变换矩阵。在机器人分拣抓取场景中,若手眼关系标定不准,即使视觉算法识别精度再高,机械臂也无法准确抓取目标。本章将系统讲解眼在手上(Eye-in-Hand)与眼在手外(Eye-to-Hand)两种模式的标定原理、完整流程、误差来源及优化策略,并结合实际拣选案例进行拆解。

手眼标定核心链路与坐标系关系 眼在手外(Eye-to-Hand) 相机(固定) Cam 机械臂基座 Base 标定板 Calib Board 机械臂末端 End 观测 运动学 求解:Base→Cam 变换(固定) 标定板随末端移动 眼在手上(Eye-in-Hand) 相机(末端) Cam 机械臂末端 End 标定板(固定) Calib Board 观测 刚性连接 求解:End→Cam 变换(固定) 标定板固定在工作台 相机观测 运动学 刚性连接 标定板

上图展示了两种手眼标定模式的核心坐标系关系。眼在手外模式中,相机固定于工作空间上方,标定板安装在机械臂末端,通过移动机械臂获取多组位姿数据,求解相机与机械臂基座间的固定变换;眼在手上模式中,相机刚性安装于机械臂末端,标定板固定在工作台,通过机械臂带动相机运动,求解相机与机械臂末端间的固定变换。两种模式的标定数学本质均为求解 AX=XB 形式的矩阵方程,但数据采集策略和误差特性差异显著。

4.1 标定原理与数学模型

手眼标定的核心是求解齐次变换矩阵方程。设机械臂末端在基座坐标系下的位姿为 Tbe(由机械臂运动学正解获得),相机观测标定板得到标定板在相机坐标系下的位姿为 Tct,标定板在机械臂末端坐标系下的位姿为 Tet(眼在手外)或相机在末端坐标系下的位姿为 Tec(眼在手上)。对于眼在手外,有:

T_be1 * T_et = T_bc * T_ct1
T_be2 * T_et = T_bc * T_ct2
...
消去 T_et,可得:T_bc = T_be2 * inv(T_be1) * T_bc * inv(T_ct2) * T_ct1
即:AX = XB 形式,其中 A = inv(T_be2)*T_be1,B = inv(T_ct2)*T_ct1,X = T_bc

对于眼在手上,同理可得 T_ec 满足 AX=XB。求解该方程通常采用两步法:先求解旋转矩阵(利用罗德里格斯变换或四元数),再求解平移向量。常用算法包括 Tsai-Lenz 法、Park-Martin 法以及基于李代数的优化方法。

对比维度眼在手外(Eye-to-Hand)眼在手上(Eye-in-Hand)
相机安装位置固定于工作空间上方/侧面安装于机械臂末端法兰
标定板位置安装在机械臂末端固定在工作台/地面
求解目标Base→Cam 变换(固定)End→Cam 变换(固定)
视野特点视野固定,覆盖整个工作区视野随机械臂运动,可近距离观察目标
标定数据采集移动机械臂使标定板在相机视野内变换姿态移动机械臂使相机从不同角度观测固定标定板
典型应用场景固定工位拣选、大范围定位近距离精细抓取、移动目标跟踪

4.2 标定流程与操作步骤

无论采用哪种模式,标定流程均包含以下关键步骤。以眼在手外为例,完整流程如下:

  1. 准备阶段:固定相机,确保无振动;安装标定板于机械臂末端,记录标定板尺寸(如 10mm 方格,7×7 角点);连接机械臂与视觉系统,确认通信正常。
  2. 机械臂运动学校验:在机械臂零位下记录末端位姿,手动移动至几个已知点,验证正解精度。
  3. 数据采集:控制机械臂运动 15~20 个不同位姿,要求标定板始终在相机视野内,且姿态变化覆盖俯仰、偏航、翻滚各 ±30° 以上。每个位姿同时记录:机械臂末端位姿 T_be(从控制器读取)和相机检测到的标定板位姿 T_ct(通过 OpenCV solvePnP 或类似算法获得)。
  4. 数据预处理:剔除标定板检测置信度低(重投影误差 > 0.5 像素)的样本;检查位姿分布是否均匀,避免所有样本集中在同一区域。
  5. 求解计算:使用 Tsai-Lenz 或 OpenCV 的 calibrateHandEye() 函数求解 X。输入为两组位姿序列:机械臂末端位姿(gripperPose)和标定板位姿(targetPose)。
  6. 验证与精化:将求解的 X 代入任意一组数据,计算重投影误差;若误差大于 1mm,则使用非线性优化(如 Levenberg-Marquardt)对所有参数进行全局优化。
关键参数建议:标定板方格尺寸精度应优于 0.01mm;机械臂运动时末端线速度建议低于 50mm/s,避免运动模糊;每个位姿停留 0.5s 以上再触发相机采集,确保机械臂完全静止。

4.3 案例拆解:分拣线手眼标定实战

某汽车零部件装配线部署了一套视觉引导拣选系统,采用眼在手外模式,相机安装于传送带上方 800mm 处,机械臂为六轴工业机器人。初始标定后,系统抓取精度仅为 ±5mm,无法满足 ±1mm 的装配要求。通过分析发现以下问题:

  • 现象:在传送带中央区域抓取精度尚可(±2mm),但在视野边缘误差增大至 ±8mm。
  • 根因分析:标定数据采集时,机械臂末端仅在工作空间中心区域运动,标定板未覆盖相机视野边缘;且相机镜头存在明显畸变,未进行充分的畸变校正。
  • 优化措施:重新采集 25 组数据,确保标定板覆盖相机视野的四个角落和中心;使用 5×5 棋盘格标定板(角点数更多)重新进行相机内参标定,畸变系数从 0.15 降至 0.02;标定后使用 10 个验证点进行精度测试。
  • 结果对比:优化后,视野边缘抓取精度提升至 ±0.8mm,中心区域 ±0.5mm,满足产线要求。
  • 复盘经验:标定数据必须覆盖实际工作区域;相机内参标定与手眼标定应同步进行,不可分离;验证点应包含工作空间边界。

4.4 误差分析与优化策略

手眼标定误差主要来源于三个方面:机械臂运动学误差、相机标定误差、数据采集噪声。下表列出了主要误差源及优化方向:

误差来源典型量级优化策略
机械臂定位误差0.1~1mm使用高精度机械臂;进行运动学参数辨识(DH 参数校准)
相机内参标定误差0.1~0.5 像素使用高分辨率标定板;采集 20 张以上不同姿态图像;采用亚像素角点检测
标定板平面度误差0.01~0.05mm选用陶瓷或玻璃基板标定板;避免使用柔性 PCB 标定板
数据采集噪声0.1~0.3 像素多次采集取平均;使用高亮度均匀光源;降低机械臂运动速度
求解算法数值误差0.01~0.1mm增加样本数量至 20 组以上;使用非线性优化精化
常见误区警示:① 标定板姿态变化不足(仅平移无旋转)会导致旋转矩阵求解病态;② 机械臂运动范围过小,导致平移向量解算不稳定;③ 忽略相机畸变校正,直接使用未去畸变的图像进行手眼标定;④ 标定后未进行独立验证,直接投入生产。

优化手眼标定精度的核心原则是:数据多样性、位姿覆盖性、测量冗余性。在实际工程中,建议标定完成后使用 10~15 个独立验证点进行精度评估,验证点应随机分布在工作空间内,且包含不同高度平面。若验证误差超差,应优先检查机械臂运动学参数是否准确,其次检查相机内参是否可靠,最后再考虑重新采集标定数据。

经验总结:对于高精度拣选场景(误差要求 < 1mm),推荐采用眼在手上模式,因为相机可近距离观测目标,减少透视误差;同时配合高精度标定板(陶瓷基板)和机械臂 DH 参数校准,可将系统综合精度提升至 ±0.3mm 以内。