Universal Robots

Cree rápidamente aplicaciones que se comuniquen con su cobot de Universal Robots en .NET, Python, Labview o Matlab.

Características

La biblioteca implementa todos los protocolos nativos de los cobots de Universal Robots en varios idiomas, lo que permite a su ordenador sincronizar y controlar el brazo del robot de forma remota.

Mando a distancia

El protocolo Dashboard Server que permite enviar comandos al robot de forma remota a través de TCP/IP. Por ejemplo, puedes encender o apagar el brazo del robot, liberar los frenos, cargar un programa, hacerlo funcionar o detenerlo.

// 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();
robot.Dashboard.ReleaseBrake();
// Load program file to polyscope
robot.Dashboard.LoadProgram("fast_bin_picking.urp");
// Start the program
robot.Dashboard.Play();
// 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!");

Intercambio de medidas

"Primary Interface" y "RTDE" (Intercambio de datos en tiempo real) le permiten recibir un flujo de medición del robot de hasta 500 Hz que contiene mucha información: posición, estado, entradas y salidas, el valor de las variables del programa, etc. Su aplicación puede así sincronizarse con el robot. Además, es posible escribir registros compartidos en el robot a gran velocidad.

// 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;

Guión y programa

  • Puede enviar líneas de script URScript para que se ejecuten a través de un socket TCP/IP.
  • Las funciones le permiten construir y editar un archivo de programa *.urp localmente y luego transferirlo al controlador UR para su ejecución.

// 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 !");
// ...

Enchufe a medida

Su software puede ser un servidor y permitir que el robot se conecte a él para recuperar información:

  • XML-RPC: El robot puede conectarse con la función "rpc_factory" y llamar a métodos con argumentos remotos en su programa que pueden devolver valores.
  • Socket: Servidor TCP/IP clásico al que el robot puede conectarse con la función "socket_open" y luego dialogar con su aplicación en ambas direcciones.

// 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");

Caja de herramientas offline

Esta biblioteca ofrece funciones que pueden utilizarse sin tener un robot UR en la red. Por ejemplo, es posible convertir los tipos de posición. Su software también puede abrir los archivos nativos de programa *.urp y de instalación *.installation y editar su contenido.

// 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();
// 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;

Y más...

  • Primary / Secondary interface
  • RTDE (Real-Time Data Exchange)
  • Dashboard server
  • Interpreter Mode
  • Sockets
  • XML-RPC
  • SSH
  • SFTP
  • ...

Certificación UR+

Los equipos técnicos y de ventas de Universal Robots han auditado esta biblioteca. Certifican que es compatible y se integra perfectamente con sus robots y su ecosistema.

Precios

Se trata de una biblioteca de software de uso industrial que requiere una licencia de uso. La compra de una licencia permite a su empresa, independientemente del número de desarrolladores, desarrollar en cualquiera de los idiomas ofrecidos y distribuir un número ilimitado de productos de software a un número ilimitado de sus clientes sin costes recurrentes.

Ver condiciones generales

Gratis

  • Acceso a todas las funciones durante 30 días
  • Se proporcionan ejemplos para varias plataformas, como Python, Winforms, Console (para Windows, Linux y MacOS) y LabVIEW
  • Prórroga del periodo de prueba previa solicitud

Licencia del sitio

990 €

Admitimos todas las divisas, póngase en contacto con nosotros para obtener un presupuesto personalizado.

  • SDK con todas las funciones para siempre: no se requiere una suscripción recurrente
  • Puede utilizarse dentro de la organización del licenciatario en la ubicación especificada
  • Puede ser utilizado por varios promotores en el lugar especificado
  • Cualquier aplicación desarrollada con el SDK puede ser entregada a un número ilimitado de clientes sin derechos de autor
  • 1 año de mantenimiento incluido (acceso a las actualizaciones)
  • Póngase en contacto con nosotros para realizar el pago por transferencia bancaria. Una vez que haya adquirido la licencia de este SDK, recibirá su número de licencia y la factura por correo electrónico.

Licencia del sitio para la investigación académica

594 €

990 €

Admitimos todas las divisas, póngase en contacto con nosotros para obtener un presupuesto personalizado.

  • Licencia del sitio con un 40% de descuento
  • Descuento exclusivo para proyectos académicos o de investigación

Licencia del código fuente

9900 €

Admitimos todas las divisas, póngase en contacto con nosotros para obtener un presupuesto personalizado.

  • Código interno completo de la biblioteca en C#
  • Solución de Visual Studio con 110.000 líneas de código desarrolladas durante varios años
  • Puede modificar este código fuente y utilizarlo en su aplicación, dentro de los límites definidos en las condiciones generales de uso

Preguntas frecuentes

¿Cuál es el beneficio de una biblioteca de software de este tipo?

Esta librería de software le ahorra tiempo de desarrollo y le garantiza su funcionamiento independientemente del modelo y del firmware de su robot.

¿Cómo puedo hacer la prueba?

Puede descargar la última versión desde la página de descargas en el lenguaje de programación que desee.

Necesito ayuda para desarrollar el software de comunicación con mi cobot

Somos especialistas en este campo y podemos ayudarle gratuitamente con el soporte técnico incluido en este SDK. También puede solicitarnos el desarrollo de software industrial en general. Respondemos a todos los mensajes y estaremos encantados de ayudarle.

¿Cómo puedo probar la biblioteca?

La página de descargas de este sitio web le permite obtener ejemplos en el idioma que desee. A continuación, puede consultar la documentación para empezar a utilizar la biblioteca.

¿Puedo obtener un presupuesto?

Puede solicitar inmediatamente un presupuesto directamente desde la página de pedidos de este sitio web. También puede ponerse en contacto con nosotros.

Algunos ejemplos no funcionan

Compruebe en las propiedades del archivo descargado que Windows no ha bloqueado el archivo. Si los ejemplos se ejecutan correctamente, compruebe que el comando PING en el robot tiene éxito. Compruebe también que su cortafuegos y su software antivirus permiten la conexión con el robot. Por último, compruebe la configuración de seguridad del robot.

¿Qué hay de nuevo en cada versión?

Cada versión incluye parches y nuevas funciones. En GitHub encontrará el historial de las versiones, así como los cambios realizados. No dude en ponerse en contacto con nosotros para presentar sus ideas de evolución.

Después de la actualización, mi aplicación ya no compila

Poco a poco, la biblioteca se fue enriqueciendo con nuevas funciones. Hasta la versión 5, todas las funciones y protocolos se desarrollaban en la misma clase, lo que resultaba confuso. A partir de la versión 6, todas las funciones son independientes y se desarrollan en clases separadas. Póngase en contacto con nosotros para que le ayudemos a migrar, o descargue la última versión 5.X.X.X de GitHub, que sigue siendo compatible con todas las versiones anteriores.