2D单层平面多物体抓取
适用于多种已知物体,需要注意的是物体种类越多速度越慢,场景要求如下。
物体在同一平面稳定摆放。
使用工业2D相机,相机平行于平面拍照。
本章节描述的相关配置仅供参考,具体操作请以实际项目为准。
基本配置
配置前,请依次完成 新建项目、 添加工作空间,并使用 2D单层平面多物体抓取 模板创建视觉服务,请参见 创建流图。创建完成之后会在左上角生成节点树,如下图所示。
根据需求,依次配置这三个模块。
步骤1. 配置相机模块
步骤2. 配置加载标定信息模块
步骤3. 配置2D形状匹配模块
创建模板。
(可选,该步骤仅对 眼在手上 的场景生效,眼在手外的场景请跳过此步骤。)单击Max右上角的 设置拍照位姿,在弹出的窗口中设置视觉服务、相机ID,单击 获取机械臂位姿,然后单击 设置拍照位姿 即可获取最新的拍照位姿。
单击左侧节点树中的 2D形状匹配 模块,在 检测物体 页签下单击 创建模板 开始训练工件模板。如果有已训练好的模板,可以直接选择模板检测物体。
在 训练工件模板 页签单击 创建工件类型 并给工件类型命名,工件模板名称默认与工件类型名称相同,用户可自行修改。测量工件尺寸,并输入工件长、宽、高。然后根据需求设置基础参数,开始训练工件模板。
训练模板。
在预览窗口单击 单次拍照 获取图像,然后设置检测区域,检测区域尽量贴合工件边缘。如下图所示,是设置好检测区域的结果。
设置物体中心,对于圆环形工件,尽量贴近圆心。
提示
Max提供三种注册物体特征的方式:圆形、矩形、自定义图形。对于不规则工件,用户可选择自定义图形,手动勾画特征点并连接成线,尽量与工件边缘保持贴合以更好地注册物体特征。
对于圆环形工件,也可使用圆形勾画出工件的轮廓,且圆心尽量与物体中心重合。
在训练模板时,注意打光方式,使得工件的阴影区域越小越好。
单击 保存并训练 Max自动完成工件模板训练,然后单击 完成 可使用训练好的模板。
检测物体。
在 检测物体 页签选择已训练完成的工件模板。
设置显示参数,用户可根据需要选择是否显示匹配点、分数和边缘。
设置检测参数,各参数含义如下。
最小检测分数:最大为100,分数越高匹配越准确,但匹配的数量可能减少。
有效检测数量:检测物体的最大数量,最小值为1。
检测对比度:数值越小,边缘越多,检测速度越慢,精度不一定提升。
弱检测对比度:处于该值与对比度之间的点会根据连接性进行选择,可增加边缘点连续性。
非极大值抑制分数:检测出来的两个物体的交并比(重叠区域面积/两物体总面积)大于该值时,检测分数低的物体会被略去。
启用所有物体非极大值抑制:是否启用所有类型物体的非极大值抑制。
扩增像素和金字塔:图像金字塔梯度扩增像素数。
单击 运行检测,开始检测物体,根据显示参数的设置会在图像预览区显示结果。
流图详解
视觉流图的配置是Max中的高级用法,对于一般用户而言,配置完节点树中的模块即可运行整个视觉流程,无需再配置视觉流图。视觉流图中包含了节点树中没有的模块,可以配置一些高级参数,如有需要可以按照以下内容操作。
单击“视图 > 节点视图”可查看创建成功的视觉流图,2D单层平面多物体抓取 场景的流图如下。
2D单层平面多物体抓取场景的流图可大致分成三个功能组:图像获取、图像计算处理和图像输出,各模块的配置及使用流程如下。
获取待处理图像。
相机 模块完成内参标定,并获取彩色图。
加载标定信息 模块完成相机和工作空间的标定。
对图像进行计算处理。
2D形状匹配 模块,训练工件模板供2D匹配使用。
投影2D位姿到平面 模块将输入的2D位姿投影到平面上,生成3D位姿。
输出图像处理结果。
通过 保存图像 模块保存 投影2D位姿到平面 模块的输出结果。
变换工件位姿3D 模块将物体位姿从相机坐标系转换到世界坐标系。然后通过 发布3D位姿 和 输出结果 模块输出3D物体。