优傲机器人可通过RoboDK采用两种方式编程:URP文件与脚本文件。
1.图形用户界面(URP文件):URP程序通过机器人示教器的触摸屏创建。一个URP程序可包含一个或多个SCRIPT文件作为子程序。URP程序在执行前会在机器人控制器后台自动转换为SCRIPT程序。
2.脚本文件:脚本程序使用URScript编程语言。与其他编程语言类似,URScript支持变量、数据类型、流程控制语句及函数等。此外,URScript还内置了用于控制机器人I/O和运动的专用变量与函数。
使用RoboDK,你可以生成可由UR机器人执行的SCRIPT和URP文件。此外,如果机器人与计算机相连,还可以通过RoboDK远程运行程序。
RoboDK亦支持将SCRIPT文件导入模拟器,便于对脚本程序进行仿真、修改后重新导出。
UR机器人软件界面称为PolyScope(如下图所示)。

机器人的IP地址需要直接从RoboDK模拟器执行程序。也可以通过FTP传输程序文件。
机器人的IP地址可以在UR示教器主屏幕的About菜单获取。

机器人必须通过以太网连接(直接连接或通过网络)与计算机相连。Ping测试可用于检测网络链路是否已正确建立。
机器人驱动程序提供了离线编程(即先生成程序,然后传输到机器人并执行)的替代方案。你可以直接在机器人上运行RoboDK的仿真(在线编程)。更多信息请参阅机器人驱动器章节。
连接到机器人操作步骤:
1.在RoboDK中右击机器人
2.选择:
3.输入机器人的IP地址
4.选择:连接。
如果连接成功,会显示"Ready"的绿框。
Important:如果你使用的是URe机器人系列(UR3e、UR5e或UR10e),则需要额外开启URe远程控制选项。
Note:如果连接失败,请确保在计算机和机器人之间正确建立了网络连接。确保计算机IP与机器人位于同一网络。在Windows系统中,你可能需要管理员权限才能这样做。更多信息请参考故障检测章节。
Note:为了更好地排除故障,建议关闭Windows防火墙。
在连接机器人窗口选择:获取位置、关节运动,即可移动机器人。
Tip:如果机器人没有反应,双击:断开,可强制停止驱动器进程。然后,选择:连接,即可重启连接。

从电脑到机器人运行程序有两种不同的方法:
1.通过RoboDK逐步运行并实时反馈(在线编程):
将机器人作为服务器,模拟器中的每条指令会逐步发送至机器人执行。该方法适用于调试场景。
a.右键点击程序(本例中为Print3D)
b.选择:在机器人上运行
c.双击程序启动(或右键点击选择:运行)
勾选此选项后,每次双击程序(或右键选择运行)时,RoboDK将自动连接真实机器人。
这些操作也可从RoboDK API中获得,它可以将机器人编程与其他应用程序整合在一起。API可用Python和C#等程序语言编写。

2.发送程序至机器人(机器人离线编程):
此方法会生成完整程序,传输至机器人并直接启动执行。
a.右键点击程序(本例中为Print3D)
b.选择:发送程序到机器人(Ctrl+F6)。

如果你使用的是URe机器人(UR3e、UR5e或UR10e),则应启用UR机器人控制器上的远程控制选项。
请按照以下步骤启用URe的远程控制功能:
1.从右上角按钮选择"设置"菜单
2.选择系统-远程控制
3.选择启用
4.将操作模式更改为远程控制
Note:第一代UR机器人(非URe),如UR3、UR5和UR10,默认情况下已启用远程控制选项。



RoboDK仿真准备就绪后,你就可以生成SCRIPT和/或URP程序。这两个文件可由机器人控制器执行。请按照以下步骤,从机器人仿真中生成SCRIPT和URP程序:
1.右键单击程序(本例中为Print3D)
2.选择生成机器人程序F6
程序将在文本编辑器中显示(可在菜单:工具➔选项➔程序中更换该行为)。
Tip:使用名为优傲( Universal Robots URP)的后处理器生成URP文件,可在机器人控制器上轻松修改。右击程序,选择"选择后处理器",即可更改后处理器。
Tip:可以选择不同的后处理器或自定义后处理器,以定义程序的生成方式(例如,支持夹爪或外部传感器)。
Note:默认的后处理器(称为Universal Robots)会生成一个SCRIPT程序和一个以脚本文件形式执行程序的URP程序。此后置处理器经过优化,可以很好地处理大型程序(如果选择Universal Robots URP后置处理器,则不会出现这种情况)。

