ポストプロセッサは、特定のロボットコントローラのロボットプログラムを生成できるため、オフラインプログラミングの重要なステップです。ロボットプログラミングはベンダー固有のプログラミングルールに従う必要があります。これらのルールはポストプロセッサーに実装されています。ロボットポストプロセッサは、特定のロボットコントローラ用にロボットプログラムを生成する方法を定義します。
RoboDKシミュレーションから特定のロボットプログラムへの変換は、ポストプロセッサによって行われます。各ロボットは、特定のロボットプログラミングスタイルを定義するポストプロセッサにリンクされています。ポストプロセッサは、プログラムがオフラインで生成されるときに使用されます。プログラムを生成するセクション(プログラムを右クリックし、[Generate Robot Program]を選択)。
RoboDKには、多くのロボットコントローラをサポートする多くのポストプロセッサが付属しています。 利用可能なポストプロセッサーセクション。または、カスタマイズされたポストプロセッサーを作成したり、既存のポストプロセッサーを変更したりすることもできます。使用可能なすべてのポストプロセッサーは、C:/ RoboDK / Posts /フォルダーにあります。
1つのポストプロセッサーはPYファイルです(各ポストプロセッサーはPythonスクリプトによって定義されます)。RoboDKのPostsフォルダー内のファイルを手動で追加、変更、または削除することができます。RoboDKポストプロセッサー(PYファイル)が提供されている場合は、それをPostsフォルダーに配置して、RoboDKから選択できるようにする必要があります。
このセクションでは、ポストプロセッサーを選択、編集、または作成し、RoboDKのロボットで使用する方法を示します。次のビデオで簡単な紹介をご覧いただけます。https://www.robodk.com/help#PostProcessor
注意:ほとんどのロボットブランドには、異なるコントローラーバージョンがあります。特定のロボットコントローラがサポートする適切なロボットプログラムを生成するには、適切なポストプロセッサを選択することが重要です。
ロボットやプログラムを右クリックすることで、簡単にポストプロセッサーを選択できます。ポストプロセッサの選択はロボットに割り当てられるため、プログラムに割り当てられているポストプロセッサを変更すると、同じロボットに割り当てられているすべてのプログラムで使用されるポストプロセッサが更新されます。
ロボットのポストプロセッサーを選択するには:
1.ロボットまたはプログラムを右クリック
2.ポストプロセッサーの選択
3.リストからポストプロセッサーを選択します
4.OKを選択します。
これで変更が適用され、プログラムを再度生成して結果を確認できます。
注意:ポストプロセッサーの選択は特定のロボットにリンクされています。プログラムのポストプロセッサを変更すると、同じロボットにリンクされているすべてのプログラムのポストプロセッサが更新されます。
別の方法として、次の手順に従ってポストプロセッサを選択することもできます。
1.ロボットパネルを開く(ロボットをダブルクリック)
2.パラメータを選択
3.次の図に示すように、Robotブランドボックスでポストプロセッサーを選択します。
既存のポストプロセッサーを変更したり、新しいポストプロセッサーを作成したりすることができます。ポストプロセッサーは、C:/ RoboDK / Posts /フォルダーに配置して、RoboDKで選択できるようにする必要があります。前のセクションでは、特定のロボットをポストプロセッサーにリンクする方法について説明しました。
各ポストプロセッサーは1つのPYファイルです。ファイルの名前を変更するか、C:/ RoboDK / Posts /フォルダーとの間でファイルをコピーして、さまざまなポストプロセッサーを共有することができます。既存のポストプロセッサスクリプトを削除するには、Postsフォルダ内の対応するPYファイルを削除するだけです。
ポストプロセッサーは、任意のテキストエディターまたはPythonエディター(Python IDLE)を使用して編集できます。Pythonエディターを使用すると、ファイルの最後にあるサンプルプログラムをすばやくデバッグして評価できます。
ポストプロセッサを適切にテストして使用するには、Pythonをインストールする必要があります(RoboDKではPythonがデフォルトでインストールされます)。
次の手順に従って、既存のポストプロセッサーを変更します。
1.プログラムを選択➔ポストプロセッサーの追加/編集
2.既存のポストプロセッサーを選択します
3.OKを選択します。テキストエディタが開き、プログラムが起動します。
4.Goを選択します➔デバッグ(F5)結果をプレビューします。必要に応じて変更します。使用するテキストエディターによっては、[実行]を選択する必要があります➔モジュールを実行(F5)代わりに。
または、ポストプロセッサーを手動で編集することもできます。
1.ポストプロセッサーフォルダーに移動します:C:/ RoboDK / Posts /
2.Python IDLEでPYファイルを開きます(右クリック➔ IDLE)または他のテキストエディターで編集します。
3.必要な変更を行います。
4.ファイルを実行して結果をテストします。[実行]を選択します➔モジュールを実行(デフォルトではF5)Python IDLEから。
または、テキストエディターを使用してこのファイルを編集し、ダブルクリックしてPythonで実行することもできます。
このセクションでは、既存のポストプロセッサーに小さな変更を加える方法を示します。ほとんどのポストプロセッサーには、ベンダー固有のロボットプログラミング機能を変更またはアクティブ化するために簡単に変更できるいくつかの変数があります。
例として、次の変更が既存のABBおよびKUKAポストプロセッサーに加えられます:
●関節の動きを設定して、関節の角度情報を使用してモーションコマンドを生成します。
●最高速度を500 mm / sにオーバーライドします。ロボットがより速く動くようにプログラムされている場合でも、速度はポストプロセッサーで500 mm / sに制限されます。
●各プログラムを個別のファイルとして生成し、プログラムにプログラムあたり最大3000行のコードを強制します。大きなプログラムは小さなプログラムに分割され、順次呼び出されます。
前のセクションでは、既存のポストプロセッサーを開いて編集する方法を示しました。
1.プログラムを選択➔ポストプロセッサーの追加/編集
2.ポストプロセッサーを選択します。たとえば、KUKA KRC4の場合、KUKA_KRC4を選択します。
3.OKを選択します。ポストプロセッサーは、Python IDLEエディターに表示されます。
次のセクションでは、テキストエディター(またはPython IDLE)で提案された変更を行う方法を示します。
このセクションでは、デカルト値の代わりにジョイント値を使用して、軸移動を強制するように既存のポストプロセッサを変更する方法を示します。この例では、ABB IRC5ロボットコントローラーにこの変更を適用する方法を示します。
1.ロボットコントローラのプログラミングマニュアルを見つけます。この例では、ABB IRC5 RAPIDプログラミングマニュアルを使用します。
2.関節運動の説明を探します。この場合、ABBの絶対関節移動コマンドはMoveAbsJと呼ばれます。このコマンドには、関節軸を定義するjointtarget変数が必要です。
3.プログラムを選択➔ポストプロセッサーの追加/編集それを変更するために現在使用しているポストプロセッサーを選択します。現在カスタマイズ可能なポストプロセッサーを使用している場合は、デフォルトで選択されます。
4.ポストプロセッサ内でMoveJ関数を探す必要があります。この関数は、ポストプロセッサーが関節運動コマンドを生成する方法を定義します。あるいは、RoboDKは直線移動にMoveLを使用します。次の図に示すように、Pythonプログラミング言語を使用して、プログラムファイルに追加された行を変更し、関節角度情報を提供します。
5.最後に、ポストプロセッサが関節角度またはポーズを文字列に変換する方法を変更する必要がある場合があります。関数angles_2_strとpose_2_strは、それぞれ関節角度とポーズがテキストに変換される方法を定義します。
ほとんどのRoboDKポストプロセッサは、関節の動きには関節データを使用し、直線的な動きにはデカルト座標を使用します。ジョイント座標を指定して、常に一連の直線移動の最初のポイントをジョイント移動として開始することをお勧めします。これにより、誤ったロボット構成でプログラムを開始したり、特異点や軸の制限に達したりすることが回避されます。
注意:すべてのRoboDKポストプロセッサは、デフォルトでrobodk.pyモジュールにリンクしています。このモジュールには、多くのロボットコントローラのポーズからオイラー角に変換するための便利なツールが含まれています。ロボットコントローラに対応する表記を使用します。詳細については、参照フレームセクションと robodk.pyモジュール。
注意:複数のロボットメーカーが同じオイラー角表記を使用できます。たとえば、ファナックとモトマンはどちらも同じXを使用しています➔Y➔Z表記、ストーブリ、およびMecademicは同じXを使用します➔Y '➔Z ''表記など
RoboDKからプログラムを生成するとき、500 mm / sの速度制限を設定し、より高い速度を使用しないようにするには、次の手順に従ってください。この例では、KUKA KRC2またはKRC4コントローラーを使用していると想定しています。
1.setSpeed関数定義を見つけます(def setSpeed)
2.m / s単位で速度を変更する$ VEL.CP出力を生成する前に、次のコードを追加します。
speed_mms = min(speed_mms、500)
注意:200 mm / sのデフォルト速度は、ポストプロセッサーの上部にあるHEADER変数で定義されています($ VEL.CP = 0.2)。このデフォルトの速度は、速度がRoboDKから変更されていない場合にも変更できます。
次の変更を追加して、ファイルごとに複数のプログラムを追加することを避け、最大3000行のコードでプログラムを生成します。
1.変数MAX_LINES_X_PROGを3000に設定します
2.変数INCLUDE_SUB_PROGRAMSをFalseに設定します
注意:プログラムごとの最大行数がRoboDKから指定されている場合、変数MAX_LINES_X_PROGはオーバーライドされる可能性があります プログラムオプションメニュー。ポストプロセッサーの__init__セクションを変更して、この変数をRoboDK設定から変更しないようにします。
RoboDKでは、デフォルトで次のポストプロセッサーを使用できます。
●ABB RAPID IRC5:ABB IRC5ロボットコントローラー用
●ABB RAPID S4C:ABB S4Cロボットコントローラー用
●Adept Vplus:Adept V +プログラミング言語用
●アレンブラッドリーLogix5000:アレンブラッドリーLogix5000 PLC用
●Aubo:AUBOロボットコントローラ用
●CLOOS:CLOOSロボットコントローラ用
●Comau C5G:Comau C5Gロボットコントローラー用
●Denso PAC:Denso RC7(およびそれ以前)ロボットコントローラー(PACプログラミング言語)
●Denso RC8:Denso RC8(以降)ロボットコントローラー(PacScriptプログラミング言語)
●Dobot:教育用Dobotロボット用
●Doosan:Doosan協調ロボット用
●Epson:Epsonロボットコントローラ用
●ファナックR30iA:ファナックR30iAおよびR30iBロボットコントローラー用
●ファナックR30iA_Arc:ファナックアーク溶接用
●Fanuc RJ3:Fanuc RJ3ロボットコントローラ用
●GCode BnR:B&Rロボットコントローラー用
●GSK:GSKロボット用
●HCR:ハンファロボットコントローラー用
●HIWIN HRSS:HIWINロボット用
●KAIRO:Keba Kairoロボットコントローラー用
●KUKA IIWA:JavaでのKUKA IIWAサンライズプログラミング用
●KUKA KRC2:KUKA KRC2ロボットコントローラー用
●KUKA KRC2_CamRob:KUKA CamRobフライスオプション用
●KUKA KRC2_DAT:DATデータファイルを含むKUKA KRC2ロボットコントローラー用
●KUKA KRC4:KUKA KRC4ロボットコントローラー用
●KUKA KRC4_Config:KUKA KRC4ロボットコントローラー用、各行に構成データ
●KUKA KRC4_DAT:DATデータファイルを含むKUKA KRC4ロボットコントローラー用
●Kawasaki:Kawasaki ASロボットコントローラ用
●Mecademic:Mecademic Meca500ロボット用
●三菱:三菱ロボットコントローラー用
●Motoman / Yaskawa:Inform IIおよびInform III(JBI)を使用するさまざまなMotomanロボットコントローラー用
●Nachi AX FD:Nachi AXおよびFDロボットコントローラ用
●Omron:Omron / Techmanロボットコントローラ用
●OTC:Daihen OTCロボットコントローラー用
●Panasonic:Panasonic PRGプログラムの場合
●Precise:Precise Scaraロボット用
●Robostar:Robostarロボットコントローラー用
●Siasun:Siasunロボットコントローラー用
●Siemens_Sinumerik:Siemens Sinumerik ROBXロボットコントローラー用
●Staubli VAL3:Staubli VAL3ロボットプログラム用(CS8コントローラ以降)
●Staubli VAL3_InlineMove:インライン移動データを含むStaubli VAL3プログラムを生成します
●Staubli S6:Staubli S6ロボットコントローラー用
●東芝:東芝ロボット用
●Techman:Omron / Techmanロボットコントローラ用
●ユニバーサルロボット:URロボットの場合、ポーズターゲットとして直線運動を生成します
●Universal Robots URP:URロボットの場合、Polyscope(URロボットコントローラー)にロードおよび変更できるURPを生成します
●Universal Robots_RobotiQ:RobotiQグリッパーのサポートを含むURロボット用
●Universal Robots_MoveP:URロボットの場合、MovePコマンドとして直線運動を生成します
●ヤマハ:ヤマハロボット用
次のビデオは、RoboDKのポストプロセッサの概要を示しています。
https://robodk.com/help#PostProcessor
ポストプロセッサの各メソッドのリファレンスドキュメントはオンラインで入手できます。
http://robodk.com/doc/en/PythonAPI/postprocessor.html
すべてのポストプロセッサーはrobodk.pyモジュールを使用します:
http://robodk.com/doc/en/PythonAPI/robodk.html#robodk.Mat
robodk.pyモジュールは、とりわけ、ポーズ操作(乗算、逆数など)や、ポーズ間のオイラー角への変換のためのツールを提供します。
注意:デフォルトでは、PythonはRoboDKとともにインストールされ、robodk.pyモジュールがPythonパスに追加されます。
オンラインでPythonプログラミングについて学習できるドキュメントを入手できます。
https://docs.python.org/3/
プログラムが生成されると、前処理済み/ユニバーサルPythonプログラムが生成され、ローカルの一時フォルダーに保存されます。前処理されたプログラムは、適切なポストプロセッサ(RoboDKでユーザーが選択)にリンクされています。ポストプロセッサは、目的のコードを生成するRobotPostクラスを定義します。
プリコンパイルされたプログラムはPythonで実行されます。