ロボットプログラム

RoboDKは、産業用ロボットの応用プロジェクトを中心に開発されたシミュレーターです。これは、特定のロボットアームとロボットコントローラーの為にロボットプログラムをオフラインで作成、シミュレート、生成できることを意味します。つまりRoboDKは、オフラインプログラミング用のソフトウェアです。

ロボットプログラムを作成するには、ロボットを選択し、ロボットツールを読み込み、一つ以上のCADからパスへの機能を使用する必要があります。この機能を使用して、ターゲットの追加または特定のツールを使用してプログラムが作成できます(例えば、CNCプログラムをロボットプログラムに変換するど)。

産業用ロボットを含む広範なライブラリが利用可能です。産業用ロボットは、軸の制限、動きの感覚、軸のリンクを含めて販売者固有のコントローラーと同じ動作をするようにRoboDKでモデル化されています。

Robot Programs - 画像 1

この項目では、RoboDKグラフィカルユーザーインターフェイス(GUI)を使用して、特定のロボットコントローラー用にロボットプログラムを作成、シミュレート、および生成する方法を示します。

オフラインプログラミング

オフラインプログラミング(またはOff-Lineプログラミング)とは、製造環境外でロボットをプログラミングすることです。オフラインプログラミングによって製造現場のプログラミングによる生産のダウンタイムを無くす事ができます(ティーチペンダントを使用したプログラミング)。

シミュレーションとオフラインプログラミングは、製造セルを設置する前に、ロボットセルの様々な場面で調査できます。作業セルの設計でよくある間違いとかは、事前に予測できます。

オフラインプログラミングは、ロボットシステムの投資収益率を最大にする最良の方法であり、適切なシミュレーションツールが必要になります。新しいプログラムの採用にかかる時間が数週間から一日に短縮できるため、短期生産のロボット化が可能になります。

プログラムの作成

シミュレーションは、プログラムに一連の指示を追加することで出来上がります。各指示は、特定のコントローラー用のコードを表しますが、RoboDKのグラフィカルユーザーインターフェイス(GUI)を使用すれば、コードを書かずに一般的な方法でロボットプログラムが簡単に構築できます。

プログラムが生成される際に、ロボットコントローラ固有のコードが自動的に生成されます。RoboDKのグラフィカルユーザーインターフェイスを使用して新しい空のプログラムを作成するには:

1.プログラムRobot Programs - 画像 2プログラムを追加を選択 
または、ツールバーにある同様のボタンを選択してください。

2.ツールアイテムの名前変更F2を選択プログラムの名前が変更できます

この操作は空のプログラムを作成し、そのプログラムを右クリックまたはプログラムメニューから指示を選択すれば、新しい指示が追加できます。次の項目プログラムの指示は、指示の追加に関する詳細を提供します。

Robot Programs - 画像 3

プログラムの指示

前の項目で示したように、プログラムを右クリックするかプログラムメニューから新しい指示が追加できます。

この項目では、オフラインプログラミング用にRoboDKグラフィカルユーザーインターフェイスがサポートする指示について説明します。

関節移動

プログラムRobot Programs - 画像 4関節移動の指示を選択して、新しい関節運動の指示が追加できます。または、ツールバーにある同様のボタンを選択します。

指示を追加する前にターゲットを選択しない限り、移動指示とリンクされた新しいターゲットを作成します。そのターゲットを動かすと、ロボットの動きも変わります。

これがプログラムに追加される最初の指示である場合、移動指示の前に2つ指示がさらに追加されます:参照系を選択ツールの座標系を選択。これにより、プログラムが移動指示に到達した時、ロボットが作成された新しいターゲットと同じ参照系とツールの座標系を使用していることを保証します。

Robot Programs - 画像 5

直線移動

プログラムRobot Programs - 画像 6直線移動の指示を選択して、新しい線運動の指示が追加できます。または、ツールバーにある同様のボタンを選択します。

