任务 ========================================== 设置完视觉和运动部分之后、运行任务流图之前,需要添加工件代号映射关系,以便任务流图调用视觉和运动设置的工件、视觉服务编号、抓取处理流程等内容,具体步骤如下。 .. |add| image:: img/add.png :width: 25px .. |delete2| image:: img/delete2.png :width: 25px .. |change| image:: img/change.png :width: 25px .. |copy| image:: img/copy.png :width: 25px .. |delete3| image:: img/delete3.png :width: 25px .. |start| image:: img/start.png :width: 25px 工件代号映射表 +++++++++++++++++ 1. 单击Max右上角 :guilabel:`映射表与通信协议`,在弹出的 **映射表与通信协议** 窗口选择 “工件代号映射表 > 坐标移动”页签。 .. image:: img/task1.png :align: center :width: 650px 2. 单击 :guilabel:`添加映射关系`,在弹出的 **添加映射关系** 窗口设置键、值和参数。 .. image:: img/task2.png :align: center :width: 450px - 工件代号:用户自定义工件代号,仅支持英文字母和数字,长度不超过15个字符。可添加多个工件。 - 视觉服务编号:在下拉菜单选择视觉服务编号,编号和视觉部分的设置保持一致。 - 视觉流图文件:与视觉空间ID下的流图保持一致。 - 处理流程:在下拉菜单中选择抓取处理流程,这些抓取处理流程已在运动部分设置好。运动流程编号从0开始自动增加,可单击 |add| 或 |delete2| 新建或删除处理流程。 - 缓存多个视觉结果:可根据需要是否勾选。 3. 单击 :guilabel:`确认` 完成添加,列表中会显示已添加的映射关系,用户可对列表中的映射关系进行操作。 .. image:: img/task3.png :align: center :width: 600px - |change|:修改映射关系。 - |copy|:复制并修改映射关系,注意键值不能重复。 - |delete3|:删除映射关系。 4. 单击 :guilabel:`确认` 完成映射表设置。 .. hint:: 用户可单击 :guilabel:`自动生成映射关系`,系统自动根据视觉和运动的设置生成工件代号映射表,但有多个抓取处理流程时无法自动生成映射关系。 任务流图 +++++++++++++++++ 设置完工件代号映射表之后,在 :guilabel:`任务` 中导入2D/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. 在 **切换工件** 模块中设置工件代号和视觉服务编号,其它参数可根据需求修改。该工件代号在映射表中设置,请参考本页面开头的内容。 .. image:: img/objchange.png :align: center :width: 350px 3. 在 **移动到目标关节** 模块中设置关节角度、位置和速度等参数,指定一个起始点位置。 .. image:: img/joint.png :align: center :width: 350px 4. 在 **呼叫视觉与计算抓取规划(坐标移动)** 模块中设置工作空间编号、机械臂路径、工作空间和机械臂位姿等参数,其它参数可根据需求修改,该模块会计算出最终的抓取位姿。 5. 设置目标关节和数字输出。 a. 根据实际需要,设置预抓取点(prepick)、后抓取点(postpick)的位姿偏移,分别表示抓取前和抓取后机械臂停留的位置。例如在本项目中,该位姿是相对于抓取位姿的偏移量。模块中参考点路径为实际环境中工具参考点的路径。 .. image:: img/prepick.png :align: center :width: 450px b. 在预抓取点之后添加一个 **设置设备数字输出** 模块。单击该模块,在右侧 **属性** 页签,设置端口编号和值,此时值变为0,表示工具张开。 .. image:: img/ioset.png :align: center :width: 350px .. hint:: 单击Max右上角的 :guilabel:`虚拟示教器`,在 **I/O控制** 页签根据机械臂实际情况设置数字输出端口号。例如在本项目中端口3控制的是工具的开合,信号1表示工具闭合,信号0表示工具张开。端口名称可自行定义,然后单击 :guilabel:`确认`。在 **设置设备数字输出** 模块设置时,选择I/O控制里的端口即可。 .. image:: img/iocontrol.png :align: center :width: 550px c. 在抓取点(pick)之后添加一个 **设置设备数字输出** 模块。单击该模块,在右侧 **属性** 页签,勾选 **值**,此时值变为1,表示工具闭合。 d. 添加两个 **移动到目标关节** 模块,分别表示后抓取点(postpick)和放置点(place),并在 **属性** 页签中设置在这些点的目标关节角。 e. 在放置点之后添加一个 **设置设备数字输出** 模块。单击该模块,在右侧 **属性** 页签,勾选 **值**,此时值变为0,表示工具张开。 f. 从流图末尾引出连线至表示起始点的 **移动到目标关节** 模块(切换工件模块之后),以设置抓取多个工件的动作循环,系统会自动根据视觉计算结果判断是否有待抓取工件。 8. 单击任务流图左上角的 |start|,开始执行整个抓取流程。 机械臂主控 ------------- 1. 在 :guilabel:`任务` 界面右侧 :guilabel:`服务编辑` 页签下,单击服务指令,编辑相应模块。 在2D/3D坐标移动场景中,常见的服务如下: - switch_item:切换工件。 - calculate_grasp_poses:计算抓取位姿。 .. image:: img/service.png :align: center :width: 700px 2. 选择 :guilabel:`开启服务`,开启服务。工控机收到机械臂请求后,调用相应服务。 机械臂主控模式下,ABB机械臂案例和示例代码可参考 :doc:`../../../appendix/robot_connection/abb/example`,其他品牌的案例和代码可在 :doc:`../../../appendix/robot_connection/robot` 中选择相应的品牌查看。 .. |help| image:: img/help.png :width: 20px 在Max中,单击右上方 :guilabel:`映射表与通信协议`,在弹出窗口的 :guilabel:`机械臂基础设置` 页签下,勾选 **开启** 打开测试模式。此时右侧会出现 :guilabel:`打开文件` 和 |help|。单击 :guilabel:`打开文件` 可查看通信指令的yml文件,单击 |help| 可在浏览器中打开 :doc:`../../../appendix/robot_connection/robot_server_protocol_v2` 页面,并查看机械臂主控通信协议、指令等的内容。 .. image:: img/instruction.png :align: center :width: 650px