R&D
CENTER

3D 视觉与点云:需要高度和姿态的时候

机械臂要抓取物体,或要测量焊道高度时,2D 图像是不够的。本课说明如何对 3D 相机生成的点云进行整理、分割和配准。

基础4 分钟1 浏览
本课要点
  1. 2D 图像告诉你“什么东西在哪里”,3D 点云告诉你“有多高、呈什么姿态”。
  2. 点云处理按以下顺序进行:感兴趣区域 → 降采样 → 去噪 → 法线 → 平面分离 → 物体分割 → 配准。
  3. 通过模板配准求出物体的 3D 姿态(位置+旋转),就得到机械臂可以直接使用的坐标。
  4. 在焊接检测中,通过焊道的截面轮廓以 mm 为单位测量焊脚长度·焊喉厚度·咬边。

2D 相机把世界拍成平面。要抓起箱子里层层堆叠的零件中最上面的那一个,或者确认焊道是否足够饱满凸起,就需要高度。3D 相机会在每个像素处同时测量距离,把场景以点的集合,也就是点云的形式返回。

3D 相机的种类

fineAi RoboVision 支持以下 3D 相机。

  • 图案光(结构光)方式 — Zivid、Photoneo、EpicEye Pixel Pro。用投影仪投射条纹图案,再根据图案在物体表面弯曲的形状计算距离。适合精密拍摄静止的物体。
  • 激光方式 — EpicEye Laser M V3。在反光强烈或深色的表面上也很稳定。

这些相机输出的是有序(organized)点云。点按照图像的像素网格顺序排列,因此 2D 图像坐标可以直接对应到 3D 点。也就是说,在 2D 中用 YOLO 找到的物体区域,可以原样映射到 3D 点上。通常保存为 PLY 文件。

处理流程

ROI 降采样 去噪 法线计算 平面分离 物体分割 配准 → 姿态 数十万个点 → 单个物体的位置和旋转
Digital Twin Pick&Place 在 3D 相机拍摄后执行的处理顺序。
  1. ROI(感兴趣区域) — 只保留工作台或箱子内部这类需要的空间。
  2. 降采样 — 在固定间隔的网格(voxel)中各只保留一个点,以减少点数。后续计算会快好几倍。
  3. 去噪 — 删除与周围点相距很远的点(悬浮在空中的点)。
  4. 法线计算 — 对每个点,用周围的点拟合出一个小平面,求出表面方向。用于确定抓取方向。
  5. 平面分离 — 找出最大的平面(地面、工作台)并删除。常用 RANSAC 这类用随机样本拟合平面的方法。剩下的点就是物体。
  6. 物体分割 — 把彼此靠近的点归为一组,分成一个一个的物体。
  7. 配准(Registration) — 将预先注册的模板模型匹配到各个物体上,求出 3D 姿态(位置 + 旋转)。

配准结果是相机坐标。机械臂要使用,必须转换成机械臂坐标,这个转换就是 Hand-Eye 标定。

从多个方向拍摄并拼接

大型物体或曲面无法一次看全。RoboVision 把相机装在机械臂末端,沿轨迹移动拍摄。每次拍摄时记录机械臂反馈的相机位姿,再利用这些位姿把多张拼接成一个整体(pose-guided stitching)。与在图像之间匹配特征点的方式相比,即使在没有特征的光滑表面上也更稳定。

焊道检测

焊缝在 2D 图像中只能看到形状,但用 3D 观察就能测量截面轮廓。RoboVision 从焊道截面以 mm 为单位计算以下数值。

  • 焊脚长度(leg)、焊喉厚度(throat)
  • 焊道宽度·高度、凸起·凹陷程度
  • 咬边深度

将这些数值与 ISO 5817 质量等级(B/C/D)的定量标准比较并评定等级,并在报告中记录各缺陷的 OK/NG 原因。

2D 与 3D,该用哪一种

问题 2D 3D
表面是否有划伤·异物 ✓ 适合 分辨率较低,不利
高度·平面度·体积是否在标准范围内 困难 ✓ 适合
能否抓取重叠堆放的物体 困难 ✓ 适合
处理速度是否必须非常快 ✓ 有利 相对较慢

实际的工作站会两者并用。先用 2D 快速找出什么东西在哪里,再只对该区域用 3D 精细观察。