周转箱¶
本节提供周转箱工程的使用指导,该工程概览如下。
工件 |
有序摆放、多层重叠的长方体塑料无盖周转箱,无明显反光,且点云缺失低于 20% |
载具 |
托盘 |
工作距离 |
1200~3500mm |
技术指标 |
识别定位精度:±4mm |
识别成功率:大于 99.9% |
|
视觉系统耗时:4s 以内 |
工程介绍¶
下文将从适用场景、技术指标方面介绍周转箱工程。
工程规划¶
布局¶
工作站布局¶
工作站布局如下图所示。
该工作站内的工作流程如下:
周转箱由 AGV 运送到拆垛位置。
机器人向视觉系统发送拍照指令,对周转箱进行拍照识别,然后视觉系统将周转箱的位置发送给机器人。
机器人根据视觉系统给出的周转箱位置信息进行拆垛,并将周转箱放到传送带上。
重复以上步骤,直至上料完成。
视觉系统硬件组成¶
推荐型号 |
说明 |
|
相机 |
DEEP |
推荐安装方式:Eye-to-Hand;工作距离:1200~3500mm |
工控机 |
标准机型,无 GPU |
处理器:CPU I5-12400 |
内存:16G DDR4 |
||
硬盘:256G SSD |
||
电源:DC24V 7.5A |
||
系统:正版 Windows 10 21H1 版本 |
||
WIFI 模块 |
机器人夹具¶
周转箱工程的夹具通常为左右抱夹式夹具、邻边抱夹式夹具两种。无缝拆垛(周转箱之间紧密贴合)时,建议采用邻边抱夹式夹具。
左右抱夹式夹具¶
左右抱夹式夹具如下图所示。
夹具说明:
该夹具可通过两个夹板对周转箱进行夹持。
夹具优点:
适用于多种尺寸规格的周转箱。
夹具与箱体的接触面采用软性材质,具备一定的缓冲作用,可降低周转箱变形的程度。
夹具缺点:
该夹具不能实现无缝拆垛。
邻边抱夹式夹具¶
邻边抱夹式夹具如下图所示。
夹具说明:
该夹具工作过程中,先夹持周转箱相邻两边,抓取后,托钩放下,然后对周转箱进行四面夹取,到达放置位上方时,托钩打开,放置周转箱。
夹具优点:
可实现无缝拆垛。
可兼容多种尺寸规格的周转箱。
夹具与箱体的接触面采用软性材质,具备一定的缓冲作用,可降低周转箱变形的程度。
夹具缺点:
该夹具不适合抓取重量较大(如 50kg)的周转箱。
视觉相关¶
通信方式¶
推荐使用标准接口通信方式。
一、切换 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 匹配: 利用边缘点云模板,与点云预处理获得的周转箱上边缘点云进行匹配,获得候选抓取位姿。
位姿防错: 用于根据设定的规则滤除不合格的抓取位姿,并判断工程运行过程中是否存在漏识别、多识别等情况。
位姿处理: 用于对抓取位姿进行变换、排序。
输出结果: 将当前工程的结果发送给后台服务。
点云模板与抓取点设置方式¶
模板设置:
设置方法:采用 2D 方法估计点云边缘 步骤提取点云边缘模板,在该步骤参数中, 2D 线宽 设置为 2 px。
原因:当点云质量较高时,2D 边缘模板相比 3D 边缘模板可实现更高的位姿匹配精度。同时 2D 边缘模板相比 3D 边缘模板可以设置点云模板的线宽,所以 2D 边缘模板在匹配过程中更加稳定。
抓取点设置:
设置方法:拖拽法。可直接在 匹配模板与抓取点编辑器 、中添加抓取点。
原因:周转箱一般为标准的长方体,易于对抓取点进行拖拽,且拖拽的精度符合现场抓取需求。
工程难点¶
周转箱贴合紧密时,很难通过 点云预处理 将不同周转箱的点云分开。
部分周转箱点云质量较差、点云缺失以及点云表面波动较大。
部分项目对周转箱的抓取精度要求较高(如 Z 轴垂直周转箱表面向上时,抓取位姿绕 Z 轴偏转的偏差小于 0.5°)。
工程优点¶
该工程采用边缘匹配,可提升识别精度。
该工程中增加了漏识别和多识别的防错步骤,提升了工程运行的稳定性。
该工程使用的夹具,可适用于无缝拆垛。
工程部署¶
参数调节建议¶
3D 匹配¶
将位姿的某个轴指向给定方向 :为了减少末端工具不必要的旋转,可设置校正方法为 ROTATION ,待调整轴为 X ,对称角度为 180° , X 轴参考方向为 -1.0000 。
位姿防错¶
获取在 3D ROI 内的位姿 :为了滤掉 3D ROI 外的位姿,需设置 3D ROI。
根据与参考方向的夹角判断位姿是否有效 :更改步骤参数中的 参考方向 。
判断是否漏识别、多识别:检查是否有漏识别或者多识别,需根据提取到的最上层周转箱上边缘点云的投影和单个周转箱上边缘点云的投影做比较。
若 点云预处理 无法只提取周转箱上边缘点云(因为输入的点云中也包含周转箱内物品的点云),该防错步骤组合需删除,可考虑其他有效的防错策略。
常见问题及解决方法¶
问题一¶
问题描述: 2D 方法估计点云边缘 步骤提取到的周转箱内边缘点云很少。
解决方法:在 2D 方法估计点云边缘 步骤参数处设置合适的 形态学操作设置 参数。例如:当膨胀核尺寸核腐蚀核尺寸为 21px 时,边缘点云如下图中左图所示;当膨胀核尺寸核腐蚀核尺寸为 5px 时,边缘点云如下图中右图所示。
问题二¶
问题三¶
问题描述:点云质量差,或周转箱内物品遮挡周转箱上边缘,导致无法通过 2D 方法估计点云边缘 步骤提取周转箱内边缘点云。
解决方法:可尝试使用全模板匹配。