任务

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

适用场景

控序混码 场景分为输送线来料和托盘来料两种,各自的适用场景如下。

  • 输送线来料

    • 一个抓取空间,一个放置空间。

    • 一个抓取空间,多个放置空间。

  • 托盘来料

    • 一个抓取空间,一个放置空间。

    • 多个抓取空间,多个放置空间。

同时,在运行控序混码场景时,需要注意如下事项。

  • 清空环境的同时会清空订单。

  • 异常处理之后,添加箱子会自动发送本轮抓取完成。

  • 只有在对应的工作空间就绪时,任务才能顺利执行。

任务流图

控序混码 场景始终需要两个任务流图同时运行,一个用于规划,一个用于执行。配置任务流图时,首先在 任务 中选择“文件 > 新建 > 拆码垛”路径下的 纸箱混码-控序-规划 任务流图,然后在相同路径下选择 纸箱混码-控序-执行 任务流图。请参见 流图配置

添加好基础模板之后,用户可根据需求添加或修改模块。

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

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

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

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

    ../../../_images/inipos2.png

提示

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

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

../../../_images/wsvmap2.png
  1. 单击 获取箱子视觉结果 模块,在右侧 属性 页签中设置各参数,主要参数设置如下。默认进行空托盘、顶层点云完整度、尺寸一致性检查。当使用的是流水线拆垛的视觉流图时,要取消勾选任务模块中的这些选项。

../../../_images/boxviresult1.png
  1. 单击 混码初始化 模块,填写配置文件路径。

../../../_images/mscini.png
  1. 单击 混码垛型规划 模块,填写注册抓取流程文件路径。

../../../_images/mscpal.png
  1. 单击 生成抓取放置方案 模块,填写组合规划配置文件路径。

../../../_images/pickplan.png

异常处理

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

  • 掉箱异常处理:需人工添加纸箱,或者将抓取纸箱放回原抓取位置。

  • 来料错误异常:需检查来料是否错误,来料错误则需要更换来料,如果来料正确则需检查视觉识别是否准确。

  • 运动规划无解:对于控序混码项目来说,不应出现运动规划无解。首先检查碰撞检测参数设置是否一致。对于当前订单来说,可以选择放弃订单,也可以将箱子按照掉箱处理,人工添加纸箱。在此之后需要联系星猿哲工程师定位问题。

订单下发

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

../../../_images/wcsorder2.png

Insomnia

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

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

Mockoon

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

用户可以通过 Mockoon 下载。

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

订单下发

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

{
  "order_id": "string",   // 可不带此字段,此时会自动生成订单ID
  "order_type": 4, // 控序混码必须为4
  "global_barcode_direction": -1,
  "time_budget": -1, // 规划时间限制
  "place_pallet_budget": -1,
  "supply_pallet_budget": -1, // 输送线来料为 -1, 如果是托盘来料,一次能来多少托盘就填多少
  "order_items": [
    {
      "from": [
        "0",
        "1"
      ],
      "to": [
        "2",
        "3"
      ],
      "target_num": 1,  // 实际此类物料有多少就设置多少
      "sku_info": {
        "id": "string",  // 不同的物料ID必须保证不同
        "type": "box",
        "length": 500,
        "width": 400,
        "height": 300,
        "weight": 1,
        "weight_unit": "kg",
        "length_unit": "mm",
        "barcode_direction": 0,
        "load_bearing": -1,
        "direction_options": [
          "Ori",
          "RotZ"
        ]
      },
      "clear_from_ws": true,
      "clear_to_ws": true
    }
  ]
}

运行

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

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

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

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

../../../_images/hmidisplay2.png

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

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

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

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