Communication & Toolkit
Universal Robots Software Library

在.NET、Python、Labview或Matlab中快速创建与Universal Robots cobot通信的应用程序。

特点

该库以多种语言实现了Universal Robots cobots的所有本地协议,使您的计算机能够同步和远程控制机器人手臂。

远程控制

Dashboard服务器协议,允许你通过TCP/IP远程向机器人发送命令。例如,你可以打开或关闭机器人手臂,释放刹车,加载程序,运行或停止它。

Dashboard Server
// Create a new robot instance
var robot = new UR();
// Connect to the robot
robot.Connect("192.168.0.1");
// Power on the robot arm and release brakes
robot.Dashboard.PowerOn();
robot.Dashboard.ReleaseBrake();
// Load program file to polyscope
robot.Dashboard.LoadProgram("fast_bin_picking.urp");
// Start the program
robot.Dashboard.Play();
// Get program name and state
var state = robot.Dashboard.GetProgramState();
Console.WriteLine($"Program name : {state.Value.Name}");
Console.WriteLine($"Stopped, Playing or Paused ? : {state.Value.State}");
// Display a popup on the pendant
robot.Dashboard.ShowPopup("I just remote-controlled my robot!");

交换测量结果

"Primary Interface"和 "RTDE"(实时数据交换)允许您从机器人接收高达500Hz的测量流,其中包含大量信息:位置、状态、输入和输出、程序变量的值等,因此您的应用程序可以与机器人同步。 此外,还可以向机器人高速写入共享寄存器。

RTDE
Primary / Secondary interface
// Display robot TCP pose
var pose = robot.Rtde.OutputDataValues.ActualTcpPose;
// pose.X, pose.Y, pose.Z, pose.Rx, ...
// Display robot TCP force
var force = robot.Rtde.OutputDataValues.ActualTcpForce;
// Write data in robot controler
var inputs = new RtdeInputValues();
inputs.StandardAnalogOutput0 = 0.2;
inputs.InputBitRegisters.X64 = true;
robot.Rtde.WriteInputs(inputs);
// Display all program and installation variables
var variables = robot.PrimaryInterface.GlobalVariables.GetAll();
string name = variables[0].Name;
Pose value = variables[0].ToPose();
GlobalVariableTypes type = variables[0].Type;

脚本和方案

  • 你可以通过TCP/IP套接字发送URScript脚本行来执行。
  • 功能允许你在本地建立和编辑一个*.URP程序文件,然后将其传送到UR控制器中执行。

SFTP
SSH
Primary interface
// Ask robot to execute a movej
robot.PrimaryInterface.Script.Send("movej([-1.5,-1.5,-2,-0.5,1.8,0], a=1.4, v=1.05, t=0, r=0)");
// Enumerates files and folder
SftpFile[] items = robot.Sftp.ListDirectory("/home/ur/ursim-current/programs/");
// Download program file prg.urp to your local disk
robot.Sftp.DownloadFile("/home/ur/ursim-current/programs/prg.urp", @"C:\temp\prg.urp");
// Send a local file to the robot
robot.Sftp.UploadFile(@"C:\temp\prg.urp", "/home/ur/ursim-current/programs/prg.urp");
// Manipulate files and directories
robot.Sftp.RenameFile("/home/ur/prg.urp", "/home/ur/prg2.urp");
robot.Sftp.Delete("/home/ur/prg.urp");
bool exists = robot.Sftp.Exists("/home/ur/prg.urp");
robot.Sftp.WriteAllText("/home/ur/file.txt", "Hello robot !");
// ...

定制的插座

你的软件可以成为一个服务器,并允许机器人连接到它以检索信息。

  • XML-RPC:机器人可以与 "rpc_factory "函数连接,并在你的程序中调用有远程参数的方法,这些方法可以返回值。
  • 套接字:一个经典的TCP/IP服务器,机器人可以用 "socket_open "函数与之连接,然后与您的应用程序进行双向对话。

