UnderAutomation
Eine Frage?

[email protected]

Kontakt
UnderAutomation
⌘Q

Universal Robots SDK

GitHub stars
1100 (EUR)1300 (USD)

1100

fürs Leben

660

für Universitäten (40 % Rabatt)

Erstellen Sie schnell Anwendungen, die mit Ihrem Universal Robots Cobot kommunizieren, in .NET, Python, Labview oder Matlab.

Wählen Sie die richtige Lizenz für Ihr Projekt
BefehlAngebot anfordern

.NET

Python

LabVIEW

Siehe Bedingungen und Konditionen
Plug & Play

Verbinden Sie Ihren Roboter in nur wenigen Minuten. Kein zu installierender Lizenzmanager, kein USB-Stick. Verweisen Sie nur auf die Bibliothek.

Keine Plugins für den Roboter zu installieren

Verwendung von Netzwerkprotokollen, die vom Robotercontroller als Standard bereitgestellt werden.
URCaps ROS

30-tägige Testversion

Versuchen Sie es 30 Tage lang kostenlos, keine Verpflichtung, keine Registrierung erforderlich

Einmal bezahlen, für immer benutzen

Unbefristete Lizenz, kein Abonnement erforderlich, unabhängig von der Anzahl der Roboter, Entwickler oder weiterverteilten Software

UR+-Zertifizierung

Die technischen und kaufmännischen Teams von Universal Robots haben diese Bibliothek geprüft. Sie bescheinigen, dass sie konform ist und sich nahtlos in ihre Roboter und ihr Ökosystem einfügt.

Siehe auf universal-robots.com

Funktionen

Die Bibliothek implementiert in mehreren Sprachen alle nativen Protokolle der Universal Robots Cobots, sodass Ihr Computer sich synchronisieren und den Roboterarm aus der Ferne steuern kann.

Aus der Ferne steuern

Mit den Protokollen „REST API“ und „DASHBOARD SERVER“ können Sie Befehle aus der Ferne über TCP/IP an den Roboter senden. Sie können beispielsweise den Roboterarm ein- oder ausschalten, die Bremsen lösen, ein Programm laden, ausführen oder stoppen.
// 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(); // or robot.Rest.PowerOn(); for PolyscopeX
robot.Dashboard.ReleaseBrake(); // or robot.Rest.ReleaseBrake(); for PolyscopeX
// Load program file to polyscope
robot.Dashboard.LoadProgram(
"fast_bin_picking.urp"); // or robot.Rest.LoadProgram("fast_bin_picking.urp"); for PolyscopeX
// Start the program
robot.Dashboard.Play(); // or robot.Rest.Play(); for PolyscopeX
// 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!");

Messungen austauschen

"Primary Interface" und "RTDE" (Real-Time Data Exchange) ermöglichen es, einen Messstrom vom Roboter mit bis zu 500 Hz zu empfangen, der zahlreiche Informationen enthält: Position, Status, Eingänge und Ausgänge, den Wert von Programmvariablen, ... So kann sich Ihre Anwendung mit dem Roboter synchronisieren. Außerdem ist es möglich, den Roboter mit hoher Geschwindigkeit in gemeinsam genutzte Register zu schreiben.
// 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;

Skript und Programm

  • Sie können URScript-Zeilen, die ausgeführt werden sollen, über TCP/IP-Socket senden.
  • Mithilfe von Funktionen können Sie eine *.urp-Programmdatei lokal aufbauen und bearbeiten und sie dann zur Ausführung an den UR-Controller übertragen.
// 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 !");
// ...

Benutzerdefinierte Socke

Ihre Software kann ein Server sein und dem Roboter erlauben, sich mit ihr zu verbinden, um Informationen abzurufen :
  • XML-RPC: Der Roboter kann sich mit der Funktion "rpc_factory" verbinden und in Ihrem Programm Methoden mit Fernargumenten aufrufen, die Werte zurückgeben können.
  • Socket: Klassischer TCP/IP-Server, mit dem sich der Roboter mit der Funktion "socket_open" verbinden und dann mit Ihrer Anwendung in beide Richtungen dialogisieren kann.
// 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");

Kinematik und Offline -Toolbox

