UnderAutomation
Une question ?

[email protected]

Contactez-nous
UnderAutomation
⌘Q
Stäubli

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.

Essayer gratuitementVoir les tarifs

À partir de 300 € / $350, paiement unique

Rien à installer sur le robot
Essai gratuit de 30 jours
Licence perpétuelle, sans abonnement
.NET / C#
Python
Stäubli robot
Staubli SDK
1// dotnet add package UnderAutomation.Staubli
2using UnderAutomation.Staubli;
3
4var controller = new StaubliController();
5controller.Connect("192.168.0.254");
6
7double[] joints = controller.Soap.GetCurrentJointPosition(robot: 0);
8var tasks = controller.Soap.GetTasks();
9var ios = controller.Soap.GetAllPhysicalIos();
En bref

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.

VAL 3 add-onROS

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

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 radians
IMoveResult result = controller.Soap.MoveJJ(robot: 0, joints, mdesc);
// Joint move to a Cartesian frame
result = controller.Soap.MoveJC(robot: 0, target, mdesc);
// Straight line to a Cartesian frame
result = controller.Soap.MoveL(robot: 0, target, mdesc);
// Circle through an intermediate frame, to a target frame
result = controller.Soap.MoveC(robot: 0, intermediate, target, mdesc);
// The controller accepted the move, or tells why not
if (result.ReturnCode != MotionReturnCode.Success)
Console.WriteLine($"Move {result.Id} refused: {result.ReturnCode}");
controller.Disconnect();
}
Click to see the full code

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 controller
string project = "Disk://myProject/myProject.pjx";
// Load the application in memory, without starting it
controller.Soap.LoadProject(project);
// Start it
controller.Soap.StartApplication(project);
controller.Disconnect();
}
Click to see the full code

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 replaced
controller.Soap.StopAndUnloadAll();
// Copies C:\MyApps\myApp and its sub-folders to /usr/usrapp/myApp on the controller
string 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 methods
controller.Soap.LoadProject("Disk://myApp/myApp.pjx");
controller.Soap.StartApplication("Disk://myApp/myApp.pjx");
controller.Disconnect();
}
Click to see the full code

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 ones
double[] joints = controller.Soap.GetCurrentJointPosition(robot: 0);
// The controller computes the flange frame for these joints
IForwardKinematics fk = controller.Soap.ForwardKinematics(robot: 0, joints);
// Position of the frame origin, and its orientation as a rotation matrix
Frame 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();
}
Click to see the full code

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-60
Console.WriteLine($" Kinematic: {robot.Kinematic}"); // Anthropomorph6, Scara...
Console.WriteLine($" Mount type: {robot.MountType}"); // Floor, Ceiling, Wall
Console.WriteLine($" Tuning: {robot.Tuning}");
}
controller.Disconnect();
}
Click to see the full code

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 GetAllPhysicalIos
string[] names = { @"BasicIO-1\%I0", @"BasicIO-1\%Q0" };
// One state per name, in the same order
PhysicalIoState[] 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 controller
if (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();
}
Click to see the full code
Démo

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.

Télécharger (139 MB)En téléchargeant, vous acceptez les conditions générales d'utilisation : Voir les conditions générales d'utilisation

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.

Installation

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.Staubli
Voir sur NuGetVoir sur GitHubOuvrir le guide

Python

Paquet Python sur PyPI, pour Windows, Linux et macOS.

pip install UnderAutomation.Staubli

Agents 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-csharp
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.

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

•

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).
Choisissez la bonne licence pour votre projet
Acheter maintenant
Le plus populaire

Licence Pro

•

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€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
FAQ

Questions fréquentes

Non. Le SDK utilise le serveur SOAP du contrôleur, l'interface qu'utilise aussi Staubli Robotics Suite (SRS), et son serveur FTP pour les fichiers. Le contrôleur doit être accessible sur le réseau, avec un compte utilisateur qui a les droits pour les opérations demandées.

Les contrôleurs CS8 et CS9, avec la même API pour les deux. Le SDK lit les robots du contrôleur, leurs positions, les entrées/sorties et les applications VAL 3, et peut déplacer le robot.

Oui. L'émulateur n'a pas de serveur FTP, mais il garde les fichiers du contrôleur émulé dans le dossier de son fichier .controller, avec la même arborescence qu'un vrai contrôleur. Donnez le chemin du fichier .controller comme adresse : les mêmes méthodes et les mêmes chemins fonctionnent alors, et le SDK lit le port SOAP du contrôleur émulé dans sa configuration. Utilisez un chemin UNC quand l'émulateur tourne sur un autre PC.

La licence est perpétuelle, sans abonnement. Standard : 300 EUR / 350 USD. Pro : 600 EUR / 700 USD. Source : 1200 EUR / 1400 USD. Elle couvre une organisation à une adresse, avec un nombre illimité de développeurs, de robots et d'applications livrées. Les mises à jour sont incluses pendant 1 an avec la Standard et 3 ans avec la Pro et la Source. Les universités ont une remise de 40 %.

Oui. Toutes les fonctions marchent pendant 30 jours à partir de la première utilisation, sans inscription. L'essai peut être prolongé sur demande. L'application de démonstration Windows permet d'essayer le SDK sur votre robot sans écrire de code.

Oui. La bibliothèque est compilée pour .NET Standard 2.0 et 2.1, qui fonctionnent sous Windows, Linux et macOS, en x64 et ARM. Pour Python sous Linux ou macOS, installez le runtime .NET et lancez export PYTHONNET_RUNTIME=coreclr avant de démarrer Python.

Oui. pip install UnderAutomation.Staubli installe le paquet et pythonnet, qui charge la bibliothèque .NET dans le processus Python. Python 3.7 à 3.13 est supporté. L'API est la même qu'en .NET, avec des noms Python.

Une bibliothèque LabVIEW est disponible sur demande. Contactez-nous pour l'obtenir.

Oui, avec la licence Source : tout le code C# de la bibliothèque et sa solution Visual Studio. Vous pouvez le modifier et l'utiliser dans vos applications, dans les limites du contrat de licence (EULA). Les licences Standard et Pro fournissent uniquement la DLL obfusquée.
GitHub

Les bibliothèques sur GitHub

Chaque paquet est publié sur GitHub avec son journal des modifications.

Dernières versions

Staubli.NET

Dernière version

underautomation / Staubli.NET

Public

Bibliothèque .NET du SDK Stäubli.

C#Voir sur GitHub

underautomation / Staubli.py

Public

Package Python du SDK Stäubli.

PythonVoir sur GitHub

Commencez maintenant !

Démarrez l'essai de 30 jours aujourd'hui, ou demandez un devis.

Essayer gratuitementCommanderDemander un devisContactez-nous