视觉工程配置

在使用本教程前,你已经在机器人通信配置章节中使用案例工程“无序工件上料”创建了方案。

在本教程中,你将先了解工程思路,然后通过调节步骤参数完成工程的部署,从而识别工件的位姿并输出视觉结果。

在本教程中,你将会需要将工件的CAD模型文件转化为点云匹配模板。因为准备CAD模型文件可能会花费较长时间,因此推荐在使用本教程前准备好工件的CAD模型文件,可单击此处下载。
视频教程:视觉工程配置

工程思路介绍

在本教程中,你需要使用Mech-Vision软件和Mech-Viz软件进行视觉工程配置。视觉工程配置的流程如下图所示。

project workflow

视觉工程配置流程各个阶段说明如下。

阶段 使用软件 说明

连接相机并采集图像

Mech-Vision

通过Mech-Vision软件的“从相机获取图像”步骤连接相机,以实现图像采集目的。

识别工件

Mech-Vision

通过Mech-Vision软件的“3D工件识别”步骤对图像数据进行一系列视觉处理(点云预处理、3D匹配、深度学习推理等),实现工件的快速识别。

调整位姿

Mech-Vision

通过Mech-Vision软件的“调整位姿V2”步骤对“3D工件识别”步骤输出的位姿进行坐标系转换、位姿调整、位姿排序,或位姿过滤等。

定位料筐

Mech-Vision

通过Mech-Vision软件的“标准料筐定位”自定义步骤组合对料筐进行识别。识别后的料筐位姿将发送给Mech-Viz软件,用于更新料筐模型位置。

规划机器人路径

Mech-Vision & Mech-Viz

通过Mech-Vision软件的“输出”步骤,将视觉结果(物体中心点、预处理后的点云、料筐场景模型名称、料筐中心位姿等信息)发送给Mech-Viz。

Mech-Viz工程将基于视觉结果,动态规划出无碰撞的机器人移动路径。

输出规划路径

Mech-Viz

当接收到机器人(本教程使用)或PLC发送的标准接口指令,Mech-Viz返回规划的无碰撞的机器人移动路径。

在完成机器人通信配置以及Mech-Vision工程和Mech-Viz工程的配置后,Mech-Viz在每次运行后即可以输出规划的路径。

你需要机器人侧编写机器人程序,实现发送触发Mech-Viz工程运行以及获取Mech-Viz输出的规划路径的标准接口指令。具体请参考“实现抓放”章节中的说明。

步骤参数调节

在本节,你将通过调节各个步骤的参数来完成工程的部署。

本节中操作的工程为“无序工件上料”方案中的“Vis_Target_Objects_Recognition”工程。

从相机获取图像

步骤名称

从相机获取图像

所属阶段

连接相机并采集图像

图示

acquire images from camera

说明

需要连接真实相机,并配置相关参数,确保相机可以正常采集图像。

  1. 在Mech-Vision工程编辑区,选中从相机获取图像步骤,在界面右下角步骤参数选项卡中单击选择相机按钮。

    select camera
  2. 在弹出的选择相机及其标定参数组窗口中单击相机编号右侧的 image 图标。当该图标将变为 image 图标时,表明相机连接成功。

    connect camera

    连接相机后,单击选择参数组按钮,选择标定好的、带有ETH/EIH和日期的标定参数组。

    select calibration parameter group
    此处选择的标定参数组为完成手眼标定后生成的标定参数组。
  3. 连接相机并设置标定参数组后,相机标定参数组、IP地址和端口等参数将自动获取。请确认配置参数组已设置为“螺柱”。

    camera other parameters
    • 单击从相机获取图像步骤的单步运行按钮触发图像采集,双击步骤的“相机深度图”和“相机彩色图”数据流连线,并在调试输出窗口查看是否成功从相机获取到图像。

      double click data flow line

如果在调试输出窗口可以看到正常的深度图和彩色图,则表明Mech-Vision软件已成功连接真实相机,并可以正常采集图像。

confirm image acquire

3D工件识别

步骤名称

3D工件识别

所属阶段

识别工件

图示

target object recognition

说明

