纸箱识别
在使用本教程前,你已经在“手眼标定”章节中使用案例工程“单品类纸箱”创建了Mech-Vision工程。
在本教程中,你将先了解工程思路,然后通过调节步骤参数完成工程的部署,来识别纸箱的位姿并输出视觉结果。
工程思路介绍
工程中各步骤组合的作用如下表所示。
序号 | 步骤/步骤组合 | 图示 | 功能说明 |
---|---|---|---|
1 |
从相机获取图像 |
连接相机并采集纸箱图像 |
|
2 |
点云预处理并获取最高层纸箱 |
对纸箱点云进行预处理,然后获取最高层纸箱 |
|
3 |
使用深度学习分割单个纸箱掩膜 |
根据输入的最高层纸箱掩膜,使用深度学习推理出区域内的单个纸箱掩膜,以便后续利用单个纸箱掩膜获取对应单个纸箱的点云 |
|
4 |
计算箱子位姿 |
识别纸箱位姿,并通过输入的纸箱尺寸信息对识别结果进行校验或调整 |
|
5 |
调整位姿 |
对纸箱位姿进行坐标系变换,并对多个纸箱位姿进行分行分列排序 |
|
6 |
输出 |
输出纸箱的位姿,用于机器人抓取 |
参数调节说明
在本节,你将通过调节各个步骤或步骤组合的参数来完成工程的部署。
从相机获取图像
由于“单品类纸箱”案例工程中配备了虚拟数据,所以需先将“从相机获取图像”步骤的虚拟模式关闭,然后连接真实相机。
-
选中“从相机获取图像”步骤,在界面右下角步骤参数处关闭虚拟模式,然后单击选择相机。
-
在弹出的窗口中单击需要连接相机的编号右侧的 按钮,即可连接至该相机。相机连接成功后, 按钮将变为 。
连接相机后,单击选择参数组,选择已标定的参数组。
-
连接相机并设置参数组后,相机标定参数组、IP 地址和端口等参数将自动获取,其余参数保持默认即可。
此时即完成了相机的连接。
点云预处理并获取最高层纸箱
为了避免因抓取非最高层纸箱而导致机器人与其他纸箱碰撞,需要本步骤组合获取最高层纸箱,并引导机器人优先抓取最高层纸箱。
在该步骤组合中,需调节3D ROI和层高。
-
在界面右下角步骤参数中,单击设置3D感兴趣区域(ROI)按钮 设置3D ROI 。
3D ROI选框大小需同时包含纸箱堆垛的最高和最低区域,且3D ROI内尽量不包含干扰点云。
-
为了避免获取到下层纸箱,设置层高参数。层高应设置为低于垛中单个纸箱高度的值,例如纸箱高度的一半。通常使用推荐值即可。
如果现场中不同纸箱垛中的纸箱规格不同,应该按照最矮纸箱的高度设置层高参数。
如果设置的层高参数值不合适,会导致获取到非最高层纸箱,可能导致机器人抓取时与其他纸箱碰撞。
使用深度学习分割单个纸箱掩膜
获取到最高层纸箱后,需通过深度学习分割出单个纸箱。
当前案例工程中内置了纸箱通用的实例分割模型包。运行该步骤组合即可获取到单个纸箱的掩膜,如下图所示。
如果分割效果不够好,可适当调节3D ROI的大小。 |
计算箱子位姿
获取到单个纸箱的点云后,即可计算纸箱位姿。此外,通过输入的纸箱尺寸,可以校验视觉识别结果的准确性。
在“计算箱子位姿”步骤组合中,设置X、Y、Z轴上的长度和纸箱尺寸误差范围:
-
X、Y、Z轴上的长度:根据实际的纸箱尺寸设置这些参数。
-
纸箱尺寸误差范围:保持默认参数值30 mm即可。如果输入的纸箱尺寸与识别到的纸箱尺寸有较大差异,可尝试修改该参数。