2、视觉系统标定:相机内参标定、手眼标定原理、标定板使用、标定结果验证方法

视觉系统标定,说白了就是给机器人的眼睛配一副准确的“眼镜”。

我见过太多项目,机械臂抓不准,最后排查下来,80%的问题都出在标定上。不是相机没标好,就是手眼关系没算对。嗯,这一章咱们就把这块硬骨头啃下来。

核心结论:标定不准,后面所有视觉引导都是空中楼阁。我建议你花70%的时间做标定,30%的时间调抓取逻辑。

2.1 相机内参标定——给相机做“视力检查”

相机内参,就是描述相机本身光学特性的参数。包括焦距、主点坐标、畸变系数这些。

为什么要标定内参?因为镜头不是完美的。你想想看,一个理想的小孔成像模型,现实中根本不存在。镜头有畸变,像素有偏移,这些都需要通过内参来修正。

内参标定的核心步骤:

  1. 准备标定板——棋盘格或圆点阵,尺寸要精确测量
  2. 采集多角度图像——至少15-20张,覆盖视野各个区域
  3. 提取角点——算法自动找棋盘格角点
  4. 计算内参——用张正友标定法求解
  5. 验证重投影误差——误差小于0.5像素才算合格

我的经验:采集图像时,标定板要倾斜、旋转、远近都拍一拍。我曾经有个项目,只拍了正对着相机的图像,结果标定出来的畸变参数完全不对,抓取边缘物体时偏差了3mm。后来补拍了倾斜角度,问题就解决了。

内参标定的数学本质,其实就是求解一个3x3的矩阵:

内参矩阵 K = [fx  0  cx]
              [0  fy  cy]
              [0   0   1]

其中:
fx, fy —— 焦距(像素单位)
cx, cy —— 主点坐标(图像中心偏移)

实际项目中,我习惯用OpenCV的cv2.calibrateCamera()函数。代码很简单,但要注意输入的世界坐标点要精确到毫米级。

2.2 手眼标定原理——让眼睛和手“认识”彼此

内参标定解决的是“相机怎么看世界”,手眼标定解决的是“相机看到的和机器人手的位置有什么关系”。

手眼标定分两种场景:

  • 眼在手上(Eye-in-Hand):相机装在机械臂末端,跟着手走
  • 眼在手外(Eye-to-Hand):相机固定安装,看机械臂干活

我做过的大部分项目都是眼在手上。为什么呢?因为灵活。相机跟着末端走,可以近距离观察目标,精度更高。

手眼标定的核心公式:

AX = XB

其中:
A —— 机器人末端的两次位姿变换关系
B —— 相机看到的标定板两次位姿变换关系
X —— 我们要求解的相机到机器人末端的变换矩阵

这个公式看着简单,但求解起来挺讲究。我建议用Tsai两步法或者基于四元数的方法,稳定性更好。

注意:手眼标定对运动质量要求很高。我曾经遇到过标定结果反复跳动的情况,排查了半天,发现是机器人运动时关节有微小回差。后来我让机器人走大角度运动,标定结果就稳定了。

2.3 标定板使用——别小看这块板子

标定板,说白了就是一块印着已知图案的平板。常见的有棋盘格和圆点阵两种。

类型 优点 缺点 适用场景
棋盘格 角点提取简单、精度高 对光照敏感、边缘易模糊 室内、光照可控
圆点阵 抗噪能力强、适合大角度 圆心提取稍复杂 光照变化大、大倾角

使用标定板的几个要点:

  • 板子要平整,不要弯曲。我见过有人用打印纸贴在不平的纸板上,标定出来误差大得离谱
  • 尺寸要精确测量,误差控制在0.1mm以内
  • 表面不要反光,亚光材质最好
  • 定期检查板子有没有磨损或污渍

避坑指南:我曾经用一张A4纸打印的棋盘格做标定,结果因为纸张受潮变形,标定出来的内参每天都不一样。后来换了陶瓷标定板,问题就再没出现过。嗯,标定板这东西,真不能省。

2.4 标定结果验证方法——别急着用,先验一验

标定完就急着上项目?我劝你慢一点。验证这一步,能帮你省下后面几天的排查时间。

验证方法分三步:

  1. 重投影误差检查
    • 把标定板上的3D点投影到图像上
    • 计算投影点和实际提取点的像素距离
    • 平均误差应小于0.5像素,最大误差不超过1像素
  2. 重复性测试
    • 固定标定板位置,重复标定10次
    • 看内参和手眼矩阵的波动范围
    • 波动超过5%就要怀疑标定质量
  3. 实际抓取验证
    • 放一个已知位置的目标物体
    • 用视觉引导机械臂去抓
    • 测量实际抓取点和理论点的偏差
    • 偏差在1-2mm内算合格

我的习惯:每次标定完,我都会做一个“三点验证”。在视野内选三个不同位置的点,让机器人去指。如果三个点都指准了,我才放心往下走。这招帮我排过不少雷。

2.5 本章知识体系

下面这张图,是我自己总结的视觉标定知识框架。你看一眼,心里就有谱了。

视觉系统标定知识体系 视觉系统标定 相机内参标定 焦距、主点、畸变系数 张正友标定法 手眼标定 眼在手上 / 眼在手外 AX = XB 求解 标定板使用 棋盘格 / 圆点阵 平整度、尺寸精度 结果验证 重投影误差 < 0.5px 重复性 < 5% 实际抓取偏差 < 2mm 标定质量 = 抓取精度 × 系统稳定性

这张图把整个视觉标定的脉络理清楚了。你从内参开始,一步步走到验证,每一步都踩实了,机械臂抓取的成功率自然就上去了。

最后说一句:标定这件事,急不得。我见过太多人为了赶进度,草草标定就上线,结果后面花了两倍的时间来排查问题。嗯,磨刀不误砍柴工,标定这步走稳了,后面就顺了。

可可精品资料库