UnderAutomation
Une question ?

[email protected]

Contactez-nous
UnderAutomation
⌘Q
Universal Robots
UR+ Certified

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.

Essayer gratuitementVoir les tarifs

À partir de 1100 € / $1300, paiement unique

Rien à installer sur le robot
Essai gratuit de 30 jours
Licence perpétuelle, sans abonnement
.NET / C#
Python
LabVIEW
Matlab
Universal Robots robot
Universal Robots SDK
1// dotnet add package UnderAutomation.UniversalRobots
2using UnderAutomation.UniversalRobots;
3
4var robot = new UR();
5robot.Connect("192.168.0.1");
6
7var pose = robot.PrimaryInterface.CartesianInfo.AsPose();
8robot.Dashboard.LoadProgram("pick_and_place.urp");
9robot.Dashboard.Play();
En bref

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.

URCapsROS

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

Clients

Réussites Client

Découvrez comment nos clients intègrent les solutions de UnderAutomation dans leurs projets industriels.

AbbVie
Biotech / Pharma

AbbVie: Automating High-throughput screening

How AbbVie Leverages Universal Robots SDK to Automate High-Concentration Protein Screening.

GE
Aerospace / Healthcare

GE: Aerospace & Healthcare Automation

GE Accelerates Industrial Automation with UnderAutomation SDKs for Universal Robots and FANUC.

Lockheed Martin
Aerospace / Defense

Lockheed Martin: Flexible Aerospace Automation

Refining precision manufacturing and handling with collaborative robots.

Microsoft
Technology

Microsoft: Physical AI & Azure IoT

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

Stellantis
Automotive

Stellantis: Unlocking Cobot Potential

Using software connectivity to standardize Universal Robots integration across global sites.

CNIMI
Smart Manufacturing / Research

CNIMI: Smart Manufacturing & Digital Twins

CNIMI promotes smart manufacturing and digital twins enabled by connectivity with Universal Robots.

Fonctionnalités

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 Server
robot.Connect("192.168.0.1");
// Power on the arm and release the brakes
robot.Dashboard.PowerOn();
robot.Dashboard.ReleaseBrake();
// Load a program and start it
robot.Dashboard.LoadProgram("pick_and_place.urp");
robot.Dashboard.Play();
// Name and state of the program
var state = robot.Dashboard.GetProgramState();
Console.WriteLine(state.Value.Name + ": " + state.Value.State);
// Show a message on the teach pendant
robot.Dashboard.ShowPopup("Started from the PC");
}
}
Click to see the full code

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 rad
Pose pose = robot.Rtde.OutputDataValues.ActualTcpPose;
// Force at the tool
CartesianCoordinates force = robot.Rtde.OutputDataValues.ActualTcpForce;
// Write analog output 0 and bit register 64
var inputs = new RtdeInputValues();
inputs.StandardAnalogOutputMask = 0b01;
inputs.StandardAnalogOutput0 = 0.2;
inputs.InputBitRegisters.X64 = true;
robot.Rtde.WriteInputs(inputs);
// Program and installation variables
GlobalVariable[] variables = robot.PrimaryInterface.GlobalVariables.GetAll();
foreach (var variable in variables)
Console.WriteLine(variable.Name + " = " + variable.Value);
};
}
Click to see the full code

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 line
robot.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 robot
SftpFile[] items = robot.Sftp.ListDirectory("/programs/");
// Download a program to the PC
robot.Sftp.DownloadFile("/programs/prg.urp", @"C:\temp\prg.urp");
// Send a program to the robot
robot.Sftp.UploadFile(@"C:\temp\prg.urp", "/programs/prg.urp");
// Rename, check, delete
robot.Sftp.RenameFile("/programs/prg.urp", "/programs/prg2.urp");
bool exists = robot.Sftp.Exists("/programs/prg2.urp");
robot.Sftp.DeleteFile("/programs/prg2.urp");
}
}
Click to see the full code

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 robot
robot.SocketCommunication.SocketWrite("123456");
}
}
Click to see the full code

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 rad
var pose = new Pose(0.1, 0.2, -0.1, 0, 0.05, 0.1);
// Convert the rotation to roll, pitch, yaw, and back
Pose rpy = pose.FromRotationVectorToRPY();
Pose rotationVector = rpy.FromRPYToRotationVector();
// Nominal DH parameters of a UR3e
IUrDhParameters dh = KinematicsUtils.GetDhParametersFromModel(RobotModelsExtended.UR3e);
// Forward kinematics, joint positions in rad
KinematicsResult 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 solutions
double[][] solutions = KinematicsUtils.InverseKinematics(pose.FromRotationVectorTo4x4Matrix(), dh);
// Open program and installation files, as XML
URInstallation installation = URInstallation.Load(@"C:\temp\default.installation");
URProgram program = URProgram.Load(@"C:\temp\prg.urp");
XElement xml = program.XML;
}
}
Click to see the full code

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
Démo

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.

TéléchargerEn téléchargeant, vous acceptez les conditions générales d'utilisation : Voir les conditions générales d'utilisation

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.

Installation

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.UniversalRobots
Voir sur NuGetVoir sur GitHubOuvrir le guide

Python

Paquet Python sur PyPI, pour Windows, Linux et macOS.

pip install UnderAutomation.UniversalRobots

LabVIEW

Bibliothèque LabVIEW (.lvlib) et son projet d'exemple, sur GitHub.

