Universal Robots SDK控制 Universal Robots 协作机器人 直接从您自己的软件
在.NET、Python、Labview或Matlab中快速创建与Universal Robots cobot通信的应用程序。 开箱即用的软件库:您的电脑通过网线与机器人通信。
Matlab
1// dotnet add package UnderAutomation.UniversalRobots2using UnderAutomation.UniversalRobots;34var robot = new UR();5robot.Connect("192.168.0.1");67var pose = robot.PrimaryInterface.CartesianInfo.AsPose();8robot.Dashboard.LoadProgram("pick_and_place.urp");9robot.Dashboard.Play();
您将获得什么
Plug & Play
只需几分钟即可连接您的机器人。无需安装许可证管理器, 无需 USB 密钥。仅参考图书馆。
没有在机器人上安装的插件
使用机器人控制器作为标准提供的网络协议。
30 天试用
免费试用 30 天, 无承诺, 无需注册
付一次, 永远使用
永久许可, 无需订阅, 无论机器人, 开发人员的数量是多少
客户成功案例
了解我们的客户如何将 UnderAutomation 解决方案集成到他们的工业项目中。


AbbVie: Automating High-throughput screening
How AbbVie Leverages Universal Robots SDK to Automate High-Concentration Protein Screening.


GE: Aerospace & Healthcare Automation
GE Accelerates Industrial Automation with UnderAutomation SDKs for Universal Robots and FANUC.


Lockheed Martin: Flexible Aerospace Automation
Refining precision manufacturing and handling with collaborative robots.


Microsoft: Physical AI & Azure IoT
From Azure to the Factory Floor: Microsoft's Physical AI Journey with Universal Robots.


Stellantis: Unlocking Cobot Potential
Using software connectivity to standardize Universal Robots integration across global sites.