指示を追加する前にターゲットを選択しない限り、移動指示とリンクされた新しいターゲットを作成します。そのターゲットを動かすと、ロボットの動きも変わります。

関節と直線移動は似たような動作をする為、二つのタイプの間を簡単に切り替えることができます。

関節移動の指示同様に、これがプログラムに追加される最初の指示である場合、移動指示の前に2つ指示がさらに追加されます:参照系を選択ツールの座標系を選択

関節移動と違って直線移動は、ロボットの特異点と軸の限界に敏感です。例えば、6軸ロボットは、直線移動の途中で特異点を越えることはできません。次の画像は、5番目の関節が(0度の)特異点に近すぎることを示しています。[…]代わりに関節移動の使用を考えましょう。次の画像で示すように。

Robot Programs - 画像 7

直線移動が絶対に必要でない場合は、移動命令を右クリックして、関節移動指示に変更しましょう。

Robot Programs - 画像 8

あるいは、特異点を回避する為に、ターゲット、TCP、または参照系の位置を変更する必要があります。

参照系を設定

プログラムRobot Programs - 画像 9参照系を設定の指示を選択して、使用する参照系を設定します。これにより、後に続く移動指示の為に、コントローラーの参照系とRoboDKロボットの有効な参照系がシミュレーション用に変更されます。つまりは、特定のターゲット(直交座標ターゲット)への移動指示は、最後に設定した参照系を基準に移動します。

参照系の変数はロボットのブランドによって、作業オブジェクト(ABBロボット)、UFRAME(ファナックロボット)、FRAMEMotoman(安川電機)ロボット)、または$BASEKUKAロボット)と呼ばれます。

Robot Programs - 画像 10

ツールの座標系を設定

プログラムRobot Programs - 画像 11ツールの座標系を設定して、使用するツールの座標系(TCP)を設定します。これにより、後に続く移動指示の為に、プログラムで指定されたツールの座標系とRoboDKロボットの有効なツールの座標系がシミュレーション用に変更されます。つまりは、特定のターゲット(直交座標ターゲット)への移動指示は、最後に設定したツールの座標系を基準に移動します。

ツールの座標系の変数はロボットのブランドによって、ToolDataABBロボット)、UTOOL(ファナックロボット)、TOOLMotoman(安川電機)ロボット)、または$TOOLKUKAロボット)と呼ばれます。

Robot Programs - 画像 12

円形移動

プログラムRobot Programs - 画像 13円形移動の指示を選択して、新しい円運動の指示が追加できます。または、ツールバーにある同様のボタンを選択します。

指示を追加する前にターゲットが2つ選択されていない限り、移動指示は新しいターゲットを作成しません。次の画像が示すように、ターゲットを2つ追加し、それらを円形移動の指示にリンクする必要があります。

Robot Programs - 画像 14

円形の経路は、ロボットの現在地から始まり、指定された円状の一番目の点(ターゲットリンク1)を通過し、2番目の点(ターゲットリンク2)で終了する円弧です。

速度を設定

プログラムRobot Programs - 画像 15速度指示の設定を選択して、速度や加速度を変更する新しい指示を追加します。関節空間とデカルト空間で速度と加速度を指定することができます。

プログラム内で特定の速度や加速を課す為、対応する場面を有効にしてください。ロボットの速度は、この指示が実行された瞬間から適用されます。

ロボットの速度は、ロボットパラメータメニューでも変更できます。ロボットをダブルクリックして、パラメータを選択してください。

Robot Programs - 画像 16

メッセージを表示

プログラムRobot Programs - 画像 17メッセージ表示の指示を選択して、ティーチペンダントにメッセージを表示する新しい指示を追加します。

Robot Programs - 画像 18

一時停止

プログラムRobot Programs - 画像 19一時停止の指示を選択して、一定時間またはオペレーターがプログラムを再開するまで、プログラムを一時停止する新しい指示を追加します。

