¿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.
Cree rápidamente aplicaciones que se comuniquen con su cobot de Universal Robots en .NET, Python, Labview o Matlab.
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.
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 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" 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 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 !");// ...
Su software puede ser un servidor y permitir que el robot se conecte a él para recuperar información:
// 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");
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 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;
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.
Admitimos todas las divisas, póngase en contacto con nosotros para obtener un presupuesto personalizado.
Admitimos todas las divisas, póngase en contacto con nosotros para obtener un presupuesto personalizado.
La biblioteca tiene la misma funcionalidad en varios idiomas.
Esta librería de software le ahorra tiempo de desarrollo y le garantiza su funcionamiento independientemente del modelo y del firmware de su robot.
Puede descargar la última versión desde la página de descargas en el lenguaje de programación que desee.
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.
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.
Puede solicitar inmediatamente un presupuesto directamente desde la página de pedidos de este sitio web. También puede ponerse en contacto con nosotros.
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.
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.
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.