UR CB 系列(Polyscope 3.14 及以上)

本文介绍 UR(Universal Robots) CB 系列机器人的标准接口通信配置。

插件安装与配置

本节介绍为 UR CB 系列机器人安装与配置 Mech-Mind 3D Vision Interface (URCap 插件)。

前提条件

确保 Mech-Mind 系列视觉软件 和 Polyscope 满足 最低版本要求

要查看 Polyscope 的版本,按 Polyscope 主界面上的 关于 按钮。

../../../../_images/setup_robot_cb1.png
../../../../_images/about_cb1.png

安装 URCap 插件

要安装 URCap 插件,执行如下步骤:

  1. 在梅卡曼德系统软件的安装目录 Mech-Center\Robot_Interface\Robot_Plugin\UR_URCAP 文件夹下,将后缀为 1.5.0.urcap 的文件复制到 U 盘中。

  2. 将 U 盘插入到 UR 示教器.

  3. 在 Polyscope 主界面,按 设置机器人

    ../../../../_images/setup_robot_cb1.png
  4. 设置机器人 界面,在左侧面板选择 URCap

    ../../../../_images/urcaps_button_cb1.png
  5. URCap 界面,按 + 按钮切换到 U 盘查找 URCap 插件(.urcap 文件)。

    ../../../../_images/urcaps_screen_cb1.png
  6. 选择 URCap 以安装 界面,选择 URCap 插件,并按 打开 按钮。URCap 插件将会自动安装。

    ../../../../_images/install_urcaps_cb1.png
  7. 重启 按钮以使修改生效。

    ../../../../_images/restart_urcaps_cb1.png

至此,URCap 插件已成功安装到 UR 示教器。

注意

安装完成后,您还需要设置机器人的 IP 地址(选择 设置机器人 > 网络)。注意,机器人的 IP 地址必须与工控机的 IP 地址在同一网段。

使用 Mech-Mind 3D Vision Interface

注解

使用前,确保 Mech-Vision 和 Mech-Viz(如需要) 工程已准备就绪,并且 Mech-Mind 工控机已连接到机器人的网络。

要使用 Mech-Mind 3D Vision Interface,您需要先完成如下配置。

  1. 单击 Mech-Vision 工具栏中 机器人与接口配置

  2. 单击 选择机器人 下拉框,选择 品牌机器人 ,然后单击 选择机器人型号 ,选择具体 UR 机器人型号,单击 下一步

  3. 通信方式 下,接口类型选择 标准接口 ,协议选择 TCP Server ,协议格式选择 ASCII ,主机端口固定使用 50000 (不可更改),最后单击 应用

    ../../../../_images/configure_communication_19.png
  4. 在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。

    ../../../../_images/configure_communication_29.png

在 Mech-Vision 上启动接口服务后,在 UR 示教器上进行如下操作以连接接口服务。

  1. 在 Polyscope 主界面,按 为机器人编程

  2. 选择 安装设置 页签,并在左侧面板选择 网络设置。URCap 插件的 网络设置 界面将显示。

    ../../../../_images/network_settings_cb1.png
  3. Mech-Mind 工控机 IP 地址端口号 分别设置为 Mech-Mind 工控机的 IP 地址和端口号(与 Mech-Vision 通信配置中的端口号保持一致),并按 Apply

  4. Connection Test 按钮。

    • 当连接成功时,返回的状态信息如下所示:

      ../../../../_images/connection_pass1.png
  • 当连接失败时,返回的状态信息如下所示:

    ../../../../_images/connection_failed1.png

注解

连接测试仅用作测试目的。一旦建立成功后,连接将自动断开。因此,您可以在 Mech-Vision 日志窗口的 Console 标签页下看到客户端已连接和客户端已断开日志。

使用插件进行自动标定

本节介绍使用 URCap 插件进行自动标定的过程。

标定过程包含四个步骤:

  1. 创建标定程序

  2. 示教标定起始点

  3. 运行标定程序

  4. 在 Mech-Vision 中完成标定

前提条件

在开始标定前,请确保:

  • 您已经成功将 URCap 插件与标准接口服务连接。

  • 您已经熟悉 Mech-Vision 机器人手眼标定指南 章节的内容。

创建标定程序

  1. 在 UR 示教器上,选择 为机器人编程 > 程序,然后按 空程序 按钮。

  2. 选择 结构 > URCap,在 URCap 页签中按 标定 按钮。在左侧面板的 机器人程序 程序树下自动创建出 Calibrate 程序示例节点。

    ../../../../_images/add_calibrate_node_cb1.png

创建的程序示例节点仅是模板。您需要进一步配置标定程序,并示教标定起始点。

