Staubli SDKStäubli ロボットを 自社のソフトウェアから制御
Staubli 産業用ロボットと通信する .NET、Python、LabVIEW のアプリケーションをすばやく作成できます。 すぐに使えるソフトウェアライブラリです。PC がネットワークケーブル経由でロボットと通信します。

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 アプリケーション全体を1回の呼び出しで送信。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 に付属するデモアプリケーションの動画とスクリーンショットです。
Windowsアプリケーションの例
コードは不要です。デモアプリケーションで、お使いのロボットで SDK を試せます。

Githubの例
このSDKの使用例のソースは、githubで入手できます
Pythonの例
ロボットのデカルト位置を回復するためのPythonを使用したこのSDKの操作の例。
コマンド 1 つでインストール
言語を選んでください。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%マネージドライブラリで、依存関係がなく、NuGet.orgでご希望のバージョンとアーキテクチャ (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...) で利用可能なC#またはVBでアプリケーションをコーディングできます。
Pythonを始めよう
このライブラリを使って、ロボットと通信するプログラムをPythonで素早く開発することができます。PyPIで公開されています。
ガイドとハウツー記事
各記事は、1 つの作業のやり方を手順ごとに、コピーして使えるコードとともに説明します。
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日間テストできます。 この期間の後、トライアル期間を延長するように頼むか、自分に最適なライセンスを購入することができます: サイト (不明瞭なバイナリのみ) またはソース (ソースコード) 。 購入後、1年のメンテナンス期間があり、サポートへの優先アクセスと更新の可能性が得られます。 使用するライセンスを購入する場合、ロボットブランドにリンクされているため、顧客に再配布するロボット、開発者、またはソフトウェアの数に関係なく、繰り返し料金を払うことなく永久に使用できます。 あなたがディストリビューターであり、お客様に当社の製品のいずれかを提供したい場合は、特別な条件と価格について話し合うためにお問い合わせください。
標準サイトライセンス
•
プロライセンス
•
ソースコードライセンス
•
よくある質問
GitHub のライブラリ
各パッケージは変更履歴とともに GitHub で公開されています。