UnderAutomation
    • 主页
  • 产品
    • Universal Robots SDK
    • Fanuc SDK
    • Yaskawa SDK
    • Staubli SDK
      • 概述
      • 下载
      • 文件
    • 报价•订单
    • 许可证
有问题吗?

[email protected]

联系我们
UnderAutomation
  • 主页
  • 产品
      • 概述
      • 下载
      • 文件
      • 概述
      • 下载
      • 文件
      • 概述
      • 下载
      • 文件
      • 概述
      • 下载
      • 文件
  • 报价•订单
  • 联系我们
⌘Q

Staubli SDK

1/0
GitHub stars
290 (EUR) • 340 (USD)

$

340

为了一生

$

204

大学(40% 折扣)

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


命令要求报价

.NET

Python

LabVIEW

见条款和条件
Plug & Play

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

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

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

30 天试用

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

付一次,永远使用

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

Staubli Communication Library

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

1

功能概览

移动机器人

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

浏览文档

浏览文档

通过文档,您可以快速开始使用该库进行开发。 所有支持的语言都具有相同的功能。

开始使用 .net

使用这个 100% 受管理的库在 C# 或 VB.NET 中编写应用程序,该库不带任何依赖性,可在 Nuget.org 上以您选择的版本和架构(x86、x64、arm、linux、windows、macOS、.NET Framework、.NET Core、UWP 等)提供。

3

下载和测试

通过Nuget下载
通过Nuget下载

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

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

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

​
请参阅xxx上
Windows应用程序示例
Windows应用程序示例

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

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

询价和订购

价格

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

最受欢迎

完整的许可证

340 (EUR) • 340 (USD)

$

340

为了一生

$

204

大学(40% 折扣)

完整和永久的SDK:无需重复订阅,许可证是您的永远您的,并且可以使用机器人品牌的所有编程语言。
仅在指定的邮政地址上持有许可证的组织才能使用。 不管开发机器的数量多少,所有团队开发人员都将共享相同的许可证。
使用SDK开发的任何应用程序都可以将无限数量的客户提供,而不管要连接的机器人数量如何。
该许可证是一种密码,可以在解锁功能的代码中调用。 没有其他软件要安装。 没有USB密钥。
包括1年的维护(获得更新)。
请联系我们,通过银行转账付款。一旦您购买了本SDK的许可证,您将通过电子邮件收到您的许可证号和发票。
没有内部来源; 仅提供混淆的 DLL。
立即购买

源代码许可证

1360 (EUR) • 1360 (USD)

$

1360

为了一生

$

816

大学(40% 折扣)

用C#编写的库的完整内部代码
Visual Studio 解决方案包含数年开发的数千行代码
在一般使用条款规定的范围内,你可以修改这个源代码并在你的应用程序中使用它。
立即购买

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

UnderAutomation
联系我们Legal
产品
Universal Robots SDKFanuc SDKYaskawa SDKStaubli SDK
enEnglish
frFrançais
deDeutsch
esEspañol
zh中文
ja日本語
ko한국어

© All rights reserved.