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