Staubli SDK控制 Stäubli 机器人 直接从您自己的软件
快速创建使用 .NET、Python 或 LabVIEW 与史陶比尔工业机器人通信的应用程序。 开箱即用的软件库:您的电脑通过网线与机器人通信。

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();
您将获得什么
Plug & Play
只需几分钟即可连接您的机器人。无需安装许可证管理器, 无需 USB 密钥。仅参考图书馆。
没有在机器人上安装的插件
使用机器人控制器作为标准提供的网络协议。
30 天试用
免费试用 30 天, 无承诺, 无需注册
付一次, 永远使用
永久许可, 无需订阅, 无论机器人, 开发人员的数量是多少
Staubli SDK 功能: 适用于 CS8 和 CS9 的 SOAP 和 FTP
每项功能都有代码示例。点击示例可查看完整代码。
移动机器人
远程启动和发送关节或笛卡尔坐标运动指令。
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();}
处理应用
加载、启动、停止、暂停和监督任务的执行。
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();}
文件传输
列出、上传、下载和删除控制器的文件,并通过一次调用发送完整的 VAL 3 应用。通过 FTP,或使用 Staubli Robotics Suite 仿真控制器的 .controller 文件。
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();}
位置和运动学
读取机器人的关节值和笛卡尔位置,并在控制器上计算正运动学和逆运动学。
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();}
信息
获取控制器和受控机器人的特征, 包括型号、软件版本、电源状态等。
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();}
输入/输出
列出、读取和写入控制器的输入和输出
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();}
看看实际效果
随 SDK 提供的演示程序的视频和截图。
一条命令即可安装
选择您的语言。30 天试用从首次使用开始,无需注册。
.NET
适用于 C# 和 VB.NET 的 NuGet 包,从 .NET Framework 到最新的 .NET。
dotnet add package UnderAutomation.StaubliPython
PyPI 上的 Python 包,支持 Windows、Linux 和 macOS。
pip install UnderAutomation.StaubliAI 助手
面向 AI 编程助手(Claude Code、Cursor、Copilot 等)的 Skill:您的助手了解 SDK 的 API。
npx skills add underautomation/skills --skill underautomation-staubli-csharp浏览文档
该文档使您可以快速开始使用库开发。 所有受支持的语言都可以使用相同的功能。
浏览文档
该文档使您可以快速开始使用库开发。 所有受支持的语言都可以使用相同的功能。
开始使用.NET
用这个100%托管的库在C#或VB中编码你的应用程序, 没有依赖性, 在NuGet.org上有你选择的版本和架构 (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...) 。
开始使用Python
用Python快速开发一个程序, 用这个库与你的机器人进行通信。它可以在PyPI上使用。
指南和实用文章
每篇文章逐步讲解一项任务的做法,并附带可直接复制的代码。
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.
价格
可以免费下载库, 可以进行30天的测试。 在此期间之后, 您可以要求我们延长试用期, 或购买最适合您的许可证: 站点 (仅二进制二进制) 或源代码 (源代码) 。 购买后, 您有一个一年的维护期, 使您优先访问支持和更新的可能性。 当您购买使用许可证时, 它会链接到机器人品牌, 无论您将其重新分配给客户的机器人, 开发人员或软件的数量如何, 都可以永远使用, 而无需重复费用。 如果您是分销商, 并希望为您的客户提供我们的产品之一, 请与我们联系以讨论特殊条件和价格。
标准站点许可证
•
专业许可
•
源代码许可
•
常见问题
GitHub 上的库
每个包都发布在 GitHub 上,并附有更新日志。