可以通过SFTP传输或USB驱动器传输SCRIPT和URP文件。
Note:URP程序可直接在机器人上执行,但SCRIPT程序必须从另一个URP程序执行。
以下步骤概述了在优傲(UniversalRobots)机器人上加载URP文件的步骤。
1.右击程序选择:选择后处理程序
2.选择 Universal Robots URP。
前2个步骤是可选的,因为默认职位也会生成URP文件,不过,它可以让你生成用户可读的URP程序,而不是执行脚本文件的URP程序。
3.右击程序,选择生成机器人程序(F6)
4.将生成的URP文件保存到USB存储盘中。
5.将USB存储盘连接到机器人示教器(UR的Polyscope)
6.在机器人示教器上选择"运行"选项卡
7.选择"加载程序",加载RoboDK生成的程序
8.选择"程序"选项卡,然后选择"播放"按钮启动程序
Note:你可能需要切换到手动模式(右上角显示手形的按钮必须可见)。
Note:你可能需要激活机器人(左下方的指示灯应为绿色,而非红色)。
9.选择播放按钮启动程序。




以下步骤和图片概括了在机器人上执行SCRIPT程序的步骤。运行URP程序文件不需要这些步骤:
1.在示教器主屏幕上选择机器人程序
2.选择Empty Program
3.选择选项卡:Structure
4.选择选项卡:Advanced
5.选择:Script Code
6.选择File(如图所示)
7.选择RoboDK生成的脚本文件
8.选择播放图标运行程序
9.选择文件➔Save
10.最后,就可以执行程序了




从RoboDK生成的SCRIPT程序(如按F6键)可通过USB盘传输到机器人,如果机器人和计算机连接,也可通过FTP传输。
建议将FileZilla客户端安装在默认路径下或直接安装在RoboDK安装文件夹内,以便RoboDK自动检测到它:
C:\RoboDK\FileZillaFTP客户端
通过FTP传输文件:
1.右键点击机器人
2.选择:连接到机器人...
3.下拉菜单选择:浏览,with FileZilla…。
4.选择:文件➔网站管理器...
5.在预定义站点中选择:Universal Robots sample。
6.选择:Duplicate。这会创建Copy of Universal Robots sample,一个副本。
7.输入机器人的IP地址(本例中为192.168.1.66)。
8.选择:Connect。
9.将之前生成的SCRIPT文件传输到机器人。
SCRIPT程序通常存储在机器人控制器的/Programs/文件夹中。
Note:通信端口可能需要改为22,UR控制器可能只接受SFTP连接。

RoboDK库中提供专用宏文件,可实时监控UR机器人状态,并将真实机器人的位姿同步至模拟环境。
1.选择:文件➔打开
2.从以下位置加载宏UR_ActivateMonitoring.py:C:/RoboDK/Library/Macros/。我们将在站内添加一个新的Python物件。
3.确保在机器人连接参数中正确提供了机器人的IP地址。
4.双击宏即可开始监控。
模拟器将更新机器人的位置,并在真实机器人移动时创建目标。此外,还可以监控机器人的速度、加速度和电机电流。
RoboDK支持为优傲机器人生成可操作RobotiQ夹爪的程序。既可通过离线编程生成程序,也可通过RoboDK的UR机器人驱动来操控该夹爪。
借助RoboDK离线生成的程序,你可直接从UR控制器端操作RobotiQ夹爪。
启用RobotiQ夹爪支持需按以下步骤选择专用后处理器:
1.右键单击程序或机器人
2.选择:选择后处理程序
3.指定"Universal_Robots_RobotiQ"后处理器
Tip:程序关联的后处理器变更将作用于所有使用同款机器人的程序
配置完成后,我们可以生成夹爪控制指令,例如:rq_move_and_wait(255)完全打开夹爪,或rq_move_and_wait(0)完全关闭夹爪。

