Universal Robots SDKPilotez les cobots Universal Robots depuis votre logiciel
Créez rapidement des applications qui communiquent avec votre cobot Universal Robots en .NET, Python, Labview ou Matlab. Une bibliothèque logicielle prête à l'emploi : votre PC dialogue avec le robot par le câble réseau.
À partir de 1100 € / $1300, paiement unique
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();
Ce que vous obtenez
Plug & Play
Connectez votre robot en quelques minutes seulement. Pas de gestionnaire de license à installer, pas de clé USB. Référencez seulement la bibliothèque.
Pas de plugins à installer sur le robot
Utilisation des protocoles réseau fournis en standard par le contrôleur de robot.
Essai de 30 jours
Essayez-le gratuitement pendant 30 jours, aucun engagement, aucun enregistrement requis
Payer une fois, utiliser pour toujours
Licence perpétuelle, aucun abonnement requis, quel que soit le nombre de robots, de développeurs ou de logiciels redistribués
Réussites Client
Découvrez comment nos clients intègrent les solutions de UnderAutomation dans leurs projets industriels.


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.
Fonctionnalités du SDK Universal Robots : RTDE, Dashboard et plus
Chaque fonctionnalité a son exemple de code. Cliquez dessus pour voir le code complet.
Piloter à distance
Les protocoles « REST API » et « DASHBOARD SERVER » permettent d'envoyer des commandes au robot à distance via TCP/IP. Vous pouvez par exemple allumer ou éteindre le bras du robot, desserrer les freins, charger un programme, l'exécuter ou l'arrêter.
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");}}
Echanger des mesures
« Primary interface » et « RTDE » (Real-Time Data Exchange) permettent de recevoir un flux de mesure du robot jusqu'à 500Hz qui contient de nombreuses informations : position, état, entrées et sorties, la valeur des variables du programmes, … Votre application peut ainsi se synchroniser avec le robot. Aussi, il est possible d'écrire à haute vitesse dans le robot des registres partagés.
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);};}
Script et programme
Cette bibliothèque vous permet de piloter à distance l'exécution de programme sur le robot de plusieurs façons :
- Vous pouvez envoyer sur socket TCP/IP des lignes de script URScript à exécuter.
- Des fonctions vous permettent de construire et d'éditer localement un fichier programme *.urp puis de le transférer dans le contrôleur UR afin qu'il soit exécuté.
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");}}
Socket personnalisé
Votre logiciel peut être serveur et permettre au robot de s'y connecter pour récupérer des informations :
- XML-RPC : Le robot peut se connecter avec la fonction « rpc_factory » et appeler des méthodes avec arguments à distances dans votre programme qui peut retourner des valeurs.
- Socket : Serveur TCP/IP classique auquel le robot peut se connecter avec la fonction « socket_open » puis dialoguer avec votre application dans les deux sens.
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");}}
Kinematics et boite à outils hors ligne
Cette bibliothèque offre des fonctionnalités utilisables sans avoir un robot UR à porté sur le réseau. Il est par exemple possible de convertir des types de positions. Votre logiciel peut aussi ouvrir les fichiers natifs programme *.urp et installation *.installation et éditer son contenu. Il permet aussi de convertir une position cartésienne en positions en joints et vice-versa.
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;}}
Et davantage...
- Primary / Secondary interface
- RTDE (Real-Time Data Exchange)
- Dashboard server
- REST API (PolyscopeX only)
- Interpreter Mode
- Sockets
- XML-RPC
- SSH
- SFTP
- Forward & Inverse Kinematics
Voir le SDK en action
Vidéo et captures de l'application de démonstration livrée avec le SDK.
Exemple d'application Windows
Pas de code à écrire : testez le SDK sur votre robot avec l'application de démonstration.

