方案使用进阶

本节将对纸箱识别纸箱抓取过程中的调试技巧和常见问题处理进行介绍。

纸箱识别

流程概览

纸箱识别的整体流程如下图所示。

vision overall

下文将对该流程中的重点步骤进行详细解释。

步骤详解

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

在彩色图中,下层纸箱会被显示出来,可能会导致最上层单个纸箱在整体图像中所占的像素比例过小,不利于深度学习分割单个纸箱,所以利用该步骤组合提取最高层纸箱的点云,并仅保留该层纸箱所在的彩色图区域。

处理流程如下图所示。

vision point cloud preprocess overall

处理流程中各步骤组合包含的步骤如下表所示,下文将对重点步骤进行介绍。

步骤组合 步骤

点云预处理

将深度图转换为点云、点云将采样、提取3D ROI内点云

获取最高层点云

点过滤、点云聚类、获取最高层彩色图

获取最高层点云对应的彩色图

将深度图转换为点云

从相机获取图像步骤输出的图像包括深度图和彩色图,在深度图中,每个像素都包含了场景内物体与相机的距离信息。为了方便对图像数据进行处理,首先需要将获取到的深度图转换为点云,点云将提供更加丰富和准确的几何信息,有利于视觉处理。

转换结果如下图所示,左图为获取到的纸箱深度图,右图为转换得到的点云。

vision point cloud preprocess convert result
点云降采样

由于相机采集到的原始点云点数较多,所以需将原始点云的密度降低,减少后续运算时间,提高视觉处理效率。

点云的降采样结果如下图所示,左图为原始点云(点云点数为 981601),右图为降采样后的点云(点云点数为 195087)。

vision point cloud preprocess down sample result
提取3D ROI内点云

该步骤用于去除干扰点云,并判断 3D 感兴趣区域内纸箱点云点数是否为空。

  1. 去除干扰点云。

    相机采集图像时,可能会采集除纸箱外的其他物体点云。为了提高处理效率,需设置感兴趣区域,其他物体点云去除,只保留纸箱点云,如下图所示。

    vision point cloud preprocess 3d roi result
  2. 判断感兴趣区域内纸箱点云点数是否为空。

    设置感兴趣区域后,需统计被保留的点云点数,判断是否小于感兴趣区域内的最小点数。当点云点数小于最小点数时,Mech-Viz工程中的检查视觉结果步骤的触发无点云出口,代表拆垛完成。

    vision point cloud preprocess set min point number

当参数设置有误时,将导致以下问题。

问题 可能的原因 解决方法

纸箱漏识别

ROI 范围过小,未获取到纸箱点云。

调整 ROI 的范围和位置。

纸箱吸取位置不正确

ROI 范围过小,获取纸箱点云不全。

增大 ROI 范围。

纸箱尺寸计算错误

ROI 范围过小,获取纸箱点云不全。

增大 ROI 范围。

未发送“拆垛完成”信号

ROI 范围过大。

ROI 内不应该包含除纸箱以外的其他物体点云,需重新调整 ROI。

点过滤、点云聚类

视觉处理过程中,点云会存在杂点,需使用点过滤点云聚类步骤去除杂点,同时利用点云聚类步骤根据点云距离将点云进行分组,带颜色的点云为被保留的点云,相同颜色的点云划分为为同一组,其他杂点被滤除。

处理结果如下图所示,左图为去除杂点之前的点云,右图为去除杂点且聚类后的点云。

vision point cloud preprocess filter and cluster result

当参数设置有误时,将导致以下问题。

问题 可能的原因 解决方法 相关参数解释

不同层纸箱分组错误

相机不是垂直安装,点过滤步骤未正确删除纸箱侧面点云。

需勾选使用机器人Z轴

使用机器人 Z 轴:勾选该参数后,将使用机器人坐标系的 Z 轴正方向作为参考方向,计算点云法向与参考方向之间的角度差,并删除角度差超过限定值的点云。该功能适用于相机非垂直向下拍摄,并且需去除物体侧面点云的场景。

