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 标定的核心目标与意义
标定到底在干什么?我换个说法你就懂了。
相机看到的是像素坐标,机器人动的是世界坐标。这两个坐标系之间,隔着一层「映射关系」。标定,就是找到这个映射关系。
标定的核心目标可以归纳为三点:
- 建立坐标映射:把图像坐标转换成机器人能理解的坐标
- 消除系统误差:镜头畸变、安装角度偏差、机器人运动误差,统统算进去
- 保证重复精度:同一个位置,今天测和明天测,结果要一致
你想想看,如果没有标定,机器人看到的目标在像素上是(500, 300),它怎么知道该往哪个方向走?走多远?这就是标定要解决的问题。
1.4 本章知识体系
下面这张图,把这一章的核心逻辑串起来了。我建议你多看几遍,后面每章都会用到这些概念。