示教标定起始点

  1. 在程序树下选择 Calibrate 节点,在右侧面板的选择 命令 页签,根据实际需要将 从 Mech-Vision 获取的位姿类型 参数设置为“Joint Angle”或“Flange Pose”。

    ../../../../_images/set_calibrate_node_cb1.png
  2. 下一个 按钮前进到 MOVEJ 节点,在右侧 移动 面板,设置运动类型为“MoveJ”、“MoveL”或“MoveP”,并将 设置 TCP 设置为 使用工具法兰 以确保路点被记录为法兰位姿。

    ../../../../_images/set_movej_cb1.png
  3. 手动控制将机器人移动到标定起始点。

  4. 返回 UR 示教器,在左侧面板选择 start_pose 节点,并在右侧 路点 面板中按 设置路点 按钮。界面将会跳转至 移动 页签。

    ../../../../_images/teach_startpoint_cb1.png
  5. 移动 页签中,确认机器人当前的法兰位姿合适,并按 确定 按钮。

    ../../../../_images/confirm_waypoint_cb1.png

运行标定程序

  1. 在左侧面板选择 机器人程序 程序树,在右侧面板中取消勾选 程序永远循环 复选框,以确保该程序仅运行一次。

    ../../../../_images/run_calibrate_cb1.png
  2. 出于安全考虑,在底部栏中将机器人的速度降低到合适的值,例如 10%。

  3. 在底部栏中按 run_cb 按钮来运行程序。

当标定程序成功运行时,Mech-Vision 日志栏的 Console 标签页中显示“进入标定流程,请在 Mech-Vision 中启动标定”。

在 Mech-Vision 中完成标定

  1. 启动 Mech-Vision 软件,单击 相机标定(标准) 或在菜单栏中依次单击 相机助手 ‣ 相机标定 ‣ 标准 打开标定工具。

  2. 根据相机的安装方式,按照软件提示完成剩余操作。

如需保存标定程序进行后续使用,选择 文件 > 另存为

../../../../_images/save_program_cb1.png

完成手眼标定后,您可以 创建抓放程序 来控制 UR 机器人执行视觉引导的抓放作业。

创建抓放程序

URCap 插件提供抓放示例节点,通过极少的编程工作就可以创建出抓放程序。

抓放示例程序节点提供三种选项:

  • 使用 Mech-Vision(抓取点):适用于仅使用 Mech-Vision 工程(未包含“路径规划”步骤)且机器人不需要 Mech-Viz 规划路径的场景。

  • 使用 Mech-Vision(抓取路径):适用于仅使用 Mech-Vision 工程(包含“路径规划”步骤)且机器人不需要 Mech-Viz 规划路径的场景。

  • 配合 Mech-Viz 抓放:适用于 Mech-Viz 工程与 Mech-Vision 工程一起使用为机器人提供无碰撞的运动路径的场景。

该插件为每个选项提供的程序模板,方便进行编程。

注解

下文示例假设已经正确设置当前使用的夹具以及工具中心点(TCP)。

使用 Mech-Vision(抓取点)