CNIMI: Smart Manufacturing & Digital Twins
CNIMI promotes smart manufacturing and digital twins enabled by connectivity with Universal Robots.
Universal Robots SDK 功能: RTDE、Dashboard 等
每项功能都有代码示例。点击示例可查看完整代码。
远程控制
“REST API”和“DASHBOARD SERVER”协议允许您通过 TCP/IP 远程向机器人发送命令。 例如, 您可以打开或关闭机器人手臂、释放制动器、加载程序、运行或停止它。
static void Main(string[] args){var robot = new UR();// Primary Interface and Dashboard Serverrobot.Connect("192.168.0.1");// Power on the arm and release the brakesrobot.Dashboard.PowerOn();robot.Dashboard.ReleaseBrake();// Load a program and start itrobot.Dashboard.LoadProgram("pick_and_place.urp");robot.Dashboard.Play();// Name and state of the programvar state = robot.Dashboard.GetProgramState();Console.WriteLine(state.Value.Name + ": " + state.Value.State);// Show a message on the teach pendantrobot.Dashboard.ShowPopup("Started from the PC");}}
交换测量结果
"Primary Interface"和 "RTDE" (实时数据交换) 允许您从机器人接收高达500Hz的测量流, 其中包含大量信息: 位置、状态、输入和输出、程序变量的值等, 因此您的应用程序可以与机器人同步。 此外, 还可以向机器人高速写入共享寄存器。
robot.Rtde.OutputDataReceived += (sender, e) =>{// Position of the tool: X, Y, Z in m, rotation vector in radPose pose = robot.Rtde.OutputDataValues.ActualTcpPose;// Force at the toolCartesianCoordinates force = robot.Rtde.OutputDataValues.ActualTcpForce;// Write analog output 0 and bit register 64var inputs = new RtdeInputValues();inputs.StandardAnalogOutputMask = 0b01;inputs.StandardAnalogOutput0 = 0.2;inputs.InputBitRegisters.X64 = true;robot.Rtde.WriteInputs(inputs);// Program and installation variablesGlobalVariable[] variables = robot.PrimaryInterface.GlobalVariables.GetAll();foreach (var variable in variables)Console.WriteLine(variable.Name + " = " + variable.Value);};}
脚本和方案
这个库允许你以多种方式远程控制机器人上的程序执行。
- 你可以通过TCP/IP套接字发送URScript脚本行来执行。
- 功能允许你在本地建立和编辑一个*.URP程序文件, 然后将其传送到UR控制器中执行。
robot.Connect(parameters);// Run a URScript linerobot.PrimaryInterface.Script.Send("movej([-1.5, -1.5, -2, -0.5, 1.8, 0], a=1.4, v=1.05)");// List the programs of the robotSftpFile[] items = robot.Sftp.ListDirectory("/programs/");// Download a program to the PCrobot.Sftp.DownloadFile("/programs/prg.urp", @"C:\temp\prg.urp");// Send a program to the robotrobot.Sftp.UploadFile(@"C:\temp\prg.urp", "/programs/prg.urp");// Rename, check, deleterobot.Sftp.RenameFile("/programs/prg.urp", "/programs/prg2.urp");bool exists = robot.Sftp.Exists("/programs/prg2.urp");robot.Sftp.DeleteFile("/programs/prg2.urp");}}
定制的插座
你的软件可以成为一个服务器, 并允许机器人连接到它以检索信息。
- XML-RPC: 机器人可以与 "rpc_factory "函数连接, 并在你的程序中调用有远程参数的方法, 这些方法可以返回值。
- 套接字: 一个经典的TCP/IP服务器, 机器人可以用 "socket_open "函数与之连接, 然后与您的应用程序进行双向对话。
robot.Connect(parameters);// The robot connects with the URScript function socket_open()robot.SocketCommunication.SocketClientConnection += (sender, e) =>{e.Client.SocketWrite("Hello robot");};// The robot sends a message with socket_send_string()robot.SocketCommunication.SocketRequest += (sender, e) =>{Console.WriteLine(e.Message);};// Send a message to every connected robotrobot.SocketCommunication.SocketWrite("123456");}}
运动学和离线工具箱
该库提供的功能无需将您的机器人带入网络而可以使用。例如, 可以转换位置类型。您的软件还可以打开本机文件程序 *.urp和安装 *。安装并编辑其内容。它还可以将笛卡尔位置转换为关节的位置, 反之亦然。
static void Main(string[] args){// X, Y, Z in m, rotation vector RX, RY, RZ in radvar pose = new Pose(0.1, 0.2, -0.1, 0, 0.05, 0.1);// Convert the rotation to roll, pitch, yaw, and backPose rpy = pose.FromRotationVectorToRPY();Pose rotationVector = rpy.FromRPYToRotationVector();// Nominal DH parameters of a UR3eIUrDhParameters dh = KinematicsUtils.GetDhParametersFromModel(RobotModelsExtended.UR3e);// Forward kinematics, joint positions in radKinematicsResult fk = KinematicsUtils.ForwardKinematics(new double[] { 0, -1.57, 1.57, 0, 0, 0 }, dh);Pose flange = Pose.From4x4MatrixToRotationVector(fk.ToolTransform);// Inverse kinematics: up to 8 solutionsdouble[][] solutions = KinematicsUtils.InverseKinematics(pose.FromRotationVectorTo4x4Matrix(), dh);// Open program and installation files, as XMLURInstallation installation = URInstallation.Load(@"C:\temp\default.installation");URProgram program = URProgram.Load(@"C:\temp\prg.urp");XElement xml = program.XML;}}
还有更多...
- Primary / Secondary interface
- RTDE (Real-Time Data Exchange)
- Dashboard server
- REST API (PolyscopeX only)
- Interpreter Mode
- Sockets
- XML-RPC
- SSH
- SFTP
- Forward & Inverse Kinematics
看看实际效果
随 SDK 提供的演示程序的视频和截图。
一条命令即可安装
选择您的语言。30 天试用从首次使用开始,无需注册。
.NET
适用于 C# 和 VB.NET 的 NuGet 包,从 .NET Framework 到最新的 .NET。
dotnet add package UnderAutomation.UniversalRobotsPython
PyPI 上的 Python 包,支持 Windows、Linux 和 macOS。
pip install UnderAutomation.UniversalRobotsLabVIEW
LabVIEW 库 (.lvlib) 及其示例项目,位于 GitHub。
git clone https://github.com/underautomation/UniversalRobots.vi.gitAI 助手
面向 AI 编程助手(Claude Code、Cursor、Copilot 等)的 Skill:您的助手了解 SDK 的 API。
npx skills add underautomation/skills --skill underautomation-universal-robots-csharp浏览文档
该文档使您可以快速开始使用库开发。 所有受支持的语言都可以使用相同的功能。
浏览文档
该文档使您可以快速开始使用库开发。 所有受支持的语言都可以使用相同的功能。
开始使用.NET
用这个100%托管的库在C#或VB中编码你的应用程序, 没有依赖性, 在NuGet.org上有你选择的版本和架构 (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...) 。
开始使用Python
用Python快速开发一个程序, 用这个库与你的机器人进行通信。它可以在PyPI上使用。
开始使用LabVIEW
为您的LabVIEW VIs配备与机器人的通信功能。

开始使用Matlab
让你的Matlab脚本来驱动你的机器人。
指南和实用文章
每篇文章逐步讲解一项任务的做法,并附带可直接复制的代码。
Get the robot position
Read the joint positions and the TCP position of a UR cobot in C# or Python, with RTDE up to 500 Hz or with the Primary Interface.
Read and write I/O
Read and write the digital and analog I/O of a UR cobot in C# or Python, with RTDE and its masks, or with the Primary Interface.
Read and write variables
Read the program and installation variables of a UR cobot in C# or Python with the Primary Interface or the Dashboard Server, and how to change them.
Read and write registers
Exchange values between a UR robot program and a PC with the boolean, integer and float registers, with RTDE up to 500 Hz.
Run a program
Power on a UR cobot, release the brakes, load a program and play it from a PC in C# or Python, then follow it until its end.
Read and reset alarms
Read the error messages, the program errors and the safety status of a UR cobot in C# or Python, and reset a protective stop or a safety fault.
Transfer files and backups
Copy the programs of a UR cobot to a PC for a backup, send a program to the robot and load it, in C# or Python with SFTP.
Monitor the state of the robot
Follow the robot mode, the program, the stops, the safety status and the connection of a UR cobot in C# or Python.
Move the robot from a PC
Move a UR cobot from a PC in C# or Python with URScript, the Interpreter Mode, registers or a program, and check the position reached.
价格
可以免费下载库, 可以进行30天的测试。 在此期间之后, 您可以要求我们延长试用期, 或购买最适合您的许可证: 站点 (仅二进制二进制) 或源代码 (源代码) 。 购买后, 您有一个一年的维护期, 使您优先访问支持和更新的可能性。 当您购买使用许可证时, 它会链接到机器人品牌, 无论您将其重新分配给客户的机器人, 开发人员或软件的数量如何, 都可以永远使用, 而无需重复费用。 如果您是分销商, 并希望为您的客户提供我们的产品之一, 请与我们联系以讨论特殊条件和价格。
标准站点许可证
•
专业许可
•
源代码许可
•
常见问题: Universal Robots .NET、Python、LabVIEW 和 Matlab SDK
UR+ 认证的 Universal Robots 协作机器人 SDK
环球机器人公司的技术和销售团队已经审核了这个库。他们认证它是符合要求的, 并与他们的机器人及其生态系统完美结合。

Blog Universal Robots
« 通用机器人公司将法国公司underautomation的软件库整合到UR+生态系统中。 »
Automation France
« UnderAutomation已经开发了一个工业级的软件库, 与Universal Robots技术完全兼容。 »
Machine Production
« 使用通用机器人的机器人创建应用程序的库 »
Mesures.com
« UnderAutomation开发了一个与通用机器人兼容的软件库 »
Industrie
« UnderAutomation, 一家专门从事工业IT的法国公司, 已经开发了一个UR+认证的软件库。 »
Zone Industrie
« 远程控制、实时交换测量结果、简易编程......这么多的功能, 首先是可以节省大量时间。 »GitHub 上的库
每个包都发布在 GitHub 上,并附有更新日志。
underautomation / UniversalRobots.NET
PublicUniversal Robots SDK 的 .NET 库。
underautomation / UniversalRobots.py
PublicUniversal Robots SDK 的 Python 包。
underautomation / UniversalRobots.vi
PublicUniversal Robots SDK 的 LabVIEW 库,含示例 VI。
underautomation / UniversalRobots.unity
PublicUniversal Robots SDK 的 Unity 包。
