任务

任务部分利用视觉部分的计算结果和运动部分的运动规划,控制整个项目的流程运行。本章节将详细介绍任务部分的配置。

适用场景

纸箱单码 的标准任务流图有如下场景适用要求。

  • 单一工作空间码垛,抓取位输送线和放置位托盘固定。

    • 任务还未结束,托盘满托时,会告知WCS托盘已满,清空工作空间后继续接受任务码垛。

    • 任务结束后,不论托盘是否码满,会告知WCS任务结束,然后清空工作空间继续等待新任务。

  • 多工作空间码垛,有多个抓取位和放置位,机械臂会在多个工作空间交叉码垛。

    • 任务还未结束,托盘满托时,会告知WCS托盘已满,清空工作空间后继续接受任务码垛。

    • 任务结束后,托盘满托时,会告知WCS托盘已满,然后清空工作空间后继续接受任务码垛。

    • 任务结束后,托盘未码满,不会清空工作空间,机械臂会继续等待新任务码其他托盘,直到托盘满垛后,会告知WCS托盘已满,然后清空满垛托盘的工作空间后继续接受任务码垛。

纸箱单码 的标准任务流图的局限性如下。

  • 多工作空间码垛时,只有托盘满垛才会撤出托盘。

  • 多工作空间码垛时,机械臂根据任务进行码垛,当前任务做完才能进行其他任务,无法在多个任务中切换实现真正意义上的多工作空间交叉码垛。实际生产项目中一般发送所有输送线的任务,哪个输送线有箱子机械臂就做哪个输送线的任务。

任务流图

配置任务流图时,首先在 任务 中选择“文件 > 新建 > 拆码垛”路径下的 纸箱单码 任务流图。请参见 流图配置

添加好基础模板之后,用户可根据需求添加或修改模块。以纸箱单码项目为例,任务流图从上到下主要分为五个部分:主程序、流图初始化、任务初始化、运动规划和运动执行。主程序控制整个任务流程。流图初始化主要用来设置三色灯、数字输出、机械臂数字输出等流图运行的基本信息。任务初始化主要用来设置工作空间、纸箱的技术参数。运动规划主要负责进行垛型规划、计算抓取方案,并形成完整的运动规划方案。运动执行用来处理吸盘开合、掉箱检测,并回报任务状态等。

下面详细介绍该任务流图的配置步骤。

  1. 在任务流图模块当中选择“功能 > 一键更新节点机械臂属性”,系统自动根据当前设置更新机械臂路径。也可在模块的属性中设置机械臂路径。

../../../_images/updaterobot3.png
  1. 单击 清空环境 模块,在右侧 属性 页签中设置“清空所有工作空间”。

../../../_images/clearall.png

在纸箱单码的场景中,一般不清空所有工作空间。该参数的可选值及其含义如下。

  • 该参数为True时:清空所有工作空间,此时真实环境中的码垛位也会被清空。

  • 该参数为False时:清空工作空间编号列表中的工作空间。

  • 没有清空码垛位:在之前的码垛位环境下计算,并继续码垛。

  1. 单击 规划并移动 模块,在右侧 属性 页签中设置设置初始位置,即目标关节角,还可设置位置和速度等参数。初始即起始点位置。

../../../_images/inipos1.png

提示

一般来说,初始位置不应干涉相机视野,且与障碍物保持安全距离。设置完成后,可以连接虚拟机械臂,移动并查看效果。

  1. 单击 创建运动工作空间编号和视觉服务工作空间编号的映射 模块,在右侧 属性 页签中设置关键字(即工作空间编号)和内容(即视觉ID)。

../../../_images/wsvmap1.png
  1. 单击 变量写入 模块,设置全局变量sm_workspace,可选值及其含义如下。0表示单一工作空间码垛模式,任务完成后会告知WCS撤出托盘,然后清空工作空间。1表示多工作空间码垛模式,当前任务完成后,机械臂回Home点继续等待任务,当托盘满垛后才清空工作空间。

../../../_images/smws.png
  1. 单击 设置箱子技术协议信息 模块,设置条码朝向,同时可以设置箱子长、宽、高、重量的上下限。

../../../_images/boxagree.png
  1. 单击“任务初始化”部分中最后一个 变量写入 模块,设置变量is_go_weight,表示是否称重。1代表称重,0代表不称重。

../../../_images/iswei.png
  1. 单击 获取箱子视觉结果 模块,在右侧 属性 页签中设置各参数,主要参数设置如下。

../../../_images/boxviresult.png

  • 运动工作空间来源:可以选择自动获取抓取工作空间。

  • 校验尺寸模式:输送线纸箱来料,校验长宽高。如果来料尺寸信息不对,则报错。

  • 更新长宽高的方式:均选择“使用输入SKU更新”。

  • 是否开启底部填充:输送线不需要开启。

异常处理

运动规划过程中的三种异常类型及其处理方式如下。

  • 视觉穷尽:输送线上没有箱子,报错。

  • 规划失败:运动规划失败,无解,报错。

  • 放置已满:托盘码满了,告知WCS托盘已满,更新托盘,清空环境。

订单下发

在真实项目中,用户会通过WCS下发订单信息。WCS、HMI后端以及Max任务流图的运行顺序如下图所示。在模拟项目中,可以使用Insomnia和Mockoon软件模拟。

../../../_images/wcsorder1.png

Insomnia

Insomnia是一款功能强大的开源API测试和调试工具,主要用于模拟WCS下发任务。它提供了一个直观和易用的界面,用于发送HTTP请求、查看响应、检查接口状态以及进行调试。

用户可以通过 Insomnia 下载。下载后使用浏览器打开http://127.0.0.1:7002/docs#/ ,然后配置使用。

Mockoon

Mockoon是一款开源的本地API模拟工具,主要用于模拟WCS接受反馈。它可以帮助开发人员在本地创建和模拟API端点,进行开发、测试和调试。Mockoon提供了一个直观的界面,使用户能够轻松设置和定义API的行为、响应和路由规则。

用户可以通过 Mockoon 下载。

如果是单机调试,可以在HMI设置中打开虚拟服务,保存并重启。对于实际项目,需按照实际需求配置。

订单下发

在纸箱单码场景中,订单下发的示例信息如下。

{
  "task_id": "888888",
  "sku_info": {
    "sku_id": "",
    "length": 600,
    "width": 400,
    "height": 400,
    "weight": 5,
    "sku_num": 10
  },
  "from": "2",
  "to": "1"
}

运行

运行前,先新建物流HMI,配置HMI后端,HMI相关的基本设置,请参见 基本HMI操作

然后设置HMI运行界面,步骤如下。

  1. 设置HMI权限,专家密码采用星猿哲默认密码。

../../../_images/hmipw1.png
  1. 设置HMI显示,可以根据实际项目需求,订阅3D可视化、日志、Web HMI、新增图像、新增位姿等功能。

../../../_images/hmidisplay1.png

运行时,将需要执行的任务流图放在第一位,HMI运行模式默认执行排在第一位的任务流图。在Max软件右上角点击“运行HMI”按钮,界面切换到HMI运行页面。在HMI运行界面依次进行如下操作。

  1. 单击“连接机械臂”,将机械臂正确连接。(也可点击Max界面右上角的“虚拟示教器”进行连接。)

  2. 单击“I/O设备”,连接PLC。

  3. 单击“运行”按钮,确认订单和环境信息后,执行程序。