Diese Bibliothek bietet Funktionen, die verwendet werden können, ohne einen UR -Roboter für das Netzwerk zu haben. Zum Beispiel ist es möglich, Arten von Positionen zu konvertieren. Ihre Software kann auch native Dateien Programm *.URP und Installation *öffnen. Installation und Bearbeiten des Inhalts. Es ermöglicht es auch, eine kartesische Position in Positionen in Gelenke umzuwandeln und umgekehrt.
// 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();
// Get default DH parameters for UR3e robot model
IUrDhParameters dhParameters = KinematicsUtils.GetDhParametersFromModel(RobotModelsExtended.UR3e);
// Calculate forward kinematics for given joint angles in radians
KinematicsResult fkResult = KinematicsUtils.ForwardKinematics(new double[] { 0, -1.57, 1.57, 0, 0, 0 }, dhParameters);
// Convert the matrix transform to a Pose (X, Y, Z, RX, RY, RZ)
Pose cartesianPosition = Pose.From4x4MatrixToRotationVector(fkResult.ToolTransform);
// Calculate inverse kinematics for given cartesian pose
var matrix = vectorPose.FromRotationVectorTo4x4Matrix();
double[][] ikSolutions = KinematicsUtils.InverseKinematics(matrix, dhParameters);
// 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;

Und mehr...

  • Primary / Secondary interface
  • RTDE (Real-Time Data Exchange)
  • Dashboard server
  • REST API (PolyscopeX only)
  • Interpreter Mode
  • Sockets
  • XML-RPC
  • SSH
  • SFTP
  • Forward & Inverse Kinematics
  • ...
Lesen Sie die Dokumentation

Kundenerfolgsgeschichten

Entdecken Sie, wie unsere Kunden UnderAutomation-Lösungen in ihre Industrieprojekte integrieren.

AbbVie
Biotech / Pharma

AbbVie: Automating High-throughput screening

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

Legen Sie jetzt los!

Die Bibliothek verfügt in mehreren Sprachen über die gleichen Funktionen.

Durchsuchen Sie die Dokumentation

Mit der Dokumentation können Sie sich schnell mit der Bibliothek entwickeln. Die gleiche Funktionalität ist in allen unterstützten Sprachen verfügbar.

Preise

Bibliotheken können kostenlos heruntergeladen und 30 Tage lang getestet werden. Nach diesem Zeitraum können Sie uns bitten, den Testzeitraum zu verlängern oder die Lizenz zu kaufen, die am besten geeignet ist: Website (nur verdeckte binäre) oder Quelle (Quellcode). Nach dem Kauf haben Sie eine einjährige Wartungszeit, mit der Sie vorrangigen Zugriff auf die Unterstützung und die Möglichkeit der Aktualisierung erhalten. Wenn Sie eine Nutzungslizenz kaufen, ist sie mit einer Robotermarke verknüpft, können Sie sie für immer verwenden, ohne wiederkehrende Gebühren, unabhängig von der Anzahl der Roboter, Entwickler oder Software, die Sie Ihren Kunden umverteilen. Wenn Sie ein Händler sind und Ihren Kunden eines unserer Produkte anbieten möchten, kontaktieren Sie uns bitte, um besondere Bedingungen und Preise zu besprechen.

Standard-Site-Lizenz

1100 (EUR)$1300 (USD)

1100

fürs Leben

660

für Universitäten (40 % Rabatt)
Für den persönlichen Gebrauch oder agile Entwickler, die Proofs of Concept oder leichtgewichtige Projekte erstellen.
1 Jahr Wartung inklusive (Zugriff auf Updates)
Dieselben Bedingungen wie bei der Pro-Lizenz, außer dass der Support nicht priorisiert wird, keine Fernunterstützung enthalten ist und die Wartung nur 1 Jahr beträgt.
Es gibt keine internen Quellen; Es wird nur die verschleierte DLL bereitgestellt.
Keine Unterstützung per Videokonferenz (nur per E-Mail).
Wählen Sie die richtige Lizenz für Ihr Projekt
Jetzt kaufen
Am beliebtesten

1700

2500
fürs Leben

1020

für Universitäten (40 % Rabatt)
Für geschäftskritische Produktionsumgebungen, die vorrangigen Support und langfristige Stabilität erfordern.
3 Jahre Wartung inklusive (Zugriff auf Updates), ohne Verlängerungsaufträge während dieser Laufzeit (kein Papierkram)
Vollständiges und dauerhaftes SDK: Es ist kein wiederkehrendes Abonnement erforderlich, die Lizenz ist für immer Ihnen und funktioniert in allen Programmiersprachen für eine Robotermarke.
Kann nur von der Organisation verwendet werden, die die Lizenz an der angegebenen Postanschrift hält. Alle Teamentwickler teilen die gleiche Lizenz, unabhängig von der Anzahl der Entwicklungsmaschinen.
Jede Anwendung, die mit dem SDK entwickelt wurde, kann unbegrenzt an eine unbegrenzte Anzahl Ihrer Kunden ohne zusätzliche Kosten geliefert werden, unabhängig von der Anzahl der Roboter, die eine Verbindung herstellen können.
Die Lizenz ist eine Art Passwort, das Sie im Code aufrufen können, der die Funktionalität freischaltet. Keine zusätzliche Software zu installieren. Kein USB -Schlüssel.
Prioritärer Support (durchschnittlich <24 Stunden)
Fernunterstützung (E-Mail und bis zu 2 Stunden Videokonferenz)
Es gibt keine internen Quellen; Es wird nur die verschleierte DLL bereitgestellt.
Jederzeit Upgrade auf Source (Zahlung der Differenz)
Jetzt kaufen