要创建使用 Mech-Vision(抓取点)的程序,执行如下步骤:

  1. 选择使用 Mech-Vision(抓取点)选项。

    1. 在 UR 示教器上,选择 为机器人编程 > 程序 > 空程序

    2. 选择 结构 > URCap,在 URCap 页签中按 抓放示例 按钮。在左侧面板的 机器人程序 程序树下自动创建出 Pick and Place 程序示例节点。

      ../../../../_images/add_pick_place_node_cb1.png
    3. 选择 命令 页签,并按 使用 Mech-Vision(抓取点) 按钮。

      ../../../../_images/select_pick_place_option_cb1.png
    4. 当看到程序树的 Pick and Place 节点下自动添加程序模板时,按 下一个 按钮。

      ../../../../_images/display_vision_option_cb1.png
  2. Mech-Mind Connect 节点,在右侧 Mech-Mind 连接 面板,确认 主机 IP 的值为 Mech-Mind 工控机的 IP 地址。

    ../../../../_images/verify_host_ip_vision_cb1.png
  3. 设置图像采集点。

    1. 手动控制机器人移动到合适的位置。Mech-Vision 将在此处触发拍照。

    注解

    • 对于 Eye-In-Hand 场景,机器人应置于工件的上方。

    • 对于 Eye-To-Hand 场景,机器人应不阻挡相机的视野。

    1. 返回 UR 示教器,按 下一个 按钮前进至 MOVEJ 节点,在右侧 移动 面板中设置运动类型为“MoveJ”、“MoveL”或“MoveP”, 并将 设置 TCP 设置为 使用激活的 TCP,然后按 下一个 按钮.

      ../../../../_images/set_movej_capture_cb1.png
    2. 在右侧 路点 面板中按 设置路点 按钮。界面将会跳转至 移动 页签。

      ../../../../_images/set_waypoint_capture_cb1.png
    3. 移动 页签中,确认机器人当前的 TCP 位姿合适,并按 确定 按钮。

      ../../../../_images/confirm_waypoint_cb1.png
    4. 图像采集点设置后,按 下一个 按钮。

  4. 触发 Mech-Vision 工程运行。

    1. 在右侧 触发 Mech-Vision 面板中设置参数 发送机器人位姿类型Mech-Vision 工程号返回的位姿数量

      ../../../../_images/trigger_vision_cb1.png

    参数

    描述

    发送机器人位姿类型

    指定真实机器人的位姿将以何种形式传入 Mech-Vision。

    • Current Position:该指令以“机器人当前关节角+当前法兰”形式向视觉系统传入机器人位姿。若工程为 Eye In Hand 模式,则推荐使用该参数。 在使用时,Mech-Vision 工程中存在的“路径规划”步骤将使用机器人发送关节角。如果法兰位姿为全零,则忽略法兰数据。

    • Predefined JPs:该指令以预定义关节角(读取用户设置的关节角变量)形式向视觉系统传入机器人位姿。若工程为 Eye To Hand 模式,则推荐使用该参数。 在使用时,Mech-Vision 工程中存在的“路径规划”步骤将使用机器人发送的关节角作为初始位姿。

    Mech-Vision 工程编号

    Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号。

    返回的位姿数量

    期望 Mech-Vision 输出的物体位姿的数量。

    • 如果设为 0,输出所有检测出的物体位姿,但不超过20个。

    • 如果设为 1 到 20 之间的整数,若检测到的物体位姿总数大约期望的值,Mech-Vision 将尝试返回固定数量的物体位姿。

    1. (可选)按 设置配方编号 按钮,程序树中的 Trigger Mech-Vision 节点下将自动添加 Set Recipe ID 节点。

    2. 在程序树中选择 Set Recipe ID 节点,并在右侧 切换配方 面板中设置参数 工程参数配方编号,然后按 下一个 按钮。

      ../../../../_images/set_receipe_id1.png
  5. 设置如何接收 Mech-Vision 结果。

    在程序树中选择 Pick and Place 节点下的 Receive Mech-Vision Result 节点,选择接受数据类型为 Basic,并为 位姿标签接受位姿数量、和 状态码 设置变量名,用于存放视觉结果,然后按 下一个 按钮。

    ../../../../_images/receive_vision_result_cb1.png

    参数

    描述

    接受数据类型

    Basic:接收视觉点和标签。 Planned path:接收“路径规划”步骤输出的路径点和标签。 Custom:接收视觉点、标签和自定义端口数据。

    位姿

    检测到物体的位姿,格式为XYZ。机器人携带激活的 TCP 可以直接运动至该点。默认情况下,接收的视觉点将保存在数组变量“pose[]”中,数组起始索引为 1。

    标签

    检测到物体的标签,标签值为整数。默认情况下,标签保存在数组变量“label[]”中,数组起始索引为1。标签和位姿一一对应。

    接受位姿数量

    接收检测到物体位姿的总数。

    状态码

    返回的状态码。请参考 状态码列表。11xx 为正常状态码,10xx 为错误码。默认情况下,状态码保存在变量“status_code”中。

    起始索引值

    位姿和标签的数组变量的起始索引。默认情况下,起始索引值为 1。

    抓取点索引

    接受数据类型 为 Planned path 时,此变量才会在界面显示。 该变量表示在接收的路径点中视觉移动点的索引。例如,路径规划步骤返回三个点,依次为相对移动_1,视觉移动_1和相对移动_2,则抓取点索引为 2。 默认情况下,抓取点索引保存在变量“vision_point”中。

    自定义数据

    接受数据类型 为 Custom 时,此变量才会在界面显示。 该变量表示从 Mech-Vision 中的输出步骤接收自定义数据,即除 poses 和 labels 之外其他端口的数据。 默认情况下,自定义数据保存在变量“custom_data”中。

  6. 设置抓取作业。

    注解

    一次抓取作业包含了三个运动:Pick_above,直线运动到抓取点;Pick,抓取物体;Pick_depart,抓取物体后离开。

    1. 在右侧 Mech-Vision Pick 面板,分别为 抓取接近点抓取离开点 设置参数 距离参考方向,然后按 下一个 按钮。

      ../../../../_images/set_distance_coordinates_cb1.png
    2. 在右侧 移动 面板,为 MoveJ 节点保持默认配置,然后按 下一个 按钮。

    3. 在右侧 路点 面板,为 pick_above 节点保持默认配置,然后按 下一个 按钮。

    4. 在右侧 移动 面板,为 MoveL 节点保持默认配置,然后按 下一个 按钮。

    5. 在右侧 路点 面板,为 pick 节点保持默认配置,然后按 下一个 按钮。

    6. 根据实际情况,在 pick 节点后添加夹具控制逻辑。

    7. 在右侧 移动 面板,为 MoveJ 节点保持默认配置,然后按 下一个 按钮。

    8. 在右侧 路点 面板,为 pick_depart 节点保持默认配置,然后按 下一个 按钮。

  7. 设置放置作业。

    1. 下一个 按钮前进至下一个 MoveJ 节点。

    2. 在右侧 移动 面板,为 MoveJ 节点保持默认配置,然后按 下一个 按钮。

    3. 手动控制机器人移动到放置被抓物体的正确位置。

    4. 返回 UR 示教器,在右侧 路点 面板中按 设置路点 按钮。界面将会跳转至 移动 页签。

      ../../../../_images/set_waypoint_place_cb1.png
    5. 移动 页签中,确认机器人当前的法兰位姿合适,并按 确定 按钮。

      ../../../../_images/confirm_waypoint_cb1.png
    6. 设置放置位姿后,按 下一个 按钮.

    7. 据实际情况,在程序树的 place 节点后添加夹具控制逻辑。

