UR E 系列机器人的集成

本文介绍 UR(Universal Robots) E 系列机器人的集成。

插件安装与配置

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

前提条件

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

要查看 Polyscope 的版本,按示教器右上角的汉堡按钮,并选择 关于

../../../../_images/settings_e.png
../../../../_images/about_e.png

安装 URCap 插件

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

  1. 在 Mech-Center 安装目录的 \Robot_Interface\Robot_Plugin\URCAP\ 文件夹中找到 URCap 插件。

    ../../../../_images/urcap_plugin1.png
  2. 将 URCap 插件拷贝到 U 盘中,然后将 U 盘插入到 UR 示教器.

  3. 按示教器右上角的汉堡按钮,并选择 设置

    ../../../../_images/settings_e.png
  4. 设置 屏幕,选择 系统 > URCap.

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

  6. 选择 URCap 以安装 屏幕,选择 URCap 插件,并按 打开 按钮。URCap 插件将会自动安装。

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

    ../../../../_images/restart_urcaps_e.png

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

使用 Mech-Mind 3D Vision Interface

注解

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

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

在 Mech-Center 上设置和启动接口服务

  1. 打开 Mech-Center,在工具栏上单击 部署设置

  2. 部署设置 窗口,在左侧面板选择 Mech-Interface

  3. 勾选 Use Mech-Interface 复选框,并为 接口服务类型 选择 标准接口

  4. 接口选项 设置为 TCP ServerASCII,为 已知机器人 选择 UR 机器人型号,指定 主机地址 参数,并单击 保存

    注意

    端口号需要设置为 50000。

  5. 在工具栏上单击 启动接口服务

至此,TCP 服务器接口应当成功启动,如下图所示。

../../../../_images/start_tcp_server1.png

与 Mech-Center 连接

在 Mech-Center 上启动 TCP 服务器接口后,你可以在 UR 示教器上连接该接口。

  1. 在 UR 示教器上,在顶部栏按 安装设置,然后选择 URCap > 网络设置。URCap 插件的 网络设置 屏幕将显示。

    ../../../../_images/network_settings_e.png
  2. MechMind IPC IP AddressPort No. 分别设置为 Mech-Mind 工控机的 IP 地址和端口号,并按 Apply。此处和 Mech-Center 中的端口号都必须为 50000。

  3. Connection Test 按钮。

  • 当与 Mech-Center 的连接建立成功时,返回的状态信息如下所示:

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

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

注解

连接测试仅用作测试目的。一旦建立成功后,连接将自动断开。因此,你可以在 Mech-Center 的 日志 面板看到客户端已连接和客户端已断开日志。

使用插件进行手眼标定

本节介绍使用 URCap 插件进行相机外参标定的过程。

标定过程包含四个步骤:

  1. 创建标定程序。

  2. 示教标定起始点。

  3. 运行标定程序。

  4. 在 Mech-Vision 中执行标定。

前提条件

在开始标定前,请确保:

  • 你已经将成功将 URCap 插件连接到 Mech-Center。

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

创建标定程序

  1. 在 UR 示教器顶部栏中,按 新建 按钮,并选择 程序,用于创建一个新程序。

  2. 在顶部栏中按 程序 按钮,然后选择 URCaps > 相机标定。在左侧面板的 机器人程序 程序树下自动创建出 Calibrate 程序示例节点。

    ../../../../_images/add_calibrate_node_e.png

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

示教标定起始点

  1. 在程序树下选择 Calibrate 节点,在右侧面板的 命令 页签中,根据实际需要将 Receive Point Type from Mech-Vision 参数设置为“Joint Angle”或“Flange Pose”。

    ../../../../_images/add_calibrate_node_e.png
  2. 在程序树下选择 MOVEJ 节点,在右侧 移动 面板,设置运动类型为“MoveJ””、“MoveL”或“MoveP”,并将 设置 TCP 设置为 忽略激活的 TCP 以确保路点被记录为法兰位姿。

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

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

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

    ../../../../_images/confirm_waypoint_e.png

运行标定程序

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

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

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

当标定程序成功运行时,Mech-Center 的 日志 面板将显示如下图所示的日志:

