有序轴/棒

本节提供有序轴/棒工程的使用指导,该工程概览如下。

工件

有序摆放的轴/棒,金属材质,类圆柱体

工作距离

1200~3000mm

技术指标

识别定位精度:±3mm

识别成功率:大于 99%

视觉系统耗时:4s 以内

工程介绍

有序轴/棒工程主要针对有序摆放的轴/棒下料的场景,符合大多数轴/棒下料场景的使用需求。

下文将从适用场景、技术指标方面介绍该工程。

适用场景

本节将从工件、载具方面介绍该工程的适用场景。

工件

该工程对轴/棒的适用情况如下表所示。

工件特征

适用情况

图示

工件类型

适用于轴/棒有序来料、整体摆放的场景

icon_1

不适用于轴/棒无序摆放的场景

icon_2

形状尺寸

适用于类圆柱体

icon_3

材质

适用于金属材质,允许工件表面生锈或存在少量油污

反光性

允许工件表面存在轻微的反光

icon_4

点云质量

适用于点云无明显缺失的场景,关键特征处点云缺失需少于 10%

icon_5

提示

该工程使用到了钢棒的超级模型,如需了解钢棒超级模型可以识别到的钢棒的图例,请参考 附录

载具

该工程对载具的适用情况如下表所示。

载具特征

适用情况

图示

载具类别

适用于托盘

icon_6

同样适用于料筐,推荐使用漏斗状料筐

icon_8

不适用于筐壁反光、筐壁变形、塑料布干扰、料筐中存在网格等情况

icon_7

技术指标

有序轴/棒工程的技术指标如下:

  • 识别定位精度:±3mm

  • 识别成功率:大于 99%

  • 视觉系统耗时:4s 以内。

注解

视觉系统耗时指从相机采集图像至输出物体位姿所用的时间。

工程规划

布局

工作站布局

工作站布局如下图所示。

../../../_images/workstation_layout3.png

该工作站内的工作流程如下:

  1. 轴/棒由 AGV 整托输送到上料位置。

  2. 机器人向视觉系统发送拍照指令,对料筐内的轴/棒进行拍照识别,然后视觉系统将轴/棒的位置信息发送给机器人。

  3. 机器人根据视觉系统给出的轴/棒位置信息对轴/棒进行抓取,并将轴/棒送至二次定位台。

  4. 重复以上步骤,直至上料完成。

视觉系统硬件组成

推荐型号

说明

相机

LSR L

推荐安装方式:Eye-to-Hand(固定式/滑动式);工作距离:1200~3000mm

工控机

标准机型,有 GPU (K-Q37MV-Q370)

处理器:CPU I7-9700

内存:16G

硬盘:256G SSD

显卡:1050 TI

WIFI 模块

机器人夹具

有序轴/棒工程常用夹具为 V 字形磁吸式夹具。

磁吸式夹具如下图所示。

../../../_images/clamps_14.png

夹具说明:

需要特别注意夹具对不同直径的轴棒的兼容性,建议夹具在抓取方向上存在缓冲。

夹具优点:

  • 抓取方向存在缓冲,可极大提高抓取成功率,同时可以保护夹具;

  • 可在一定范围内抓取不同直径的工件。

夹具缺点:

  • 当轴/棒直径较小时,有可能出现一次抓取到多个工件的情况。

视觉相关

通信方式

推荐使用标准接口通信方式。

一、切换 Mech-Vision 配方

机器人 -> 工控机

请求指令

Mech-Vision 工程编号

配方编号

103

Mech-Vision 工程列表中工程名左侧的数字

1~99

示例

103, 1, 2

工控机 -> 机器人

返回指令

状态码

103

1107:配方切换成功 1012:Mech-Vision 配方编号不存在

示例

103, 1107

二、启动 Mech-Viz 工程

机器人 -> 工控机

请求指令

位姿类型

机器人位姿

201

0:不发送位姿 1:传入 Mech-Viz 的位姿为关节角及法兰位姿形式 2:机器人端自定义的关节角

机器人当前关节角及法兰位姿(若“位姿类型”为 1)

示例

201, 1, 0, -20.632, -107.812, 0, -92.818, 0.003

工控机 -> 机器人

