纸箱识别

在使用本教程前,你已经在“手眼标定”章节中使用案例工程“单品类纸箱”创建了Mech-Vision工程。

在本教程中,你将先了解工程思路,然后通过调节步骤参数完成工程的部署,来识别纸箱的位姿并输出视觉结果。

工程思路介绍

工程中各步骤组合的作用如下表所示。

序号 步骤/步骤组合 图示 功能说明

1

从相机获取图像

vision project workflow introduction 1

连接相机并采集纸箱图像

2

点云预处理并获取最高层纸箱

vision project workflow introduction 2

对纸箱点云进行预处理,然后获取最高层纸箱

3

使用深度学习分割单个纸箱掩膜

vision project workflow introduction 3

根据输入的最高层纸箱掩膜,使用深度学习推理出区域内的单个纸箱掩膜,以便后续利用单个纸箱掩膜获取对应单个纸箱的点云

4

计算箱子位姿

vision project workflow introduction 4

识别纸箱位姿,并通过输入的纸箱尺寸信息对识别结果进行校验或调整

5

调整位姿

vision project workflow introduction 5

对纸箱位姿进行坐标系变换,并对多个纸箱位姿进行分行分列排序

6

输出

vision project workflow introduction 6

输出纸箱的位姿,用于机器人抓取

参数调节说明

在本节,你将通过调节各个步骤或步骤组合的参数来完成工程的部署。

从相机获取图像

由于“单品类纸箱”案例工程中配备了虚拟数据,所以需先将“从相机获取图像”步骤的虚拟模式关闭,然后连接真实相机。

  1. 选中“从相机获取图像”步骤,在界面右下角步骤参数处关闭虚拟模式,然后单击选择相机

    vision project click select camera
  2. 在弹出的窗口中单击需要连接相机的编号右侧的 image 按钮,即可连接至该相机。相机连接成功后, image 按钮将变为 image

    image

    连接相机后,单击选择参数组,选择已标定的参数组。

    image
  3. 连接相机并设置参数组后,相机标定参数组、IP 地址和端口等参数将自动获取,其余参数保持默认即可。

    image

此时即完成了相机的连接。

点云预处理并获取最高层纸箱

为了避免因抓取非最高层纸箱而导致机器人与其他纸箱碰撞,需要本步骤组合获取最高层纸箱,并引导机器人优先抓取最高层纸箱。

在该步骤组合中,需调节3D ROI层高

  1. 在界面右下角步骤参数中,单击设置3D感兴趣区域(ROI)按钮 设置3D ROI

    image

    3D ROI选框大小需同时包含纸箱堆垛的最高和最低区域,且3D ROI内尽量不包含干扰点云。

  2. 为了避免获取到下层纸箱,设置层高参数。层高应设置为低于垛中单个纸箱高度的值,例如纸箱高度的一半。通常使用推荐值即可。

    如果现场中不同纸箱垛中的纸箱规格不同,应该按照最矮纸箱的高度设置层高参数。

    如果设置的层高参数值不合适,会导致获取到非最高层纸箱,可能导致机器人抓取时与其他纸箱碰撞。

使用深度学习分割单个纸箱掩膜

获取到最高层纸箱后,需通过深度学习分割出单个纸箱。

当前案例工程中内置了纸箱通用的实例分割模型包。运行该步骤组合即可获取到单个纸箱的掩膜,如下图所示。

image

如果分割效果不够好,可适当调节3D ROI的大小。

计算箱子位姿

获取到单个纸箱的点云后,即可计算纸箱位姿。此外,通过输入的纸箱尺寸,可以校验视觉识别结果的准确性。

在“计算箱子位姿”步骤组合中,设置X、Y、Z轴上的长度纸箱尺寸误差范围

  • X、Y、Z轴上的长度:根据实际的纸箱尺寸设置这些参数。

  • 纸箱尺寸误差范围:保持默认参数值30 mm即可。如果输入的纸箱尺寸与识别到的纸箱尺寸有较大差异,可尝试修改该参数。

调整位姿

获取到纸箱位姿后,为了让机器人能正常抓取,还需将纸箱位姿从相机坐标系下转换到机器人坐标系下。

在该步骤组合中,还可将纸箱位姿按行和列排序,实现机器人按序抓取。

  • 升序排列(按机器人基坐标系下箱子位姿X值):通常保持默认设置(勾选)即可。勾选后,行按照机器人基坐标系下箱子位姿X值进行升序排序,否则按照降序排列。

  • 升序排列(按机器人基坐标系下箱子位姿Y值):通常保持默认设置(勾选)即可。勾选后,列机器人基坐标系下箱子位姿Y值进行升序排序,否则按照降序排列。

输出

得到正确的纸箱位姿后,“输出”步骤可将当前工程的结果发送给后台服务。

至此,即完成了纸箱识别工程的部署。