Communication & Toolkit
Universal Robots Software Library

.NET、Python、Labview、MatlabでUniversal Robots cobotと通信するアプリケーションを素早く作成できます。

特徴

このライブラリは、ユニバーサルロボットのコボットのすべてのネイティブプロトコルを複数の言語で実装しており、コンピュータからロボットアームの同期やリモートコントロールを行うことができます。

リモコン

TCP/IPを介して遠隔地からロボットにコマンドを送ることができるダッシュボードサーバーのプロトコルです。例えば、ロボットアームのスイッチを入れたり、ブレーキを解除したり、プログラムをロードしたり、走らせたり、止めたりすることができます。

Dashboard Server
// Create a new robot instance
var robot = new UR();
// Connect to the robot
robot.Connect("192.168.0.1");
// Power on the robot arm and release brakes
robot.Dashboard.PowerOn();
robot.Dashboard.ReleaseBrake();
// Load program file to polyscope
robot.Dashboard.LoadProgram("fast_bin_picking.urp");
// Start the program
robot.Dashboard.Play();
// Get program name and state
var state = robot.Dashboard.GetProgramState();
Console.WriteLine($"Program name : {state.Value.Name}");
Console.WriteLine($"Stopped, Playing or Paused ? : {state.Value.State}");
// Display a popup on the pendant
robot.Dashboard.ShowPopup("I just remote-controlled my robot!");

測定値の交換

「Primary Interface」と「RTDE」(Real-Time Data Exchange)により、位置、ステータス、入出力、プログラム変数の値など、多くの情報を含む最大500Hzの計測ストリームをロボットから受信することができます。 また、ロボットに共有レジスターを高速で書き込むことも可能です。

RTDE
Primary / Secondary interface
// Display robot TCP pose
var pose = robot.Rtde.OutputDataValues.ActualTcpPose;
// pose.X, pose.Y, pose.Z, pose.Rx, ...
// Display robot TCP force
var force = robot.Rtde.OutputDataValues.ActualTcpForce;
// Write data in robot controler
var inputs = new RtdeInputValues();
inputs.StandardAnalogOutput0 = 0.2;
inputs.InputBitRegisters.X64 = true;
robot.Rtde.WriteInputs(inputs);
// Display all program and installation variables
var variables = robot.PrimaryInterface.GlobalVariables.GetAll();
string name = variables[0].Name;
Pose value = variables[0].ToPose();
GlobalVariableTypes type = variables[0].Type;

スクリプトとプログラム

  • URScript のスクリプトラインを TCP/IP ソケット経由で送信し、実行させることができます。
  • プログラムファイル*.urpをローカルに構築・編集し、それをURコントローラーに転送して実行する機能です。

SFTP
SSH
Primary interface
// Ask robot to execute a movej
robot.PrimaryInterface.Script.Send("movej([-1.5,-1.5,-2,-0.5,1.8,0], a=1.4, v=1.05, t=0, r=0)");
// Enumerates files and folder
SftpFile[] items = robot.Sftp.ListDirectory("/home/ur/ursim-current/programs/");
// Download program file prg.urp to your local disk
robot.Sftp.DownloadFile("/home/ur/ursim-current/programs/prg.urp", @"C:\temp\prg.urp");
// Send a local file to the robot
robot.Sftp.UploadFile(@"C:\temp\prg.urp", "/home/ur/ursim-current/programs/prg.urp");
// Manipulate files and directories
robot.Sftp.RenameFile("/home/ur/prg.urp", "/home/ur/prg2.urp");
robot.Sftp.Delete("/home/ur/prg.urp");
bool exists = robot.Sftp.Exists("/home/ur/prg.urp");
robot.Sftp.WriteAllText("/home/ur/file.txt", "Hello robot !");
// ...

カスタマイズされたソケット

あなたのソフトウェアがサーバーとなり、ロボットがそこに接続して情報を取得することができます。

  • XML-RPC:ロボットは「rpc_factory」関数と接続し、プログラム内でリモート引数を持つメソッドを呼び出し、値を返すことができます。
  • ソケット:古典的なTCP/IPサーバーで、ロボットは "socket_open "関数で接続し、アプリケーションと双方向の対話を行うことができます。