git clone https://github.com/underautomation/UniversalRobots.vi.git

Agents 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-csharp
Documentation

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.

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

•

1100€Pour toujours
660€pour les universités (40% de réduction)
Conçu pour les environnements industriels, offrant un accès complet aux fonctionnalités à vie.
1 an de maintenance incluse (accès aux mises à jour)
Mêmes conditions que la Licence Pro, sauf que le support n'est pas prioritaire et la maintenance est de 1 an.
Il n'y a pas de sources internes ; seule la DLL masquée est fournie.
Pas d'assistance par visioconférence (uniquement par email).
Choisissez la bonne licence pour votre projet
Acheter maintenant
Le plus populaire

Licence Pro

•

1700€
2500€
Pour toujours
1020€pour les universités (40% de réduction)
Pour les environnements de production critiques nécessitant un support prioritaire et une maintenance à plus long terme.
3 ans de maintenance incluse (accès aux mises à jour) sans commande de renouvellement pendant cette durée (zéro paperasse)
SDK complet et permanent : aucun abonnement récurrent n'est requis, la license est à vous pour toujours et fonctionne dans tous les langages de programmation pour une marque de robot.
Peut être utilisé uniquement par l'organisation détentrice de la licence, à l'adresse postale indiquée. Tous les développeurs de l'équipe partageront la même licence, quel que soit le nombre de machine de développement.
Toute application développée à l'aide du SDK peut être livrée à un nombre illimité de vos clients sans frais supplémentaires, quel que soit le nombre de robots à connecter.
La license est une sorte de mot de passe à appeler dans le code qui débloque les fonctionnalités. Pas de logiciel supplémentaire à installer. Pas de clé USB.
Support prioritaire (<24h en moyenne)
Assistance à distance (email et jusqu'à 2h de visioconférence)
Il n'y a pas de sources internes ; seule la DLL masquée est fournie.
Passez à Source à tout moment (payez la différence)
Acheter maintenant

Licence Source

•

3400€Pour toujours
2040€pour les universités (40% de réduction)
Pour une totale souveraineté technique, une personnalisation poussée et une indépendance totale.
Mêmes conditions que la licence pro
Code interne complet de la bibliothèque en C#
Solution Visual Studio comprenant des milliers de lignes de code développées sur plusieurs années
Vous pouvez modifier ce code source et l'utiliser dans votre application, dans les limites définies dans les conditions générales d'utilisation.
Compatible avec les agents IA de codage (Claude, Copilot, Cursor, Codex...) grâce à l'accès au code source complet et aux fichiers de contexte inclus (AGENTS.md) qui donnent au LLM une connaissance précise des internals du SDK
Acheter maintenant
FAQ

FAQ : SDK .NET, Python, LabVIEW et Matlab pour Universal Robots

Cette bibliothèque logicielle vous permet d'économiser du temps de développement et de garantir son fonctionnement quels que soient le model et le firmware de votre robot.

Vous pouvez télécharger la dernière version depuis la page de téléchargement dans le langage de programmation de votre choix.

Nous sommes spécialistes dans ce domaine et pouvons vous aider gratuitement dans le cadre du support technique inclus avec ce SDK. Vous pouvez aussi nous solliciter pour du développement logiciel industriel en général. Nous répondons à tous les messages et vous ferons un plaisir de vous aider.

La page de téléchargement de ce site web vous permet d'obtenir des exemples dans le langage de votre choix. Vous pouvez ensuite consulter la documentation pour prendre en main la bibliothèque.

Vous pouvez demander immédiatement un devis directement depuis la page de commande de ce site web. Vous pouvez également nous contacter.

Veuillez vérifier dans les propriétés de l'archive téléchargée que Windows n'a pas verrouillé le fichier. Si les exemples se lancent correctement, veuillez vérifier que la command PING sur le robot réussie. Vérifiez aussi que votre parefeu et votre antivirus permettent une liaison avec le robot. Vérifiez enfin les paramètres de sécurité du robot.

Chaque version intègre des correctifs ainsi que de nouvelles fonctionnalités. Vous trouverez sur GitHub l'historique des versions ainsi que les changements apportés. N'hésitez pas à nous contacter pour nous soumettre vos idées d'évolution.

Petit à petit, la bibliothèque s'est enrichie de nouvelles fonctionnalités. Jusqu'à la version 5, toutes les fonctions et tous les protocoles étaient développés dans la même classe, ce qui prêtait à confusion. À partir de la version 6, toutes les fonctions sont indépendantes et développées dans des classes distinctes. Veuillez nous contacter pour vous aider à migrer, ou téléchargez la dernière version 5.X.X.X depuis GitHub, qui reste compatible avec toutes les anciennes versions.
Presse

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 »
GitHub

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

Public

Bibliothèque .NET du SDK Universal Robots.

C#Voir sur GitHub

underautomation / UniversalRobots.py

Public

Package Python du SDK Universal Robots.

PythonVoir sur GitHub

underautomation / UniversalRobots.vi

Public

Bibliothèque LabVIEW du SDK Universal Robots, avec des VIs d'exemple.

LabVIEWVoir sur GitHub

underautomation / UniversalRobots.unity

Public

Package Unity du SDK Universal Robots.

C#Voir sur GitHub

Commencez maintenant !

Démarrez l'essai de 30 jours aujourd'hui, ou demandez un devis.

Essayer gratuitementCommanderDemander un devisContactez-nous