履带板

本文提供履带板工程的使用指导,该工程概览如下。

工件

正反扣摆放的履带板,无明显反光,无混料

载具

托盘

工作距离

1200~3000mm

技术指标

识别定位精度:±5mm

识别成功率:大于 99.9%

视觉系统耗时:6s 以内

注解

本帮助文档在对工程进行相关介绍时,以带筋的一面朝上为正面朝上,不带筋、光滑的一面朝上为反面朝上。

工程介绍

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

适用场景

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

工件

该工程对履带板的适用情况如下表所示。

工件特征

适用情况

图示

来料方式

适用于整齐有序来料的场景

icon_1

不适用于无序来料的场景

形状尺寸

带筋、扁平状

icon_2

材质

合金钢

反光性

适用于不存在明显反光的工件

icon_3

点云质量

适用于点云无明显缺失的工件(关键特征点云缺失应少于 5%)

icon_4

不适用于点云缺失严重的工件

icon_5

载具

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

载具特征

适用情况

图示

载具类别

托盘

icon_6

技术指标

履带板工程的技术指标如下:

  • 识别定位精度:±5mm

  • 识别成功率:大于 99.9%

  • 视觉系统耗时:6s 以内

注解

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

工程规划

布局

工作站布局

工作站布局如下图所示。

../../../_images/workstation_layout4.png

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

  1. 履带板由人工叉车输送到上料位置。

  2. 机器人向视觉系统发送拍照指令,对履带板进行拍照识别,然后视觉系统将履带板的位置信息发送给机器人。

  3. 机器人根据视觉系统给出的履带板位置信息对履带板进行抓取,并将履带板放置在二次定位台。

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

视觉系统硬件组成

推荐型号

说明

相机

LSR L

推荐安装方式:Eye-to-Hand;工作距离:1200~3000mm

工控机

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

处理器:CPU I7-9700

内存:16G

硬盘:256G SSD

显卡:1050 TI

WIFI 模块

机器人夹具

履带板工程常用夹具如下图所示。

../../../_images/clamps_15.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_03.png
  1. 采集图像: 用于获取履带板的彩色图、深度图。

  2. 实例分割: 通过深度学习算法,识别出图像中的履带板,并获得其像素级掩膜。

  3. 提取掩膜对应的点云并处理: 用于提取履带板掩膜所对应的点云,并进行点过滤、点云聚类、合并点云等处理。

  4. 3D 多模板匹配: 利用点云处理获得的履带板正、反两面的边缘点云模板,与原始点云进行匹配,获得更准确的抓取位姿。

  5. 位姿处理及排序: 用于对抓取位姿进行变换、排序。

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

工程难点

  • 该工程需要识别履带板的正反面。

  • 履带板相互压叠,部分履带板点云缺失。

  • 该工程对履带板的抓取顺序要求严格。

方案优点

  • 该工程采用边缘匹配,可提升点云模板匹配的准确度。

  • 该工程可准确识别出最上层无压叠的履带板。

  • 该工程使用的夹具,可在抓取方向上设置缓冲,极大提升抓取成功率。

工程部署

注意事项

深度学习:

  • 该工程自带的深度学习模型为 GPU 模型,如需在工程现场直接运行,需要选用带 GPU 的工控机。

  • 现场运行该工程时,需要采集数据,重新训练深度学习模型。

特殊说明:

  • 本工程适用于工件“正反扣”来料的场景。

  • 如果来料场景只有反面朝上,可将多模板匹配替换为单模板匹配,并调整抓取位姿的排序逻辑。

参数调节建议

提取掩膜对应点云并处理

  • 点过滤点云聚类 :在保证平点面云完整的前提下,尽量去除侧立面的点云,和其他杂点,最后获得聚类后的点云列表。

../../../_images/point_filter_and_clustering.png
  • 获取最高层点云 :需要保证能获取到最高层履带板的点云,同时减少下层非必要点云的输出。

  • 2D 方法估计点云边缘 :工件垛高不同时,需设置不同的 2D 线宽像素(默认值为 15px)。当工件垛高较低(700mm 以下)时,基本不影响匹配效果;如果工件垛高较高,提取点云边缘宽度变化较大,有可能影响匹配效果,可以尝试不同高度设置不同的2D线宽像素解决。

    如下图所示,左图为待提取边缘的点云,右图为提取的点云边缘。

