怎样在Mech-Viz中更新料筐位姿?
首先,请确保已经在工程资源树中添加了料筐的场景物体。选择场景模型为料筐,并输入实际料筐尺寸和厚度。 |
以下两种方法均可用于动态更新料筐位姿。
方法一:使用“视觉移动”步骤中的“通过视觉更新料筐位姿”功能
-
在视觉移动步骤的参数编辑区中,勾选辅助功能 > 视觉料筐重定位 下的 通过视觉更新料筐位姿。
-
在Mech-Vision中打开用于识别料筐的视觉工程,设置输出步骤的参数。
-
端口类型选择自定义。
-
点击打开编辑器,勾选scene_object_names,scene_object_sizes,和scene_object_poses。这三个通信键分别对应Mech-Viz中场景物体的名称,尺寸和位姿。勾选scene_object_names后,可根据需要勾选scene_object_sizes和scene_object_poses。如果只勾选了scene_object_names,更新场景物体步骤会沿失败出口运行。
-
在窗口中点击确定。
-
方法二:使用“更新场景物体”步骤
|
-
当更新场景物体步骤的修正信息来源为从参数设置时,料筐的位姿和尺寸会更新为设置的目标位姿和目标尺寸。
点击+,在场景物体栏中选择需要更新的料筐。然后输入目标位姿和目标尺寸。目标位姿格式为X,Y,Z(单位为米)及四元数共7个数字,目标尺寸包括X,Y,Z三个尺寸信息(单位为米)。
-
当更新场景物体步骤的修正信息来源为从视觉服务时,会根据指定Mech-Vision工程的识别结果更新料筐位姿。
-
在Mech-Viz更新场景物体步骤的视觉服务名称参数中选择用于识别料筐的视觉工程。
-
在Mech-Vision中打开用于识别料筐的视觉工程,设置输出步骤的参数。
-
端口类型选择自定义。
-
点击打开编辑器,勾选scene_object_names,scene_object_sizes,和scene_object_poses。这三个通信键分别对应Mech-Viz中场景物体的名称,尺寸和位姿。勾选scene_object_names后,可根据需要勾选scene_object_sizes和scene_object_poses。如果只勾选了scene_object_names,更新场景物体步骤会沿失败出口运行。
-
在窗口中点击确定。
-
-
使用建议
-
如果每次抓取时料筐位姿可能变动,建议使用视觉移动步骤中的“通过视觉更新料筐位姿”功能(即方法一),在每次抓取前动态更新料筐位姿。
-
如果只需要更新一次料筐位姿,建议使用更新场景物体步骤(即方法二)。例如,在抓取前定位料筐,抓取过程中料筐不再移动,则无需每次抓取前都更新料筐位姿。如果现场使用多种尺寸料筐,使用方法二时可以单独搭建识别料筐的视觉工程,使识别工件的视觉工程逻辑更简单,识别效率更高。
-
在Mech-Viz中创建的料筐类型场景物体,其位姿位于料筐的几何中心(即料筐内部)。然而,Mech-Vision通常根据识别到的料筐上表面开口形状计算料筐位姿,计算出的位姿位于料筐上表面的几何中心点。此时,如果需要使用Mech-Vision中的输出步骤将料筐位姿发送给Mech-Viz进行更新,通常需要先使用沿指定方向移动位姿步骤,将料筐上表面的位姿调整至料筐整体的几何中心。
-
使用更新场景物体步骤从视觉服务获取料筐位姿时,视觉识别步骤需要调用视觉服务。此时如果使用同一个Mech-Vision工程识别料筐和工件,且更新场景物体步骤和视觉移动步骤之间没有其他视觉识别步骤(如下图所示),更新场景物体步骤会消耗掉视觉结果,导致后面连接的视觉移动步骤没有视觉结果可用而报错。