方案使用进阶

您正在查看V1.8.2版本的文档。如果您想查阅其他版本的文档,可以点击页面右上角“切换版本”按钮进行切换。

■ 如果您想使用最新版本,可以从梅卡曼德下载中心下载。

■ 如果您不确定当前使用的产品是哪个版本,请随时联系梅卡曼德技术支持。

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

周转箱识别

流程概览

周转箱识别工程使用边缘匹配与面匹配相结合的方式识别周转箱位姿,并进行机器人路径规划。周转箱识别流程如下图所示,

vision overall

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

步骤详解

点云预处理

  • 功能说明:

    该步骤组合用于提取指定范围内的点云,并从中提取边缘点云。

    处理流程如下图所示。

    vision point cloud preprocess overall
  • 需调整的参数:

    参数 参数解释 调节说明 调节效果

    3D ROI

    该参数用于设置 3D 感兴趣区域,感兴趣区域内的点云用于周转箱识别,感兴趣区域外的点云被舍弃。

    设置 3D ROI 时,需只包含周转箱点云,不能包含其他场景点云。如果每次来料位置存在波动,应适当扩大 3D ROI。

    vision 3d roi effect

  • 内部重点步骤介绍:

    步骤 功能说明 参数调节说明 处理结果

    将深度图转换为点云

    该步骤可将相机获取的深度图转化为点云,转换后的点云中包含更加丰富和准确的几何信息,用于后续数据处理。

    无需进行参数调整。

    vision from depth map to point cloud

    点云降采样

    该步骤可以一定的间隔对点云进行采样,降低点云密度,提高后续步骤的运行速度,提升视觉节拍。

    采样间隔越大,点云越稀疏,计算速度越快,但准确性可能会降低。

    vision down sample

    点过滤

    该步骤可根据点云法向,去除侧面的点云,以便后续提取边缘点云并进行点云模板匹配。

    • 参考方向:选择机器人坐标系 Z 轴方向,或选择相机坐标系方向。

    • 角度阈值设置:点云法向与参考方向之间的夹角,夹角不在该范围内的点云(右图中红色点云)会被过滤。

    vision point filter

    3D方法估计点云边缘

    该步骤可根据点云法向提取周转箱边缘点云(右图中黄色点云)。点云模板匹配时,优先使用边缘匹配方法进行粗略定位,以减少处理时间,以及充分利用周转箱边缘特征。

    无需进行参数调整。

    vision estimate point cloud edges by 3d method

3D匹配

  • 功能说明:

    该步骤组合先通过边缘匹配来粗略识别周转箱位姿,然后使用面匹配精确识别周转箱位姿,以确保匹配精度。为避免漏匹配,该步骤组合还对匹配失败的点云进行了二次匹配。

    处理流程如下图所示。

    vision 3d matching overall
  • 需调整的参数:

    参数 参数解释 调节说明 调节效果

    层高

    该参数用于设置最高层点云的层高范围,在层高范围内的点云将被保留。

    需将该参数设置为实际待识别周转箱的高度。

    vision layer height effect

  • 内部重点步骤介绍:

    步骤 功能说明 内部重点步骤介绍 处理结果

    第一次匹配(步骤组合)

    该步骤组合首先通过边缘匹配粗略识别周转箱位姿,然后使用面匹配精确识别周转箱位姿,以确保匹配精度。

    • 3D粗匹配V2(边缘模板粗匹配): 该步骤可将边缘点云模板与经过处理的当前场景点云进行初步匹配,以获取周转箱的候选位姿,为精匹配做准备。

    • 3D精匹配(易用版)(边缘模板精匹配):该步骤可对获取到的粗略候选位姿进行精确匹配,获得更准确的周转箱位姿。当输出位姿足够准确时,可直接作为抓取点。置信阈值用于验证位姿分数,该参数取值预告,匹配结果越准确。

    • 3D精匹配(面模板精匹配):为了提升匹配结果准确性,可其上一步骤输出的精确位姿作为候选位姿,然后再次使用面模板进行更精细的匹配,以进一步提高匹配结果准确性。

    • 去除被压叠的物体:由于场景中包含堆叠的周转箱点云,因此可能会误匹配到下一层周转箱,此时需进行去压叠操作,排除因叠压而不适合抓取的周转箱位姿。

    vision first mahtcing

    二次匹配避免漏识别

    该步骤组合首先删除第一次匹配成功的点云,然后将剩余的点云进行重新匹配,以获取漏识别的周转箱位姿,提高整体的准确性。

    提取未匹配点云:该步骤组合可将第一次匹配成功的物体点云转换为掩膜,并对该掩膜进行取反运算。然后使用处理后的掩膜来提取原始场景点云,以获取未匹配成功的点云。

