任务 ========================================== 设置完视觉和运动部分之后、运行任务流图之前,需要添加工件代号映射关系,以便任务流图调用视觉和运动设置的工件、视觉工作空间ID、抓取处理流程等内容,具体步骤如下。 .. |add| image:: img/add.png :width: 30px .. |delete2| image:: img/delete2.png :width: 30px .. |change| image:: img/change.png :width: 30px .. |copy| image:: img/copy.png :width: 30px .. |delete3| image:: img/delete3.png :width: 30px .. |start| image:: img/start.png :width: 30px 1. 单击Max右上角 :guilabel:`机械臂主控通信协议`,在弹出的 **机械臂主控通信协议** 窗口选择 “工件代号映射表 > 轨迹移动”页签。 2. 单击 :guilabel:`添加映射关系`,在弹出的 **添加映射关系** 窗口设置键、值和参数。 .. image:: img/map.png :align: center :width: 650px - 工件代号:用户自定义工件代号,仅支持英文字母和数字,长度不超过15个字符。可添加多个工件。 - 视觉工作空间ID:在下拉菜单选择视觉工作空间的ID,ID和视觉部分的设置保持一致。 - 视觉流图文件:与视觉空间ID下的流图保持一致。 - 处理流程:在下拉菜单中选择抓取处理流程,这些抓取处理流程已在运动部分设置好。运动流程编号从0开始自动增加,可单击 |add| 或 |delete2| 新建或删除处理流程。 - 运动路径:选择在 :guilabel:`运动` 中设置好的一条路径。 - 缓存多个视觉结果:可根据需要是否勾选。 - 圆柱体:可根据需求,在需要时选择圆柱体的直径和长,无需重新设置圆柱体,方便使用。 3. 单击 :guilabel:`确认` 完成添加,列表中会显示已添加的映射关系,用户可对列表中的映射关系进行操作。 - |change|:修改映射关系。 - |copy|:复制并修改映射关系,注意键值不能重复。 - |delete3|:删除映射关系。 4. 单击 :guilabel:`确认` 完成映射表设置。 .. hint:: 用户可单击 :guilabel:`自动生成映射关系`,系统自动根据视觉和运动的设置生成工件代号映射表,但有多个抓取处理流程时无法自动生成映射关系。 设置完工件关系映射表之后,在 :guilabel:`任务` 中导入3D轨迹移动中的模板,请参见 :doc:`../../basic_operation/VP_operation/configuration`。任务流图的设置分为工控机主控和机械臂主控两种方式,每种方式下含多个模板,可根据需要选择。在本章节工控机主控使用 **抓取同步(粗颗粒度)** 模板,机械臂主控使用 **抓取异步前端** 和 **抓取异步后端** 模板。 工控机主控 +++++++++++ 添加好基础模板之后,用户可根据需求添加或修改模块。以抓取蝴蝶件项目为例,配置完成后的流图如下。 .. image:: img/taskflow.png :align: center :width: 700px 下面详细介绍该任务流图的配置步骤。 1. 在任务流图模块当中选择“功能 > 一键更新节点机械臂属性”,系统自动根据当前设置更新机械臂路径。也可在模块的属性中设置机械臂路径。 .. image:: img/updaterobot.png :align: center :width: 450px 2. 单击 **设置运动工作空间** 模块,在右侧 **属性** 页签中设置 **抓取工作空间外部编** 和 **放置工作空间外部编号**,分别与抓取、放置的视觉ID保持一致。 .. image:: img/motionws.png :align: center :width: 450px 3. 单击 **呼叫视觉与计算路径(轨迹移动)** 模块,在右侧 **属性** 页签中设置法兰位姿。 .. image:: img/callcal.png :align: center :width: 450px 4. 分别单击两个 **继续执行直到** 模块,在右侧 **属性** 页签中将 **目标点名称** 设置为与 :guilabel:`运动` 中路径规划设置的点相同的名称,例如该项目中两个模块分别设为的“抓取移动节点”和“放置”。然后将后一个 **继续执行直到** 模块的“成功”输出与 **呼叫视觉与计算路径(轨迹移动)** 模块的输入相连接, .. image:: img/exeuntil.png :align: center :width: 450px 5. 单击任务流图左上角的 |start|,开始执行整个抓取流程。 机械臂主控 +++++++++++++ 在机械臂主控模板中,需要同时使用 **抓取异步前端** 和 **抓取异步后端** 两个模板。 其中前端模板主要负责整体抓放流程的控制,而后端完成大量的计算工作,例如机械臂抓取出筐后可以立即拍照,后端可以立刻执行计算任务,这样机械臂完成一次抓放流程之后可以直接获取计算结果进行下一次抓取,以提升执行效率。前端被机械臂呼叫,对指令的响应速度更快,但前端不负责具体的计算任务,仅从后端获取计算结果。 下图是 **抓取异步前端** 模板示意图,其中左上部分控制切换工件的流程,右上部分控制请求抓放的流程,下面的流程控制抓放节点筛选。 .. image:: img/front.png :align: center :width: 700px 下图是 **抓取异步后端** 模板示意图,其中上面是计算抓取轨迹的流程,左下部分控制工作空间的切换,右下部分控制坐标系转换。 .. image:: img/back.png :align: center :width: 700px 机械臂主控模式下,Kuka机械臂案例和示例代码可参考 :doc:`../../appendix/robot_connection/kuka/example`,其他品牌的案例和代码可在 :doc:`../../appendix/robot_connection/robot` 中选择相应的品牌查看。 .. |help| image:: img/help.png :width: 30px 在Max中,单击右上方 :guilabel:`映射表与通信协议`,在弹出窗口的 :guilabel:`机械臂基础设置` 页签下,勾选 **开启** 打开测试模式。此时右侧会出现 :guilabel:`打开文件` 和 |help|。单击 :guilabel:`打开文件` 可查看通信指令的yml文件,单击 |help| 可在浏览器中打开 :doc:`../../appendix/robot_connection/robot_server_protocol` 页面,并查看机械臂主控通信协议、指令等的内容。 .. image:: img/instruction.png :align: center :width: 700px