钣金件圆孔对位视觉完整流程(机械臂抓取 + 视觉纠偏方案)

整体业务流程

机械臂先粗放钣金到视觉拍照工位(初始定位台) → 相机拍照 → 视觉算出钣金圆孔相对基准孔的 X/Y 平移偏移、R 旋转角度偏移 → 下发偏移补偿给机械臂 → 机械臂带动钣金二次微调,精准插入目标定位销 / 基准孔。(图像处理的流程:原图 → 灰度化 → 高斯模糊降噪 → 阈值二值化 → 形态学运算(开 / 闭运算)→ 轮廓 / 圆检测)

什么是开闭运算?

运算顺序核心功能典型视觉用途
开运算 腐蚀→膨胀 消外部小白噪点、毛刺 去除钣金粉尘、表面反光亮点
闭运算 膨胀→腐蚀 填内部小黑缝隙、缺口 修复圆孔边缘划痕、闭合轮廓

腐蚀 Erode

结构元中心点滑过白色区域,只要结构元碰到任意一个黑色像素,当前像素变黑。
效果:白色区域缩小,孔洞变大,毛刺变小。
用途:消除细小白色噪点、金属表面微小反光亮点。

膨胀 Dilate

结构元中心点滑过黑色区域,只要结构元碰到任意一个白色像素,当前像素变白。
 效果:白色区域扩张,孔洞缩小,边缘向外扩张。
 用途:填补目标内部细小缺口、划痕。
 

完整标准执行流程

步骤1、设备标定

必须先首先统一相机坐标系和机械臂世界坐标系,否则计算出的偏移量机械臂无法直接使用。

 

  • 手眼标定(眼在手上 / 眼固定两种,本场景相机固定,采用固定相机标定)

机械臂抓取标定板,移动到相机视野内多个点位拍照;

算法求解转换矩阵:把图像像素偏移,换算成机械臂可识别的世界坐标 mm 偏移、旋转角度 °。

  • 基准模板采集

机械臂将钣金完美插入基准,此时拍照保存标准模板:

记录基准孔圆心坐标(世界坐标系原点 X0,Y0);

记录钣金圆孔标准圆心、标准角度 R0;后续所有工件都和这张标准图做对比,计算偏差。

  • 图像像素物理刻度标定:1 像素 = 多少毫米。

步骤2、机械臂上料,工件到位触发拍照

 

步骤3、图像预处理(消除干扰,提升员工识别精度)

 对原图做降噪、增强,避免油污、反光、划痕影响检测:

  1. 灰度化:彩色图转单通道灰度图,减少计算量;
  2. 滤波去噪:高斯模糊,过滤钣金表面毛刺、粉尘噪点;
  3. 阈值分割二值化:区分金属钣金背景与黑色圆孔,分离目标特征;
  4. 形态学开闭运算:消除小孔噪点、填补圆孔边缘缺口,让圆形轮廓完整。

步骤4、特征检测,提取钣金圆孔实际位置

 核心目标:算出当前钣金圆孔圆心(X1,Y1)、钣金旋转角度 R1

 两种常用检测方案(圆孔优先圆检测):
方案A:霍夫圆检测
  • 遍历图像所有轮廓,筛选圆形轮廓,拟合得到圆孔亚像素级圆心坐标、半径;
  • 同时提取钣金两条直边,计算钣金整体旋转角度 R1(防止圆孔圆形无法判断旋转)。
方案B:轮廓匹配/模版匹配
  • 提前保存标准钣金模板,匹配当前工件,直接输出整体平移 + 旋转。

步骤5、计算相对偏移量

 拿当前工件特征 和 标准基准模板做差值: 图像像素偏移:ΔPx = Px 标准 - Px 当前;ΔPy = Py 标准 - Py 当前;ΔR = R 标准 - R 当前;

通过手眼标定矩阵 + 像素刻度,像素偏移转为机械臂世界坐标偏移:

  • X 轴补偿量 ΔX (mm)
  • Y 轴补偿量 ΔY (mm)
  • 旋转补偿角度 ΔR (°)

边界校验:设置最大允许偏移阈值(如 ±10mm、±5°)

偏移在阈值内:正常,下发补偿数据;

偏移超限:判定工件放歪 / 抓取掉落,视觉报警,通知机械臂下料重抓。

步骤6、视觉下发偏移数据给机械臂

 

步骤7、机械臂补偿运动,完成精准插孔

 

posted @ 2026-07-20 17:02  HelloWorld庄先生  阅读(2)  评论(0)    收藏  举报