Robot Programs - 画像 20

プログラムコール

プログラムRobot Programs - 画像 21プログラムコールの指示を選択して、現在のプログラムからサブプログラムを呼び出し実行する指示を追加します。

デフォルトでは、特定のプログラムへのブロッキングコールですが、コードを挿入に切り替える事により、その指示の位置に固有なコードを入力することができます。これは、特定の場面および特定のコントローラーに役立つ場合があります。

Robot Programs - 画像 22 Robot Programs - 画像 23

プログラムコールからスレッド開始に切り替えると、サブプログラムへの非ブロッキングコールをします。この場合、コントローラーが新しいスレッドを開始します。この設定は、特定のコントローラーのみで使用でき、特定の操作でのみに機能します。

IOを設定/待つ

プログラムRobot Programs - 画像 24 I/Oを設定/待つの指示を選択して、デジタル出力(DO)の状態を変更します。デフォルトでは、この指示はデジタル出力を設定に設定されています。この指示は、特定の状態に切り替わる為に、特定のデジタル入力(DI)を待つこともできます。

IO名は数値または名付けられた変数であれば、テキスト値にすることもできます。IO値は、数値(Falseの場合は0Trueの場合は1)または名付けられた状態の場合はテキスト値です。

Robot Programs - 画像 25

入力が特定の値に変化するまでプログラムの実行を停止するには、デジタル入力を待つに設定します。さらに、ほとんどのロボットコントローラーは、待ち時間が特定の値を超えた場合にエラーを発生させるタイムアウト遅延をサポートしています。この機能を有効にするには、タイムアウト(ms)設定をチェックしてください。

Robot Programs - 画像 26

シミュレートされたデジタル入力と出力を変更すると、新しいプロジェクト変数が作成されます。これらの変数の状態を確認するには、プロジェクトを右クリックして、プロジェクトパラメータを選択します。APIを通してこれらの変数を読み取りまたは変更することもできます。

丸め値を設定

プログラムRobot Programs - 画像 27丸みを設定の指示を選択して、丸め精度を変更します。一連の動きの間の角を滑らかにする為に使用される値。この変更は、プログラム内で実行された瞬間から有効になるため(他の指示と同様に)、この値はプログラムの最初に設定するのが一般的です。

丸めの指示がない場合、ロボットは各動作の終了時に速度が0に到達します(次の動作が前の動作の接線長にある場合を除く)。これにより、高い加速と迅速な速度の変更を引き起こし、各動作の精度が保証されます。

この値は、ブレンド半径(ユニバーサルロボット)、ゾーンデータ(ABBロボット)、CNT / FINE(ファナックロボット)、コーナリング(メカでミックロボット)または$APO.CDIS/$APO.CPTP/アドバンス(KUKAロボット)とも呼ばれます。

Robot Programs - 画像 28

RoboDKパス精度のテストにより、測定システムでのさまざまな丸め値の影響をよりよく理解できます。

シミュレーションイベント

プログラムRobot Programs - 画像 29シミュレーションイベントの指示を選択して、特定のシミュレーションイベントを発動させる指示を追加します。シミュレーションイベントは生成されたコードには影響を与えず、シミュレーション目的のみで使用される特定のイベントを発生させる指示です。

グラフィカルユーザーインターフェイスを使用したシミュレーションイベントで以下が可能になります:

ロボットツールにオブジェクトを取り付けるまたは外す

オブジェクトまたはツールを表示または非表示にする

オブジェクトと参照系の位置を変更する

Robot Programs - 画像 30

例えば、ロボットがオブジェクトを掴む為に特定の場所へ移動させてから、オブジェクトを取り付けるイベントによりロボットと一緒にそのオブジェクトを移動させる事ができます。次に、ロボットがオブジェクトを移動させた後に、オブジェクトを取り外すイベントでツールが持っているオブジェクトを残すことができます。

Robot Programs - 画像 31

プログラムのシミュレート

