ポストプロセッサー

ポストプロセッサは、特定のロボットコントローラのロボットプログラムを生成できるため、オフラインプログラミングの重要なステップです。ロボットプログラミングはベンダー固有のプログラミングルールに従う必要があります。これらのルールはポストプロセッサーに実装されています。ロボットポストプロセッサは、特定のロボットコントローラ用にロボットプログラムを生成する方法を定義します。

RoboDKシミュレーションから特定のロボットプログラムへの変換は、ポストプロセッサによって行われます。各ロボットは、特定のロボットプログラミングスタイルを定義するポストプロセッサにリンクされています。ポストプロセッサは、プログラムがオフラインで生成されるときに使用されます。プログラムを生成するセクション(プログラムを右クリックし、[Generate Robot Program]を選択)。

RoboDKには、多くのロボットコントローラをサポートする多くのポストプロセッサが付属しています。 利用可能なポストプロセッサーセクション。または、カスタマイズされたポストプロセッサーを作成したり、既存のポストプロセッサーを変更したりすることもできます。使用可能なすべてのポストプロセッサーは、C/ RoboDK / Posts /フォルダーにあります。

1つのポストプロセッサーはPYファイルです(各ポストプロセッサーはPythonスクリプトによって定義されます)。RoboDKPostsフォルダー内のファイルを手動で追加、変更、または削除することができます。RoboDKポストプロセッサー(PYファイル)が提供されている場合は、それをPostsフォルダーに配置して、RoboDKから選択できるようにする必要があります。

このセクションでは、ポストプロセッサーを選択、編集、または作成し、RoboDKのロボットで使用する方法を示します。次のビデオで簡単な紹介をご覧いただけます。https://www.robodk.com/help#PostProcessor

注意:ほとんどのロボットブランドには、異なるコントローラーバージョンがあります。特定のロボットコントローラがサポートする適切なロボットプログラムを生成するには、適切なポストプロセッサを選択することが重要です。


ポストプロセッサーを選択する

ロボットやプログラムを右クリックすることで、簡単にポストプロセッサーを選択できます。ポストプロセッサの選択はロボットに割り当てられるため、プログラムに割り当てられているポストプロセッサを変更すると、同じロボットに割り当てられているすべてのプログラムで使用されるポストプロセッサが更新されます。

ロボットのポストプロセッサーを選択するには:

1.ロボットまたはプログラムを右クリック

2.ポストプロセッサーの選択

3.リストからポストプロセッサーを選択します

4.OKを選択します。

Post Processors - 画像 1 Post Processors - 画像 2

これで変更が適用され、プログラムを再度生成して結果を確認できます。

注意:ポストプロセッサーの選択は特定のロボットにリンクされています。プログラムのポストプロセッサを変更すると、同じロボットにリンクされているすべてのプログラムのポストプロセッサが更新されます。

別の方法として、次の手順に従ってポストプロセッサを選択することもできます。

1.ロボットパネルを開く(ロボットをダブルクリック)

2.パラメータを選択

3.次の図に示すように、Robotブランドボックスでポストプロセッサーを選択します。

Post Processors - 画像 3


ポストプロセッサーを編集する

既存のポストプロセッサーを変更したり、新しいポストプロセッサーを作成したりすることができます。ポストプロセッサーは、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代わりに。

Post Processors - 画像 4

または、ポストプロセッサーを手動で編集することもできます。

1.ポストプロセッサーフォルダーに移動します:C/ RoboDK / Posts /

2.Python IDLEPYファイルを開きます(右クリック IDLE)または他のテキストエディターで編集します。

3.必要な変更を行います。

