UnderAutomation
質問ですか?

[email protected]

お問い合わせ
UnderAutomation
⌘Q

Staubli SDK

GitHub stars
300 (EUR)350 (USD)

$

350

一生

$

210

大学向け (40% 割引)

Staubli産業用ロボットと通信する.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パッケージマネージャーを介して、このSDKをVisual Studioプロジェクトに簡単に追加できます。

    Nugetを参照してください
    Githubの例
    Githubの例

    このSDKの使用例のソースは、githubで入手できます

    Windowsアプリケーションの例
    Windowsアプリケーションの例

    SDKのすべての機能を簡単なインターフェイスでテストできます。 この例は、.NET 8を使用して「Self Conted」および「Single File」でコンパイルされています。アプリケーションはインストールなしでポータブルです。

    ダウンロードすることにより、一般的な使用条件を受け入れます。
    利用規約を見る
    UnderAutomation.Staubli.Showcase.Forms.exe (139 MB)
  4. お見積り・ご注文

    価格

    ライブラリは無料でダウンロードでき、30日間テストできます。 この期間の後、トライアル期間を延長するように頼むか、自分に最適なライセンスを購入することができます: サイト (不明瞭なバイナリのみ) またはソース (ソースコード) 。 購入後、1年のメンテナンス期間があり、サポートへの優先アクセスと更新の可能性が得られます。 使用するライセンスを購入する場合、ロボットブランドにリンクされているため、顧客に再配布するロボット、開発者、またはソフトウェアの数に関係なく、繰り返し料金を払うことなく永久に使用できます。 あなたがディストリビューターであり、お客様に当社の製品のいずれかを提供したい場合は、特別な条件と価格について話し合うためにお問い合わせください。

    標準サイトライセンス

    300 (EUR)$350 (USD)

    $

    350

    一生

    $

    210

    大学向け (40% 割引)
    産業環境向けに設計されており、生涯にわたる全機能へのアクセスを提供します。
    1 年間のメンテナンスが含まれています (アップデートへのアクセス)
    サポートが優先されず、メンテナンスが 1 年間であることを除いて、Pro ライセンスと同じ条件です。
    内部情報源はありません。 難読化された 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 ソリューション
    一般利用規約で定義されている制限内で、このソース コードを変更してアプリケーションで使用できます。
    完全なソースコードアクセスと付属のコンテキストファイル(AGENTS.md)により、AIコーディングエージェント(Claude、Copilot、Cursor、Codex等)との連携が最適化され、LLMがSDK内部構造を正確に把握できます
    今すぐ購入

Universal Robots、Fanuc、Yaskawa、ABB、Staubli ロボットを .NET、Python、LabVIEW、または Matlab アプリケーションに簡単に統合

UnderAutomation
お問い合わせLegal

© All rights reserved.