至此,使用 Mech-Vision(抓取点)的简单抓放程序已经完成。您可以在底部栏中按 run_cb 按钮来运行程序。

使用 Mech-Vision(抓取路径)

要创建使用 Mech-Vision(抓取路径)的程序,执行如下步骤:

  1. 选择使用 Mech-Vision(抓取路径)选项。

    1. 在 UR 示教器上,选择 为机器人编程 > 程序 > 空程序

    2. 选择 结构 > URCap,在 URCap 页签中按 抓放示例 按钮。在左侧面板的 机器人程序 程序树下自动创建出 Pick and Place 程序示例节点。

      ../../../../_images/add_pick_place_node_cb1.png
    3. 选择 命令 页签,并按 使用 Mech-Vision(抓取路径) 按钮。

      ../../../../_images/select_pick_place_option_cb1.png
    4. 当看到程序树的 Pick and Place 节点下自动添加程序模板时,按 下一个 按钮。

      ../../../../_images/select_with_vision_path_option_cb.png
  2. 参考 使用 Mech-Vision(抓取点) 的步骤 2,确认 主机 IP 的值为 Mech-Mind 工控机的 IP 地址。

  3. 参考 使用 Mech-Vision(抓取点) 的步骤 3,设置图像采集点。

  4. 参考 使用 Mech-Vision(抓取点) 的步骤 4,触发 Mech-Vision 工程运行。

  5. 参考 使用 Mech-Vision(抓取点) 的步骤 5,设置接收 Mech-Vision 结果。

    注意

    • 在程序树中选择 Receive Mech-Vision Result 节点后,接受数据类型需为 Planned path。

    • 抓取点索引变量表示在接收的路径点中视觉移动点的索引。例如,路径规划步骤返回三个点,依次为相对移动_1,视觉移动_1和相对移动_2,则抓取点索引为 2。默认情况下,抓取点索引保存在变量“vision_point”中。

  6. 配置运动循环,使机器人按照“路径规划”步骤输出的路径运动,即靠近物体、抓取物体和离开抓取点(不包含放置物体)。关于如何设置 MoveL 和 MoveJ 节点,参考 使用 Mech-Vision(抓取点) 的步骤 6。

    注解

    在实际应用中,运动循环可能包含多个 pick_above MoveJ 节点、一个 pick MoveL 节点和多个 pick_depart MoveJ 节点。

  7. 参考 使用 Mech-Vision(抓取点) 的步骤 7,设置放置作业。

至此,使用 Mech-Vision(抓取路径)的简单抓放程序已经完成。您可以在底部栏中按 run_cb 按钮来运行程序。

使用 Mech-Viz