4.ファイルを実行して結果をテストします。[実行]を選択しますモジュールを実行(デフォルトではF5Python IDLEから。

または、テキストエディターを使用してこのファイルを編集し、ダブルクリックしてPythonで実行することもできます。

Post Processors - 画像 5


変更例

このセクションでは、既存のポストプロセッサーに小さな変更を加える方法を示します。ほとんどのポストプロセッサーには、ベンダー固有のロボットプログラミング機能を変更またはアクティブ化するために簡単に変更できるいくつかの変数があります。

例として、次の変更が既存の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変数が必要です。

Post Processors - 画像 6

3.プログラムを選択ポストプロセッサーの追加/編集それを変更するために現在使用しているポストプロセッサーを選択します。現在カスタマイズ可能なポストプロセッサーを使用している場合は、デフォルトで選択されます。

4.ポストプロセッサ内でMoveJ関数を探す必要があります。この関数は、ポストプロセッサーが関節運動コマンドを生成する方法を定義します。あるいは、RoboDKは直線移動にMoveLを使用します。次の図に示すように、Pythonプログラミング言語を使用して、プログラムファイルに追加された行を変更し、関節角度情報を提供します。

Post Processors - 画像 7

5.最後に、ポストプロセッサが関節角度またはポーズを文字列に変換する方法を変更する必要がある場合があります。関数angles_2_strpose_2_strは、それぞれ関節角度とポーズがテキストに変換される方法を定義します。

Post Processors - 画像 8

ほとんどのRoboDKポストプロセッサは、関節の動きには関節データを使用し、直線的な動きにはデカルト座標を使用します。ジョイント座標を指定して、常に一連の直線移動の最初のポイントをジョイント移動として開始することをお勧めします。これにより、誤ったロボット構成でプログラムを開始したり、特異点や軸の制限に達したりすることが回避されます。

注意:すべてのRoboDKポストプロセッサは、デフォルトでrobodk.pyモジュールにリンクしています。このモジュールには、多くのロボットコントローラのポーズからオイラー角に変換するための便利なツールが含まれています。ロボットコントローラに対応する表記を使用します。詳細については、参照フレームセクションと robodk.pyモジュール。

注意:複数のロボットメーカーが同じオイラー角表記を使用できます。たとえば、ファナックとモトマンはどちらも同じXを使用していますYZ表記、ストーブリ、およびMecademicは同じXを使用しますY 'Z ''表記など

速度制限を強制する

RoboDKからプログラムを生成するとき、500 mm / sの速度制限を設定し、より高い速度を使用しないようにするには、次の手順に従ってください。この例では、KUKA KRC2またはKRC4コントローラーを使用していると想定しています。

1.setSpeed関数定義を見つけます(def setSpeed

2.m / s単位で速度を変更する$ VEL.CP出力を生成する前に、次のコードを追加します。 
speed_mms = minspeed_mms500

Post Processors - 画像 9

注意:200 mm / sのデフォルト速度は、ポストプロセッサーの上部にあるHEADER変数で定義されています($ VEL.CP = 0.2)。このデフォルトの速度は、速度がRoboDKから変更されていない場合にも変更できます。

ファイルごとに1つのプログラムを生成する

次の変更を追加して、ファイルごとに複数のプログラムを追加することを避け、最大3000行のコードでプログラムを生成します。

1.変数MAX_LINES_X_PROG3000に設定します

2.変数INCLUDE_SUB_PROGRAMSFalseに設定します

注意:プログラムごとの最大行数がRoboDKから指定されている場合、変数MAX_LINES_X_PROGはオーバーライドされる可能性があります プログラムオプションメニュー。ポストプロセッサーの__init__セクションを変更して、この変数をRoboDK設定から変更しないようにします。

Post Processors - 画像 10


利用可能なポストプロセッサ

RoboDKでは、デフォルトで次のポストプロセッサーを使用できます。

ABB RAPID IRC5ABB IRC5ロボットコントローラー用

ABB RAPID S4CABB S4Cロボットコントローラー用

Adept VplusAdept V +プログラミング言語用

アレンブラッドリーLogix5000:アレンブラッドリーLogix5000 PLC

AuboAUBOロボットコントローラ用

CLOOSCLOOSロボットコントローラ用

Comau C5GComau C5Gロボットコントローラー用

Denso PACDenso RC7(およびそれ以前)ロボットコントローラー(PACプログラミング言語)

Denso RC8Denso RC8(以降)ロボットコントローラー(PacScriptプログラミング言語)

Dobot:教育用Dobotロボット用

DoosanDoosan協調ロボット用

EpsonEpsonロボットコントローラ用

ファナックR30iA:ファナックR30iAおよびR30iBロボットコントローラー用

ファナックR30iA_Arc:ファナックアーク溶接用

Fanuc RJ3Fanuc RJ3ロボットコントローラ用

GCode BnRBRロボットコントローラー用

GSKGSKロボット用

HCR:ハンファロボットコントローラー用

HIWIN HRSSHIWINロボット用

KAIROKeba Kairoロボットコントローラー用

KUKA IIWAJavaでのKUKA IIWAサンライズプログラミング用

KUKA KRC2KUKA KRC2ロボットコントローラー用

KUKA KRC2_CamRobKUKA CamRobフライスオプション用

KUKA KRC2_DATDATデータファイルを含むKUKA KRC2ロボットコントローラー用

KUKA KRC4KUKA KRC4ロボットコントローラー用

KUKA KRC4_ConfigKUKA KRC4ロボットコントローラー用、各行に構成データ

KUKA KRC4_DATDATデータファイルを含むKUKA KRC4ロボットコントローラー用

KawasakiKawasaki ASロボットコントローラ用

MecademicMecademic Meca500ロボット用

三菱:三菱ロボットコントローラー用

Motoman / YaskawaInform IIおよびInform IIIJBI)を使用するさまざまなMotomanロボットコントローラー用

Nachi AX FDNachi AXおよびFDロボットコントローラ用

OmronOmron / Techmanロボットコントローラ用

OTCDaihen OTCロボットコントローラー用

PanasonicPanasonic PRGプログラムの場合

PrecisePrecise Scaraロボット用

RobostarRobostarロボットコントローラー用

SiasunSiasunロボットコントローラー用

Siemens_SinumerikSiemens Sinumerik ROBXロボットコントローラー用

Staubli VAL3Staubli VAL3ロボットプログラム用(CS8コントローラ以降)

Staubli VAL3_InlineMove:インライン移動データを含むStaubli VAL3プログラムを生成します

Staubli S6Staubli S6ロボットコントローラー用

東芝:東芝ロボット用

TechmanOmron / Techmanロボットコントローラ用

ユニバーサルロボット:URロボットの場合、ポーズターゲットとして直線運動を生成します

Universal Robots URPURロボットの場合、PolyscopeURロボットコントローラー)にロードおよび変更できるURPを生成します

Universal Robots_RobotiQRobotiQグリッパーのサポートを含むURロボット用

Universal Robots_MovePURロボットの場合、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モジュールは、とりわけ、ポーズ操作(乗算、逆数など)や、ポーズ間のオイラー角への変換のためのツールを提供します。

注意:デフォルトでは、PythonRoboDKとともにインストールされ、robodk.pyモジュールがPythonパスに追加されます。

オンラインでPythonプログラミングについて学習できるドキュメントを入手できます。
https://docs.python.org/3/

プログラムが生成されると、前処理済み/ユニバーサルPythonプログラムが生成され、ローカルの一時フォルダーに保存されます。前処理されたプログラムは、適切なポストプロセッサ(RoboDKでユーザーが選択)にリンクされています。ポストプロセッサは、目的のコードを生成するRobotPostクラスを定義します。

プリコンパイルされたプログラムはPythonで実行されます。