拆麻袋

拆麻袋是将托盘上的麻袋拆放到指定位置,托盘上的麻袋大小、种类、形状均不固定。

场景要求

  • 麻袋紧密摆放

  • 麻袋表面纹理未知

该场景需要使用3D相机得到的彩色图进行深度学习识别,同时使用3D相机得到的点云进行位姿计算。

流图配置

拆麻袋场景的视觉标准流图如下。

../../../_images/bag.png
  1. 创建工作空间,使用 拆麻袋 模板创建流图,具体方法请参见 模块结构

  2. 配置 相机 模块,获取彩色图、深度图及点云。详细设置请参考 连接相机

  3. 配置 加载标定信息 模块,加载env文件中的标定信息。详细设置请参考 标定

  4. 配置 变换点云坐标系去除料筐外点云 模块,将点云从相机坐标系转换到料筐坐标系,并去除料筐以外的点云。在进行点云切割时,需要测量料筐的实际尺寸,并输入Max,如下图所示。

    ../../../_images/cloudcut.png
  5. 配置 计算最高层高度 模块,根据层厚对点云进行分层,计算出最高层点云的高度,再结合步骤3输出的彩色图,配置 加载料箱区域信息 模块,计算2D图像中给定高度上的工作空间。

  6. 结合步骤3输出的彩色图和步骤5输出的矩形图像,配置 目标检测 模块以检测目标物体,并输出物体的2D Primitive计算结果和彩色图。

  7. 计算实例物体位姿。

    1. 结合步骤4中 去除料筐外点云 模块输出的点云和步骤6输出的2D primitive计算结果,使用 根据2D检测结果提取点云 模块输出点云。

    2. 利用该点云,再结合步骤3输出的彩色图和步骤6输出的2D primitive,配置 计算实例物体pose 模块,使用深度学习结果计算位姿,并输出3D primitive计算结果,如下图所示。

      ../../../_images/calculatepose.png
  8. 综合 根据2D检测结果提取点云 模块输出的点云、 计算实例物体pose 模块输出的3D primitive和物体内点比例,使用 凸起优化 模块对图片进行处理,并输出3D primitive计算结果。

  9. 使用 物体长宽一致性检查 模块对上一步的输出结果进行检查,并输出3D primitive。

  10. 结合步骤4输出的点云和步骤6输出的彩色图,以及上一步的输出结果,配置 对分组(分区)的点云和primitives进行过滤 模块,输出3D Primitive计算结果和彩色图。

  11. 输出或保存结果。

    • 针对步骤10中输出的3D primitive使用 变换物体位姿3D 模块,将计算结果从料筐坐标系转换到世界坐标系,并使用 输出结果 模块查看。

    • 使用 保存图像可视化图像 模块,保存或查看步骤10输出的彩色图即可。