4. 手眼标定的两种模式:Eye-in-Hand 与 Eye-to-Hand

做手眼标定,第一个要做的决定就是:相机装在哪?

这个选择直接决定了你的标定流程、算法模型,甚至后续的调试难度。我见过不少项目,前期没想清楚这个问题,后期改结构改到崩溃。

说白了,就两种模式:Eye-in-Hand(眼在手上)和Eye-to-Hand(眼在手外)。咱们一个一个拆开看。

4.1 Eye-in-Hand:相机跟着机器人走

这种模式下,相机固定在机器人末端法兰盘上。机器人动,相机跟着动。

它的核心特点是:相机坐标系和机器人末端坐标系之间的变换关系是固定的。我们标定的目标,就是求出这个固定变换 X,也就是 camTgripper。

核心方程:

AX = XB

其中 A 是机器人末端位姿变换,B 是相机看到的标定板位姿变换。

我在现场调试时,最喜欢用这种模式。为什么?因为它灵活。相机跟着机械臂走,想拍哪个角度就拍哪个角度,特别适合做近距离、高精度的作业,比如抓取、装配、焊缝跟踪。

优点

  • 视野灵活:相机可以移动到任意位置,不受固定支架限制。
  • 精度高:目标离相机近,图像分辨率高,测量误差小。
  • 无遮挡问题:相机可以绕到目标正面,避开障碍物。

缺点

  • 标定复杂:需要机器人带动相机做多组运动,对机器人运动精度要求高。
  • 标定板要大:因为相机离得近,标定板不能太小,否则特征点提取不准。
  • 机械臂负载增加:相机和线缆增加了末端重量,可能影响机器人动态性能。

我的经验:做 Eye-in-Hand 标定时,机器人运动轨迹要尽量覆盖工作空间的不同区域和姿态。别只在一个小范围里来回动,那样标定出来的结果容易过拟合。

4.2 Eye-to-Hand:相机静静地看着

这种模式下,相机固定安装在机器人工作空间之外,比如天花板上、支架上。机器人动,相机不动。

它的核心特点是:相机坐标系和机器人基坐标系之间的变换关系是固定的。我们标定的目标,是求出 camTbase。

核心方程:

AX = XB  (形式相同,但含义不同)

这里的 A 是机器人基座到末端的变换,B 是相机看到的标定板位姿。

这种模式我一般在大范围、全局定位的场景下用。比如流水线抓取、码垛、AGV 导航。相机一眼看全局,机器人只需要知道目标在相机坐标系下的位置,就能换算到自己的基坐标系里。

优点

  • 标定相对简单:相机固定,标定板固定在机器人末端,运动规划容易。
  • 不增加负载:相机不装在机器人上,不影响机器人动态性能。
  • 视野稳定:相机位置固定,图像背景一致,视觉算法更稳定。

缺点

  • 容易遮挡:机器人本体或工件可能挡住相机视线。
  • 精度受限:目标离相机远,像素分辨率低,测量误差大。
  • 视野固定:相机只能看到固定区域,超出视野就抓瞎。

避坑指南:我曾经在一个 Eye-to-Hand 项目里,把相机装得太高,结果标定板在图像里只有几十个像素。标定出来的旋转矩阵误差大得离谱。后来把相机降下来,标定板尺寸加大,才解决问题。记住:标定板在图像中至少要占 1/4 的视野面积。

4.3 两种模式的对比

为了让你看得更清楚,我整理了一个对比表。嗯,这个表我每次做方案评审时都会拿出来用。

对比维度 Eye-in-Hand Eye-to-Hand
相机安装位置 机器人末端法兰 固定支架/天花板
标定目标 camTgripper(相机到末端) camTbase(相机到基座)
标定方程 AX = XB AX = XB
标定板位置 固定在工作空间内 固定在机器人末端
视野灵活性 高,可移动 低,固定
遮挡问题 不易遮挡 容易遮挡
测量精度 高(近距离) 中低(远距离)
机器人负载 增加 无影响
典型应用 抓取、装配、焊缝跟踪 码垛、流水线、AGV

4.4 如何选择?我的决策框架

你可能会问:那我到底该选哪种?

我个人习惯用下面这个决策流程,你可以参考一下:

  1. 先看任务类型:如果是高精度抓取或装配,优先选 Eye-in-Hand。如果是大范围码垛或分拣,优先选 Eye-to-Hand。
  2. 再看工作空间:如果工作空间小且遮挡多,选 Eye-in-Hand。如果工作空间大且视野开阔,选 Eye-to-Hand。
  3. 最后看机器人负载:如果机器人末端已经挂了很重的夹具,就别再加相机了,选 Eye-to-Hand。

一个折中方案:有些项目会同时使用两种模式。比如,用 Eye-to-Hand 做全局定位,用 Eye-in-Hand 做局部精调。当然,这会增加系统复杂度,标定工作量也翻倍。我一般只在高端项目里这么干。

4.5 两种模式的知识结构图

下面这张图,把两种模式的核心逻辑和区别画出来了。你可以保存下来,做方案时对照着看。

手眼标定两种模式对比图 手眼标定两种模式对比 Eye-in-Hand 眼在手上 相机固定在机器人末端 标定目标:camTgripper 标定板固定在工作空间 适用:抓取、装配、焊缝 Eye-to-Hand 眼在手外 相机固定在工作空间外 标定目标:camTbase 标定板固定在机器人末端 适用:码垛、流水线、AGV 核心方程都是 AX = XB,但 A 和 B 的含义不同

4.6 小结

两种模式没有的好坏,只有合不合适。我的建议是:先想清楚你的应用场景,再选模式。别一上来就抄别人的方案,结果发现相机装在哪都是问题。