如何判断点云的优劣?

  • 周转箱点云完整,不存在点云缺失的问题,点云模板应包括周转箱的所有重要特征和细节。如下图所示,左图为完整的点云模板,右图为存在缺失的点云模板。

    vision second mahtcing 1
  • 周转箱点云质量高,噪点少或无噪点。可只保留周转箱上边框点云作为模板点云,以减少噪点和冗余数据,提高点云质量。如下图所示,左图为噪点较少的点云模板,右图为存在噪点(白色点云)的点云模板。

    vision second mahtcing 2
  • 点云中的点分布均匀,数量合理。为了实现这一目的,典型工程在点云预处理阶段进行了点云降采样,以确保点云中的点在周转箱表面分布均匀,并且数量适中,避免了过多的数据冗余。

调整位姿

  • 功能说明:

    该步骤组合可对周转箱位姿进行排序、调整和过滤。

    • 将相机坐标系下的位姿转换到机器人坐标系下。

    • 将物体的位姿方向按照 180° 对称性旋转至指定方向。

    • 根据设置的参考点方向对位姿进行 “Z”形平面排序。

    • 根据位姿是否在感兴趣区域(ROI)内以及 Z 轴指向是否朝上,过滤不合格的位姿。

    处理流程如下图所示。

    vision adjust pose overall

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

    vision adjust pose effect

判断漏识别

  • 功能说明:

    当机器人需要按照正确的顺序抓取周转箱时,需先识别最高层的所有周转箱,并进行漏识别判断。该步骤组合可判断是否存在周转箱漏识别的情况,如果存在漏识别,则不允许输出周转箱位姿。无需按顺序抓取周转箱时,可删除该步骤组合。

    处理流程如下图所示。

    vision judgment missed identification overall
  • 处理流程:

    1. 利用匹配得到的位姿提取整层周转箱点云,并将其投影到 2D 图像上。在 2D 图像上进行周转箱内部的填充操作,并计算非零像素的掩膜面积。

    2. 对周转箱点云模板进行上述相同的操作,得到单个周转箱的掩膜面积。

    3. 将整层周转箱的掩膜面积除以单个周转箱的掩膜面积,得到当前层周转箱的数量。

    4. 将计算出的周转箱数量与匹配得到的位姿数量进行比较,当两者差值超过阈值范围时,不输出位姿。

  • 不适用情况:

    • 情况一:垛中央不摆放周转箱

      为了避免周转箱内物料的干扰,并解决周转箱上边缘点云缺失的问题,采用了较大的填充操作来处理周转箱掩膜。然而,填充操作可能会导致漏识别判断错误,尤其是在周转箱紧密贴合时,垛中央不摆放周转箱的情况。

      vision judgment missed identification special 1
    • 情况二:周转箱被放置在容器内

      在实际项目中,将最高层周转箱的点云转换为掩膜后,应尝试对掩膜中的空洞进行填充操作。然而,当周转箱放置在容器内时,有时会错误地提取到周围点云,若此时再进行填充操作,可能会导致漏识别判断错误。

      vision judgment missed identification special 2

路径规划

  • 功能说明:

    该步骤可使用输入的视觉结果规划机器人抓取路径,并检测机器人与夹具进行抓取时是否存在碰撞,输出规划成功的机器人路径。如果不存在碰撞,则可将经过最终处理后的抓取位姿传递给机器人。

  • 工程修改:

    该典型工程在标准接口通信方式下使用路径规划步骤进行路径规划和碰撞检测,当需要在主控通信方式下使用Mech-Viz进行路径规划时,需对路径规划工具中的配置进行简单修改。

    1. 删除路径规划步骤。

    2. 输出步骤的端口类型修改为预定义(视觉结果),然后将该步骤连接至判断漏识别步骤组合。

      vision adjust output param
    3. 添加发送点云到外部服务步骤,并将其与点云预处理步骤组合相连,以将点云预处理后的彩色点云发送至Mech-Viz,用于检测点云碰撞。

    上述操作完成后,即可实现Mech-Vision与Mech-Viz配合进行路径规划,修改后的Mech-Vision工程如下图所示。关于周转箱抓取流程介绍可参考周转箱抓取

    vision noviz overall

