Quels est l'intérêt d'une telle bibliothèque logicielle ?
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.
Créez rapidement des applications qui communiquent avec votre cobot Universal Robots en .NET, Python, Labview ou Matlab.
La bibliothèque implémente dans plusieurs langages tous les protocoles natifs des cobots Universal Robots, permettant à votre ordinateur de se synchroniser et de piloter le bras robot à distance.
Le protocole « Dashboard Server » qui permet d’envoyer des ordres au robot à distance par TCP/IP. Vous pouvez par exemple mettre en service ou hors service le bras du robot, relâcher les freins, charger un programme, l’exécuter ou l’arrêter.
// Create a new robot instancevar robot = new UR();// Connect to the robotrobot.Connect("192.168.0.1");// Power on the robot arm and release brakesrobot.Dashboard.PowerOn();robot.Dashboard.ReleaseBrake();// Load program file to polyscoperobot.Dashboard.LoadProgram("fast_bin_picking.urp");// Start the programrobot.Dashboard.Play();// Get program name and statevar 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 pendantrobot.Dashboard.ShowPopup("I just remote-controlled my robot!");
« 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.
// Display robot TCP posevar pose = robot.Rtde.OutputDataValues.ActualTcpPose;// pose.X, pose.Y, pose.Z, pose.Rx, ...// Display robot TCP forcevar force = robot.Rtde.OutputDataValues.ActualTcpForce;// Write data in robot controlervar inputs = new RtdeInputValues();inputs.StandardAnalogOutput0 = 0.2;inputs.InputBitRegisters.X64 = true;robot.Rtde.WriteInputs(inputs);// Display all program and installation variablesvar variables = robot.PrimaryInterface.GlobalVariables.GetAll();string name = variables[0].Name;Pose value = variables[0].ToPose();GlobalVariableTypes type = variables[0].Type;
// Ask robot to execute a movejrobot.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 folderSftpFile[] items = robot.Sftp.ListDirectory("/home/ur/ursim-current/programs/");// Download program file prg.urp to your local diskrobot.Sftp.DownloadFile("/home/ur/ursim-current/programs/prg.urp", @"C:\temp\prg.urp");// Send a local file to the robotrobot.Sftp.UploadFile(@"C:\temp\prg.urp", "/home/ur/ursim-current/programs/prg.urp");// Manipulate files and directoriesrobot.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 !");// ...
Votre logiciel peut être serveur et permettre au robot de s’y connecter pour récupérer des informations :
// Robot connects with URScipt function socket_open()robot.SocketCommunication.SocketClientConnection += (o, e) =>{// Reply to the robote.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 clientsrobot.SocketCommunication.SocketWrite("123456");
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.
// Create X, Y, Z, RX, RY, RZ posevar pose = new Pose(0.1, 0.2, -0.1, 0, 0.05, 0.1);// Convert cartesian pose type to RPY or rotation vectorvar rpy = pose.FromRotationVectorToRPY();var vectorPose = pose.FromRPYToRotationVector();// Decompile program and installation files and access inner XMLURInstallation installation = URInstallation.Load("C:\\temp\\default.installation");URProgram prg = URProgram.Load("C:\\temp\\prg.urp");XElement internalXml = prg.XML;
Il s'agit d'une bibliothèque logicielle de qualité industrielle qui requiert une license d'utilisation. L'achat d'une licence permet à votre entreprise, quel que soit le nombre de développeur, de développer dans n'importe lequel des langages proposés et de distribuer un nombre illimité de logiciels à un nombre illimité de vos clients sans frais récurrents.
La bibliothèque dispose des mêmes fonctionnalités dans plusieurs langages.
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.
Pour obtenir une license d'un de nos produits, vous pouvez soit commander directement à UnderAutomation, soit passer par un nos distributeurs.