1. 手眼标定概述:什么是手眼标定?为什么需要它?Eye-in-Hand vs Eye-to-Hand 的区别

大家好,我是老张。做机器人这行十几年了,手眼标定这事儿,几乎每个项目都会碰到。说白了,手眼标定就是给机器人装上一双「看得准」的眼睛。

你想想看,机器人本身只有关节角度和位置信息,它不知道工件在哪、螺丝孔在哪。相机能看到工件,但相机有自己的坐标系。怎么把相机看到的坐标,告诉机器人的手?这就是手眼标定要解决的问题。

1.1 什么是手眼标定?

手眼标定,核心就是求一个变换矩阵。这个矩阵能把相机坐标系下的点,转换到机器人基坐标系下。这样机器人才能准确抓取、装配、焊接。

数学上,我们要求解的是:

相机坐标系 → 机器人基坐标系 的变换关系 (通常记为 T_cam_to_base)

或者更常见的形式:

相机坐标系 → 机器人末端坐标系 的变换关系 (Eye-in-Hand 场景)

我习惯用一个比喻来理解:相机是眼睛,机器人是手。标定就是让手知道眼睛看到的「那个点」在手的什么位置。嗯,就这么简单。

核心公式:

AX = XB

其中 A 是机器人末端的位姿变换,B 是相机观测到的标定板位姿变换,X 就是我们要找的手眼矩阵。

1.2 为什么需要手眼标定?

没有标定,机器人就是个瞎子。我见过太多项目,相机装好了,图像处理也跑通了,结果机器人抓不准。为什么?因为坐标没对齐。

具体来说,手眼标定解决三个核心问题:

  • 坐标统一:把相机看到的像素坐标,变成机器人能用的物理坐标。
  • 精度保障:标定精度直接决定抓取、装配的成功率。差个 0.5mm,可能就装不进去了。
  • 系统集成:没有标定,视觉系统和机器人系统就是两套独立系统,没法协同工作。

我记得有一次做 3C 装配项目,相机分辨率很高,算法也很准,但就是抓取偏移。折腾了两天,最后发现是手眼标定用的标定板尺寸写错了。你说冤不冤?

我的经验:

标定精度通常要求达到机器人重复定位精度的 3-5 倍。比如机器人重复精度 ±0.02mm,标定误差最好控制在 ±0.1mm 以内。

1.3 Eye-in-Hand vs Eye-to-Hand

这两种配置,我几乎每个项目都要跟客户解释一遍。其实区别很直观:

对比项 Eye-in-Hand (眼在手上) Eye-to-Hand (眼在手外)
相机安装位置 固定在机器人末端 固定在工作空间上方或侧面
标定目标 相机到末端的变换 (T_cam_to_end) 相机到基座的变换 (T_cam_to_base)
视野特点 随机器人移动,视野变化 固定视野,覆盖工作区域
精度影响 受机器人运动误差影响 受相机安装稳定性影响
典型应用 抓取、焊接、装配 定位、检测、码垛

说白了,Eye-in-Hand 适合需要「凑近看」的场景,比如精密装配。Eye-to-Hand 适合「全局看」的场景,比如大范围定位。

我曾经在一个项目中,客户坚持用 Eye-to-Hand 做精密装配,结果因为视野遮挡,死活对不准。后来换成 Eye-in-Hand,问题就解决了。选型很重要。

1.4 两种配置的标定流程对比

标定流程上,两者也有明显区别:

Eye-in-Hand 标定流程

  1. 固定标定板在工作空间内
  2. 控制机器人移动多个位姿,每个位姿下相机拍摄标定板
  3. 记录每个位姿的机器人末端位姿 (A) 和标定板在相机下的位姿 (B)
  4. 求解 AX = XB

Eye-to-Hand 标定流程

  1. 标定板固定在机器人末端
  2. 控制机器人移动多个位姿,相机拍摄标定板
  3. 记录每个位姿的机器人末端位姿 (A) 和标定板在相机下的位姿 (B)
  4. 求解 AX = XB (形式略有不同)

你发现没有?数学上都是 AX = XB,但物理意义完全不同。Eye-in-Hand 的 X 是相机到末端的变换,Eye-to-Hand 的 X 是相机到基座的变换。

避坑指南:

我曾经犯过一个错误——标定过程中机器人位姿变化太小,导致求解矩阵奇异。记住:位姿变化要足够大,旋转角度至少 30° 以上,平移距离至少 100mm 以上。

1.5 知识结构总览

下面这张图,是我自己总结的手眼标定知识体系。你可以把它当作整个课程的地图:

手眼标定知识体系 手眼标定知识体系 手眼标定 什么是手眼标定? 为什么需要它? Eye-in-Hand vs Eye-to-Hand 求解相机到机器人的变换矩阵 坐标系统一 实现视觉引导抓取/装配 保证系统精度与可靠性 相机固定在机器人末端 相机固定在工作空间 核心:AX = XB 矩阵求解 位姿变化要足够大,避免奇异解

这张图把本章的核心内容串起来了。从定义到必要性,再到两种配置的区别,最后都归结到 AX = XB 这个核心方程上。后面的章节,我们会一步步深入每个细节。

1.6 本章小结

好了,这一章就讲这些。记住三个要点:

  • 手眼标定就是求相机到机器人的坐标变换
  • 没有标定,视觉系统就是摆设
  • Eye-in-Hand 和 Eye-to-Hand 选型要看具体场景