UnderAutomation
¿Una pregunta?

[email protected]

Contactos
UnderAutomation
⌘Q

Staubli SDK

GitHub stars
300 (EUR)350 (USD)

300

de por vida

180

para universidades (40% de descuento)

Cree rápidamente aplicaciones .NET que se comuniquen con su robot industrial Staubli.

Elija la licencia adecuada para su proyecto
PedirSolicitar un presupuesto

.NET

Python

LabVIEW

Ver condiciones generales
Plug & Play

Conecta tu robot en tan solo unos minutos. No es necesario instalar un administrador de licencias ni una llave USB. Sólo haga referencia a la biblioteca.

No hay complementos para instalar en el robot

Uso de protocolos de red proporcionados como estándar por el controlador de robots.
ROS

Prueba de 30 días

Pruébelo gratis durante 30 días, sin compromiso, no se requiere registro

Pagar una vez, use para siempre

Licencia perpetua, no se requiere suscripción, independientemente del número de robots, desarrolladores o software redistribuido

Staubli Communication Library

Implementa los protocolos Ethernet disponibles de forma nativa en los robots Staubli
100% managed assembly
Rápida integración con los controladores CS8 y CS9
Biblioteca moderna y bien documentada
No se necesita una llave USB física

  1. Características del SDK Staubli: protocolo SOAP para CS8 & CS9

    Mover el robot

    Encendido remoto y envío de comandos de movimiento en articulaciones o coordenadas cartesianas.
    // Power on the controller
    PowerReturnCode powerOnStatus = controller.Soap.SetPower(power: true);
    // Move linear to cartesian position
    IMoveResult moveLResult = controller.Soap.MoveL(
    robot: 0,
    position,
    motionDesc
    );
    // Move joints to cartesian position
    IMoveResult moveJCResult = controller.Soap.MoveJC(
    robot: 0,
    position,
    motionDesc
    );
    // Move joints to joint position
    IMoveResult moveJResult = controller.Soap.MoveJJ(
    robot: 0,
    joints,
    motionDesc
    );
    // Move Circular
    IMoveResult moveCResult = controller.Soap.MoveC(
    robot: 0,
    position,
    position2,
    motionDesc
    );
    // Stop motion
    MotionReturnCode stopStatus = controller.Soap.StopMotion();
    // Reset motion
    MotionReturnCode resetStatus = controller.Soap.ResetMotion();
    // Restart motion
    MotionReturnCode restartStatus = controller.Soap.RestartMotion();

    Aplicaciones de manipulación

    Cargar, iniciar, detener, pausar y supervisar la ejecución de tareas.
    // Load project from disk
    controller.Soap.LoadProject("Disk://myProject/myProject.pjx");
    ValApplication[] applications = controller.Soap.GetValApplications();
    foreach (var application in applications)
    Console.WriteLine($"Application: {application.Name}, Running: {application.IsRunning}");
    // Unload all applications
    controller.Soap.StopAndUnloadAll();
    // Stop running application
    controller.Soap.StopApplication();
    // Get tasks
    ControllerTask[] tasks = controller.Soap.GetTasks(); // Get all tasks
    foreach (var task in tasks)
    {
    Console.WriteLine($"Task: {task.Name}");
    Console.WriteLine($"reated by: {task.CreatedBy}"); // i.e. Disk://myProject/myProject.pjx
    Console.WriteLine($"Line: {task.ProgramLine}");
    Console.WriteLine($"State: {task.State}");
    }
    // Kill task
    controller.Soap.TaskKill(tasks[0].Name, tasks[0].CreatedBy);
    // Suspend task
    controller.Soap.TaskSuspend(tasks[0].Name, tasks[0].CreatedBy);
    // Resume task
    controller.Soap.TaskResume(tasks[0].Name, tasks[0].CreatedBy);

    Posición actual

    Obtener la posición actual del robot, incluidas las coordenadas cartesianas y los ángulos de las articulaciones.
    // Get the current flange position of the first robot in world coordinates
    CartesianJointPosition position = controller.Soap.GetCurrentCartesianJointPosition(robot: 0, tool: null, frame: null);
    double[] jointPosition1 = position.JointsPosition; // Joint position in radians
    CartesianPosition cartesianPosition = position.CartesianPosition;
    Console.WriteLine($"X: {cartesianPosition.X}, Y: {cartesianPosition.Y}, Z: {cartesianPosition.Z}");
    Console.WriteLine($"Rx: {cartesianPosition.Rx}, Ry: {cartesianPosition.Ry}, Rz: {cartesianPosition.Rz}");
    // ---------------
    // Get only the current joint position of the first robot
    double[] jointPosition2 = controller.Soap.GetCurrentJointPosition(robot: 0);
    // ---------------
    // Get the joint ranges (min/max angle of each joint)
    controller.Soap.GetJointRange(robot: 0);

    Calcular la posición cartesiana a partir de los ángulos articulares y viceversa.

    Calcular la posición cartesiana a partir de los ángulos articulares y viceversa.
    // Get forward kinematics
    IForwardKinematics fk = controller.Soap.ForwardKinematics(
    robot: 0, // Index of the robot (0 for the first robot)
    joints // double[] of joint positions in radians
    );
    // Position matrix
    Frame position = fk.Position;
    // Position configuration
    Config config = fk.Config; // i.e. Righty/Lefty, Elbow Positive/Negtive, ...
    // -----------------
    // Get inverse kinematics
    IReverseKinematics ik = controller.Soap.ReverseKinematics(
    robot: 0, // Index of the robot (0 for the first robot)
    joints,
    position,
    config,
    range
    );
    if (ik.Result == ReversingResult.Success)
    foreach (double joint in ik.Joint) Console.WriteLine(joint);

    Información

    Obtenga las características del controlador y los robots que se controlan, incluido el modelo, la versión de software, el estado de la alimentación y mucho más.
    Robot[] robots = controller.Soap.GetRobots(); // Get all robots driven by the controller
    foreach (var robot in robots)
    {
    Console.WriteLine($"Arm: {robot.Arm}"); // i.e. TX2-140
    Console.WriteLine($"Mount type: {robot.MountType}"); // i.e. Floor, Ceiling, Wall
    Console.WriteLine($"Kinematic: {robot.Kinematic}"); // i.e. ANTHROPOMORPH6, SCARA, ...
    // see Robot class for more properties
    }
    // ---------------
    Parameter[] controllerParams = controller.Soap.GetControllerParameters(); // Get controller parameters
    foreach (var param in controllerParams)
    Console.WriteLine($"{param.Name} = {param.Value}"); // i.e. CycleTime = 0.004s
    // ---------------
    DhParameters[] dhParameters = controller.Soap.GetDhParameters(robot: 0); // Get DH parameters of the first robot
    foreach (var dh in dhParameters)
    Console.WriteLine($"{dh.Alpha} - {dh.Beta} - {dh.Theta} - {dh.A} - {dh.D}");

    Entradas / Salidas

    Listar, leer y escribir entradas y salidas del controlador
    // Get all physical I/O ports of the controller
    PhysicalIo[] ios = controller.Soap.GetAllPhysicalIos();
    foreach (var io in ios)
    {
    Console.WriteLine($"Name: {io.Name}");
    Console.WriteLine($"Type: {io.Description}");
    Console.WriteLine($"Lockable: {io.Lockable}"); // i.e. true, false
    Console.WriteLine($"Description: {io.TypeStr}"); // i.e. din, dout, ain, serial
    }
    // -----------------
    // Read I/Os value
    PhysicalIoState[] values = controller.Soap.ReadIos(new[] { @"Socket\test", @"Serial\0", @"FastIO\fOut1", @"CpuUsage\val3" });
    foreach (var value in values)
    {
    Console.WriteLine("Value: " + value.Value);
    Console.WriteLine("Locked: " + value.Locked);
    Console.WriteLine("Simulated: " + value.Simulated);
    }
    // -----------------
    // Write I/Os value
    PhysicalIoWriteResponse[] response = controller.Soap.WriteIos(new[] { "my_io_1", "my_io_2" }, new double[] { 1.0, 0.0 });
    foreach (var res in response)
    Console.WriteLine($"Success: {res.Success} - Found: {res.Found}");
  2. Examinar la documentación

    Explorar la documentación

    La documentación le permite comenzar a desarrollar rápidamente con la biblioteca. La misma funcionalidad está disponible en todos los idiomas compatibles.

  3. Descargar y probar

    Descargar a través de Nuget
    Descargar a través de Nuget

    Agregue fácilmente este SDK a su proyecto Visual Studio a través del Administrador de paquetes Nuget.

    Ver en Nuget
    Ejemplos en Github
    Ejemplos en Github

    Las fuentes de ejemplos de uso de este SDK están disponibles en GitHub

    Ejemplo de aplicación de Windows
    Ejemplo de aplicación de Windows

    Le permite probar todas las características del SDK con una interfaz simple. El ejemplo se compila en "auto contenido" y "archivo único" con .NET 8. La aplicación es portátil sin instalación.

    Al descargar, acepta las condiciones generales de uso:
    Ver condiciones generales
    UnderAutomation.Staubli.Showcase.Forms.exe (139 MB)
  4. Solicitud de presupuesto y pedido

    Precios

    Las bibliotecas se pueden descargar de forma gratuita y se pueden probar durante 30 días. Después de este período, puede solicitarnos que extendamos el período de prueba o que compren la licencia que mejor se adapte a usted: Sitio (solo binario oscurecido) o fuente (código fuente). Después de comprar, tiene un período de mantenimiento de un año, lo que le brinda acceso prioritario al soporte y la posibilidad de actualizar. Cuando compra una licencia para usar, está vinculada a una marca de robot, puede usarla para siempre, sin una tarifa recurrente, independientemente de la cantidad de robot, desarrollador o software que redistribuya a sus clientes. Si usted es un distribuidor y desea ofrecer a sus clientes uno de nuestros productos, contáctenos para discutir condiciones y precios especiales.

    Licencia Sitio Estándar

    300 (EUR)$350 (USD)

    300

    de por vida

    180

    para universidades (40% de descuento)
    Diseñado para entornos industriales, brinda acceso a todas las funciones de por vida.
    1 año de mantenimiento incluido (acceso a actualizaciones)
    Mismas condiciones que la Licencia Pro, excepto que no se prioriza el soporte y el mantenimiento es de 1 año.
    No hay fuentes internas; sólo se proporciona la DLL ofuscada.
    No hay asistencia por videoconferencia (solo vía correo electrónico).
    Comprar ahora
    Mas popular

    Licencia Pro

    600 (EUR)$700 (USD)

    600

    900
    de por vida

    360

    para universidades (40% de descuento)
    Para entornos de producción críticos que requieren soporte prioritario y mantenimiento a largo plazo.
    3 años de mantenimiento incluido (acceso a actualizaciones) sin pedidos de renovación durante este plazo (cero trámites)
    SDK completo y permanente: no se requiere una suscripción recurrente, la licencia es suya para siempre y funciona en todos los lenguajes de programación para una marca robot.
    Solo puede ser utilizado por la organización que posee la licencia, en la dirección postal indicada. Todos los desarrolladores del equipo compartirán la misma licencia, independientemente del número de máquinas de desarrollo.
    Cualquier aplicación desarrollada utilizando el SDK se puede entregar a un número ilimitado de sus clientes sin costo adicional, independientemente del número de robots para conectarse.
    La licencia es un tipo de contraseña para llamar al código que desbloquea la funcionalidad. No hay software adicional para instalar. No hay clave USB.
    Soporte Prioritario (<24h en promedio)
    Asistencia remota (correo electrónico y hasta 2h videoconferencia)
    No hay fuentes internas; sólo se proporciona la DLL ofuscada.
    Actualiza a Source en cualquier momento (paga la diferencia)
    Comprar ahora

    Licencia de código fuente

    1200 (EUR)$1400 (USD)

    1200

    de por vida

    720

    para universidades (40% de descuento)
    Para una soberanía técnica completa, una personalización profunda y una independencia total.
    Mismas condiciones que la licencia pro
    Código interno completo de la biblioteca en C#
    Solución de Visual Studio que incluye miles de líneas de código desarrolladas a lo largo de varios años.
    Puedes modificar este código fuente y utilizarlo en tu aplicación, dentro de los límites definidos en las condiciones generales de uso.
    Compatible con agentes de codificación IA (Claude, Copilot, Cursor, Codex...) gracias al acceso completo al código fuente y los archivos de contexto incluidos (AGENTS.md) que dan al LLM conocimiento exacto de los internals del SDK
    Comprar ahora

Integre fácilmente robots Universal Robots, Fanuc, Yaskawa, ABB o Staubli en sus aplicaciones .NET, Python, LabVIEW o Matlab

UnderAutomation
ContactosLegal

© All rights reserved.