第二章 相机选型与标定:工业相机分类、镜头参数、手眼标定原理

做视觉引导抓取,第一步就是选相机。这一步要是走偏了,后面算法调得再好也白搭。我见过不少项目,前期随便买了个相机,结果到了现场发现视野不够、分辨率跟不上、或者帧率太低,最后只能返工。嗯,今天咱们就把这事聊透。

2.1 工业相机分类

工业相机说白了就两大类:面阵相机线阵相机。抓取场景里,95% 以上用的是面阵相机。为什么?因为抓取需要的是二维图像里的位置和姿态信息,面阵相机一拍一个准。

但面阵相机内部还有讲究。我按传感器类型给你分一下:

类型 特点 适用场景
CCD 噪声低、动态范围高、帧率一般 高精度检测、静态抓取
CMOS 帧率高、功耗低、成本低 高速抓取、动态场景
全局快门 整帧同时曝光,无畸变 运动物体抓取
卷帘快门 逐行曝光,成本低 静态场景
我的经验:做抓取项目,优先选全局快门的CMOS相机。我曾经在一个流水线抓取项目里用了卷帘快门,结果工件一运动,图像就变形了,定位全偏。后来换成全局快门,问题立刻解决。

2.2 镜头参数

镜头这东西,很多人觉得随便配一个就行。其实不然。镜头选错了,相机再好也白费。我重点讲几个关键参数:

2.2.1 焦距

焦距决定了视野大小。公式很简单:

焦距 = 工作距离 × 传感器尺寸 / 视野宽度

举个例子:你需要在1米外拍一个0.5米宽的工件,传感器宽度是6.4mm(1/2英寸),那焦距就是 1000 × 6.4 / 500 ≈ 12.8mm。选12mm或16mm的镜头都行。

注意:焦距越短,视野越大,但畸变也越严重。我曾经在一个项目里用了4mm的超广角镜头,结果边缘畸变太大,标定后误差还是超了0.5mm。后来换成了8mm镜头,畸变小了很多。

2.2.2 光圈

光圈影响进光量和景深。抓取场景里,我建议光圈设在F4到F8之间。太小了进光不够,太大了景深太浅,工件稍微一偏就模糊了。

2.2.3 接口类型

现在主流是C接口和CS接口。C接口的后焦是17.526mm,CS接口是12.5mm。买的时候注意匹配,不然装不上。我见过有人买了C接口镜头配CS接口相机,结果怎么调都调不清楚——嗯,这就是接口不匹配。

2.3 手眼标定原理

手眼标定,说白了就是让机器人知道「相机看到的物体,在机器人坐标系里到底在哪」。这是整个系统的核心环节。标定不准,后面抓取全是瞎抓。

核心思想:通过已知的标定板,求解相机坐标系与机器人末端坐标系之间的变换关系。

2.3.1 两种标定模式

手眼标定分两种:眼在手上(Eye-in-Hand)眼在手外(Eye-to-Hand)

  • 眼在手上:相机装在机器人末端,跟着机械臂一起动。优点是灵活,可以近距离拍摄工件。缺点是标定复杂,每次换工具都得重新标。
  • 眼在手外:相机固定安装,不随机器人动。优点是标定一次管很久,适合固定工位的抓取。缺点是视野固定,工件位置变化大时可能拍不到。

我个人习惯用眼在手上的方案。为什么?因为抓取场景里工件位置经常变,相机跟着机械臂走,总能找到最佳拍摄角度。不过标定确实麻烦一些,咱们接着看。

2.3.2 标定方程

手眼标定的核心方程是:

AX = XB

其中:

  • A:机器人末端的位姿变换(从机器人控制器读取)
  • B:相机看到的标定板位姿(通过图像计算)
  • X:待求解的手眼变换矩阵

这个方程怎么解?常用的方法有Tsai两步法和非线性优化法。我一般用OpenCV的calibrateHandEye()函数,直接传入多组A和B,就能算出X。

避坑指南:我曾经在标定时只拍了3组数据,结果算出来的X误差很大。后来我改成拍12-15组,覆盖不同的姿态和位置,标定精度明显提升。记住:数据越多,标定越稳。

2.3.3 标定流程

我总结了一套标准流程,照着做基本不会出问题:

  1. 固定标定板在工作台上,确保它不动
  2. 控制机器人移动到第一个位置,记录末端位姿A1
  3. 相机拍照,检测标定板角点,计算位姿B1
  4. 改变机器人姿态,重复步骤2-3,至少采集10组数据
  5. 调用标定算法,求解手眼矩阵X
  6. 验证:用一组新数据,计算重投影误差,应小于0.5像素
注意:标定过程中,标定板绝对不能移动。我见过有人标定到一半,不小心碰了标定板,结果所有数据全废了。嗯,这种事我也干过,后来学乖了,标定前先用胶带把标定板固定好。

2.4 知识体系总览

为了让你更直观地理解本章的知识结构,我画了一张图:

相机选型与标定知识体系 工业相机分类 面阵相机 线阵相机 CCD / CMOS 全局/卷帘快门 镜头参数 焦距 光圈 视野计算 接口匹配 手眼标定 眼在手上 眼在手外 AX = XB Tsai两步法 核心目标:建立像素坐标 → 机器人坐标的映射 选对相机 → 配好镜头 → 标定精准 → 抓取稳定

你看,整个体系其实就三大块:相机分类、镜头参数、手眼标定。每一块都有坑,但只要你按我说的来,基本能一次搞定。

总结一下:
  • 相机选型:优先全局快门CMOS,面阵相机够用
  • 镜头参数:焦距算清楚,光圈F4-F8,接口别搞错
  • 手眼标定:多采数据,固定标定板,验证重投影误差

好了,这一章就聊到这儿。下一章咱们讲光源选型和打光方案——嗯,那又是另一个有意思的话题了。


专注资料整理