纸箱漏识别

点云聚类步骤中类的最小点数参数设置过大。

类的最小点数需略小于现场最小纸箱的点云点数。

类的最小点数:保留点云点数的下限,需小于最小物体点云点数;类的最大点数为保留点云点数的上限,需大于最大物体点云点数。

点云聚类步骤无输出结果

点云聚类步骤中的输出类中相邻点最大距离参数设置过小。

输出类中相邻点最大距离应大于点云采样的距离。

输出类中相邻点最大距离:接近该参数值的点将被划分为同一类,其他点则可能被分为不同的类别。通过调大该参数值,可增加点云之间的分组间隔;通过调小该参数值,会将距离相近的点分为不同的类别。

获取最高层点云、获取最高层点云对应的彩色图
  1. 获取最高层点云。

    由于下层纸箱有可能被上层纸箱遮挡,存在纸箱误识别的可能,此处需通过获取最高层点云步骤根据纸箱的高度保留顶层纸箱,对顶层纸箱进行优先识别。

    获取的最高层纸箱点云如下图(黄色部分)所示。

    vision point cloud preprocess get highest point cloud result
  2. 获取最高层点云对应的彩色图。

    获取最高层纸箱点云后,还需获取最高层纸箱点云对应的彩色图。如下图所示,左图为原始彩色图,右图为获取的最高层彩色图。

    vision point cloud preprocess get highest color image result

当参数设置有误时,将导致以下问题。

问题 可能的原因 解决方法 相关参数解释

获取到被压叠的纸箱

获取最高层点云步骤中层高参数设置过大。

层高需小于最高纸箱的高度。

距离最高层一定范围(层高)内的点云将被作为做高层纸箱点云。增大该参数,可提取到被压叠的纸箱;减小该参数,可能导致未被压叠的纸箱被漏识别。

未被压叠纸箱被漏识别

获取最高层点云步骤中层高参数设置过小。

层高需小于最低纸箱的高度。

同上

通过深度学习分割单个纸箱掩模

在视觉处理过程中,由于纸箱通常是紧密贴合的,难以准确地分割出单个纸箱,所以利用深度学习作为辅助,对紧密贴合的纸箱进行分割,从而更好的进行纸箱识别。处理流程如下图所示。

vision dl procedure overall

深度学习处理结果如下图所示。

vision dl procedure result

计算纸箱位姿

使用深度学习获取单个纸箱掩膜后,即可计算纸箱位姿。

处理流程如下图所示。

vision calc pose overall

该步骤组合中包含的步骤如下表所示,下文将对重点步骤进行介绍。

处理过程 步骤

计算纸箱位姿前处理

验证箱型目标物体掩膜、提取掩膜中对应的点云、点云聚类并输出符合条件的点云

计算箱子尺寸和抓取点并进行结果验证

计算平面点云的位姿和尺寸、验证箱子尺寸是否有效

优化对称性,便于机器人抓取

正方形矩形校验

验证箱形目标物体掩膜
  1. 漏识别判断。

    为了保证深度学习的准确性,需要对深度学习输出的掩膜进行验证,检查是否正确识别出所有的纸箱。

    在该步骤中,需勾选所有箱子必须识别到,并设置剩余面积占标准箱子尺寸面积的百分比,计算未识别的掩膜面积占标准箱子表面积的百分比,以判断是否有纸箱未被识别。如果百分比小于 50%,则认为存在未被识别的纸箱,此时将不会输出掩膜。

  2. 矩形度校验。

    在判断纸箱掩膜是否正确时,需要检查其是否为矩形形状。如果纸箱掩膜为非矩形,可能为纸箱破损或深度学习识别错误。为了避免后续位姿计算出现较大偏差,需删除矩形相似度较小的掩膜,确保后续处理过程的准确性和可靠性。

    在该步骤中,需勾选所有箱子必须识别到,并根据实际情况设置最小矩形度阈值,用于校验矩形度。