在RoboDK中完成程序准备后,可通过以下两种方式在机器人上运行程序:
此操作方式无需使用驱动程序。
Tip:进一步了解如何在程序部分生成程序。
你可以使用驱动器(在机器人上运行选项)直接从RoboDK操作RobotiQ夹爪。通过用于UR和RobotiQ的RoboDK驱动程序,你可以从RoboDK中逐步运行程序,并随时从RoboDK中查看正在运行的指针。
确保可连接至机器人(可能需要Windows管理员权限),以允许此通信(如果禁用Windows防火墙,可能有助于排除是否与防火墙有关的问题)。必要时需添加Windows防火墙规则(或临时关闭防火墙排查问题)。
Note:选项"生成程序(F6)"和"发送程序到机器人"仍可正常工作,无需设置驱动器(Windows防火墙、杀毒软件等)。
你应按照以下步骤,为直接从RoboDK移动RobotiQ夹爪添加支持:
1.下载脚本文件:
https://robodk.com/files/upload/progrobodk-rq.zip
Note:对于不支持通过工具进行通信的旧版控制器,应使用此版本:
https://robodk.com/files/upload/progrobodk-rq-no-tool-com.zip。
2.在此处解压缩progrobodk.script文件:
C:/RoboDK/bin/progrobodk.script
3.确保重新启动正在运行的驱动器(双击断开连接,然后,连接)。
4.菜单栏选中:工具➔选项➔驱动选项卡。
5.取消选中该选项:当连接到机器人时,在RoboDK中显示机器人反馈(仅兼容机器人)。
Tip:UR日志可以帮助我们了解机器人方面是否有任何故障。
要使用驱动器正确操作夹爪(例如,打开/关闭夹爪),应通过传递0-255范围内的参数,使用程序调用rq_move_and_wait。
例如
rq_move_and_wait( 0 ) # Fully close the gripper
rq_move_and_wait( 255 ) # Fully open the gripper
作为参数传递的数字是驱动器所需要的。
UR机器人支持圆弧(Circular)和直线(Linear)运动,但若通过驱动程序("在机器人上运行"选项)操作,可能会在示教器上触发以下错误。这是因为驱动程序默认不会应用UR后处理器中的代码优化过滤器(这些过滤器可确保程序在控制器中流畅运行)。
这些错误包括
1.无线半径圆弧错误(CIRCULAR_ARC_WITH_INFINITE_RADIUS):当你尝试制作半径较大的圆弧运动时,可能会看到此错误。后处理器会自动将这些运动转换为线性运动。
2.零半径圆弧错误(CIRCULAR_ARC_WITH_ZERO_RADIUS):小的圆弧运动可能会出现此错误。后处理器可能会删除这些移动或将其转换为线性移动。
离线生成程序(右键单击程序并选择生成程序,或F6)或自动发送到机器人(右键单击程序并选择发送程序到机器人,或Ctrl+F6)时,应该不会出现这些错误。这两种生成程序的方法使用的是后处理器,而不是驱动器。
如果脱机生成程序(不使用驱动器)时仍出现错误,可以通过以下步骤自动将圆弧移动转换为线性移动:
URSim可以让你在电脑上模拟真实优傲机器人控制器的行为。这样你就能熟悉控制器并测试通过RoboDK生成的程序。本节将指导你安装URSim。
你可以从优傲(UniversalRobots)网站下载URSim官方镜像,并从官方网站下载OracleVMVirtualBox。
1.从以下链接下载最新的非Linux版离线模拟器:https://www.universal-robots.com/download/?query=。

3.从以下链接安装OracleVMVirtualBox软件:https://www.virtualbox.org/wiki/Downloads。
4.在D盘上创建文件夹:URSim。

5.将下载的URSim压缩文件内容解压到URSim文件夹。

6.双击启动OracleVMVirtualBox。
本节介绍如何使用OracleVMVirtualBox创建新的虚拟机,以模拟优傲(UiversalRobots)控制器。
请按以下步骤创建新的Linux机器并加载下载的控制器镜像:
1.启动VirtualBox,然后点击"New"。

2.将名称设为:UR_Sim_Eseries,并将机器文件夹设为你创建的文件夹。
将类型设为Linux,版本设为Ubuntu(64位)。


3.将内存大小设置为768MB,然后按"Next"。

4.选择选项"Use an existing virtual hard disk file",并定义解压缩文件所在文件夹的路径。按"Add"。




5.按"Start"启动虚拟机器。

6.如果出现" Hardware acceleration is not available"(硬件加速不可用)的错误,可能需要重启电脑并在BIOS中启用虚拟化设置。启用虚拟化后,可重新启动Windows、VirtualBox和虚拟机。
7.此时虚拟机应能正常启动。

你可以选择在Windows电脑和模拟控制器之间设置共享文件夹,以便轻松传输程序文件。
请按照以下步骤将RoboDK程序文件夹映射到模拟UR机器人控制器中的新文件夹:
1.本节介绍如何在Windows和URSim之间建立共享文件夹以传输程序。
2.打开URSim的虚拟机。
3.在Linux Ubuntu系统中创建一个名为“RoboDK_Shared”的文件夹,路径为“/home/ur/”。

4.通过拖放“RoboDK_Shared”文件夹到桌面,创建桌面快捷方式。

5.双击打开:RoboDK_Shared.
6.选择:View➔Folder View Mode➔Compact View.

7.从VirtualBox窗口的顶部菜单中选择: Devices➔Shared Folders➔Shared Folders Settings.

