Staubli SDKPilotez les robots Stäubli depuis votre logiciel
Créez rapidement des applications en .NET, Python ou LabVIEW qui communiquent avec votre robot industriel Staubli. Une bibliothèque logicielle prête à l'emploi : votre PC dialogue avec le robot par le câble réseau.
À partir de 300 € / $350, paiement unique

1// dotnet add package UnderAutomation.Staubli2using UnderAutomation.Staubli;34var controller = new StaubliController();5controller.Connect("192.168.0.254");67double[] joints = controller.Soap.GetCurrentJointPosition(robot: 0);8var tasks = controller.Soap.GetTasks();9var ios = controller.Soap.GetAllPhysicalIos();
Ce que vous obtenez
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.
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
Fonctionnalités du SDK Staubli : SOAP et FTP pour CS8 & CS9
Chaque fonctionnalité a son exemple de code. Cliquez dessus pour voir le code complet.
Déplacer le robot
Mise en puissance à distance et envoi de commandes de mouvement en joint ou coordonnées cartésiennes.
Frame intermediate = controller.Soap.ForwardKinematics(robot: 0, joints).Position;intermediate.Py += 0.05;controller.Soap.SetPower(true);// Joint move to joint values, in radiansIMoveResult result = controller.Soap.MoveJJ(robot: 0, joints, mdesc);// Joint move to a Cartesian frameresult = controller.Soap.MoveJC(robot: 0, target, mdesc);// Straight line to a Cartesian frameresult = controller.Soap.MoveL(robot: 0, target, mdesc);// Circle through an intermediate frame, to a target frameresult = controller.Soap.MoveC(robot: 0, intermediate, target, mdesc);// The controller accepted the move, or tells why notif (result.ReturnCode != MotionReturnCode.Success)Console.WriteLine($"Move {result.Id} refused: {result.ReturnCode}");controller.Disconnect();}
Manipuler les applications
Charger, lancer, arrêter, mettre en pause et superviser l'exécution de taches.
var controller = new StaubliController();controller.Connect("192.168.0.254");// Path of the project on the disk of the controllerstring project = "Disk://myProject/myProject.pjx";// Load the application in memory, without starting itcontroller.Soap.LoadProject(project);// Start itcontroller.Soap.StartApplication(project);controller.Disconnect();}
Transfert de fichiers
Lister, envoyer, télécharger et supprimer les fichiers du contrôleur, et envoyer une application VAL 3 complète en un seul appel. En FTP, ou avec le fichier .controller d'un contrôleur émulé par Staubli Robotics Suite.
var controller = new StaubliController();controller.Connect(parameters);// The application must not be in memory while its files are replacedcontroller.Soap.StopAndUnloadAll();// Copies C:\MyApps\myApp and its sub-folders to /usr/usrapp/myApp on the controllerstring remoteFolder = controller.File.UploadApplicationToController(@"C:\MyApps\myApp",progress => Console.WriteLine($"{progress:0}%"));// /usr/usrapp/myApp/myApp.pjx is Disk://myApp/myApp.pjx for the SOAP methodscontroller.Soap.LoadProject("Disk://myApp/myApp.pjx");controller.Soap.StartApplication("Disk://myApp/myApp.pjx");controller.Disconnect();}
Position et cinématique
Lire les joints et la position cartésienne du robot, et calculer la cinématique directe et inverse sur le contrôleur.
var controller = new StaubliController();controller.Connect("192.168.0.254");// Joint values in radians, here the current onesdouble[] joints = controller.Soap.GetCurrentJointPosition(robot: 0);// The controller computes the flange frame for these jointsIForwardKinematics fk = controller.Soap.ForwardKinematics(robot: 0, joints);// Position of the frame origin, and its orientation as a rotation matrixFrame frame = fk.Position;Console.WriteLine($"P = [{frame.Px}, {frame.Py}, {frame.Pz}]");// Configuration of the arm for this position (shoulder, elbow, wrist)Config config = fk.Config;Console.WriteLine(config);controller.Disconnect();}
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.
var controller = new StaubliController();controller.Connect("192.168.0.254");// The robots driven by the controller. The index in this array// is the robot number that the other methods take.Robot[] robots = controller.Soap.GetRobots();for (int i = 0; i < robots.Length; i++){Robot robot = robots[i];Console.WriteLine($"Robot {i}: {robot.Arm}"); // for example TX2-60Console.WriteLine($" Kinematic: {robot.Kinematic}"); // Anthropomorph6, Scara...Console.WriteLine($" Mount type: {robot.MountType}"); // Floor, Ceiling, WallConsole.WriteLine($" Tuning: {robot.Tuning}");}controller.Disconnect();}
Entrées / Sorties
Lister, lire et écrire des entrées et sorties du controlleur
var controller = new StaubliController();controller.Connect("192.168.0.254");// Names as returned by GetAllPhysicalIosstring[] names = { @"BasicIO-1\%I0", @"BasicIO-1\%Q0" };// One state per name, in the same orderPhysicalIoState[] states = controller.Soap.ReadIos(names);for (int i = 0; i < names.Length; i++){PhysicalIoState state = states[i];// State tells if the name exists on this controllerif (state.State != PhysicalIoEnumState.Defined){Console.WriteLine($"{names[i]}: {state.State}");continue;}Console.WriteLine($"{names[i]} = {state.Value} locked={state.Locked} simulated={state.Simulated}");}controller.Disconnect();}
Voir le SDK en action
Vidéo et captures de l'application de démonstration livrée avec le SDK.
Exemple d'application Windows
Pas de code à écrire : testez le SDK sur votre robot avec l'application de démonstration.