../../../../_images/run_program_log1.png

在 Mech-Vision 中执行标定

在 URCap 插件已连接至 Mech-Center 并且标定程序已成功运行之后,你可以在 Mech-Vision 中执行手眼标定。

请参照 标定步骤 章节执行自动手眼标定。

如需保存标定程序进行后续使用,在顶部栏选择 保存 > 将程序另存为…

../../../../_images/save_program_e.png

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

创建抓放程序

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

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

  • 配合 Mech-Vision 抓放:适用于仅使用 Mech-Vision 工程且机器人不需要Mech-Viz 规划路径的场景。

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

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

注解

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

创建配合 Mech-Vision 的抓放程序

要创建配合 Mech-Vision 的抓放程序,执行如下步骤:

  1. 启用配合 Mech-Vision 抓放选项。

    1. 在 UR 示教器顶部栏中,按 新建 按钮,并选择 程序,用于创建一个新程序。

    2. 在顶部栏中,按 程序 按钮,然后选择 URCaps > 抓放示例。在左侧面板的 机器人程序 程序树中将自动添加 Pick and Place 示例节点。

      ../../../../_images/add_pick_place_node_e.png
    3. 在右侧面板的 命令 页签中, 按 With Mech-Vision 按钮。程序树中的 Pick and Place 节点下将会自动添加程序模板。

      ../../../../_images/select_with_vision_option_e.png
  2. 选择程序树中的 Mech-Mind Connect 节点,在右侧 相机连接 面板, 确认 Host IP 的值为 Mech-Mind 工控机的 IP 地址。

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

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

    注解

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

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

    1. 返回 UR 示教器,在程序树中选择 MOVEJ 节点,在右侧 移动 面板中设置运动类型为“MoveJ””、“MoveL”或“MoveP”, 并将 设置 TCP 设置为 使用激活的 TCP

      ../../../../_images/set_movej_capture_e.png
    2. 在程序树中选择 Capture_image 节点,并在右侧 路点 面板中按 设置路点 按钮。界面将会跳转至 移动 页签。

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

      ../../../../_images/confirm_waypoint_e.png
    4. 图像采集点设置后,执行下一步。

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

    1. 在程序树中选择 Trigger Mech-Vision 节点,并在右侧 触发 Mech-Vision 面板中设置参数 Send Current Robot Position to Mech-VisionMech-Vision Project IDRequest Vision Point Number

      ../../../../_images/trigger_vision_e.png

    参数

    描述

    Mech-Vision Project ID

    要触发的 Mech-Vision 工程的索引。你可以在 Mech-Center 的 部署设置 > Mech-Vision 中查看工程 ID。

    Request Vision Point Number

    期望 Mech-Vision 输出的视觉点数量。

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

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

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

    2. 在程序树中选择 Set Recipe ID 节点,并在右侧 Set Recipe ID 面板中设置参数 Mech-Vision Recipe ID

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

    在程序树中选择 Receive Mech-Vision Result 节点,并为 PoseLabelTotal Received、和 Status Code 设置变量名,用于存放视觉结果。

    ../../../../_images/receive_vision_result_e.png

    参数

    描述

    Pose

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

    Label

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

    Total Received

    接收视觉点的总数。

    Status Code

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

    Starting at ID

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

    请注意如果你修改了位姿、标签等参数的默认变量名,那么下方的 pick 和 place 节点将不工作。你需要自行编写抓取和放置的动作。使用默认变量“pose[]”的示例如下图所示:

    ../../../../_images/default_pick_example1.png
  6. 设置抓取作业。

    注解

    • 如果你在 Receive Mech-Vision Result 节点修改了位姿、标签等参数的默认变量名,pick 节点将不工作。你需要删除 pick 节点,并使用“pose[]”编写抓取动作。

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

    1. 在右侧 Mech-Vision Pick 面板,分别为 Pick_above 和 Pick_depart 设置参数 DistCoordinates

      ../../../../_images/set_distance_coordinates_e.png
    2. 在程序树中选择 pick 节点下的 MoveJ 节点,并在右侧 移动 面板,保持默认配置。

    3. 在程序树中选择 pick_above 节点,并在右侧 路点 面板,保持默认配置。

    4. 在程序树中选择 MoveL 节点,并在右侧 移动 面板,保持默认配置。

    5. 在程序树中选择 pick 节点,并在右侧 路点 面板,保持默认配置。

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

    7. 在程序树中选择第二个 MoveJ 节点,并在右侧 移动 面板,保持默认配置。

    8. 在程序树中选择 pick_depart 节点,并在右侧 路点 面板,保持默认配置。

  7. 设置放置作业。

    1. 在程序树中选择 place 节点下的 MoveJ 节点,并在右侧 移动 面板,保持默认配置。

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

    3. 返回 UR 示教器,在程序树中选择 MoveJ 节点下的 place 节点,并在右侧 路点 面板中按 设置路点 按钮。界面将会跳转至 移动 页签。

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

      ../../../../_images/confirm_waypoint_e.png
    5. 设置放置位姿后,根据实际情况,在 place 节点后添加夹具控制逻辑。