提取掩膜中对应的点云

该步骤用于提取深度学习掩膜所对应的点云。输入深度学习输出的掩膜和点云预处理后的点云,即可得到分割开的点云。

点云聚类,并输出符合条件的点云

在提取完整的纸箱点云时,为了确保纸箱点云的完整性并避免丢失重要信息,掩膜的面积通常会略大于纸箱的实际面积。然而,由于额外的掩膜面积,可能会引入杂点。因此,需对点云进行聚类,并去除杂点,得到符合计算条件的纸箱点云。

在该步骤中,当聚类后的点云点数小于最小点数时,对应的点云会被去除。如果目标物体较小,如药盒等,需根据实际情况调小该参数。

处理结果如下图所示,左图为带杂点的点云,右图为去除杂点后的点云。

vision point cloud cluster and remove
计算平面点云的位姿和尺寸

该步骤用于根据纸箱点云生成外接长方体,计算长方体的中心位置,并得到纸箱抓取点,同时还需计算纸箱点云的尺寸(长、宽、高)。

验证箱子尺寸是否有效

计算平面点云的位姿和尺寸步骤输出纸箱尺寸后,需与已知纸箱真实尺寸进行对比,当长、宽的对比差距大于设定的箱子尺寸误差范围时,需进行报警,报警类型可根据实际需求选择。

正方形矩形校验

正方形和长方形具有不同的对称性,正方形的对称角度为 90°,而长方形的对称角度为 180°。因此,在调整位姿时,需根据对称性进行调整,以减少机器人末端在纸箱抓取过程中不必要的旋转,提高机器人抓取效率,优化纸箱抓取过程。

在该步骤中,可通过纸箱尺寸的长和宽判断是否为正方形,根据不同的对称性调整其位姿朝向,目的是使其指向机器人最便于抓取的方向,最大程度减少末端工具转动,从而提高抓取效率。

调整位姿

得到箱子位姿后,需要对位姿进行调整。

处理流程如下图所示。

vision adjust pose overall
  1. 位姿变换:将位姿从相机坐标系转换至机器人坐标系。

  2. 位姿排序:根据机器人坐标系下的位姿的 X、Y 值的升降序进行排序。

位姿调整结果如下图所示。

vision sort pose result

纸箱抓取

流程概览

纸箱抓取的整体工作流程如下图所示。

viz cartons picking overall

下文将对该流程中的重点步骤进行详细解释。

步骤详解

初始化

在程序启动时,需要对视觉程序和机器人信号进行初始化,将吸盘的吹气和吸气信号停止,同时将抓取和放置任务的状态重置为空。

该步骤组合工作流程如下图所示。

viz init overall
  • 重置抓取任务的目的:在Mech-Viz中,机器人抓取纸箱时会进入抓取状态,并禁止再次抓取。然而在实际生产中,机器人可能会在抓取纸箱时出现停止或恢复的情况。因此,在程序初始化时,需将抓取任务重置为空,以确保工程正常运行。

  • 重置放置任务的目的:在Mech-Viz中,需将放置点设置为放置状态,与抓取状态形成抓放循环。同时,执行纸箱放置任务时,会在软件中生成纸箱模型,在程序初始化时,需清空纸箱模型,确保准确执行下一次抓取。

视觉识别

在工作流程中,选择合适的Mech-Vision工程后,机器人将移动到拍照位置,并触发Mech-Vision工程运行,然后进行纸箱识别,获取纸箱的抓取点。

一旦拍照完成,根据Mech-Vision工程返回的信息,机器人将根据不同的结果执行相应的后续工作流程。

检查视觉结果

该步骤组合工作流程如下图所示。

viz check vision result overall

我们重视您的隐私

我们使用 cookie 为您在我们的网站上提供最佳体验。继续使用该网站即表示您同意使用 cookie。如果您拒绝,将使用一个单独的 cookie 来确保您在访问本网站时不会被跟踪或记住。