1. 手眼标定概述:什么是手眼标定?为什么需要手眼标定?手眼标定的应用场景

大家好,我是你们的老朋友。今天咱们正式开讲手眼标定这门课。

说实话,我入行那会儿,手眼标定还是个挺神秘的东西。很多工程师觉得它难,甚至有人直接跳过这一步,靠手动示教凑合着用。结果呢?机器人抓不准、装配对不齐,最后还得回来补课。嗯,我当年也踩过这个坑。

1.1 什么是手眼标定?

手眼标定,说白了就是给机器人装上一双「看得准」的眼睛。

你想想看,机器人本身是「盲」的。它只知道自己的关节转了多少度,末端执行器在什么位置。但摄像头看到的是一堆像素点。这两者之间,怎么对应起来?

手眼标定要解决的,就是这个核心问题——建立相机坐标系与机器人坐标系之间的转换关系

核心定义:手眼标定是通过数学方法,求解相机与机器人末端(或基座)之间的刚体变换矩阵(旋转矩阵R + 平移向量t),使得相机检测到的物体位置,能精确映射到机器人可执行的运动指令中。

我习惯用一个比喻来解释:

  • 相机 = 人的眼睛,看到的是「像素世界」
  • 机器人 = 人的手,执行的是「物理世界」的动作
  • 手眼标定 = 大脑中那根连接视觉与运动的神经

没有这根神经,你看到杯子在哪,手却抓了个空。就是这么回事。

1.2 为什么需要手眼标定?

这个问题,我在项目中被问过无数次。很多老板觉得:「我买个高精度相机,再买个高精度机器人,不就行了?」

其实不然。精度再高的硬件,如果坐标系对不上,一切都是白搭。

具体来说,手眼标定有三大必要性:

  1. 消除系统误差:相机安装有偏差,机器人装配有公差,这些都会累积。标定就是把这些误差统一校正。
  2. 实现自动化:没有标定,每次换工件都得手动示教。标定后,相机一拍,机器人自动去抓,这才是真正的自动化。
  3. 提升柔性:产线换型时,只需重新标定一下,不用改机械结构。我见过一条产线,靠标定一天切换三种产品,效率翻倍。

我的经验:曾经有个项目,客户坚持不标定,靠机械定位硬干。结果每次换夹具都要重新调半天。后来我帮他们做了手眼标定,换夹具只需5分钟重新跑一遍标定流程。老板当场就服了。

1.3 手眼标定的应用场景

手眼标定不是实验室里的花架子。它在工业现场的应用非常广泛。我挑三个最常见的场景聊聊。

1.3.1 抓取(Pick & Place)

这是最基础、也是最常见的应用。相机定位工件位置,机器人去抓取。

比如:

  • 流水线上随机来料,相机识别后引导机器人抓取
  • 料框里散乱堆放的零件,通过3D视觉定位后抓取
  • 高速分拣,每分钟抓取几十次,全靠标定精度保证

我记得有个项目是做食品包装,饼干在传送带上位置随机。标定前,机器人抓偏率高达10%。标定后,抓偏率降到0.1%以下。说白了,标定就是抓取的「准头」。

1.3.2 装配(Assembly)

装配对精度的要求比抓取高得多。抓取可能允许1-2mm误差,装配往往要求0.1mm甚至更高。

典型场景:

  • 手机壳与屏幕的贴合,视觉引导机器人对准
  • 汽车发动机缸体与缸盖的装配,螺栓孔必须一一对齐
  • 电子元器件的插装,引脚要对准插座

这里有个坑我要提醒你:装配场景下,手眼标定的精度往往不够,还需要结合视觉对位力控。我当年做手机装配项目,标定精度做到0.05mm,但实际装配时还是卡壳。后来发现是工件本身的公差问题。嗯,标定不是万能的,但没有标定是万万不能的。

1.3.3 检测(Inspection)

检测场景下,手眼标定的作用不是引导机器人运动,而是将检测结果映射到物理空间

比如:

  • 汽车车身焊点检测,相机拍完后要知道焊点在实际车身上的位置
  • PCB板缺陷检测,标记出缺陷的物理坐标,方便后续维修
  • 大型结构件的尺寸测量,通过多视角图像拼接,需要精确的位姿关系

你想想看,如果标定不准,检测报告上写的「缺陷在X=100mm处」,实际却在X=105mm处,那维修人员就找错地方了。这种错误在产线上是要出大问题的。

1.4 手眼标定的两种基本配置

在深入技术细节之前,咱们先搞清楚两种最常见的配置。这是后续所有内容的基础。

配置类型 相机安装位置 标定目标 常见场景
眼在手上(Eye-in-Hand) 相机固定在机器人末端 相机坐标系 → 末端坐标系 抓取、小范围装配
眼在手外(Eye-to-Hand) 相机固定在机器人外部 相机坐标系 → 机器人基座坐标系 检测、大范围作业

注意:两种配置的标定方法和数学模型完全不同。很多新手上来就套公式,结果算出来的结果一塌糊涂。我建议你先把配置搞清楚,再选方法。

1.5 本章知识体系

为了让你更直观地理解本章内容,我画了一张结构图。它展示了手眼标定的核心逻辑。

手眼标定知识体系 手眼标定 什么是手眼标定? 为什么需要? 应用场景 坐标系转换 刚体变换 像素→物理 消除系统误差 实现自动化 提升柔性 抓取 装配 检测 两种配置:眼在手上 vs 眼在手外 眼在手上 (Eye-in-Hand) 相机固定在机器人末端 眼在手外 (Eye-to-Hand) 相机固定在机器人外部

这张图把本章的核心内容串起来了。从「什么是手眼标定」出发,到「为什么需要」,再到「应用场景」,最后落到两种配置。后面的章节,我们会沿着这个框架一步步深入。

1.6 小结

这一章咱们聊了手眼标定的基本概念。说白了,它就是连接视觉与机器人的桥梁。没有这座桥,你的机器人就是「睁眼瞎」。

我个人的建议是:不要急着上手写代码。先把概念吃透,把配置选对。基础打牢了,后面的路才走得稳。

下一章,我们会深入数学原理,看看那个传说中的变换矩阵到底是怎么来的。到时候,我会用我当年踩过的坑给你当反面教材,哈哈。

本章要点回顾:

  • 手眼标定 = 建立相机与机器人之间的坐标转换关系
  • 三大必要性:消除误差、实现自动化、提升柔性
  • 三大应用场景:抓取、装配、检测
  • 两种配置:眼在手上、眼在手外,方法完全不同

公众号:蓝海资料掘金营,微信deep3321