XML-RPC
Socket communication
// Robot connects with URScipt function socket_open()
robot.SocketCommunication.SocketClientConnection += (o, e) =>
{
// Reply to the robot
e.Client.SocketWrite("Hello cobot <3");
};
// Event raised when the robot sends a message with socket_write()
robot.SocketCommunication.SocketRequest += (o, e) =>
{
string robotMessage = e.Message;
};
// Send a message to all connected clients
robot.SocketCommunication.SocketWrite("123456");

オフラインツールボックス

このライブラリは、ネットワーク上にURロボットがなくても利用できる機能を提供しています。例えば、ポジションタイプの変換も可能です。また、ネイティブプログラム*.urpやインストール*.installationのファイルを開き、その内容を編集することもできます。

// Create X, Y, Z, RX, RY, RZ pose
var pose = new Pose(0.1, 0.2, -0.1, 0, 0.05, 0.1);
// Convert cartesian pose type to RPY or rotation vector
var rpy = pose.FromRotationVectorToRPY();
var vectorPose = pose.FromRPYToRotationVector();
// Decompile program and installation files and access inner XML
URInstallation installation = URInstallation.Load("C:\\temp\\default.installation");
URProgram prg = URProgram.Load("C:\\temp\\prg.urp");
XElement internalXml = prg.XML;

さらに...

  • Primary / Secondary interface
  • RTDE (Real-Time Data Exchange)
  • Dashboard server
  • Sockets
  • XML-RPC
  • SSH
  • SFTP
  • ...

UR+認証

ユニバーサルロボットの技術チームと営業チームがこのライブラリを監査しました。彼らは、それが準拠しており、彼らのロボットやそのエコシステムと完全に統合されていることを証明します。

価格

使用するにはライセンスが必要な工業用の強力なソフトウェアライブラリです。ライセンスを購入すると、開発者の数にかかわらず、提供されているあらゆる言語での開発が可能となり、反復的なコストをかけずに、無制限の数のソフトウェア製品を無制限の顧客に配布することができます。

利用規約を見る

無料

30日間の試用期間
  • 30日間、すべての機能にアクセス可能
  • Python、Winforms、Console(Windows、Linux、MacOS用)、LabVIEWを含む複数のプラットフォーム用のサンプルを提供。
  • 試用期間の延長を希望することができる

フルライセンス

990€
  • フル機能を備えたSDKを永久に提供:定期的な購読は不要
  • ライセンシーの組織内で、指定された場所で使用することができます。
  • 指定された場所で複数の開発者が使用することができる
  • SDKを使って開発したアプリケーションは、ロイヤリティなしで無制限に顧客に提供可能
  • 1年間のメンテナンスを含む(アップデートへのアクセス
  • 銀行振り込みでのお支払いをご希望の方は、お問い合わせください。本SDKのライセンスをご購入いただくと、ライセンス番号と請求書がメールで届きます。

学術研究用サイトライセンス

594€

990€

  • サイトライセンス40%オフ
  • 学術・研究プロジェクト限定割引

よくあるご質問

このようなソフトウェア・ライブラリーの利点は何ですか?

このソフトウェアライブラリは、開発時間を短縮し、ロボットのモデルやファームウェアに関係なく確実に動作させることができます。

ライブラリをテストするにはどうすればいいですか?

本サイトのダウンロードページでは、ご希望の言語の例題を入手することができます。その後、ドキュメントを参照して、ライブラリを使い始めることができます。

見積もりをお願いできますか?

このウェブサイトの注文ページから直接、すぐに見積書を請求することができます。また、お問い合わせも受け付けております。

いくつかの例は動作しません

ダウンロードしたアーカイブのプロパティで、Windowsがファイルをロックしていないか確認してください。例題が正しく実行されたら、ロボットのPINGコマンドが成功していることを確認してください。また、ファイアウォールやウィルス対策ソフトがロボットへの接続を許可しているかどうかも確認してください。最後に、ロボットのセキュリティ設定を確認します。

各バージョンの新機能は?

各リリースにはパッチや新機能が含まれています。GitHubには、バージョンの履歴や変更点が掲載されています。あなたの進化のアイデアをお聞かせください。

アップデート後、アプリケーションがコンパイルされなくなりました

次第に、ライブラリーには新しい機能が追加されていきました。バージョン5までは、すべての機能やプロトコルが同じクラスで開発されていたため、混乱していました。バージョン6以降では、すべての機能が独立し、別のクラスで開発されています。移行をご希望の方は、お問い合わせいただくか、GitHubから最新のバージョン5.X.X.Xをダウンロードしてください。