UR E 系列(Polyscope 5.3 及以上)
本文介绍 UR(Universal Robots) E 系列机器人的标准接口通信配置。
插件安装与配置
本节介绍为 UR E 系列机器人安装与配置 Mech-Mind 3D Vision Interface (URCap 插件)。
安装 URCap 插件
要安装 URCap 插件,执行如下步骤:
-
在Mech-Vision和Mech-Viz软件安装目录下
Communication Component\Robot_Interface\Robot_Plugin\UR_URCAP\Polyscope
文件夹内,将后缀为 .urcap 的文件复制到 U 盘中。 -
将 U 盘插入到 UR 示教器。
-
按示教器右上角的汉堡按钮,并选择 设置。
-
在 设置 界面,选择
。 -
按 + 按钮切换到 U 盘查找 URCap 插件文件。
-
在 选择 URCap 以安装 界面,选中具体 URCap 插件文件,并按 打开 按钮。URCap 插件将会自动安装。
-
按 重启 按钮以使修改生效。
至此,URCap 插件已成功安装到 UR 示教器。
安装完成后,用户还需要设置机器人的 IP 地址(选择 设置 > 系统 > 网络)。注意,机器人的 IP 地址必须与工控机的 IP 地址在同一网段。 |
使用 Mech-Mind 3D Vision Interface
使用前,确保 Mech-Vision 和 Mech-Viz(如需要) 工程已准备好可以运行,并且 Mech-Mind 工控机已经连接到机器人的网络。 |
要使用 Mech-Mind 3D Vision Interface,您需要先完成如下配置。
-
打开Mech-Vision软件。根据出现的界面不同,选择如下相应方法创建方案。
-
若出现欢迎界面,单击新建空白方案,即可新建空白方案。
-
若出现主界面,依次单击菜单栏中
,即可新建空白方案。
-
-
单击 Mech-Vision 工具栏中 机器人通信配置 。
-
在 机器人通信配置 窗口,进行如下配置。
-
单击 选择机器人 下拉框,选择 品牌机器人,然后单击 选择机器人型号,选择具体机器人型号,单击 下一步。
-
在 通信方式 下,接口服务类型 选择 标准接口 ,协议 选择 TCP Server,协议格式 选择 ASCII。
-
在 高级设置 下,单次发送位姿的最大数量 设置为 15。
-
端口号设置为50000(固定值,不可更改)。确保设置的端口号未被其他程序占用。
-
(可选)建议勾选 方案打开时自动打开接口服务。
-
单击 应用。
-

-
在 Mech-Vision 主界面,确认工具栏中的接口服务已开启。
在 Mech-Vision 上启动接口服务后,在 UR 示教器上进行如下操作以连接接口服务。
-
在 UR 示教器上,在顶部栏按 安装设置,然后选择
。URCap 插件的 网络设置 界面将显示。 -
将 Mech-Mind 工控机 IP 地址 和 端口 分别设置为 Mech-Mind 工控机的 IP 地址和端口号(与 Mech-Vision 通信配置中的端口号保持一致),并按 Apply。
-
按 Connection Test 按钮。
-
当连接成功时,返回的状态信息如下所示:
-
当连接失败时,返回的状态信息如下所示:
连接测试仅用作测试目的。一旦建立成功后,连接将自动断开。因此,您可以在 Mech-Vision 日志窗口的 控制台 标签页下看到客户端已连接和客户端已断开日志。
-
使用插件进行自动标定
在标准接口通信配置完成后,用户可连接机器人进行自动标定。自动标定的总体流程如下图所示。