要创建使用 Mech-Viz 的抓放程序,执行如下步骤:

  1. 选择使用 Mech-Viz 选项。

    1. 在 UR 示教器上,选择 为机器人编程 > 程序 > 空程序

    2. 选择 结构 > URCap,在 URCap 页签中按 抓放示例 按钮。 在左侧面板的 机器人程序 程序树下自动创建出 Pick and Place 程序示例节点。

      ../../../../_images/add_pick_place_node_cb1.png
    3. 选择 命令 页签,并按 使用 Mech-Viz 按钮。

      ../../../../_images/select_pick_place_option_cb1.png
    4. 当看到程序树的 Pick and Place 节点下自动添加程序模板时,按 下一个 按钮。

      ../../../../_images/display_viz_option_cb1.png
  2. Mech-Mind Connect 节点,在右侧 Mech-Mind 连接 面板,确认 主机 IP 的值为 Mech-Mind 工控机的 IP 地址。

    ../../../../_images/verify_host_ip_viz_cb1.png
  3. 参考 使用 Mech-Vision(抓取点) 的步骤 3,设置图像采集点。

    注解

    该点为触发 Mech-Viz 工程的位置。

  4. 触发 Mech-Viz 工程运行。

    1. 在右侧 触发 Mech-Viz 面板中设置参数 发送机器人位姿类型

      ../../../../_images/trigger_viz_cb1.png

    注解

    • 若发送机器人位姿类型为 Current Position,则表示将机器人的当前关节角和法兰位姿传入 Mech-Viz,Mech-Viz 软件中仿真机器人将会从当前机器人关节角位置开始,运动到第一个路径点。若发送机器人位姿类型为 Predefined JPs,则表示将机器人的一个预定义关节角传入 Mech-Viz,Mech-Viz 软件中仿真机器人将会从当前机器人关节变量设定的位置开始,运动到第一个路径点。

    • 如果您需要在 Mech-Viz 工程中使用分支步骤并希望机器人选择分支出口,按 设置分支出口 按钮,并跳到步骤 b 设置 分支出口。

    • 如果您使用了有索引参数的移动类步骤,按 设置索引值 按钮,并跳到步骤 c 设置索引值。

    1. (可选)在程序树中选择 Set Branch Value 节点,在右侧 Set Branch Value 面板中设置参数 分支步骤编号分支出口号,然后按 下一个 按钮。

      ../../../../_images/set_branch_value_cb1.png
    2. (可选)在程序树中选择 Set Index Value 节点, 并在右侧 Set Index Value 面板中设置参数 移动类步骤编号索引值,然后按 下一个 按钮。

      ../../../../_images/set_index_value_cb1.png
  5. 设置如何接收 Mech-Viz 结果。

    在程序树中选择 Receive Mech-Viz Result 节点,并为 位姿标签速度 (%)接受位姿数量状态码、和 抓取点索引 设置变量名,用于存放 Mech-Viz 输出的路径规划结果,然后按 下一个 按钮。

    ../../../../_images/receive_viz_result_cb1.png

    参数

    描述

    位姿

    规划的路径点位姿,格式为XYZ。机器人携带激活的 TCP 可以直接运动至该点。默认情况下,接收的位姿将保存在数组变量“pose[]”中,数组起始索引为 1。

    标签

    检测到物体的标签,标签值为整数。对于非视觉点,标签应为 0。默认情况下,标签保存在数组变量“label[]”中,数组起始索引为1。标签和位姿一一对应。

    速度

    机器人移动到路径点的运动速度,单位为 %。

    接受位姿数量

    接收路径点位姿的总数。

    状态码

    返回的状态码。请参考 状态码列表。21xx 为正常状态码,20xx 为错误码。默认情况下,状态码保存在变量“status_code”中。

    抓取点索引

    在接收的路径点中视觉移动点的索引。例如 Mech-Viz 返回三个点,依次为相对移动_1,视觉移动_1和相对移动_2,则抓取点索引为 2。默认情况下,抓取点索引保存在变量“vision_point”中。

    起始索引值

    位姿和标签的数组变量的起始索引。默认情况下,起始索引值为 1。

  6. 配置运动循环,使机器人按照 Mech-Viz 规划的路径运动,即靠近物体、抓取物体和离开抓取点(不包含放置物体)。关于如何设置 MoveL 和 MoveJ 节点,参考 使用 Mech-Vision(抓取点) 的步骤 6。

    注解

    • 在实际应用中,运动循环可能包含多个 pick_above MoveJ 节点、一个 pick MoveL 节点和多个 pick_depart MoveJ 节点。

    • 如果您在 Receive Mech-Viz Result 节点修改了位姿、标签等参数的默认变量名,您需要相应修改该步骤中的变量名。

  7. 参考 使用 Mech-Vision(抓取点) 的步骤 7,设置放置作业。

至此,使用 Mech-Viz 的简单抓放程序已经完成。您可以在底部栏中按 run_cb 按钮来运行程序。