3D深筐乱序抓取
3D 深筐乱序抓取适用于工作空间内同种物体乱序摆放,且拥有物体 STL 模型的情况。目前广泛应用于汽车零件、机加工件 等多种场景。
场景要求
相机为结构光相机
需要计算点云碰撞
本章节描述的相关配置仅供参考,具体操作请以实际项目为准。
基本配置
配置前,请依次完成 新建项目、 添加工作空间,并使用 3D深筐乱序抓取 模板创建视觉服务,请参见 创建流图。创建完成之后会在左上角生成节点树,如下图所示。
根据需求,依次配置这些模块。
步骤1. 配置相机模块
单击左侧节点树中的 相机 模块,然后在右侧单击 相机资源管理器 以连接相机,接着在 相机配置 区域设置相机基本信息,请参见 连接相机。
在 相机参数 区域单击 验证相机精度。
依次选择标定板、标定内参数、验证标定结果等步骤,以验证相机精度。
步骤2. 配置加载标定信息模块
步骤3. 配置去除料筐外点云模块
步骤4. 配置降采样点云模块
步骤5. 配置去除点云噪声模块
步骤6. 配置3D模板匹配模块
单击 创建模板,选择一个已有的或者新建一个工具类型,新建工具类型时不可重名。然后选择模型文件,并给模板命名即可。需要修改模型时,可单击 编辑模型文件 编辑模型。
![]()
提示
如果已有模板,单击 选择模板,直接选择包含模型的文件夹即可。
根据需要选择 特征类型,如果模型表面整体较为扁平,且平面和直线较多,建议尝试edge-I/edge-II模式。限制物体朝向 建议使用no_limit,其作用是增加可抓取的朝向和角度,提升抓取概率。
根据需要设置检测参数。模板匹配时,小于 最小分数 的结果将被过滤。超过 最大检测数量 的结果,也将被过滤。
![]()
设置不同检测阶段的参数,系统会根据物体模型在点云中寻找匹配结果。
![]()
用户也可以查看分步执行的检测结果,各阶段参数设置如下。
通过 投票 阶段,点云中的每个关键点都会得到一个最可能对应的模型关键点和对应的位姿结果,该阶段各参数配置如下。
![]()
该步骤运行结果如下图所示。
![]()
通过 聚类 阶段,合并相近的位姿结果,去除得票数较少的结果,该阶段各参数配置如下。
![]()
该步骤运行结果如下图所示。
![]()
通过 粗配准 阶段,使用ICP迭代,优化结果的精度、去除误差较大的结果,该阶段各参数配置如下。
![]()
该步骤运行结果如下图所示。
![]()
通过 精配准 阶段,使用ICP迭代,优化结果的精度、去除误差较大的结果,该阶段各参数配置如下。
![]()
单击 执行检测,然后在预览区域查看检测结果。
步骤7. 配置去除工件附近的点云模块
流图详解
视觉流图的配置是Max中的高级用法,对于一般用户而言,配置完节点树中的模块即可运行整个视觉流程,无需再配置视觉流图。视觉流图中包含了节点树中没有的模块,可以配置一些高级参数,如有需要可以按照以下内容操作。
3D深筐乱序抓取场景的标准视觉流图配置如下。
创建工作空间,使用 3D深筐乱序抓取 模板创建流图,请参见 创建流图。创建成功的视觉流图如下。
配置 相机 模块,获取彩色图、深度图及点云。请参见 连接相机。
配置 加载标定信息 模块,加载env文件中的标定信息。请参见 标定。
配置 变换点云坐标系 和 去除料筐外点云 模块,将点云从相机坐标系转换到料箱坐标系,并去除料筐以外的点云。
配置 降采样点云 、 去除点云噪声 、 变换点云坐标系 模块,合理降低点云数量,去除噪声,并将点云从料箱坐标系转换到世界坐标系。
基于步骤4得到的料筐内点云,配置 变换点云坐标系 模块,将点云从料箱坐标系转换到相机坐标系。
结合步骤3得到的彩色图,配置 3D模板匹配 模块,根据物体模型在点云中寻找匹配结果。
单击 创建模板,在弹出窗口单击 选择文件,选择模板文件,并输入模板名称。
提示
在右下角 Parameters 页签下,将 是否使用已创建的模板 设置为true,再次打开Max时会自动读取已创建的模板,不必重新创建。
根据需要设置模板参数,单击 确认,完成参数设置。
提示
根据需要选择 特征类型,如果模型表面有棱有角或者整体较扁平,建议尝试edge-I/edge-II模式。限制物体朝向 建议使用no_limit。
根据需要设置检测参数。模板匹配时,小于 最小分数 的结果将被过滤。
设置不同检测阶段的参数,单击 执行检测,然后在左侧查看检测结果。
配置 变换物体位姿3D 模块,将物体位姿从相机坐标系转换到世界坐标系。
基于步骤5得到的世界坐标系下料筐内点云、步骤6中3D模板匹配得出的模型点云,以及步骤8得到的世界坐标系下物体位姿,配置 去除物体附近的点云 模块并运行。
配置 输出结果 模块,输出步骤8得到的世界坐标系下物体位姿,及步骤9得到的物体点云。
重复上述步骤,完成其它料筐的视觉工作空间设置。