Exemples sur GitHub
Les sources des exemples d'utilisation de ce SDK sont disponibles sur GitHub
Exemple Python
Exemple de fonctionnement de ce SDK avec Python permettant de récupérer la position cartésienne d'un robot.
Installez-le en une commande
Choisissez votre langage. L'essai de 30 jours démarre à la première utilisation, sans inscription.
.NET
Paquet NuGet pour C# et VB.NET, de .NET Framework au dernier .NET.
dotnet add package UnderAutomation.StaubliPython
Paquet Python sur PyPI, pour Windows, Linux et macOS.
pip install UnderAutomation.StaubliAgents IA
Skill pour les agents de code IA (Claude Code, Cursor, Copilot...) : votre assistant connaît l'API du SDK.
npx skills add underautomation/skills --skill underautomation-staubli-csharpParcourir 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.
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.
Commencer avec .NET
Codez votre application en C# ou VB avec cette bibliothèque 100% managée, sans dépendances et disponible sur NuGet.org dans la version et l'architecture de votre choix (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...)
Commencer avec Python
Développez rapidement un programme en Python qui communique avec votre robot à l'aide de cette bibliothèque. Elle est disponible sur PyPI.
Guides et articles pratiques
Chaque article explique comment réaliser une tâche, pas à pas, avec du code à copier.
Get the robot position
Read the position of a Staubli robot from C# or Python: joints, flange or tool position, and which method to choose. Complete program included.
Read and write I/O
Find the I/O names, wait for an input and switch an output of a Staubli CS8 or CS9 controller from C# or Python.
Move the robot from a PC
Power the arm and move a Staubli robot in a straight line from C# or Python, without a VAL 3 program. Which move to choose, and the frequent errors.
Run a VAL 3 program
Load a VAL 3 project from the disk of the controller, start it, check its tasks and stop it, from C# or Python.
Monitor the state of the robot
Poll the applications and the VAL 3 tasks of a Staubli controller, print each change of state and each runtime error.
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
•
Licence Pro
•
Licence Source
•
Questions fréquentes
Les bibliothèques sur GitHub
Chaque paquet est publié sur GitHub avec son journal des modifications.
Commencez maintenant !
Démarrez l'essai de 30 jours aujourd'hui, ou demandez un devis.