需要设置点云预处理参数、在工件库中制作工件模板并选择工件、设置深度学习参数和识别参数、配置输出端口。

3D工件识别步骤提供了内置的可视化3D工件识别工具,通过配置向导,只需三步即可轻松实现工件位姿的识别。

overall recognition configuration process

你可以通过以下任一方法打开3D工件识别工具界面,开始参数调节。

  • 在工程编辑区单击步骤上的配置向导按钮。

  • 步骤参数选项卡中单击配置向导按钮。

点云预处理

点云预处理将采集到的图像数据转换为点云,进而设置有效的点云识别区,检测边缘点云,并过滤掉不符合规则的点云,提升后续的识别效率。

在本步骤,你需要设置有效的识别区,从而将干扰因素屏蔽在区域外,以提升识别效率。设置识别区域时,应覆盖料筐及其内工件,并适当向外扩展20至30毫米,以容纳料筐位置小幅变动带来的影响。

set 3d roi

通常,保留其他预处理参数的默认值即可。如果场景中存在较多杂点,可以尝试调整相关参数。详情请参考点云预处理

在完成参数调节后,可以在预览预处理结果区域单击运行步骤按钮,在可视化区域确认预处理效果满足预期。

工件选择与识别

  • Mech-Vision支持使用3D匹配和深度学习推理进行工件识别。

  • 3D匹配是将目标物体的模板点云拟合到场景中物体点云,以算出场景中物体的位姿的过程。在使用3D匹配进行识别时,需要先制作工件模板(也称作点云模板或点云匹配模板)。

  • 使用深度学习推理进行识别时,需要使用Mech-DLK软件训练的深度学习模型,然后Mech-Vision的相关步骤使用深度学习模型进行识别物体、分类物体和计算物体位姿等。

  • 在完成参数调节后,可以在查看运行结果区域单击运行步骤按钮,在可视化区域确认识别效果满足预期。

制作工件模板

本教程中,使用工件CAD模型文件(.stl格式)生成工件的点云模板。你可以单击此处下载。

请参考 通过导入STL文件生成点云模板,并手动配置抓取点制作工件的点云匹配模板。

注意事项:

  • 当使用相机采集螺栓工件的点云数据时,可能会出现点云过度平滑的现象,这会导致螺纹的细节特征丢失。因此,本教程通过导入STL文件来生成点云模板。本教程,提供的STL模型文件经过了简化处理,不包含完整的螺纹细节,如下图所示。

    stl model
  • 在“配置STL文件”步骤,设置单位处应选择米(m),设置视角处应选择所有视角。

    configure stl file
  • 在“设置抓取点”步骤,根据实际情况为点云模板设置抓取点。详细操作请参考设置抓取点。此方案中使用夹指型夹具夹取螺杆部位,所以工件抓取点设置在螺杆中间。

    set pickpoint tip
抓取工件使用的末端工具相关配置可以暂不配置,待配置Mech-Viz工程时再进行配置。

工件模板创建完成后,关闭工件库窗口返回3D工件识别工具界面,点击更新工件按钮。如果该方案工件库中只有一个工件模型,工具将自动选择该工件模型。如果该方案工件库中有多个工件模型,请选择需要使用的工件模型。

select object model

设置深度学习参数

  1. 使用深度学习区域,开启使用深度学习辅助识别选项。

  2. 使用模型包管理工具导入本教程提供的深度学习模型包,或者你使用Mech-DLK自行训练的深度学习模型包。详细操作请参考导入深度学习模型包

  3. 使用深度学习区域,从模型包下拉选择列表选择导入的模型。

    首次加载深度学习模型需要一些时间,请耐心等待。
  4. 单击ROI设置按钮设置2D ROI。详细操作请参考设置2D ROI的操作流程

  5. 调整深度学习参数:为避免深度学习模型输出的掩膜在图像边缘处出现信息丢失,需要对掩膜图像进行了5个像素的膨胀处理,以获取更完整的工件点云数据。

set dl parameters

