1. 手眼标定概述:什么是手眼标定?为什么需要手眼标定?

大家好,我是你们这门课的主讲。在机器人视觉这个行当里摸爬滚打了十几年,要说哪个环节最容易被忽视、又最容易出问题,我第一个想到的就是手眼标定。

很多人觉得,相机装上了,能看见东西了,机器人不就能抓了吗?其实没那么简单。相机看到的是像素坐标,机器人动的是毫米级的物理空间。这两个坐标系之间怎么建立关系?这就是手眼标定要干的事。

1.1 什么是手眼标定?

说白了,手眼标定就是求解相机坐标系和机器人坐标系之间的变换关系。这个关系用一个 4×4 的齐次变换矩阵来表示,包含旋转和平移。

你想想看,相机装在机器人上,或者装在旁边,它俩的坐标系天生就是独立的。相机告诉你「目标在图像的这个位置」,机器人想知道「我该往哪个方向走多少毫米」。中间缺的就是这个变换矩阵。

核心定义: 手眼标定 = 求解从相机坐标系到机器人末端(或基座)坐标系的刚体变换矩阵 X,使得视觉感知与机器人运动在同一个空间下对齐。

根据相机安装方式不同,手眼标定分两种经典构型:

构型 相机安装位置 标定目标 典型场景
Eye-in-Hand 固定在机器人末端(手上) 相机 → 末端 精密装配、焊缝跟踪
Eye-to-Hand 固定在机器人外部(旁边) 相机 → 基座 视觉引导抓取、码垛

我个人习惯把 Eye-in-Hand 叫做「手眼一体」,相机跟着机器人走,视野灵活但标定复杂一些。Eye-to-Hand 是「旁观者清」,相机不动,视野固定,标定相对简单。

1.2 为什么需要手眼标定?

这个问题我问过不少刚入行的工程师。有人回答「为了定位」,有人回答「为了抓取」。都对,但不全。

我给大家拆成三个层面:

  1. 坐标统一:视觉系统输出的是图像坐标或相机坐标,机器人控制器只认关节角度或笛卡尔坐标。没有标定,这两个世界是割裂的。
  2. 精度传递:相机本身的标定(内参、畸变)只能保证图像测量准确。但图像上的 1 个像素偏差,到了机器人末端可能是 0.5mm 还是 5mm 的偏差?这取决于手眼矩阵的精度。
  3. 动态补偿:在 Eye-in-Hand 构型里,机器人每动一下,相机坐标系就跟着变。手眼矩阵必须能实时把这个变化算进去,否则视觉引导就是空中楼阁。
我的经验: 有一次在现场调试,视觉定位精度 0.1mm,但抓取总是偏 2mm。查了两天,最后发现是手眼标定用的标定板尺寸写错了。嗯,从那以后我每次标定前都会拿卡尺量一遍标定板。

1.3 手眼标定的应用场景

手眼标定不是实验室里的理论玩具。我参与过的项目里,几乎每个视觉引导的机器人系统都绕不开它。

  • 机器人抓取:最常见的场景。传送带上的工件位置随机,相机拍一张,算出抓取点,机器人过去抓。没有手眼标定,抓个空气。
  • 视觉引导装配:比如把销钉插入孔里。相机引导机器人对准,精度要求往往在 0.1mm 以内。这时候手眼标定的误差直接决定装配成败。
  • 焊缝跟踪:激光视觉传感器装在焊枪前面,实时检测焊缝位置。手眼矩阵的延迟和误差会直接影响焊接质量。
  • 3C 电子组装:手机、平板的精密组装,视觉系统引导机器人贴装、点胶。我见过一条产线因为手眼标定漂移,良率从 98% 掉到 85%。
  • 物流分拣:快递包裹的随机抓取,视觉系统识别包裹位置和姿态,机器人规划抓取路径。标定不准,抓一个掉一个。

这些场景有一个共同点:视觉和机器人必须协同工作。手眼标定就是它们之间的「翻译官」。

1.4 手眼标定的知识体系

为了让大家对整个课程有个全局感,我画了一张知识结构图。这张图会贯穿我们后续的每一章。

手眼标定知识体系框架 手眼标定知识体系框架 手眼标定核心 标定原理与方法 误差分析与建模 结果验证与优化 Eye-in-Hand / Eye-to-Hand AX=XB / AX=ZB 求解 旋转误差 vs 平移误差 标定板 / 运动轨迹影响 重投影误差 / 抓取测试 精度指标与补偿策略 应用场景:抓取 / 装配 / 焊缝跟踪 / 3C电子 / 物流分拣 本课程共 30 章,从原理到实战,覆盖标定全流程 每章都包含理论推导 + 代码实现 + 避坑经验

这张图把整个课程分成了三大块:标定原理与方法、误差分析与建模、结果验证与优化。我们这一章属于开篇,先把概念讲清楚。后面每一章都会围绕这张图展开。

注意: 手眼标定不是一次标定终身受益。机器人长时间运行后,机械磨损、相机松动、温度变化都可能导致标定参数漂移。我建议每隔 3-6 个月做一次标定验证,产线换型后必须重新标定。