RoboDK API(アプリケーションプログラムインターフェイス)は、RoboDKがプログラミング言語を通じて公開する一連のルーチンとコマンドです。RoboDK APIを使用すると、C#、Python、C ++などのサポートされているプログラミング言語のいずれかを使用して、任意のロボットをプログラミングできます。RoboDK APIを使用して、反復的なタスクを自動化することもできます。
ベンダー固有のロボットプログラミングと比較して、RoboDK APIを使用すると、Pythonなどの独自の/ユニバーサルプログラミング言語を使用して任意のロボットをシミュレーションおよびプログラミングすることができます。次のページでは、概要とビデオを示していますAPIを使用したオフラインプログラミング。
RoboDK APIは、Python、C#、C ++、Visual Basic(.NET)、およびMatlabで使用できます。これらのプログラミング言語はどれも、ロボットアームのシミュレーションとプログラミングに使用できます。
注意:RoboDKは、産業用ロボットをシミュレートおよびプログラムするためのユーザーフレンドリーなグラフィカルユーザーインターフェイス(GUI)を提供します。GUIを使用してロボットをシミュレートおよびプログラミングするためのプログラミング経験は必要ありません。のプログラムセクションでは、GUIを使用したロボットのプログラミングについて詳しく説明します。一方、RoboDK APIを使用することで、シミュレーションやオフラインプログラミングに制限がなくなります。
注意:APIは任意のプログラミング言語で実装できます。APIは、RoboDKに実装されたTCP / IPプロトコルで構成されています。RoboDKが実行されている場合、サーバーのように動作し、TCP / IPプロトコルを介して一連のコマンドを公開します。
RoboDK APIは、次のタスクに使用できます。
1.シミュレーションの自動化:マクロを作成して、オブジェクトの移動、参照フレーム、ロボットなど、RoboDKシミュレーター内の特定のタスクを自動化します。
2.オフラインプログラミング:ユニバーサルプログラミング言語からオフラインでロボットをプログラミングします。RoboDKは、APIが使用されると、特定のロボットコントローラー用の特定のプログラム(PythonやC#のプログラムなど)を生成します。ロボットプログラムは、ポストプロセッサー特定のロボット用に選択されています。のPythonによるオフラインプログラミングこのドキュメントのセクションでは、詳細と例を示します。
3.オンラインプログラミング:ユニバーサルプログラミング言語を使用したロボットのオンラインプログラミング:RoboDK APIからロボットを移動して現在の位置を取得することが可能です。RoboDKは、ロボットドライバー。のPythonによるオンラインプログラミングこのドキュメントのセクションでは、詳細と例を示します。
つまり、シミュレーション(1)と同じプログラムを使用して、ロボットプログラム(2、オフラインプログラミング)を生成し、ロボットをリアルタイムで移動(3、オンラインプログラミング)できます。
注意:RoboDK APIを使用して汎用プログラミング言語からロボットシミュレーションを作成すると、シミュレーションの準備ができると、ロボットモーションコマンドが自動的に使用されてオフラインでプログラムが生成されます。さらに、ロボットドライバーを使用してロボットを接続すると、同じプログラムを使用してリアルタイムでロボットを移動できます。
このドキュメントでは、次のトピックについて説明します。
●のPython API シミュレーション、オフラインプログラミング、オンラインプログラミングの例
●のC#API シミュレーション、オフラインプログラミング、オンラインプログラミングの例
●のMatlab API シミュレーション用のSimulinkサンプルを使用
●のコマンドライン RoboDKを起動するオプション
注意:このドキュメントでは、 ポストプロセッサー、オフラインプログラミングに必要です。
注意:このドキュメントでは、 ロボットドライバー、オンラインプログラミングに必要です。
パイソンは、汎用プログラミングで広く使用されている高水準プログラミング言語です。Pythonは、より高速に作業し、システムをより効果的に統合できるプログラミング言語です。Pythonの構文を使用すると、プログラマーは他の言語と比較して概念を少ないコード行で表現できるため、親しみやすく学習しやすくなります。
の 前のセクションは、Pythonなどのロボットプログラミングに広く使用されているプログラミング言語でRoboDK APIを使用する利点を説明しています。
Pythonはデフォルトで自動的にインストールされ、RoboDKと統合されます。ツールを選択➔オプション➔その他のデフォルト設定(Pythonの場所とPython Editor)を変更します。
Python用RoboDK APIは、次の2つのモジュールに分かれています。
●ロボリンクモジュール(robolink.py):robolinkモジュールは、RoboDKとPythonの間のインターフェースです。RoboDKステーションツリー内のオブジェクトは、Robolinkオブジェクトを使用して取得でき、Itemオブジェクトによって表されます。Robolink.Itemクラスに応じて、そのアイテムに対してさまざまな操作を実行できます。
●robodkモジュール(robodk.py):robodkモジュールは、ポーズ変換での操作を可能にし、さまざまなロボットベンダーのオイラー角を取得できるPython用のロボットツールボックスです。すべてのポストプロセッサーは、このrobodkモジュールに依存しています。
PythonモジュールはC:/ RoboDK / Python /フォルダーにあります。RoboDKでPythonプログラムとポストプロセッサーを実行すると、このフォルダーはデフォルトで自動的に含まれます(PYTHONPATHとして使用されます)。
次のセクションでは、シミュレーション、オフラインプログラミング、およびオンラインプログラミング用の簡単なプログラムをそれぞれ作成する方法を示します。その他の例は、RoboDK用のPython APIページ。また、RoboDKライブラリには、デフォルトのライブラリ(C:/ RoboDK / Library /)にあるScripts and MacrosフォルダーにサンプルPythonスクリプトが付属しています。
この例では、URロボットを使用して新しいステーションを作成し、ロボットで六角形の動きをシミュレートする方法を示します。
1.ファイルを選択➔開いた
2.UR10ロボットを開く
3.ファイルを選択➔開いた
4.Paint_gun.toolファイルを開きます。
5.サンプルPythonプログラムを開くSampleOfflineProgramming.py C:/ RoboDK / Library / Macros /から
6.SampleOfflineProgrammingアイテムをダブルクリックしてシミュレーションを実行します。ロボットはロボットの現在の位置の周りに六角形を描く必要があり、TCPのトレースは黄色で表示されます。
または、プログラムを右クリックして、Pythonスクリプトを実行。
7.右クリックSampleOfflineProgrammingアイテムを選択し、[Pythonスクリプトの編集]を選択します。次の図に示すようなプログラムが表示されます。
SampleOfflineProgrammingマクロは、ロボットのリファレンスフレームを基準にして、ロボットの現在の位置に辺n_sidesと半径Rのポリゴンを描画します。必要に応じて、ポリゴンの寸法を変更してロボットを別の場所に移動し、プログラムを再実行します。
この例は、 オフラインプログラミング Webサイトのセクション(ビデオを含む)。
ロボットのシミュレーションに使用したものと同じPythonコードを使用して、Pythonプログラムをオフラインで生成できます(前に示したとおり)。 Pythonシミュレーションセクション)。オフラインプログラミングでは、特定のロボットコントローラで実行できるロボットプログラムを生成できます。
1.右クリックPythonプログラム
2.[ロボットプログラムの生成(F6)]を選択します。
この場合、プログラムはシミュレートされませんが、結果を取得するためにすばやく実行されます。これは、ロボットコントローラに固有のロボットプログラムです。
注意: [ロボットプログラムの生成]オプションは、RunModeRUNMODE_MAKE_ROBOTPROGへのRDK / Robolink接続の例。言い換えると、PythonプログラムがRoboDKのGUIの外部で実行されている場合、シミュレーションする代わりに、プログラムを使用してベンダー固有のプログラムを生成することが可能です。例えば:
RDK = Robolink()
RDK.setRunMode(RUNMODE_MAKE_ROBOTPROG)
Pythonプログラムは、ロボットのシミュレーションに使用したものと同じPythonコードを使用して、ロボットで直接実行できます(Pythonシミュレーションセクション)。オンラインプログラミングでは、ロボットドライバーを使用して特定のロボットコントローラーで汎用プログラムを実行できます。
1.右クリックPythonプログラム
2.ロボットで実行を選択します
プログラムは、Pythonプログラムが実行されるときにロボット上で実行されます。
注意: Run on robotオプションは自動的に RunModeRUNMODE_RUN_ROBOTへのRDK / Robolink接続の例。つまり、RoboDKのGUIの外でロボットの動作コマンドを実行することが可能です。例えば:
RDK = Robolink()
RDK.setRunMode(RUNMODE_RUN_ROBOT)
注意:のAPIによるロボットドライバーの使用に関する詳細情報 ロボットドライバーセクション。
C#用のRoboDK APIは、RoboDKクラスを含むRoboDK.csソースファイルです(Pythonのロボリンククラス)、RoboDK.Itemクラス(PythonのRobolink.ItemクラスAPI)、およびポーズ変換で操作するマトリックス操作のためのMatrixクラス(RoboDK.Mat)などのロボット工学用の他のツール。
C#(「Cシャープ」と発音)は、Microsoftによって開発され、.NET Frameworkで実行されるさまざまなアプリケーションを構築するために設計されたプログラミング言語です。C#はシンプルで、強力で、タイプセーフで、オブジェクト指向です。のメインセクションこのドキュメントの最初の部分では、ロボットプログラミングにC#などの広く使用されているプログラミング言語でRoboDK APIを使用する利点について説明します。
C#用のRoboDK APIには、次の画像に示すサンプルプロジェクトが付属しています(完全なソースコードが含まれています)。これをNuGetパッケージとして使用して、任意の.Netプロジェクトに統合することもできます。
[ファイルのロード]を選択して、RoboDKステーションまたはRoboDKでサポートされているその他のファイルを開きます。ロボットがロードされると、それに応じてROBOT変数が更新されます(選択ロボットの使用と同じ)。
注意:サンプルプロジェクトをロードして実行するには、Microsoft Visual Studioが必要です。Visual Studio Community(Express)バージョンは無料です。
C#プログラムは、ロボットコマンド(MoveJ、MoveL、setDOなど)を使用すると、デフォルトでシミュレーションされます。サンプルC#プロジェクトが開始されると、デフォルトでシミュレーションモードも選択されます。
これは、ロボットの動きがRoboDKでシミュレートされることを意味します。たとえば、右側のボタン(+ Tx、-Tx、…)を選択してロボットを10 mmステップで移動したり、[テストプログラムの実行]を選択してロボットの現在の場所を中心に六角形の動きを実行したりできます。
ブレークポイントを設定して、アプリケーションをデバッグし、ロボットターゲットを検査します。ロボットターゲットは、関節座標またはマット変数(4x4ポーズマトリックス)として定義でき、XYZWPR形式として検査して、プログラムの問題をトラブルシューティングできます。のリファレンスフレームの詳細参照フレームセクション。
実行モードを次のように変更することもできます。オフラインプログラミングまたは オンラインプログラミング(ロボットで実行)、次のセクションに示すように。
C#プログラムは、ロボットのシミュレーションに使用したものと同じC#コードを使用してオフラインで生成できます(オフラインプログラミング)。この機能をテストするには、次の手順に従います。
1.実行モードセクションでオフラインプログラミングを選択します
2.[テストプログラムの実行]またはその他の動きの組み合わせを選択します
3.ベンダー固有のロボットプログラムを取得するには、[プログラムの生成]を選択します
この場合、プログラムはシミュレーションされませんが、結果を取得するためにすばやく実行されます。これは、ロボットコントローラに固有のロボットプログラムです。プログラムが生成されると、実行モードはシミュレーションに戻ります。
注意:オフラインプログラミングモードがアクティブな場合、ロボットは動きません。RunModeに示すように、RUNMODE_MAKE_ROBOTPROGに Python OLP セクション。
C#プログラムは、シミュレーションで使用したものと同じC#コードを使用して、ロボットで直接実行できます。オンラインプログラミングでは、ロボットドライバーを使用して、特定のロボットコントローラーで汎用プログラムを実行できます。次の手順に従って、C#サンプルプロジェクトを使用してこの機能をテストします。
1.[実行モード]セクションで[ロボットで実行]を選択します
2.ロボットを動かす他のコマンドを選択します
動きは実際のロボットで実行され、シミュレータは動きをロボットと同期させます。
注意:のRunModeRDK / Robolink接続のをRUNMODE_RUN_ROBOTに変更して、ロボットで動作を実行できるようにします。例:
RDK = Robolink();
RDK.setRunMode(RUNMODE_RUN_ROBOT);
注意:のAPIによるロボットドライバーの使用に関する詳細情報 ロボットドライバーセクション。
Matlab用のRoboDK APIは、いくつかの例(C:/ RoboDK / Matlab /)を含むRoboDKインストールフォルダーにあります。Matlab用のRoboDK APIは、mファイルのグループとして提供されます。
Matlabは独自に開発したプログラミング言語で、 MathWorks。特に、MATLABでは、行列の操作、関数とデータのプロット、およびアルゴリズムの実装が可能です。
の メインセクションこのドキュメントの最初の部分では、ロボットプログラミングにMatlabなどの広く使用されているプログラミング言語でRoboDK APIを使用する利点について説明します。
Matlab用のRoboDK APIには以下が含まれます。
●Robolink.mは、RoboDKとインターフェースするクラスです。RoboDKステーションツリー内のオブジェクトは、Robolinkオブジェクトを使用して取得でき、RobolinkItemオブジェクトで表されます(Pythonのロボリンククラス)。
●RobolinkItem.mは、ステーションツリーのRoboDKアイテムを表すクラスです。そのアイテムに対して異なる操作を実行することが可能です(PythonのRobolink.Itemクラス)。
●transl.m、rotx.m、roty.m、およびrotz.mは、XYZ並進ベクトルまたは特定の軸に沿った回転を指定してポーズ行列を作成する関数です。
●Pose_2_XYZRPW.mとXYZRPW_2_Pose.mを使用すると、ポーズをXYZ位置とRPWオイラー角に、またはその逆に変換できます。詳細については、参照フレームセクション。
次のページにサンプルコードがあります。
https://robodk.com/Matlab-API
例として、Simulinkプロジェクトを使用できます。シミュレーションでは、ロボットは任意に生成された一連のXYZ座標に沿って移動します。
次のビデオは、シミュレーションを実行した結果を示しています。
https://www.youtube.com/watch?v=7DDBMwa0-Oc
このセクションでは、RoboDKの起動時に使用できるコマンドラインオプションについて説明します。コマンドラインオプションは、コマンド APIの機能。
次の呼び出しは、いくつかの引数を持つ一般的な呼び出しを表しています。
RoboDK.exe-[option1]-[option2] open_fileA-[option3] open_fileB ...
RoboDKでサポートされているすべてのファイル形式を引数として提供できます。以下のフォーマットを含みます:
●RDK ➔ RoboDKステーションファイル:このファイルは、依存関係(ロボット、ツール、NCファイルなど)を含め、プロジェクト全体を1つのファイルに保持します。
●ロボット➔ロボットファイル:ロボットファイルをロードすると、そのロボットの参照フレームも作成されます。
●ツール➔ツールファイル:最後に追加されたロボットに自動的にアタッチされます。
●stl / wrl / step / stp / iges / igs / sld ➔オブジェクト(3Dジオメトリ):オブジェクトは簡単にツールに変換。
●apt / gcode / cnc ➔ NCプログラムファイル:RoboDKはミリングプロジェクトを自動的に準備します(ユーティリティ➔製粉プロジェクト)。
注意:いくつかの引数を渡すことにより、APIからRoboDKを起動することができます。Python APIの使用例:
RDK = Robolink(args = '-ADDFRAME "-RENAME=Main Ref" load_object.stl')
利用可能なコマンドラインオプション:
-NOSPLASH
起動時にRoboDKスプラッシュイメージを削除します。
-DEBUG
アプリケーションのデバッグを可能にするbinフォルダーにRoboDK.debug.txtファイルを作成します。
-SETTINGS=filepath
テキストファイルから引数をロードします。そのテキストファイルの各行は、1つの単一の引数と見なされます。
-NOSHOW
RoboDKがファイルをロードしてプログラムを更新している間、すべてのウィンドウを非表示にします。
-HIDDEN
RoboDKのロードが完了すると、自動/ SHOWを回避します。後でウィンドウを表示する唯一の方法は、APIを使用することです。
-NO_WINDOWS
NCファイルのロード時に通常自動的に表示されるすべてのウィンドウを非表示にします。
-NOUI
ユーザーインターフェイスなしでRoboDKを起動します(ウィンドウおよび3Dビュー)。このオプションを使用すると、APIを使用してバックグラウンドでRoboDKを実行できます。
-PORT=20501
指定されたポート(TCP / IPプロトコル)を介してAPI通信を強制します。デフォルトのポートは20500です。
-TREE_STATE=-1
駅のツリーを表示しないでください。
-TREE_STATE=6
ウィンドウの左側にドッキングされているステーションツリーを不透明に表示します。
-ADDFRAME
新しい参照フレームを追加します。ロードされた新しいオブジェクトは、この参照フレームに配置されます。
-RESET
新しいオブジェクトが読み込まれた場合、ステーションの参照フレーム(最後に追加されたフレームではない)に配置されることを強制します。
-RENAME=Name
追加された最後の参照フレームまたはオブジェクトの名前を変更します。
-MOVE=x;y;z;rx;ry;rz
追加された最後の参照フレームを移動します(mmおよび度単位)。
-UPDATE_APT=YES
同じAPTファイルを持つロボット加工プロジェクトを上書きします
-UPDATE_APT=NO
ロボット加工プロジェクトをオーバーライドしません(名前が一致する場合、重複プロジェクトが作成されます)。
-UPDATE=file.apt
APTファイルをロードまたは更新し、問題がなければロボットプログラムを生成します。
-REPLACE_ITEMS=YES
新しいファイルが読み込まれ、名前が一致する場合、既存のツールとオブジェクトを更新します。
-REPLACE_ITEMS=NO
新しいファイルが読み込まれるときに、ツールとオブジェクトをオーバーライドしません。
-SETCOLOR=blue
最後に読み込まれたオブジェクト(オブジェクト、ツール、ロボット、メカニズム)の色を設定します。色はすることができます名前付き 色または16進数の色(#RRGGBBAAなど。例:#88112288)。
注意: 1回のクリックで透明度が50%を超えるオブジェクトを選択することはできません。
-AUTOGEN_MAINPROG =プログラム
ロードされたAPTファイルにリンクされたプログラムを順番に呼び出すメインプログラムを生成します。
-SELECTTOOL=#1
使用可能な最初のロボットツール(または対応する番号)を 活発なツール(新しいプログラムがロードされるときに使用されるツール)。
-SELECTTOOL=”ツール名”
を選択 活発な名前の一致を使用するツール。
-ADDCUTTER=length|path/cutter name.stl
Addcutterを使用すると、ツールホルダーに対してカッターのジオメトリを追加できます。カッターは、RoboDKではツールとして扱われ、カッターの形状を保持します。カッターのジオメトリは、工具の先端を原点とするSTLファイル(ASCIIまたはバイナリ)でなければなりません。長さはツールホルダーに対してmm単位で指定する必要があります(ツールホルダーの正のZ軸は外側を指す必要があります)。
-SELECTCUTTER=”カッター名”
SelectcutterはSELECTTOOLと同じ効果を持ち、カッターはツールとして扱われます。
-SHOW
RoboDKウィンドウを表示します。これは、すべてのファイルが読み込まれ、機械加工プロジェクトが更新されると自動的に行われます。
以下のオプションのいずれかを使用すると、/ SHOWコマンドによって引き起こされる可視性が変更されます。
-QUIT
エラーメッセージがない場合は、プログラムを終了します。
-END
エラーメッセージがあってもプログラムを終了します。