UnderAutomation
有问题吗?

[email protected]

联系我们
UnderAutomation
⌘Q

Staubli SDK

GitHub stars
300 (EUR)350 (USD)

$

350

为了一生

$

210

大学 (40% 折扣)

快速创建与您的史陶比尔工业机器人通信的.NET应用程序。

为您的项目选择正确的许可证
下单要求报价

.NET

Python

LabVIEW

见条款和条件
Plug & Play

只需几分钟即可连接您的机器人。无需安装许可证管理器, 无需 USB 密钥。仅参考图书馆。

没有在机器人上安装的插件

使用机器人控制器作为标准提供的网络协议。
ROS

30 天试用

免费试用 30 天, 无承诺, 无需注册

付一次, 永远使用

永久许可, 无需订阅, 无论机器人, 开发人员的数量是多少

Staubli Communication Library

执行 Staubli 机器人上可用的以太网协议
100% managed assembly
与 CS8 和 CS9 控制器快速集成
现代化、文档齐全的图书馆
无需实体 USB 密钥许可证

  1. Staubli SDK 功能: 适用于 CS8 和 CS9 的 SOAP 协议

    移动机器人

    远程启动和发送关节或笛卡尔坐标运动指令。
    // 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();

    处理应用

    加载、启动、停止、暂停和监督任务的执行。
    // 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);

    当前位置

    获取机器人当前位置, 包括笛卡尔坐标和关节角度。
    // 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);

    根据关节角度计算笛卡尔位置, 反之亦然。

    根据关节角度计算笛卡尔位置, 反之亦然。
    // 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);

    信息

    获取控制器和受控机器人的特征, 包括型号、软件版本、电源状态等。
    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}");

    输入/输出

    列出、读取和写入控制器的输入和输出
    // 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. 浏览文档

    浏览文档

    该文档使您可以快速开始使用库开发。 所有受支持的语言都可以使用相同的功能。

  3. 下载和测试

    通过Nuget下载
    通过Nuget下载

    通过Nuget Package Manager轻松地将此SDK添加到您的Visual Studio项目中。

    请参阅xxx上
    Github上的示例
    Github上的示例

    使用此SDK的示例的来源可在GitHub上获得

    Windows应用程序示例
    Windows应用程序示例

    允许您使用简单的接口测试SDK的所有功能。 该示例用.NET 8中的“自我包含”和“单个文件”编译。该应用程序在不安装的情况下可移植。

    通过下载, 您接受使用的一般条件:
    见条款和条件
    UnderAutomation.Staubli.Showcase.Forms.exe (139 MB)
  4. 询价和订购

    价格

    可以免费下载库, 可以进行30天的测试。 在此期间之后, 您可以要求我们延长试用期, 或购买最适合您的许可证: 站点 (仅二进制二进制) 或源代码 (源代码) 。 购买后, 您有一个一年的维护期, 使您优先访问支持和更新的可能性。 当您购买使用许可证时, 它会链接到机器人品牌, 无论您将其重新分配给客户的机器人, 开发人员或软件的数量如何, 都可以永远使用, 而无需重复费用。 如果您是分销商, 并希望为您的客户提供我们的产品之一, 请与我们联系以讨论特殊条件和价格。

    标准站点许可证

    300 (EUR)$350 (USD)

    $

    350

    为了一生

    $

    210

    大学 (40% 折扣)
    专为工业环境而设计, 提供终身全功能访问。
    包括 1 年维护 (获取更新)
    与 Pro 许可证的条件相同, 但支持不优先且维护期为 1 年。
    没有内部来源; 仅提供混淆的 DLL。
    无法通过视频会议提供帮助 (仅通过电子邮件) 。
    立即购买
    最受欢迎

    专业许可

    600 (EUR)$700 (USD)

    $

    700

    $1060
    为了一生

    $

    420

    大学 (40% 折扣)
    适用于需要优先支持和长期维护的关键生产环境。
    包括 3 年维护 (获取更新) , 在此期限内没有续订订单 (零文书工作)
    完整和永久的SDK: 无需重复订阅, 许可证是您的永远您的, 并且可以使用机器人品牌的所有编程语言。
    仅在指定的邮政地址上持有许可证的组织才能使用。 不管开发机器的数量多少, 所有团队开发人员都将共享相同的许可证。
    使用SDK开发的任何应用程序都可以将无限数量的客户提供, 而不管要连接的机器人数量如何。
    该许可证是一种密码, 可以在解锁功能的代码中调用。 没有其他软件要安装。 没有USB密钥。
    优先支持 (平均<24小时)
    远程协助 (电子邮件和长达 2 小时的视频会议)
    没有内部来源; 仅提供混淆的 DLL。
    随时升级到源 (支付差价)
    立即购买

    源代码许可

    1200 (EUR)$1400 (USD)

    $

    1400

    为了一生

    $

    840

    大学 (40% 折扣)
    实现完全的技术主权、深度定制和完全独立。
    与专业许可证的条件相同
    C# 语言库的完整内部代码
    Visual Studio 解决方案包含数年开发的数千行代码
    您可以在一般使用条款中定义的限制内修改此源代码并在您的应用程序中使用它
    与AI编程助手(Claude、Copilot、Cursor、Codex等)完美协作,得益于完整源代码访问权限和随附的上下文文件(AGENTS.md),为LLM提供SDK内部结构的精确知识
    立即购买

轻松将 Universal Robots、Fanuc、Yaskawa、ABB 或 Staubli 机器人集成到您的 .NET、Python、LabVIEW 或 Matlab 应用程序中

UnderAutomation
联系我们Legal

© All rights reserved.