Exemples sur GitHub
Les sources des exemples d'utilisation de ce SDK sont disponibles sur GitHub
Exemple Python
Exemple de fonctionnement de ce SDK avec Python permettant de récupérer la position cartésienne d'un robot.
Exemple LabVIEW
Exemple de VI qui permet de tester la plupart des fonctions de ce SDK.
Installez-le en une commande
Choisissez votre langage. L'essai de 30 jours démarre à la première utilisation, sans inscription.
.NET
Paquet NuGet pour C# et VB.NET, de .NET Framework au dernier .NET.
dotnet add package UnderAutomation.UniversalRobotsPython
Paquet Python sur PyPI, pour Windows, Linux et macOS.
pip install UnderAutomation.UniversalRobotsLabVIEW
Bibliothèque LabVIEW (.lvlib) et son projet d'exemple, sur GitHub.
git clone https://github.com/underautomation/UniversalRobots.vi.gitAgents IA
Skill pour les agents de code IA (Claude Code, Cursor, Copilot...) : votre assistant connaît l'API du SDK.
npx skills add underautomation/skills --skill underautomation-universal-robots-csharpParcourir la documentation
La documentation vous permet de commencer rapidement à vous développer avec la bibliothèque. La même fonctionnalité est disponible dans toutes les langues prises en charge.
Parcourir la documentation
La documentation vous permet de commencer rapidement à vous développer avec la bibliothèque. La même fonctionnalité est disponible dans toutes les langues prises en charge.
Commencer avec .NET
Codez votre application en C# ou VB avec cette bibliothèque 100% managée, sans dépendances et disponible sur NuGet.org dans la version et l'architecture de votre choix (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...)
Commencer avec Python
Développez rapidement un programme en Python qui communique avec votre robot à l'aide de cette bibliothèque. Elle est disponible sur PyPI.
Commencer avec LabVIEW
Equipez vos VIs LabVIEW d'une communication avec votre robot.

Commencer avec Matlab
Permet à vos scripts Matlab *.m de communiquer avec vos cobots.
Guides et articles pratiques
Chaque article explique comment réaliser une tâche, pas à pas, avec du code à copier.
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.
Tarifs
Les bibliothèques sont téléchargeables gratuitement et peuvent être testées pendant 30 jours. Passé ce délai, vous pouvez nous demander de prolonger la période d'essai, ou acheter la licence qui vous convient le mieux : site (binaires obscurcis uniquement) ou source (code source). Après l'achat, vous disposez d'une période de maintenance d'un an, vous donnant un accès prioritaire au support et la possibilité de mettre à jour. Lorsque vous achetez une licence d'utilisation, elle est liée à une marque de robot, vous pouvez l'utiliser pour toujours, sans redevance récurrente, quel que soit le nombre de robot, de développeur ou de logiciel que vous redistribuez à vos clients. Si vous êtes un distributeur et souhaitez proposer à vos clients un de nos produits, merci de nous contacter pour discuter des conditions et tarifs spéciaux.
Licence Site Standard
•
Licence Pro
•
Licence Source
•
FAQ : SDK .NET, Python, LabVIEW et Matlab pour Universal Robots
SDK certifié UR+ pour les cobots Universal Robots
Les équipes techniques et commerciales d'Universal Robots ont audité cette bibliothèque. Ils certifient qu'elle est conforme et s'intègre parfaitement avec leurs robots et son écosystème.

Blog Universal Robots
« Universal Robots intègre la bibliothèque logicielle du français underautomation au sein de l'écosystème UR+ »
Automation France
« UnderAutomation est une entreprise qui a mis au point une bibliothèque logicielle de qualité industrielle, entièrement compatible avec la technologie Universal Robots »
Machine Production
« Une bibliothèque pour créer des applications avec les cobots Universal Robots »
Mesures.com
« UnderAutomation développe une bibliothèque logicielle compatible avec Universal Robots »
Industrie
« UnderAutomation, entreprise française spécialisée en informatique industrielle, a développé une bibliothèque logicielle certifiée UR+ »
Zone Industrie
« Pilotage à distance, échanges de mesures en temps réel, programmation facilitée… tant de fonctionnalités qui offrent avant tout un gain de temps considérable »Les bibliothèques sur GitHub
Chaque paquet est publié sur GitHub avec son journal des modifications.
Dernières versions
UniversalRobots.NET
Dernière version
underautomation / UniversalRobots.NET
PublicBibliothèque .NET du SDK Universal Robots.
underautomation / UniversalRobots.py
PublicPackage Python du SDK Universal Robots.
underautomation / UniversalRobots.vi
PublicBibliothèque LabVIEW du SDK Universal Robots, avec des VIs d'exemple.
underautomation / UniversalRobots.unity
PublicPackage Unity du SDK Universal Robots.
Commencez maintenant !
Démarrez l'essai de 30 jours aujourd'hui, ou demandez un devis.