Robot Programs - 画像 32プログラムをダブルクリックして、プログラムシミュレーションを開始します。

または:

1.プログラムを右クリックして

2.実行を選択してください

プログラムをダブルクリックすると、シミュレーションバーが下部に表示されます。シミュレーションバーをスライドして、シミュレーションを前後に進めることができます。

Robot Programs - 画像 33

RoboDKのシミュレーションは、デフォルトでリアルタイムの5倍の速さでミュレートします。つまりは、プログラムの実行時間が30秒であれば、30/5=6秒でシミュレートされます。高速化すると、速度の比率が100に増加します。通常および高速のシミュレーション速度は、ツール設定モーションメニューで変更できます。

Robot Programs - 画像 36

プログラムの生成

ロボットコントローラーに必要なロボットプログラムを生成するには、次の手順を辿ってください(販売者固有のロボットコントローラー用):

1.生成するプログラムを選択してください

2.プログラムプログラムを生成(F6を選択

または、プログラムを右クリックして、ロボットプログラムを生成(F6を選択する事も出来ます。

Robot Programs - 画像 37

複数のプログラムを選択する事で、一度に選択されたプログラムが生成できます。Ctrlキーを押し続けると複数のプログラムが選択できます。プログラムを生成Shift+F6を選択すると、プログラムの保存先を指定する為のウィンドウが開きます。

プログラムの転送

コンピュータから直接ロボットにプログラムを転送することが可能です。この設定は通常、FTPプロトコルまたはその他のプロトコル(ソケットメッセージングやシリアル接続など)を介してプログラムをロボットに送信します。まずは、ロボット接続メニューでロボットのIPおよびFTP設定を入力する必要があります。

1.ロボットを右クリック

2.ロボットに接続を選択してください。ウィンドウが左側に表示されます。

3.ロボットIPを入力してください

4.その他の設定を選択してFTP設定とFTP資格情報が入力できます(必要な場合)

Robot Programs - 画像 38

ネットワーク設定が提供され、ロボットがしっかりと接続されたら、次の手順に従って、プログラムをRoboDKから直接ロボットに転送できます:

1.転送するプログラムを右クリック

2.プログラムをロボットに送信(Ctrl+F6を選択します

ポップアップウィンドウでステータス(成功または失敗)が表示されます。

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

RoboDKシミュレーションから特定のロボットプログラムへの変換は、ポストプロセッサーを使って行います。ポストプロセッサは、特定のロボットに対してロボットプログラムの生成方法を定義します。各ロボットには、デフォルトでRoboDKの特定/デフォルトのポストプロセッサーがあります。

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

1.ロボットまたはプログラムを右クリックしてください

2.ポストプロセッサーを選択を選択して

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

4.最後にOKを選択

Robot Programs - 画像 39 Robot Programs - 画像 40

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

RoboDKのポストプロセッサーは、特定の要件に合わせてロボットプログラムを生成する柔軟性を提供します。RoboDKは、ほとんどのロボットブランドに合わせてポストプロセッサーを提供します。ポストプロセッサーは簡単に作成または編集できます。ポストプロセッサー専用の項目でポストプロセッサに関する詳細情報があります。

大きなロボットプログラムの分割

大きなロボットプログラムは、ロボットコントローラーの制限を超える可能性があります。コントローラーの制限は、ファイルサイズまたはプログラムごとの行数です。例えば、3Dプリントやロボット加工用に作成されたロボットプログラムは、百万行を超えるコードになる場合があります。その場合、そのような長いプログラムは、より小さなサブプログラムに分割して、そのサブプログラムを順番に実行する一つのメインプログラムにすることをお勧めします。

以下の手順を辿って、長いプログラムを自動的に分割します:

1.ツール設定プログラムを選択

2.プログラムごとの最大行数を制限をチェックして、ファイルごとに生成されるプログラムの最大行数を指定してください。

Robot Programs - 画像 41