../../../_images/estimate_point_cloud_edges_by_2d_method1.png

3D 多模板匹配

  • 3D 精匹配(多模板) :当履带板带筋一侧朝上为正面朝上,不带筋一侧朝上为反面朝上时,3D 多模板匹配过程中需注意如下事项:

    • 需设置对应的 模板标签文件 ,对称性旋转轴选择 ROTATE_BY_Z 轴,对称角度步长设置为 180.0°

    • 需优先保证抓取最上层未被遮挡工件时无偏差。对于被压叠较多的下层工件,由于点云缺失,所以允许存在抓取偏差。

    • 需为正、反两面分别设置边缘点云模板。用 2D 方法提取带线宽的边缘模板的目的是保证履带板长边方向精度,而使用全模板匹配可能导致长边方向存在偏差。

    • 若粗匹配偏差较大,无法通过精匹配做进一步优化时,建议优先调整粗匹配参数,使粗匹配偏差较小。粗匹配主要调整的参数有 体素长度模板点云采样间隔 ,如示例工件,当模板点云采样间隔为 20mm 时,初始体素长度建议设置成 10 mm,然后可根据匹配效果上下微调,确定最终的体素长度。如果体素长度设置较小,很有可能会导致匹配偏差。

  • 去除被压叠的物体重叠比例阈值 不能设置太小,建议设置为 0.04。阈值太小会导致点云重叠的工件同时被滤除,如总共有两个工件,但两个工件存在点云交错,会导致两个工件位姿都会被过滤掉,无输出结果。

    如下图所示,右图中白色点云为被过滤掉的存在压叠的工件。

../../../_images/remove_overlapped_objects.png

位姿处理及排序

  • 获取最高层位姿 :若最高层工件和下层工件(第二层、第三层等)同时存在正面工件,则只需保留较高的那一层的正面工件位姿,反面工件同理。主要原因是如果第一层、第二层均存在正面工件,同时对两层工件的位姿进行抓取排序会造成排序混乱。

  • 正、反面工件根据位姿朝向排序:该步骤组合可通过输入较高一层工件反面的位姿,输出这一层工件里面需要优先抓取的工件。

    因为工件摆放是有固定规律的,同层相邻工件之间为压叠状态,如同层有四个工件,左右方向为垛的长边方向,从左向右,第一个工件压叠第二个工件,第二个工件压叠第三个工件…… 所以左边第一个工件应该优先被抓取。

    但是如果来料时工件的垛旋转了 180°,曾经在左边的第一个工件变成了右边的第一个工件,则此时右边第一个工件将被优先抓取。所以获取到同层反面工件后,只需根据工件朝向就可判断出应该按照哪个方向进行抓取排序。

  • 正面和反面工件位姿合并后只输出最高无压叠的工件位姿:如果正、反面工件位姿合并后,只有一个位姿,直接输出即可;如果正、反面工件位姿合并后,有两个位姿,即正、反各一个工件,如果反面工件是最上层工件,按照压叠逻辑,反面工件位姿应该高于正面工件位姿,且超出一个筋的高度,否则正面工件应该在最上层。同时还需注意一些异常情况,如垛是倾斜状态,即一端高一端低时,可能导致抓取位姿排序出错。

  • 数值运算 :反面工件的 Z 值减去近似的筋的高度。

常见问题及解决方法

由于点云质量较差导致匹配异常

当由于点云质量较差而导致匹配异常时,匹配异常效果如下图所示。

../../../_images/before_match.png

此时可尝试按如下步骤进行优化:

  1. 调整相机参数,提升点云质量。

  2. 根据点云缺失的部位,优化工件的点云模板,提升匹配稳定性。

优化完成后,匹配效果如下图所示。

../../../_images/after_match.png

由于深度学习异常可能导致的匹配错误或者抓取位姿排序异常

当由于深度学习识别出现异常时,可能导致匹配错误或抓取位姿排序异常,此时可对深度学习模型进行迭代。