返回指令

状态码

201

2103:执行正常 2008:工程运行错误 ……

示例

201, 2103

三、选择 Mech-Viz 分支

机器人 -> 工控机

请求指令

分支步骤编号

出口号

203

该参数应为正整数,用于指定分支选择将在哪个步骤上进行

该参数为正整数,该参数用于指定工程将沿消息分支步骤的哪个出口运行。

示例

203, 1, 1

工控机 -> 机器人

返回指令

状态码

203

2105:执行正常 2018:无效的分支出口号 ……

示例

203, 2105

四、获取规划路径(推荐)

机器人 -> 工控机

请求指令

路径点类型

205

1:路径点将以机器人关节角形式返回 2:路径点将以机器人工具位姿形式返回

示例

205, 1

工控机 -> 机器人

返回指令

状态码

是否发送完成

路径点数量

“视觉移动”位置

路径点

205

2100:执行正常 2007:路径规划失败 ……

0:未发送完路径中的全部路径点 1:已发送完路径中的全部路径点

默认范围:0~20 若路径中含有 20 个以上个路径点,请多次执行该指令。

“视觉移动”步骤路径点在整个路径中的位置

物体位姿 标签 速度

示例

205, 2100, 1, 2, 2, 8.307, 15.163, -142.177, -2.775, -31.440, -96.949, 0, 64

五、获取视觉目标点(无 Mech-Viz 时使用,不推荐)

机器人 -> 工控机

请求指令

Mech-Vision 工程编号

102

Mech-Vision 工程列表中工程名左侧的数字

示例

102, 1

工控机 -> 机器人

返回指令

状态码

是否发送完成

TCP 数量

保留字段

视觉目标点

102

1100:执行正常 1102:无视觉结果 ……

0:未完全发送 1:已完全发送

默认范围:0~20

该字段未使用,默认值为 0

物体位姿 标签 速度

示例

102, 1100, 1, 1, 0, 95.780, 644.567, 401.101, 91.120, -171.130, 180.0, 0, 0

关于标准接口通信的详细内容,可参考 标准接口通信

工程说明

../../../_images/project_overall_framework_02.png
  1. 采集图像: 用于获取轴/棒的彩色图、深度图。

  2. 实例分割: 利用深度学习和轴/棒的超级模型识别轴/棒。

  3. 点云预处理并提取掩膜对应的点云: 用于对轴/棒的原始点云进行预处理,并提取掩膜对应的点云。

  4. 根据点云尺寸和点云数量进行过滤: 利用设定的规则过滤不符合要求的轴/棒点云。

  5. 3D 匹配: 利用 STL 模型生成的点云模板,与原始点云进行匹配,获得更准确的抓取点。

  6. 利用深度学习矫正匹配时的轴向偏差: 利用深度学习功能矫正轴向偏差。

  7. 料筐识别: 计算料筐上边沿中心位姿,同时根据料筐的 ROI 和角度过滤不合格的料筐中心位姿。

  8. 位姿处理及防错: 用于对轴/棒的抓取位姿进行变换、排序,并根据设定的规则滤除不合格的抓取点。

  9. 输出结果: 将当前工程的结果发送给后台服务。

点云模板与抓取点设置方式

一般由 STL 模型生成匹配模板,抓取点设置在轴的轴心上。

工程难点

  • 匹配识别过程中,轴向可能出现偏差。

  • 表面光滑的轴/棒点云质量较差。

  • 夹具设计余量较差时,对抓取精度要求较高。

  • 深度学习功能有可能对最上层工件存在漏识别的现象。

工程优点

  1. 工程中同时包含料筐定位和工件识别。

  2. 夹具的抓取方向存在缓冲,可以显著提高抓取成功率。

  3. 该工程包含大量防错步骤,提高工程稳定性。

  4. 该工程中识别类步骤的参数经过了重复验证,识别稳定性较高。

工程部署

