料箱单码 ========================================== 料箱单码的任务部分利用视觉部分的计算结果和运动部分的运动规划,控制整个项目的流程运行。本章节将详细介绍任务部分的配置。 任务流图 ++++++++++ 配置任务流图时,首先在 **任务** 中选择“文件 > 新建 > 拆码垛”路径下的 **料箱单码** 任务流图。请参见 :doc:`../../../basic_operation/VP_operation/configuration`。 添加好基础模板之后,用户可根据需求添加或修改模块。以料箱单码项目为例,任务流图从上到下主要分为五个部分:主程序、流图初始化、任务初始化、运动规划和运动执行。主程序控制整个任务流程。流图初始化主要用来设置三色灯、数字输出、机械臂数字输出等流图运行的基本信息。任务初始化主要用来设置工作空间、料箱的技术参数。运动规划主要负责进行垛型规划、计算抓取方案,并形成完整的运动规划方案。运动执行用来处理吸盘开合、掉箱检测,并回报任务状态等。 下面详细介绍该任务流图的配置步骤。 1. 在任务流图模块当中选择“功能 > 一键更新节点机械臂属性”,系统自动根据当前设置更新机械臂路径。也可在模块的属性中设置机械臂路径。 .. image:: img/updaterobot.png :align: center :width: 450px 2. 单击 **清空环境** 模块,在右侧 **属性** 页签中设置“清空所有工作空间”。 .. image:: img/clearall.png :align: center :width: 450px 在料箱单码的场景中,一般不清空所有工作空间。该参数的可选值及其含义如下。 - 该参数为True时:清空所有工作空间,此时真实环境中的码垛位也会被清空。 - 该参数为False时:清空工作空间编号列表中的工作空间。 - 没有清空码垛位:在之前的码垛位环境下计算,并继续码垛。 3. 单击 **规划并移动** 模块,在右侧 **属性** 页签中设置设置初始位置,即目标关节角,还可设置位置和速度等参数。初始即起始点位置。 .. image:: img/inipos.png :align: center :width: 350px \ .. hint:: 一般来说,初始位置不应干涉相机视野,且与障碍物保持安全距离。设置完成后,可以连接虚拟机械臂,移动并查看效果。 4. 单击 **创建运动工作空间编号和视觉服务工作空间编号的映射** 模块,在右侧 **属性** 页签中设置关键字(即工作空间编号)和内容(即视觉ID)。 .. image:: img/wsvmap.png :align: center :width: 450px 5. 单击 **设置箱子技术协议信息** 模块,设置条码朝向,同时可以设置箱子长、宽、高、重量的上下限。 .. image:: img/boxagree.png :align: center :width: 450px 6. 单击 **获取箱子视觉结果** 模块,在右侧 **属性** 页签中设置各参数,主要参数设置如下。 .. image:: img/boxviresult.png :align: center :width: 450px \ - 运动工作空间来源:可以选择自动获取抓取工作空间。 - 检查箱子类型:料箱。 - 校验尺寸模式:关闭,不需要进行检测,已在视觉流图中匹配。 - 更新长宽高的方式:均选择“使用输入SKU更新”。 - 是否开启底部填充:输送线不需要开启。 异常处理 ++++++++++ 运动规划过程中的三种异常类型及其处理方式如下。 - 视觉穷尽:输送线上没有箱子,报错。 - 规划失败:运动规划失败,无解,报错。 - 放置已满:托盘码满了,告知WCS托盘已满,更新托盘,清空环境。 订单下发 +++++++++ 在真实项目中,用户会通过WCS下发订单信息。WCS、HMI后端以及Max任务流图的运行顺序如下图所示。在模拟项目中,可以使用Insomnia和Mockoon软件模拟。 .. image:: img/wcsorder.png :align: center :width: 450px **Insomnia** Insomnia是一款功能强大的开源API测试和调试工具,主要用于模拟WCS下发任务。它提供了一个直观和易用的界面,用于发送HTTP请求、查看响应、检查接口状态以及进行调试。 用户可以通过 `Insomnia `_ 下载。下载后使用浏览器打开http://127.0.0.1:7002/docs#/ ,然后配置使用。 **Mockoon** Mockoon是一款开源的本地API模拟工具,主要用于模拟WCS接受反馈。它可以帮助开发人员在本地创建和模拟API端点,进行开发、测试和调试。Mockoon提供了一个直观的界面,使用户能够轻松设置和定义API的行为、响应和路由规则。 用户可以通过 `Mockoon `_ 下载。 如果是单机调试,可以在HMI设置中打开虚拟服务,保存并重启。对于实际项目,需按照实际需求配置。 **订单下发** 在料箱单码场景中,订单下发有两种方式,可以通过Insomnia,也可通过HMI进行。两种方式的示例信息如下。 - 通过Insomnia下发订单 示例代码如下。 .. code-block:: { "task_id": "888888", "sku_info": { "sku_id": "", "length": 600, "width": 400, "height": 400, "weight": 5, "sku_num": 10 }, "from": "0", "to": "1" } .. hint:: 通过Insomnia下发料箱单拆订单的示例请参见 :doc:`depalletize` 中的“订单下发”章节。 - 通过HMI下发订单 在HMI设置页面的 **辅助功能** 里设置订单信息,如下图所示。 .. image:: img/hmiorder.png :align: center :width: 450px 运行 ++++++++++ 运行前,先新建物流HMI,配置HMI后端,HMI相关的基本设置,请参见 :doc:`../../../basic_operation/hmi`。 然后设置HMI运行界面,步骤如下。 1. 设置HMI权限,专家密码采用星猿哲默认密码。 .. image:: img/hmipw.png :align: center :width: 450px 2. 设置HMI显示,可以根据实际项目需求,订阅3D可视化、日志、Web HMI、新增图像、新增位姿等功能。 .. image:: img/hmidisplay.png :align: center :width: 450px 运行时,将需要执行的任务流图放在第一位,HMI运行模式默认执行排在第一位的任务流图。在Max软件右上角点击“运行HMI”按钮,界面切换到HMI运行页面。在HMI运行界面依次进行如下操作。 1. 单击“连接机械臂”,将机械臂正确连接。(也可点击Max界面右上角的“虚拟示教器”进行连接。) 2. 单击“I/O设备”,连接PLC。 3. 单击“运行”按钮,确认订单和环境信息后,执行程序。