UnderAutomation
Une question ?

[email protected]

Contactez-nous
UnderAutomation
⌘Q

Staubli SDK

GitHub stars
300 (EUR)350 (USD)

300

Pour toujours

180

pour les universités (40% de réduction)

Créez rapidement des applications .NET qui communiquent avec votre robot industriel Staubli.

Choisissez la bonne licence pour votre projet
CommanderDemander un devis

.NET

Python

LabVIEW

Voir les conditions générales d'utilisation
Plug & Play

Connectez votre robot en quelques minutes seulement. Pas de gestionnaire de license à installer, pas de clé USB. Référencez seulement la bibliothèque.

Pas de plugins à installer sur le robot

Utilisation des protocoles réseau fournis en standard par le contrôleur de robot.
ROS

Essai de 30 jours

Essayez-le gratuitement pendant 30 jours, aucun engagement, aucun enregistrement requis

Payer une fois, utiliser pour toujours

Licence perpétuelle, aucun abonnement requis, quel que soit le nombre de robots, de développeurs ou de logiciels redistribués

Staubli Communication Library

Implémente les protocoles Ethernet disponibles nativement sur les robots Staubli
100% managed assembly
Intégration rapide avec les controlleurs CS8 et CS9
Bibliothèque moderne et documentée
Aucune licence physique clé USB requise

  1. Fonctionnalités du SDK Staubli : protocole SOAP pour CS8 & CS9

    Déplacer le robot

    Mise en puissance à distance et envoi de commandes de mouvement en joint ou coordonnées cartésiennes.
    // 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();

    Manipuler les applications

    Charger, lancer, arrêter, mettre en pause et superviser l'exécution de taches.
    // 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);

    Position actuelle

    Obtenir la position actuelle du robot, y compris les coordonnées cartésiennes et les angles des joints.
    // 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);

    Calculer la position cartésienne à partir des angles des joints et vice versa.

    Calculer la position cartésienne à partir des angles des joints et vice versa.
    // 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);

    Informations

    Obtenir les caractéristiques du controlleurs et des robots pilotés, y compris le modèle, la version du logiciel, l'état de l'alimentation et plus encore.
    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}");

    Entrées / Sorties

    Lister, lire et écrire des entrées et sorties du controlleur
    // 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. Parcourir la documentation

    Parcourir la documentation

    La documentation vous permet de commencer rapidement à vous développer avec la bibliothèque. La même fonctionnalité est disponible dans toutes les langues prises en charge.

  3. Télécharger et tester

    Télécharger via NuGet
    Télécharger via NuGet

    Ajouter facilement ce SDK à votre projet Visual Studio via le gestionnaire de package NuGet.

    Voir sur Nuget
    Exemples sur GitHub
    Exemples sur GitHub

    Les sources des exemples d'utilisation de ce SDK sont disponibles sur GitHub

    Exemple d'application Windows
    Exemple d'application Windows

    Permet de tester toutes les fonctionnalités du SDK avec une interface simple. L'exemple est compilé en "Self Contained" et "Single File" avec .NET 8. L'application est portable sans installation.

    En téléchargeant, vous acceptez les conditions générales d'utilisation :
    Voir les conditions générales d'utilisation
    UnderAutomation.Staubli.Showcase.Forms.exe (139 MB)
  4. Demander un devis et commander

    Tarifs

    Les bibliothèques sont téléchargeables gratuitement et peuvent être testées pendant 30 jours. Passé ce délai, vous pouvez nous demander de prolonger la période d'essai, ou acheter la licence qui vous convient le mieux : site (binaires obscurcis uniquement) ou source (code source). Après l'achat, vous disposez d'une période de maintenance d'un an, vous donnant un accès prioritaire au support et la possibilité de mettre à jour. Lorsque vous achetez une licence d'utilisation, elle est liée à une marque de robot, vous pouvez l'utiliser pour toujours, sans redevance récurrente, quel que soit le nombre de robot, de développeur ou de logiciel que vous redistribuez à vos clients. Si vous êtes un distributeur et souhaitez proposer à vos clients un de nos produits, merci de nous contacter pour discuter des conditions et tarifs spéciaux.

    Licence Site Standard

    300 (EUR)$350 (USD)

    300

    Pour toujours

    180

    pour les universités (40% de réduction)
    Conçu pour les environnements industriels, offrant un accès complet aux fonctionnalités à vie.
    1 an de maintenance incluse (accès aux mises à jour)
    Mêmes conditions que la Licence Pro, sauf que le support n'est pas prioritaire et la maintenance est de 1 an.
    Il n'y a pas de sources internes ; seule la DLL masquée est fournie.
    Pas d'assistance par visioconférence (uniquement par email).
    Acheter maintenant
    Le plus populaire

    Licence Pro

    600 (EUR)$700 (USD)

    600

    900
    Pour toujours

    360

    pour les universités (40% de réduction)
    Pour les environnements de production critiques nécessitant un support prioritaire et une maintenance à plus long terme.
    3 ans de maintenance incluse (accès aux mises à jour) sans commande de renouvellement pendant cette durée (zéro paperasse)
    SDK complet et permanent : aucun abonnement récurrent n'est requis, la license est à vous pour toujours et fonctionne dans tous les langages de programmation pour une marque de robot.
    Peut être utilisé uniquement par l'organisation détentrice de la licence, à l'adresse postale indiquée. Tous les développeurs de l'équipe partageront la même licence, quel que soit le nombre de machine de développement.
    Toute application développée à l'aide du SDK peut être livrée à un nombre illimité de vos clients sans frais supplémentaires, quel que soit le nombre de robots à connecter.
    La license est une sorte de mot de passe à appeler dans le code qui débloque les fonctionnalités. Pas de logiciel supplémentaire à installer. Pas de clé USB.
    Support prioritaire (<24h en moyenne)
    Assistance à distance (email et jusqu'à 2h de visioconférence)
    Il n'y a pas de sources internes ; seule la DLL masquée est fournie.
    Passez à Source à tout moment (payez la différence)
    Acheter maintenant

    Licence Source

    1200 (EUR)$1400 (USD)

    1200

    Pour toujours

    720

    pour les universités (40% de réduction)
    Pour une totale souveraineté technique, une personnalisation poussée et une indépendance totale.
    Mêmes conditions que la licence pro
    Code interne complet de la bibliothèque en C#
    Solution Visual Studio comprenant des milliers de lignes de code développées sur plusieurs années
    Vous pouvez modifier ce code source et l'utiliser dans votre application, dans les limites définies dans les conditions générales d'utilisation.
    Compatible avec les agents IA de codage (Claude, Copilot, Cursor, Codex...) grâce à l'accès au code source complet et aux fichiers de contexte inclus (AGENTS.md) qui donnent au LLM une connaissance précise des internals du SDK
    Acheter maintenant

Intégrez facilement les robots Universal Robots, Fanuc, Yaskawa, ABB ou Staubli dans vos applications .NET, Python, LabVIEW ou Matlab

UnderAutomation
Contactez-nousLegal

© All rights reserved.