特别注意
在执行标定流程时,当执行到连接机器人,且Mech-Vision软件界面出现等待机器人连接中…按钮时,用户需按照本文以下的步骤在机器人端进行操作,操作完成后,再接着在Mech-Vision软件中执行剩余的步骤。
|
创建标定程序
-
在 UR 示教器顶部栏中,按 新建 按钮,并选择 程序,用于创建一个新程序。
-
在顶部栏中按 程序 按钮,然后依次点击
。在左侧面板的 机器人程序 下,将自动创建出 Calibrate 程序示例节点。创建的程序示例节点仅是模板。您需要进一步配置标定程序,并示教标定起始点。
示教标定起始点
-
点击 Calibrate 节点,在右侧面板的 命令 页签中,请根据实际需求,设置 从 Mech-Vision 获取的位姿类型。
-
点击 MoveJ 节点,在右侧 移动 面板中,设置移动类型(MoveJ、MoveL 或 MoveP),并将 设置 TCP 设置为 忽略激活的 TCP,以确保路点被记录为法兰位姿。
-
手动控制将机器人移动到标定起始点。
标定起始点位置可以直接选用在检查标定板位置和点云质量时机器人所处的位置。
-
返回 UR 示教器,点击 start_pose 节点。在右侧 路点 面板中,按 设置路点 按钮。界面将会跳转至 移动 页签。
-
在 移动 页签中,确认机器人当前的法兰位姿合适,并按 确定 按钮。
运行标定程序
-
在左侧面板中,点击 机器人程序。在右侧面板中,取消勾选 程序永远循环 复选框,以确保该程序仅运行一次。
-
出于安全考虑,在底部栏中将机器人的速度降低到合适的值,例如 10%。
-
在底部栏中按
按钮来运行程序。
-
观察Mech-Vision中标定窗口,在连接机器人区域显示“已连接”状态信息后,且按钮由等待机器人连接中…变为断开机器人连接,单击底部栏中的下一步按钮。
-
请分别参考如下链接,接着执行开始标定中的第四步(设置移动路径)以及后续流程。
如需保存标定程序进行后续使用,在顶部栏选择
。
完成手眼标定后,您可以 创建抓放程序 来控制 UR 机器人执行视觉引导的抓放作业。
创建抓放程序
URCap 插件提供抓放示例节点,通过极少的编程工作就可以创建出抓放程序。
抓放示例程序节点提供三种选项:
-
使用 Mech-Vision(抓取点):适用于仅使用 Mech-Vision 工程(未包含“路径规划”步骤)且机器人不需要 Mech-Viz 规划路径的场景。
-
使用 Mech-Vision(抓取路径):适用于仅使用 Mech-Vision 工程(包含“路径规划”步骤)且机器人不需要 Mech-Viz 规划路径的场景。
-
使用 Mech-Viz:适用于 Mech-Viz 工程与 Mech-Vision 工程一起使用为机器人提供无碰撞的运动路径的场景。
|
使用 Mech-Vision(抓取点)
要创建使用 Mech-Vision(抓取点)的程序,执行如下步骤:
-
选择使用 Mech-Vision(抓取点)选项。
-
在 UR 示教器顶部栏中,按 新建 按钮,并选择 程序,用于创建一个新程序。
-
在顶部栏中,按 程序 按钮,然后依次点击
。在左侧面板的 机器人程序 下,将自动添加 Pick and Place 示例节点。 -
在右侧面板的 命令 页签中,按 使用 Mech-Vision(抓取点) 按钮。程序树中的 Pick and Place 节点下将会自动添加程序模板。
-
-
点击 Mech-Mind Connect 节点,在右侧 Mech-Mind 连接 面板,确认 主机 IP 的值为 Mech-Mind 工控机的 IP 地址。
-
设置图像采集点。
-
手动控制机器人移动到合适的位置。Mech-Vision 将在此处触发拍照。
-
对于 Eye-In-Hand 场景,机器人应置于工件的上方。
-
对于 Eye-To-Hand 场景,机器人应不阻挡相机的视野。
-
-
返回 UR 示教器,在程序树中,点击 MoveJ 节点。在右侧 移动 面板中,设置移动类型(MoveJ、MoveL 或 MoveP),并将 设置 TCP 设置为 使用激活的 TCP。
-
在程序树中,点击 Capture_image 节点。在右侧 路点 面板中,按 设置路点 按钮。界面将会跳转至 移动 页签。
-
在 移动 页签中,确认机器人当前的 TCP 位姿合适,并按 确定 按钮。
-
-
触发 Mech-Vision 工程运行。
-
在程序树中,点击 Trigger Mech-Vision 节点。在右侧 触发 Mech-Vision 面板中,设置 发送机器人位姿类型、 Mech-Vision 工程编号 和 返回的位姿数量 参数,具体解释如下表所示。
参数 描述 发送机器人位姿类型
指定发送给 Mech-Vision 工程的机器人位姿类型。本示例选择Current position参数值。
-
Current position:将机器人当前关节角和法兰位姿传入 Mech-Vision 工程。相机的安装方式为 Eye In Hand,则必须使用该参数。
-
Predefined JPs:将用户预先自定义的关节角传入 Mech-Vision 工程。此关节角数据将发送给 Mech-Vision 工程的“路径规划”步骤作为起始点,即机器人从该起始点向路径规划的第一个路径点进行移动。相机的安装方式为 Eye To Hand,同时项目中存在“路径规划”步骤,且需要进行提前拍照,则使用该参数。
Mech-Vision 工程编号
Mech-Vision 工程编号,可在 Mech-Vision 工程列表窗口中查看,工程名称前的数字表示工程编号。
返回的位姿数量
期望 Mech-Vision 输出的位姿数量。
-
如果设为 0,Mech-Vision 将返回识别的所有位姿。
-
如果设为 1 到 20 之间的整数,若识别的位姿总数大于设定的期望值,Mech-Vision 将返回设定数量的位姿;若识别的位姿总数小于设定的期望值,Mech-Vision 将返回识别的所有位姿。
-
-
(可选)按 设置配方编号 按钮,程序树中的 Trigger Mech-Vision 节点下将自动添加 Set Recipe ID 节点。
点击 Set Recipe ID 节点,在右侧 切换配方 面板中,设置 工程参数配方编号 参数值,Mech-Vision 工程编号 参数值需要与之前节点中设置的值一致。
-
-
设置如何接收 Mech-Vision 结果。
在程序树中,点击 Receive Mech-Vision Result 节点,设置 接收数据类型、位姿数据类型 ,然后设置 存储接收数据的变量 名称。
由于本示例的功能为从 Mech-Vision 获取抓取点,因此,此处 接收数据类型 只能设置为 Basic 或 Custom,不能设置为 Planned path。 -
当 接收数据类型 为 Basic 时,则 位姿数据类型 只能设置为 Pose,表示接收的位姿类型为工具位姿。其他参数的解释如下表所示。
参数 描述 位姿
此处位姿表示机器人的工具位姿。Mech-Vision 输出的物体位姿(即“输出”步骤的poses端口数据)将会由视觉系统自动转换为对应机器人的工具位姿。机器人携带激活的 TCP 可以直接运动至此处获取的位姿。默认情况下,位姿将保存在数组变量pose[]中,数组起始索引为1。
标签
位姿对应的标签,标签值为整数。默认情况下,标签保存在数组变量label[]中,数组起始索引为1。
接收位姿数量
从 Mech-Vision 接收的位姿数量。默认情况下,位姿数量保存在变量total_recv中。
状态码
Mech-Vision 返回的状态码。11xx 为正常状态码,10xx 为错误码,详细信息可参考标准接口状态码及错误排查。默认情况下,状态码保存在变量status_code中。
是否已获取所有路点
表明是否从 Mech-Vision 已获取所有识别的位姿,取值为0或1。0表示未获取所有位姿。1表示已获取所有位姿。默认情况下,是否已获取所有路点保存在变量last_data中。
-
当 接收数据类型 为 Custom 时,则 位姿数据类型 只能设置为 Pose,表示接收的位姿类型为工具位姿。其他参数的解释如下表所示。另外,Mech-Vision “输出”步骤的端口类型参数需要设置为“自定义”,且必须存在poses端口。
参数 描述 位姿
此处位姿表示机器人的工具位姿。 Mech-Vision 输出的物体位姿(即“输出”步骤的poses端口数据)将会由视觉系统自动转换为对应机器人的工具位姿。机器人携带激活的 TCP 可以直接运动至此处获取的位姿。默认情况下,位姿将保存在数组变量pose[]中,数组起始索引为1。
标签
位姿对应的标签,标签值为整数。默认情况下,标签保存在数组变量label[]中,数组起始索引为1。
自定义数据
位姿对应的自定义数据。默认情况下,自定义数据保存在数组变量custom_data[]中,数组起始索引为1。
接收位姿数量
从 Mech-Vision 接收的位姿数量。默认情况下,位姿数量保存在变量total_recv中。
状态码
Mech-Vision 返回的状态码。11xx 为正常状态码,10xx 为错误码,详细信息可参考标准接口状态码及错误排查。默认情况下,状态码保存在变量status_code中。
是否已获取所有路点
表明是否从 Mech-Vision 已获取所有识别的位姿,取值为0或1。0表示未获取所有位姿。1表示已获取所有位姿。默认情况下,是否已获取所有路点保存在变量last_data中。
-
-
设置获取第一个抓取点。
点击 pick_index:=… 节点,在右侧面板中,将 表达式 值设为 1。
设置 pick_index 是为后续的 pick 变量赋值。数值 1 表示将接收到的第一个抓取点位姿赋值给 pick 变量,数值 2 表示将接收到的第二个抓取点位姿赋值给 pick 变量,依此类推。此设置用于将示例程序扩展为通过循环实现一拍多抓的功能。 -
设置抓取作业。
一次抓取作业包含了三个运动:Pick_above(直线运动到抓取接近点)、Pick(运动到抓取点以抓取物体)和Pick_depart(抓取物体后直线运动离开)。
-
点击 pick 节点,在右侧面板中,分别为 抓取接近点 和 抓取离开点 设置 距离 和 参考方向。
-
点击 pick 节点下的 MoveJ 节点,在右侧 移动 面板中,保持默认配置。
-
点击 pick_above 节点,在右侧 路点 面板中,保持默认配置。
-
点击 MoveL 节点,在右侧 移动 面板中,保持默认配置。
-
点击 pick 节点,在右侧 路点 面板中,保持默认配置。
-
根据实际情况,在 pick 节点后添加夹具控制逻辑。
-
点击 MoveJ 节点,在右侧 移动 面板中,保持默认配置。
-
点击 pick_depart 节点,在右侧 路点 面板中,保持默认配置。
-
-
设置放置作业。
-
点击 place 节点下的 MoveJ 节点,在右侧 移动 面板中,保持默认配置。
-
手动控制机器人移动到放置被抓物体的正确位置。
-
返回 UR 示教器,点击 MoveJ 节点下的 place 节点,并在右侧 路点 面板中,按 设置路点 按钮。界面将会跳转至 移动 页签。
-
在 移动 页签中,确认机器人当前的法兰位姿合适,并按 确定 按钮。
-
设置放置位姿后,根据实际情况,在 place 节点后添加夹具控制逻辑。
-
至此,使用 Mech-Vision(抓取点)的简单抓放程序已经完成。您可以在底部栏中按 按钮来运行程序。
使用 Mech-Vision(抓取路径)
要创建使用 Mech-Vision(抓取路径)的程序,执行如下步骤:
-
选择使用 Mech-Vision(抓取路径)选项。
-
在 UR 示教器顶部栏中,按 新建 按钮,并选择 程序,用于创建一个新程序。
-
在顶部栏中,按 程序 按钮,然后依次点击
。在左侧面板的 机器人程序 下,将自动添加 Pick and Place 示例节点。 -
在右侧面板的 命令 页签中,按 使用 Mech-Vision(抓取路径) 按钮。程序树中的 Pick and Place 节点下将会自动添加程序模板。
-
-
参考 使用 Mech-Vision(抓取点) 的步骤 2,确认 主机 IP 的值为 Mech-Mind 工控机的 IP 地址。
-
参考 使用 Mech-Vision(抓取点) 的步骤 3,设置图像采集点。
-
参考 使用 Mech-Vision(抓取点) 的步骤 4,触发 Mech-Vision 工程运行。
-
设置如何接收 Mech-Vision 结果。
点击 Receive Mech-Vision Result 节点,设置 接收数据类型、位姿数据类型 ,然后设置 存储接收数据的变量 名称。
由于本示例的功能为从 Mech-Vision 获取规划路径,因此,此处 接收数据类型 只能设置为 Planned path。 -
当 接收数据类型 为 Planned path 时,若 位姿数据类型 为 Pose,表示接收的位姿类型为工具位姿。其他参数的解释如下表所示。
参数 描述 位姿
此处位姿表示机器人的工具位姿。默认情况下,位姿将保存在数组变量pose[]中,数组起始索引为1。
标签
位姿对应的标签,其值为整数。默认情况下,标签保存在数组变量label[]中,数组起始索引为1。
工具
位姿对应的末端工具编号,其值为整数。默认情况下,末端工具编号保存在数组变量tool_id[]中,数组起始索引为1。
接收位姿数量
从 Mech-Vision 接收的位姿数量。默认情况下,位姿数量保存在变量total_recv中。
状态码
Mech-Vision 返回的状态码。11xx 为正常状态码,10xx 为错误码,详细信息可参考标准接口状态码及错误排查。默认情况下,状态码保存在变量status_code中。
抓取点索引
表明路径规划工具中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。默认情况下,抓取点索引保存在变量vision_point中。
例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。
是否已获取所有路点
表明是否从 Mech-Vision 已获取所有规划路径的位姿,取值为0或1。0表示未获取所有位姿。1表示已获取所有位姿。默认情况下,是否已获取所有路点保存在变量last_data中。
-
当 接收数据类型 为 Planned path 时,若 位姿数据类型 为 Jps,表示接收的位姿类型为关节角。标签、工具等参数的解释如上表所示。默认情况下,关节角数据保存在jps[]数组变量中。请勿直接使用jps[]数组变量,用户必须在提取该数组变量后,才可以使用其中的关节角。对于本示例,用户可按以下操作提取关节角。
-
点击 Receive Mech-Vision Result 节点,位姿数据类型 选择 Jps。
-
点击 target:=pose[j] 节点,在最左侧面板中,依次点击
,将出现 Extract Jps 节点。 -
点击 Extract Jps 节点,勾选 变量输入,提取的索引编号 选择 j,最后在 保存至变量名称 中输入 target。
-
点击 target:=pose[j] 节点,点击下方工具栏中的 删除,将删除该节点。
-
-
-
配置运动循环,使机器人按照“路径规划”步骤输出的路径运动,即靠近物体、抓取物体和离开抓取点(不包含放置物体)。关于如何设置 MoveL 和 MoveJ 节点,参考 使用 Mech-Vision(抓取点) 的步骤 7。
-
在实际应用中,运动循环可能包含多个 pick_above MoveJ 节点、一个 pick MoveL 节点和多个 pick_depart MoveJ 节点。
-
如果您在 Receive Mech-Vision Result 节点修改了位姿、标签等参数的默认变量名,您需要相应修改该步骤中的变量名。
-
-
参考 使用 Mech-Vision(抓取点) 的步骤 8,设置放置作业。
至此,使用 Mech-Vision(抓取路径)的简单抓放程序已经完成。您可以在底部栏中按 按钮来运行程序。
使用 Mech-Viz
要创建使用 Mech-Viz 的抓放程序,执行如下步骤:
-
选择使用 Mech-Viz 选项。
-
在 UR 示教器顶部栏中,按 新建 按钮,并选择 程序,用于创建一个新程序。
-
在顶部栏中,按 程序 按钮,然后依次点击
。在左侧面板的 机器人程序 下,将自动添加 Pick and Place 示例节点。 -
在右侧面板的 命令 页签中,按 使用 Mech-Viz 按钮。程序树中的 Pick and Place 节点下将会自动添加程序模板。
-
-
点击 Mech-Mind Connect 节点,在右侧 Mech-Mind 连接 面板,确认 主机 IP 的值为 Mech-Mind 工控机的 IP 地址。
-
参考 使用 Mech-Vision(抓取点) 的步骤 3,设置图像采集点。
-
触发 Mech-Viz 工程运行。
-
点击 Trigger Mech-Viz 节点,在右侧 触发 Mech-Viz 面板中,设置 发送机器人位姿类型 参数,具体参数值解释如下表。
参数 描述 发送机器人位姿类型
指定发送给 Mech-Viz 工程的机器人位姿类型。
-
Current Position:将机器人当前关节角和法兰位姿传入 Mech-Viz 工程。相机的安装方式为 Eye In Hand,则必须使用该参数。
-
Predefined JPs:将用户预先自定义的关节角传入 Mech-Viz 工程。机器人处于拍照区域外时,便可提前触发 Mech-Viz 工程规划下一轮路径。相机的安装方式为 Eye To Hand,且需要进行提前拍照,则使用该参数。
-
若 Mech-Viz 工程中存在“消息分支”步骤,按 设置分支出口 按钮,并跳到步骤 b 设置分支出口。
-
若 Mech-Viz 工程中存在索引类步骤,按 设置索引值 按钮,并跳到步骤 c 设置索引值。
-
-
(可选)点击 Set Branch Value 节点,在右侧面板中,设置 分支步骤编号 和 分支出口号。
-
(可选)在程序树中选择 Set Index Value 节点,在右侧面板中,设置 移动类步骤编号 和 索引值。
-
-
设置如何接收 Mech-Viz 结果。
点击 Receive Mech-Viz Result 节点,设置用于存放 Mech-Viz 结果的变量名。
-
若 位姿数据类型 为 Pose,表示接收的位姿类型为工具位姿。其他参数的解释如下表所示。
参数 描述 位姿
此处位姿表示机器人的工具位姿。默认情况下,位姿将保存在数组变量pose[]中,数组起始索引为1。
标签
位姿对应的标签,其值为整数。默认情况下,标签保存在数组变量label[]中,数组起始索引为1。
工具
位姿对应的末端工具编号,其值为整数。默认情况下,末端工具编号保存在数组变量tool_id[]中,数组起始索引为1。
接收位姿数量
从 Mech-Viz 接收的位姿数量。默认情况下,位姿数量保存在变量total_recv中。
状态码
Mech-Vision 返回的状态码。21xx 为正常状态码,20xx 为错误码,详细信息可参考标准接口状态码及错误排查。默认情况下,状态码保存在变量status_code中。
抓取点索引
表明工程中“视觉移动”步骤对应的路径点(视觉移动路径点)在路径中的位置。如果路径中无视觉移动路径点,则该参数值为0。默认情况下,抓取点索引保存在变量vision_point中。
例如,如果规划路径由以下路径点组成:“定点移动_1”,“定点移动_2”,“视觉移动”,“定点移动_3”,则视觉移动路径点的位置为3。
是否已获取所有路点
表明是否从 Mech-Viz 已获取所有规划路径的位姿,取值为0或1。0表示未获取所有位姿。1表示已获取所有位姿。默认情况下,是否已获取所有路点保存在变量last_data中。
-
若 位姿数据类型 为 Jps,表示接收的位姿类型为关节角。标签、工具等参数的解释如上表所示。默认情况下,关节角数据保存在jps[]数组变量中。请勿直接使用jps[]数组变量,用户必须在提取该数组变量后,才可以使用其中的关节角。对于本示例,用户可按以下操作提取关节角。
-
点击 Receive Mech-Viz Result 节点,位姿数据类型 选择 Jps。
-
点击 target:=pose[j] 节点,在最左侧面板中,依次点击
,将出现 Extract Jps 节点。 -
点击 Extract Jps 节点,勾选 变量输入,提取的索引编号 选择 j,最后在 保存至变量名称 中输入 target。
-
点击 target:=pose[j] 节点,点击下方工具栏中的 删除,将删除该节点。
-
-
-
配置运动循环,使机器人按照 Mech-Viz 规划的路径运动,即靠近物体、抓取物体和离开抓取点(不包含放置物体)。关于如何设置 MoveL 和 MoveJ 节点,参考 使用 Mech-Vision(抓取点) 的步骤 7。
-
在实际应用中,运动循环可能包含多个 pick_above MoveJ 节点、一个 pick MoveL 节点和多个 pick_depart MoveJ 节点。
-
如果您在 Receive Mech-Viz Result 节点修改了位姿、标签等参数的默认变量名,您需要相应修改该步骤中的变量名。
-
-
参考 使用 Mech-Vision(抓取点) 的步骤 8,设置放置作业。
至此,使用 Mech-Viz 的简单抓放程序已经完成。您可以在底部栏中按 按钮来运行程序。