1. 机器视觉与手眼标定概述

大家好,我是老张。做机器视觉这行十几年了,手眼标定这块坑踩了不少,也攒了些经验。今天咱们就从最基础的东西聊起——机器视觉系统到底长什么样?手眼系统分哪几种?标定到底在干什么?

你可能会问:标定不就是算个矩阵吗?嗯,表面上看确实是这样。但我在项目里见过太多人,矩阵算出来了,机器人抓不准,最后发现是连基本概念都没搞清。所以这一章,咱们先把地基打牢。

1.1 机器视觉系统组成

一套完整的机器视觉系统,说白了就是给机器装上「眼睛」和「大脑」。我习惯把它拆成四个部分:

组成部分 典型设备 核心作用
图像采集 工业相机、镜头、光源 把物理世界的光信号转成数字图像
图像处理 工控机、视觉控制器 运行算法,提取特征、测量、识别
执行机构 机器人、PLC、运动控制卡 根据视觉结果做抓取、装配、分拣
通信接口 TCP/IP、Modbus、I/O 让视觉系统和执行机构「对话」
我的习惯:选相机和镜头时,先问清楚三个数——工作距离、视野大小、最小检测精度。这三个数定下来,硬件方案基本就锁死了。别一上来就盯着分辨率看,容易跑偏。

举个例子。去年有个3C项目,客户要检测手机中框的螺丝孔位置。视野30mm,精度要求0.02mm。我算了一下,500万像素的相机配个远心镜头刚好够。要是用普通镜头,边缘畸变就能让你标定白做。

1.2 手眼系统分类

手眼系统,就是相机和机器人的「组合方式」。业内就两种:Eye-in-Hand 和 Eye-to-Hand。名字听着绕,其实很好理解。

核心区别一句话:相机装在机器人手上,还是装在机器人外面。

Eye-in-Hand(眼在手上)

相机固定在机器人末端法兰盘上。机器人动,相机跟着动。

  • 优点:灵活,可以拍到不同角度的目标;精度高,离目标近
  • 缺点:每次换工具都要重新标定;视野有限,拍不到全局
  • 典型场景:抓取、装配、焊缝跟踪

我记得有个汽车零部件项目,用Eye-in-Hand做抓取。一开始没注意工具长度变化,换了夹爪后标定全废。后来我养成了个习惯——每次换工具,先跑一遍标定程序,也就几分钟的事。

Eye-to-Hand(眼在手外)

相机固定在支架上,机器人怎么动都不影响相机位置。

  • 优点:视野固定,适合大范围检测;标定一次管很久
  • 缺点:容易被机器人本体遮挡;精度受安装距离影响
  • 典型场景:定位、分拣、码垛

两种方式没有好坏。我见过有人非要用Eye-in-Hand做码垛,结果视野不够,来回移动浪费时间。也见过用Eye-to-Hand做精密装配,精度死活上不去。选型时想清楚:你要的是灵活性,还是稳定性?

1.3 标定的核心目标与意义

标定到底在干什么?我换个说法你就懂了。

相机看到的是像素坐标,机器人动的是世界坐标。这两个坐标系之间,隔着一层「映射关系」。标定,就是找到这个映射关系。

曾经踩过的坑:有个项目,标定完精度0.5mm,客户说够了。结果量产时发现,机器人每次抓取位置都在漂。查了两天,发现是相机安装支架松了。标定再准,机械结构不稳也是白搭。所以我现在每次标定前,都会先检查所有螺丝有没有拧紧。

标定的核心目标可以归纳为三点:

  1. 建立坐标映射:把图像坐标转换成机器人能理解的坐标
  2. 消除系统误差:镜头畸变、安装角度偏差、机器人运动误差,统统算进去
  3. 保证重复精度:同一个位置,今天测和明天测,结果要一致

你想想看,如果没有标定,机器人看到的目标在像素上是(500, 300),它怎么知道该往哪个方向走?走多远?这就是标定要解决的问题。

1.4 本章知识体系

下面这张图,把这一章的核心逻辑串起来了。我建议你多看几遍,后面每章都会用到这些概念。

手眼标定知识体系 机器视觉系统 手眼系统分类 标定核心目标 图像采集 图像处理 执行机构 通信接口 Eye-in-Hand Eye-to-Hand 坐标映射 消除误差 重复精度 核心逻辑 1. 机器视觉系统提供「眼睛」——采集图像、提取特征 2. 手眼系统决定「眼睛」和「手」的相对位置关系 3. 标定建立两者之间的数学映射,让机器人知道「看到即抓到」 4. 三者缺一不可:系统是基础,分类是选型,标定是精度保障
给新手的话:别急着写代码。先把这张图里的概念搞清楚。我见过太多人一上来就调HALCON的标定算子,结果连标定板放哪都不知道。先理解,再动手,这是最快的路。