注意事项

  • 需考虑夹具对不同尺寸工件的兼容性: 当一个工位有多种型号的工件时,如果只有一个夹具,需要考虑同一个夹具对不同尺寸工件抓取的兼容性,避免一次抓取多个工件,或者该夹具不适用于抓取个别工件的情况。

  • 夹具容许偏差应尽可能增大: 对于反光工件,工件点云质量较差,如果想要抓取顺利,夹取设计时尽可能增大容许偏差。

  • 放置位余量说明: 放置位推荐使用比较大的长度方向容差,有条件时建议 ±30mm 以上,条件受限时建议 ±10mm。

  • 深度学习模型说明: 工程中使用的是深度学习超级模型,但是参与训练的数据有限,如果在项目中深度学习效果欠佳,需要采集数据,对超级模型进行迭代。

参数调节建议

实例分割

  • 图像亮度和色彩均衡器 :当 2D 图像过暗时,可通过调整该步骤的 亮度系数 参数来增加亮度。现场调试阶段应调整现场光照条件和相机参数保证 2D 图像亮度适中。

  • 深度学习模型包推理(Mech-DLK 2.2.0+) :利用深度学习和轴/棒的超级模型识别轴/棒。如果遇到深度学习识别问题,需要采集图像数据对模型进行迭代,并设置合适的 ROI。

点云预处理并提取掩膜对应的点云

../../../_images/extract_3d_points_in_3d_roi1.png
  • 点云预处理 :通过点云预处理去除杂点,并提取掩膜中对应的点云。

../../../_images/point_cloud_preprocessing1.png

根据点云尺寸和点云数量进行过滤

  • 根据阈值对数值进行二分类 :需设置工件的长边(下图 1)和短边(下图 2)的最小尺寸,当工件长边或短边的尺寸小于最小尺寸时,应过滤掉对应工件的点云和掩膜。

../../../_images/dichotomize_values_by_threshold1.png
  • 验证点云是否符合要求 :需设置 最小点数阈值最大点数阈值 ,以过滤掉点云数量不符合规则的点云和对应掩膜。

3D 匹配

  • 3D 精匹配 :置信阈值应设置为 0,且不可更改。后续步骤可根据匹配分数过滤得分较低的工件位姿,主要目的是为了使匹配过程中输出的工件位姿和实例分割识别得到的掩膜一一对应。同时应优化相关参数,使得匹配偏差尽可能小。

../../../_images/3d_fine_matching1.png

通过深度学习掩膜矫正匹配轴向偏差

../../../_images/convert_2d_points_to_3d_points.png

料筐识别

该工程通过计算平面位姿求取料筐位姿,可根据实际情况选择料筐识别方案。该步骤组合用于计算料筐上边沿中心位姿,同时可设置尺寸、ROI,还可进行角度防错。

../../../_images/dichotomize_values_by_threshold_3.png

位姿处理及防错

../../../_images/extract_3d_points_in_cuboid_2.png

常见问题及解决方法

深度学习识别异常

当使用深度学习识别轴/棒出现异常时,可尝试使用如下方法:

  • 重新训练深度学习模型,并且需重新采集数据。

  • 删除“通过深度学习掩膜矫正匹配轴向偏差”步骤组合。

附录

下文将展示更多可供钢棒超级模型识别的工件场景。

横摆放

反光

当工件表面存在一定程度反光时,钢棒超级模型可识别到的钢棒的图例如下表所示。

工件反光

icon_1_1

icon_1_2

icon_1_3

icon_1_4

icon_1_5

icon_1_6

icon_1_7

icon_1_8

icon_1_9

icon_1_10

icon_1_11

icon_1_12

icon_1_13

icon_1_14

icon_1_15

icon_1_16

icon_1_17

icon_1_18

icon_1_19

icon_1_20

不反光

当工件表面不反光时,钢棒超级模型可识别到的钢棒的图例如下表所示。

工件不反光

icon_2_1

icon_2_2

icon_2_3

icon_2_4

icon_2_5

icon_2_6

icon_2_7

icon_2_8

竖摆放

当工件竖摆放时,钢棒超级模型可识别到的钢棒的图例如下表所示。

工件竖摆放

icon_3_1

散乱来料

当工件散乱来料时,钢棒超级模型可识别到的钢棒的图例如下表所示。

工件散乱来料

icon_4_1

icon_4_2

icon_4_3

icon_4_4

icon_4_5

icon_4_6

icon_4_7

icon_4_8

icon_4_9