周转箱抓取

周转箱抓取流程涉及两种通信方式,分别为主控通信方式和标准接口通信方式,本节将以主控通信方式为例对周转箱抓取流程进行介绍。

流程概览

周转箱抓取的整体流程如下图所示。

viz box picking overall

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

步骤详解

步骤初始化

  • 功能说明:

    在程序启动时,对视觉程序和机器人信号进行初始化操作。

    具体的步骤包括:停止吸盘的吹气和吸气信号,同时将抓取和放置任务的状态重置为空。上述操作的目的是每次启动时将系统运行状态调整为初始状态,防止异常中断后重启,从而出现风险。

    viz step initialization
  • 内部重点步骤介绍:

    步骤 功能说明

    重置抓取任务

    在程序初始化时,需将抓件任务重置为空,以确保下一流程能正常运行。

    重置放置任务

    在程序初始化时,需清空周转箱物体模型,以确保下一流程能正常运行。

视觉识别

  • 功能说明:

    通过在视觉服务名称处选择相应的Mech-Vision工程,当机器人移动到拍照点时,可触发Mech-Vision工程运行以识别周转箱位姿。拍照完成后,根据Mech-Vision工程返回的视觉结果,机器人将根据不同的结果执行相应的后续工作流程。

检查视觉结果

  • 功能说明:

    根据Mech-Vision输出的视觉结果,执行不同的工作流程。

    • 有结果时,执行抓取周转箱的工作流程。

    • 当无结果、未拍照或无点云时,机器人移动到 home 点,然后工作流程终止。

      viz check vision result
  • 内部重点步骤介绍:

    步骤 功能说明

    检查视觉结果

    • 有结果时:继续执行周转箱抓取流程。

    • 无结果时:机器人回到 home 点,发出识别异常报警。

    • 超时:等待 10 s 后,循环检查视觉结果。

    • 未拍照:未能触发相机拍照,机器人回到 home 点,然后发出相机触发异常报警。

    • 无点云:Mech-Vision工程未输出点云,机器人回到 home 点,然后发出无点云异常报警。

周转箱抓取

  • 功能说明:

    根据Mech-Vision工程输出的视觉结果,控制机器人抓取周转箱。

    viz box picking overall
  • 内部重点步骤介绍:

    步骤 功能说明 参数说明

    抓取周转箱

    根据Mech-Vision工程输出的视觉结果,控制机器人移动到周转箱抓取点。

    工具类型

    根据不同的场景,选择适合的工具类型。抓取周转箱时,通常选择常规工具

    抓取数量

    Mech-Viz支持通过适配程序(Adapter)生成器或标准接口通信方式传入单次抓取数量或总抓取数量,如需按照要求进行抓取,可在视觉移动的抓取数量参数分组中勾选限制单次抓取数量限制抓取总数量,以满足需求并提高系统灵活性。

    闭合夹具

    在机器人移动到抓取点时设置夹具闭合信号。

    可根据实际情况设置信号端口。

    等待抓取牢固

    为避免周转箱抓取不牢固,通常需要设置等待时间。

    可将等待时间设置为 200 ms。

周转箱放置

  • 功能说明:

    控制机器人移动到放置点,然后关闭夹具,放置周转箱。

    viz box placing
  • 需调整的参数:

    1. 抓放设置:设置为“放”,与抓取形成一个抓放循环。

    2. 目标类型:针对现场放置点需求,选择相应的目标类型。

  • 工具:放置时,需确保机器人位姿一致,但会根据上一移动点选择最优的关节角解。

  • 关节角:放置时,需确保机器人关节角度一致。

  • 工件位姿:放置时,需确保周转箱的朝向一致。

  • 内部重点步骤介绍:

    步骤 功能说明

    参数说明

    放置点

    将周转箱放置在放置点。

    • 抓放设置:设置为“放”,与抓件形成一个抓放循环。

    • 目标类型:针对现场放置点需求,选择相应的目标类型。

      • 工具:放置时,需确保机器人位姿一致,但会根据上一移动点选择最优的关节角解。

      • 关节角:放置时,需确保机器人关节角度一致。

      • 工件位姿:放置时,需确保麻袋的朝向一致。

抓取效果演示

完成上述步骤后,即可实现周转箱抓取,具体效果如下图所示。

viz box picking demo

我们重视您的隐私

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