Quellcodelizenz

3400 (EUR)$4000 (USD)

3400

fürs Leben

2040

für Universitäten (40 % Rabatt)
Für völlige technische Souveränität, umfassende Individualisierung und völlige Unabhängigkeit.
Gleiche Bedingungen wie bei der Pro-Lizenz
Vollständiger interner Code der Bibliothek in C
Visual Studio-Lösung, die Tausende von Codezeilen umfasst, die über mehrere Jahre entwickelt wurden
Sie können diesen Quellcode ändern und in Ihrer Anwendung im Rahmen der in den Allgemeinen Nutzungsbedingungen festgelegten Grenzen verwenden
Jetzt kaufen

Häufig gestellte Fragen

Welchen Nutzen hat eine solche Softwarebibliothek?

Diese Softwarebibliothek spart Ihnen Entwicklungszeit und gewährleistet, dass sie unabhängig vom Modell und der Firmware Ihres Roboters funktioniert.

Wie kann ich testen?

Sie können die neueste Version von der Download-Seite in der Programmiersprache Ihrer Wahl herunterladen.

Ich benötige Hilfe bei der Entwicklung der Software für die Kommunikation mit meinem Cobot.

Wir sind Spezialisten auf diesem Gebiet und können Ihnen im Rahmen des technischen Supports, der in diesem SDK enthalten ist, kostenlos helfen. Sie können uns auch für allgemeine industrielle Softwareentwicklung anfragen. Wir beantworten alle Nachrichten und helfen Ihnen gerne weiter.

Wie kann ich die Bibliothek testen?

Auf der Download-Seite dieser Website können Sie Beispiele in der Sprache Ihrer Wahl herunterladen. Anschließend können Sie sich die Dokumentation ansehen, um die Bibliothek in den Griff zu bekommen.

Kann ich einen Kostenvoranschlag bekommen?

Sie können sofort einen Kostenvoranschlag direkt von der Bestellseite dieser Website aus anfordern. Sie können auch mit uns Kontakt aufnehmen.

Einige Beispiele funktionieren nicht

Bitte überprüfen Sie in den Eigenschaften des heruntergeladenen Archivs, ob Windows die Datei nicht gesperrt hat. Wenn die Beispiele korrekt starten, überprüfen Sie bitte, ob der PING-Befehl an den Roboter erfolgreich ist. Überprüfen Sie auch, ob Ihre Firewall und Ihr Antivirusprogramm eine Verbindung mit dem Roboter zulassen. Überprüfen Sie schließlich die Sicherheitseinstellungen des Roboters.

Was sind die Neuerungen in jeder Version?

Jede Version enthält sowohl Fehlerbehebungen als auch neue Funktionen. Auf GitHub finden Sie die Versionsgeschichte und die vorgenommenen Änderungen. Bitte kontaktieren Sie uns, wenn Sie Ideen für weitere Entwicklungen haben.

Nach der Aktualisierung kompiliert meine Anwendung nicht mehr

Nach und nach wurde die Bibliothek um neue Funktionen erweitert. Bis Version 5 wurden alle Funktionen und Protokolle in der gleichen Klasse entwickelt, was zu Verwirrung führte. Ab Version 6 sind alle Funktionen unabhängig und werden in separaten Klassen entwickelt. Bitte kontaktieren Sie uns, um Ihnen bei der Migration zu helfen, oder laden Sie die neueste Version 5.X.X.X von GitHub herunter, die weiterhin mit allen älteren Versionen kompatibel ist.

Presseartikel


Integrieren Sie problemlos Universal Robots-, Fanuc-, Yaskawa- oder Staubli-Roboter in Ihre .NET-, Python-, LabVIEW- oder Matlab-Anwendungen

UnderAutomation
KontaktLegal

© All rights reserved.