至此,与 Mech-Vision 工程配合使用的简单抓放程序已经完成。你可以在底部栏中按 run 按钮来运行程序。

创建配合 Mech-Viz 的抓放程序

配合 Mech-Viz 使用该插件前,在 Mech-Viz 中勾选 其他 面板中的 发送工具位姿 复选框。

../../../../_images/sent_tcp_pose_ur1.png

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

  1. 启用配合 Mech-Viz 抓放选项。

    1. 在 UR 示教器顶部栏中,按 新建 按钮,并选择 程序,用于创建一个新程序。

    2. 在顶部栏中,按 程序 按钮,然后选择 URCaps > 抓放示例。在左侧面板的 机器人程序**程序树中将自动添加 **Pick and Place 示例节点。

      ../../../../_images/add_pick_place_node_e.png
    3. 在右侧面板的 命令 页签中, 按 With Mech-Viz 按钮。程序树中的 Pick and Place 节点下将会自动添加程序模板。

      ../../../../_images/select_with_viz_option_e.png
  2. 选择程序树中的 Mech-Mind Connect 节点,在右侧 相机连接 面板, 确认 Host IP 的值为 Mech-Mind 工控机的 IP 地址。

    ../../../../_images/verify_host_ip_viz_e.png
  3. 参考 创建配合 Mech-Vision 的抓放程序 的步骤 3 设置图像采集点。

    注解

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

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

    1. 在程序树中选择 Trigger Mech-Viz 节点,并在右侧 触发 Mech-Viz 面板中设置参数 Send Current Robot Position to Mech-Vision 为“Joint Angle”或“Dedicated Point”。

      ../../../../_images/trigger_viz_e.png

    注解

    • 如果你需要 Mech-Viz 在机器人移动到起始位置前规划路径,将参数 Send Current Robot Position to Mech-Viz 设置为“Dedicated Point”,并指定一个特定的关节角位置。

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

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

    1. (可选)在程序树中选择 Set Branch Value 节点,并在右侧 Set Branch Value 面板中设置参数 Branch Task IDBranch Out Port

      ../../../../_images/set_brach_value_e.png
    2. (可选)在程序树中选择 Set Index Value 节点, 并在右侧 Set Index Value 面板中设置参数 Index Task IDBranch Out Port

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

    在程序树中选择 Receive Mech-Viz Result 节点,并为 PoseLabelSpeed (%)Total ReceivedStatus Code、和 Vision Point Index 设置变量名,用于存放规划后的视觉结果。

    ../../../../_images/receive_viz_result_e.png

    参数

    描述

    Pose

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

    Label

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

    Speed

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

    Total Received

    接收视觉点的总数。

    Status Code

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

    Vision Point Index

    在接收的视觉点中视觉移动点的索引。例如 Mech-Viz 返回三个点,依次为relative_move_1,visual_move_1和relative_move_2,则视觉点索引为 2。默认情况下,视觉点索引保存在变量“vision_point”中。

    Starting at ID

    位姿和标签的数组变量的起始索引。默认情况下,索引的起始值为 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 按钮来运行程序。