设置匹配参数

  1. 识别工件区域,关闭自动设置匹配模式选项。

  2. 粗匹配模式设置为“边缘匹配”,精匹配模式设置为“面匹配”。

  3. 置信度阈值设置为0.5,删除错误的匹配结果。

  4. 根据需要设置最大输出结果个数,例如30。在满足路径规划需求的前提下,尽量减少输出个数,减少匹配耗时。

    set matching parameters
配置输出端口

根据后续路径规划和碰撞检测的要求,选择如下输出端口:

  • 物体中心点相关端口

  • 预处理后的点云

set output ports

调整位姿V2

步骤名称

调整位姿V2

所属阶段

调整位姿

图示

adjust poses

说明

需要配置参数实现位姿变换、位姿调整、位姿排序以及位姿过滤。

得到工件位姿后,需要对位姿进行调整,处理流程如下。

adjust poses process

Mech-Vision内置位姿调整工具,你可使用该工具轻松实现物体位姿的调整及抓取顺序的优化。你可以通过以下任一方法打开位姿调整工具界面,开始参数调节。

  • 在工程编辑区单击步骤上的配置向导按钮。

  • 步骤参数选项卡中单击配置向导按钮。

请按照如下步骤调节参数:

  1. 位姿变换:在位姿调整选项卡中,将位姿从相机坐标系转换至机器人坐标系。

    adjust reference frame
  2. 位姿调整:在位姿调整选项卡中,将位姿Z轴指向料筐正上方的参考位姿。

    adjust pose direction
  3. 位姿排序:在位姿规则选项卡中,按照机器人坐标系下的位姿的Z值,以降序方式进行排序。

    sort poses
  4. 角度过滤:在位姿规则选项卡中,根据位姿Z轴方向过滤明显不可抓取的位姿,减少Mech-Viz软件路径规划的耗时。

    filter poses
  5. 过滤感兴趣区域外的位姿:在位姿规则选项卡中,设置目标区域(感兴趣区域),判断位姿是否在感兴趣区域内,并只保留感兴趣区域内的位姿。

    此处的目标区域(3d_roi)在机器人坐标系下。为避免出现错误过滤的问题,必须根据实际外参重新设置目标区域。
    set 3d roi

标准料筐定位

步骤名称

标准料筐定位(自定义步骤组合)

所属阶段

定位料筐

图示

locate bin

说明

需要设置料筐在Mech-Viz工程中做为场景物体的名称以及料筐位姿的偏移量。

  1. 在Mech-Vision工程编辑区,选中标准料筐定位步骤组合,在界面右下角步骤参数选项卡中,设置字符串列表参数。

    字符串列表参数值将作为Mech-Viz工程中料筐场景物体的名称。在配置Mech-Viz工程的料筐场景物体时,必须使用该参数值作为名称。
    adjust bin parameters
  2. 移动距离参数设置为料筐高度的一半。

    当前识别的料筐位姿在料筐上表面,为了确保识别的料筐姿态能正确对应到料筐的中心位置,需要识别位姿进行调整。本步骤组合是沿料筐坐标系Z轴移动,因此需要减去一个特定的偏移量,所以此处设置为负数。

输出

步骤名称

输出

所属阶段

规划机器人路径(前提条件)

图示

procedure out

说明

需要确认路径规划和碰撞检测需要的信息都能够输出。

根据路径规划和碰撞检测的要求,需要将下列信息输出给Mech-Viz软件:

  • 物体中心点(PoseList)

  • 工件名称(StringList)

  • 带法向的点云(Cloud(XYZ-Normal)):预处理后的点云

  • 场景物体名称(StringList):料筐场景模型的名称

  • 场景物体位姿(PoseList):料筐中心位姿

请确保上述端口都有数据流连接,然后单击运行按钮,确认工程可以成功运行,并输出视觉结果。你可以在Mech-Vision软件日志栏的视觉选项下查看是否有含视觉结果的日志。

check output result

路径规划

本案例使用Mech-Viz获取规划路径。使用标准接口通信方式时,需要Mech-Viz工程和机器人侧配合实现3D视觉引导机器人抓取和放置流程。

关于如何配置Mech-Viz工程实现路径规划,请参考“实现抓放”章节。

至此,你已完成视觉工程配置。

我们重视您的隐私

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