8.使用下图所示按钮添加新的共享文件夹。

9.选择Windows中共享文件夹的路径(可使用计算机上的任何文件夹)。
10.选中:“Auto-mount” 和“Make Permanent”.
11.Mount point:/home/ur/RoboDK_Shared


12.从VirtualBox顶部菜单中选择:Devices➔Insert Guest Additions CD Image。

13.选择" Open in File Manager",然后按"OK"。

14.打开文件夹:/media/ur/VBox_Gas_6.1.38(VBox版本可能有所不同)。

15.双击"autorun.sh"文件并选择"Execute"(密码为"easybot")。脚本运行可能需要一点时间。

16.重新启动虚拟机器。
Note:请确保使用Linux Start menu➔Logout➔Reboot,或关闭虚拟机并选择Send the shutdown signal.选项重新启动。
17.打开终端:选择: Start button➔System Tools➔UXTerm。

18.在终端中键入:sudo adduser $USER vboxsf,然后按回车键。

19.重启VM。
20.如果你在Windows共享文件夹中用RoboDK生成了新文件,可以在虚拟机共享文件夹" RoboDK_Shared"中按 “View” → “Reload Folder” 或按"F5"键。

你可以使用URSim测试RoboDK和优傲(UniversalRobots)控制器之间的连接。
1.在OracleVMVirtualBox管理器中。
2.选择UR_Sim_EseriesVM并按设置。

3.选择 Network➔Attached:并选择BridgeAdapter(网桥适配器),然后按OK(确定)。

4.启动URSim虚拟机器加工。

5.使用你首选的UR型号启动Polyscope。

6.读取模拟器IP地址。

7.进入URSim的"Move"窗口。

8.在RoboDK工作站中打开相同的UR模型。
9.选择: Connect➔ConnectRobot。

10.输入URSimIP地址,然后点击:Connect。
11.使用"Get Position",获取URSim机器人的位置,并将其应用于RoboDK。
12.使用"Move Joints",将URSim机器人移动到RoboDK机器人的位置。
13.右键单击RoboDK程序,选择"Run on robot"和"Run",即可同时在RoboDK和URSim中运行程序。
本节操作步骤为可选流程,仅当离线编程需要高精度时才需执行。下文将介绍如何在RoboDK中输入您所用UR机器人的专属运动学参数,以实现精确模拟。
Important:若你已对机器人进行校准,并希望生成可补偿真实机器人误差的过滤程序,则必须执行此流程。
每台UR控制器的运动学参数具有唯一性。这些参数以DH参数表(Denavit-Hartenberg)形式定义机器人的几何尺寸。RoboDK模拟器默认使用UR标称运动学参数,因此模拟器与控制器之间可能存在2-10毫米的位姿偏差。
要使模拟结果与真实机器人完全吻合,你可通过直接打开示教器生成的URP文件来导入专属运动学参数。
Note:所用URP文件必须由待模拟的控制器生成。
你也可按以下步骤手动加载URP文件:
1.获取通过真实机器人生成的URP文件(非RoboDK或UR模拟器生成)
2.打开RoboDK中的机器人模型(可从RoboDK库调用UR机器人,或使用现有工作站中的模型)
3.菜单栏选择:工具➔运行脚本
4.执行UR_LoadControllerKinematics脚本
5.加载从机器人控制器提取的URP文件
加载成功后将显示如下图所示提示信息。若加载无效URP文件或选错机器人型号,系统会显示警告提示。

完成此流程后,你可以右键点击机器人并选择"另存为.robot文件"。相关参数将随机器人文件保存,后续新建项目时可直接调用该文件,无需重复此流程。
RoboDK会从URP文件中提取你机器人的专属参数,并在机器人文件中将其应用于仿真与离线编程。如需恢复默认运动学参数,可通过机器人参数菜单进行设置(如下图所示)。

此时你将观察到:示教器显示的位姿数据会与RoboDK中的运动学参数完全匹配(注意:需在RoboDK和UR机器人中移除工具坐标系与参考坐标系后再进行比对)。
Note: RoboDK采用改进型DH参数(modified Denavit Hartenberg),与UR标准DH参数不同。系统会自动将URP文件中的DH参数转换为改进型DH参数,因此不可直接将urcontrol.conf.[UR3/UR5/UR10]文件中的参数复制到本表格使用。
每台UR机器人的运动学参数均经过出厂校准,具有唯一性。而其他品牌(如KUKA、ABB、安川或发那科)除非选购绝对精度选项(涉及40余项校准参数),否则不进行出厂校准。
本流程与RoboDK的机器人校准有本质区别——后者用于提升真实机器人的绝对精度。