XML-RPC
Socket communication
// Robot connects with URScipt function socket_open()
robot.SocketCommunication.SocketClientConnection += (o, e) =>
{
// Reply to the robot
e.Client.SocketWrite("Hello cobot <3");
};
// Event raised when the robot sends a message with socket_write()
robot.SocketCommunication.SocketRequest += (o, e) =>
{
string robotMessage = e.Message;
};
// Send a message to all connected clients
robot.SocketCommunication.SocketWrite("123456");

离线工具箱

这个库提供的功能,可以在网络上没有UR机器人的情况下使用。例如,可以转换位置类型。你的软件还可以打开本地程序*.urp和安装*.installation文件,并编辑它们的内容。

// Create X, Y, Z, RX, RY, RZ pose
var pose = new Pose(0.1, 0.2, -0.1, 0, 0.05, 0.1);
// Convert cartesian pose type to RPY or rotation vector
var rpy = pose.FromRotationVectorToRPY();
var vectorPose = pose.FromRPYToRotationVector();
// Decompile program and installation files and access inner XML
URInstallation installation = URInstallation.Load("C:\\temp\\default.installation");
URProgram prg = URProgram.Load("C:\\temp\\prg.urp");
XElement internalXml = prg.XML;

还有更多...

  • Primary / Secondary interface
  • RTDE (Real-Time Data Exchange)
  • Dashboard server
  • Sockets
  • XML-RPC
  • SSH
  • SFTP
  • ...

UR+认证

环球机器人公司的技术和销售团队已经审核了这个库。他们认证它是符合要求的,并与他们的机器人及其生态系统完美结合。

定价

它是一个工业强度的软件库,需要有许可证才能使用。购买许可证后,贵公司无论有多少开发人员,都可以用所提供的任何语言进行开发,并向无限数量的客户分发无限数量的软件产品,而不需要经常性费用。

见条款和条件

免费的

30天的试用期
  • 可在30天内使用所有功能
  • 提供了几个平台的例子,包括Python、Winforms、Console(用于Windows、Linux和MacOS)和LabVIEW。
  • 有可能要求我们延长试用期

完整的许可证

990€
  • 永久的全功能SDK:不需要经常性的订阅
  • 可以在被许可人的组织内的指定地点使用
  • 可由指定地点的多个开发者使用
  • 使用SDK开发的任何应用程序都可以交付给不限数量的客户,而无需支付版税。
  • 包括1年的维护(获得更新)。
  • 请联系我们,通过银行转账付款。一旦您购买了本SDK的许可证,您将通过电子邮件收到您的许可证号和发票。

用于学术研究的网站许可证

594€

990€

  • 网站许可证,4折优惠
  • 专门针对学术或研究项目的折扣

常见问题

这样一个软件库的好处是什么?

这个软件库为您节省了开发时间,并确保无论您的机器人的型号和固件如何,它都能发挥作用。

我怎样才能测试这个库呢?

本网站的下载页面允许你获得你选择的语言的例子。然后你可以查阅文档,开始使用该库。

可以给我一个报价吗?

你可以立即从本网站的订单页面直接要求报价。你也可以联系我们。

一些例子不起作用

请在下载档案的属性中检查Windows是否锁定了该文件。如果例子运行正常,请检查机器人的PING命令是否成功。还要检查您的防火墙和防病毒软件是否允许连接到机器人。最后,检查机器人的安全设置。

每个版本有什么新内容?

每个版本都包括补丁和新功能。你可以在GitHub上找到各个版本的历史以及所做的修改。请不要犹豫,与我们联系,提交您的进化想法。

更新后,我的应用程序不再编译了

渐渐地,图书馆的新功能得到了丰富。直到第5版,所有的功能和协议都是在同一个类别中开发的,这让人很困惑。从第6版开始,所有的功能都是独立的,在不同的类中开发。请联系我们以帮助你迁移,或从GitHub上下载最新的5.X.X.X版本,它与所有旧版本保持兼容。