有序轴/棒¶
本节提供有序轴/棒工程的使用指导,该工程概览如下。
工件 |
有序摆放的轴/棒,金属材质,类圆柱体 |
工作距离 |
1200~3000mm |
技术指标 |
识别定位精度:±3mm |
识别成功率:大于 99% |
|
视觉系统耗时:4s 以内 |
工程介绍¶
有序轴/棒工程主要针对有序摆放的轴/棒下料的场景,符合大多数轴/棒下料场景的使用需求。
下文将从适用场景、技术指标方面介绍该工程。
工程规划¶
布局¶
工作站布局¶
工作站布局如下图所示。
该工作站内的工作流程如下:
轴/棒由 AGV 整托输送到上料位置。
机器人向视觉系统发送拍照指令,对料筐内的轴/棒进行拍照识别,然后视觉系统将轴/棒的位置信息发送给机器人。
机器人根据视觉系统给出的轴/棒位置信息对轴/棒进行抓取,并将轴/棒送至二次定位台。
重复以上步骤,直至上料完成。
视觉系统硬件组成¶
推荐型号 |
说明 |
|
相机 |
LSR L |
推荐安装方式:Eye-to-Hand(固定式/滑动式);工作距离:1200~3000mm |
工控机 |
标准机型,有 GPU (K-Q37MV-Q370) |
处理器:CPU I7-9700 |
内存:16G |
||
硬盘:256G SSD |
||
显卡:1050 TI |
||
WIFI 模块 |
机器人夹具¶
有序轴/棒工程常用夹具为 V 字形磁吸式夹具。
磁吸式夹具如下图所示。
夹具说明:
需要特别注意夹具对不同直径的轴棒的兼容性,建议夹具在抓取方向上存在缓冲。
夹具优点:
抓取方向存在缓冲,可极大提高抓取成功率,同时可以保护夹具;
可在一定范围内抓取不同直径的工件。
夹具缺点:
当轴/棒直径较小时,有可能出现一次抓取到多个工件的情况。
视觉相关¶
通信方式¶
推荐使用标准接口通信方式。
一、切换 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 |
关于标准接口通信的详细内容,可参考 标准接口通信 。
工程说明¶
采集图像: 用于获取轴/棒的彩色图、深度图。
实例分割: 利用深度学习和轴/棒的超级模型识别轴/棒。
点云预处理并提取掩膜对应的点云: 用于对轴/棒的原始点云进行预处理,并提取掩膜对应的点云。
根据点云尺寸和点云数量进行过滤: 利用设定的规则过滤不符合要求的轴/棒点云。
3D 匹配: 利用 STL 模型生成的点云模板,与原始点云进行匹配,获得更准确的抓取点。
利用深度学习矫正匹配时的轴向偏差: 利用深度学习功能矫正轴向偏差。
料筐识别: 计算料筐上边沿中心位姿,同时根据料筐的 ROI 和角度过滤不合格的料筐中心位姿。
位姿处理及防错: 用于对轴/棒的抓取位姿进行变换、排序,并根据设定的规则滤除不合格的抓取点。
输出结果: 将当前工程的结果发送给后台服务。
点云模板与抓取点设置方式¶
一般由 STL 模型生成匹配模板,抓取点设置在轴的轴心上。
工程难点¶
匹配识别过程中,轴向可能出现偏差。
表面光滑的轴/棒点云质量较差。
夹具设计余量较差时,对抓取精度要求较高。
深度学习功能有可能对最上层工件存在漏识别的现象。
工程优点¶
工程中同时包含料筐定位和工件识别。
夹具的抓取方向存在缓冲,可以显著提高抓取成功率。
该工程包含大量防错步骤,提高工程稳定性。
该工程中识别类步骤的参数经过了重复验证,识别稳定性较高。
工程部署¶
注意事项¶
需考虑夹具对不同尺寸工件的兼容性: 当一个工位有多种型号的工件时,如果只有一个夹具,需要考虑同一个夹具对不同尺寸工件抓取的兼容性,避免一次抓取多个工件,或者该夹具不适用于抓取个别工件的情况。
夹具容许偏差应尽可能增大: 对于反光工件,工件点云质量较差,如果想要抓取顺利,夹取设计时尽可能增大容许偏差。
放置位余量说明: 放置位推荐使用比较大的长度方向容差,有条件时建议 ±30mm 以上,条件受限时建议 ±10mm。
深度学习模型说明: 工程中使用的是深度学习超级模型,但是参与训练的数据有限,如果在项目中深度学习效果欠佳,需要采集数据,对超级模型进行迭代。
参数调节建议¶
实例分割¶
图像亮度和色彩均衡器 :当 2D 图像过暗时,可通过调整该步骤的 亮度系数 参数来增加亮度。现场调试阶段应调整现场光照条件和相机参数保证 2D 图像亮度适中。
深度学习模型包推理(Mech-DLK 2.2.0+) :利用深度学习和轴/棒的超级模型识别轴/棒。如果遇到深度学习识别问题,需要采集图像数据对模型进行迭代,并设置合适的 ROI。
根据点云尺寸和点云数量进行过滤¶
根据阈值对数值进行二分类 :需设置工件的长边(下图 1)和短边(下图 2)的最小尺寸,当工件长边或短边的尺寸小于最小尺寸时,应过滤掉对应工件的点云和掩膜。
验证点云是否符合要求 :需设置 最小点数阈值 和 最大点数阈值 ,以过滤掉点云数量不符合规则的点云和对应掩膜。
3D 匹配¶
3D 精匹配 :置信阈值应设置为 0,且不可更改。后续步骤可根据匹配分数过滤得分较低的工件位姿,主要目的是为了使匹配过程中输出的工件位姿和实例分割识别得到的掩膜一一对应。同时应优化相关参数,使得匹配偏差尽可能小。
通过深度学习掩膜矫正匹配轴向偏差¶
根据阈值对数值进行二分类 :设置 每个端口输入数据的阈值 作为匹配得分阈值,根据阈值过滤掉匹配得分较低的工件点云和位姿。
将位姿的某个轴指向给定方向 :需设置合适的 参考方向 。
将 2D 点转换为 3D 点 :生成的点云和原始工件应一一对应。
料筐识别¶
该工程通过计算平面位姿求取料筐位姿,可根据实际情况选择料筐识别方案。该步骤组合用于计算料筐上边沿中心位姿,同时可设置尺寸、ROI,还可进行角度防错。
根据阈值对数值进行二分类 :需设置料筐长边(下图 1)和短边(下图 2)的最小尺寸。
根据位姿 ROI 和角度过滤位姿
根据与参考方向的夹角判断位姿是否有效 :需设置 最大角度差 。
判断位姿是否在 3D ROI 内 :需设置 3D ROI。
位姿处理及防错¶
沿指定方向移动位姿 (料筐中心位姿上方一定距离处的位姿):需设置 移动距离 作为参考点偏移长度。
沿指定方向移动位姿 (料筐中心位姿,用于 Mech-Viz 更新料筐位姿):需设置 移动距离 作为料筐中心距离料筐上表面的偏移距离。
获取最高层位姿 :需设置 层高 。
3D 位姿排序 :需设置 排序方式 。
快捷创建数值列表 :需设置 数值列表 作为工件直径。
提取长方体内点云 (“滤除被压叠工件位姿”步骤组合):需进行 盒子尺寸设置 ,提取工件上方的点云,不能提取工件自身的点云。
根据阈值对数值进行二分类 :需要根据实际情况设置 每个端口输入数据的阈值 作为点云阈值,超过该阈值的工件会认为被压叠,将被过滤掉。
根据位姿 ROI 和角度过滤
根据与参考方向的夹角判断位姿是否有效 :需设置 最大角度差 。
判断位姿是否在 3D ROI 内 :需设置 3D ROI。