はじめに

このスタートアップガイドは、ロボットシミュレーションとオフラインプログラミングで使われるRoboDKで簡単なプロジェクトを作成するのに役立ちます。この例では、ロボットを使っての塗装をロボットアームの為にシミュレーションおよびプログラミングする方法を示します。

この例では、参照系、ツール、ターゲットの使用方法など、ロボットの基本的なコンセプトの概要を示します。

RoboDKのウェブサイトにあるプロジェクト例のページのビデオでは、さまざまな場面でRoboDKを使用する方法の概要を説明しています。https://robodk.com/examples

新しいプロジェクト

RoboDKのプロジェクトで使用されるすべてのロボット、オブジェクト、およびツールは、RoboDKプロジェクト(RDKファイル)として保存されます。RoboDKプロジェクト内には、ロボット、ツール、参照系、ターゲット、オブジェクト、その他のパラメーターに関連するすべての設定が含まれます。RoboDKプロジェクトは1つのファイルとして記録されます(RDK拡張子)。

ロボットファイル、ツール、オブジェクトは1つのRDKファイルとして保存されるため、個別にコピーしておく必要はありません。

新しいRoboDKプロジェクト(RDKプロジェクト)を作成するには、次の手順を辿ってください:

1.ウェブサイトからRoboDKをダウンロードしてインストールします:https://robodk.com/download

2.デスクトップのショートカットをダブルクリックGetting Started - 画像 1

3.他のプロジェクトが開いている場合:      
ファイルGetting Started - 画像 2新しいプロジェクト(Ctrl + Nを選択して新しいプロジェクトを始める

Getting Started - 画像 3 Getting Started - 画像 4

複数のRoboDKプロジェクトを同時に開くことができます。プロジェクトアイコンGetting Started - 画像 5をツリー内でダブルクリックするとそのプロジェクトを有効にして表示します。

ロボットの選択

新しいロボットは、PCまたはRoboDKのオンラインライブラリからプロジェクトに追加できます。

オンラインライブラリからロボットを選択するには、次の手順を辿ってください:

1.ファイルGetting Started - 画像 6オンラインライブラリを開くCtrl + Shift + O)を選択。新しいネストされたウィンドウが表示され、オンラインライブラリが開きます       
ツールバーにある同様のボタンを選択することもできます。Getting Started - 画像 7

2.フィルターを使用して、ロボットのブランド、ペイロード、...などで検索できます
この例では、ファナックのLR Mate 200iCロボット(5 kgのペイロードと0.7 mのリーチ)を使用します。

3.ダウンロードを選択。ロボットは数秒後に自動でプロジェクトに表示されます。

4.ロボットを読み込んだ後は、オンラインライブラリを閉じても良いです

Getting Started - 画像 8

参照系の追加

参照系を使って、ロボットや3D空間内の他のオブジェクトに対してオブジェクトを配置できます(位置と向きを含む)。

新しい参照系を追加するには:

1.プログラムGetting Started - 画像 9参照系を追加を選択してください
または、ツールバーにある同様のボタンを選択

2.参照系をダブルクリックして(ツリー内またはメイン画面の立体)、画像に表示されている座標を入力してください(XYZ位置および方向を表すオイラー角)。マウスホイールを各枠の上で使用して、メイン画面の参照系の位置をすばやく更新できます。
デフォルトでは以下の色が使用されます:

X座標

Y座標緑色

Z座標青色

1番目のオイラー角青緑色

2番目のオイラー角深紅色

3番目のオイラー黄色

3.表示参照系を大きくする (+)を選択して参照系のサイズを拡大する

4.表示参照系を小さくする (-) を選択して参照系のサイズを縮小する

5.表示画面上のテキストを表示/非表示 (/)を選択して画面上のテキストを表示または非表示にする

6.必要であれば、F2キーを押して、ツリー内の参照系またはオブジェクトの名前の変更ができます

Getting Started - 画像 10

複数の参照系が使用されている場合は、それらをプロジェクトツリー内にドラッグアンドドロップして、実際のプロジェクト構造に合わせて関係性を一致させることができます。例えば、参照系である座標系2は、ロボットの土台にある参照系を基準に配置しているかもしれません。この場合は、参照系の関係を設定してLR Mate 200iCの土台を表す参照系を移動すると、同時に座標系2も一緒に移動します。他のロボットまたは参照フレームが使用されている場合は、これを考慮することが重要です。次の画像は、関係性の違いを示しています。

Getting Started - 画像 11

次の画像で示すように、異なる関係性でも、他の参照系に対する座標を入力または取得することは可能です。ほとんどのロボットコントローラは、ロボットの土台に対する参照系の座標が必要です。

Getting Started - 画像 12

参照系は、Altキーを押すか、ツールバーにある同様のボタンGetting Started - 画像 13を選択して、メイン画面内で移動することができます。次に、参照系を画面上で掴んでマウスをドラッグします。参照系を移動すると、それぞれの座標値が更新されます。

Getting Started - 画像 14

3Dオブジェクトのインポート

RoboDKは、STLSTEP(またはSTP)、IGES(またはIGS)形式などの、ほとんどの標準の立体データをサポートしています。他の形式のWRML3DSOBJなどもサポートされています(MacおよびLinux版では、STEPおよびIGESはサポートされていません)。

新しい3Dファイルを読み込むには、次の手順を辿ってください:

1.ファイルGetting Started - 画像 15開くを選択してください

2.RoboDKのデフォルトライブラリにあるオブジェクトObject Inspectionを選択してください:
C:/RoboDK/Library/Object Inspection

3.または、ファイルをRoboDKのメイン画面にドラッグアンドドロップして、自動的にインポートできます

4.参照系の座標系2にオブジェクトをドラッグアンドドロップしてください(プロジェクトツリー内)。

Getting Started - 画像 16

Getting Started - 画像 17 Getting Started - 画像 18

ツールの作成

新しいロボットツール(TCP)は、以前に読み込まれた立体からRoboDKに読み込むか作成できます。

次の手順を辿ってオブジェクトを読み込み、ロボットツールとして設定します:

1.ファイルGetting Started - 画像 19開くを選択(の項目で説明されているように)

2.Paint gun.stlファイルを選択してオブジェクトとして追加してください(ロボット土台の参照系に追加されます)

3.次の画像で示すように、プロジェクトツリー内のロボットアイテムにオブジェクトをドラッグアンドドロップしてください。

新しいツールは、.tool形式で読み込みまたは保存できます。

Getting Started - 画像 20 Getting Started - 画像 21

RoboDKはデフォルトで、TCPの位置を[X,Y,Z]=[0,0,200] mm設定します。これは、次の画像に示すように、座標を手動で入力するか、ALT+Shiftキーを押しながらTCPを移動することができます。

1.Alt+Shiftキーを押すか、ツールバーで示されたボタンを選択してください

2.次の画像で示すように、水色の平面(TCPXZ平面)を選択し、TCPをスプレーガンの表面に向かってドラッグします

3.緑の丸い矢印(Y軸を中心の回転)を選択して、Z軸を外側に向けます

4.座標の大体の値が分かったら、ペイントガンオブジェクトをダブルクリックして、これらの値を手動で修正することもできます。マウスホイールを各枠の上で使って、メイン画面上の位置をすばやく更新できます。

Getting Started - 画像 22

この時点で、ステーションを保存できます:

1.ファイルGetting Started - 画像 23プロジェクトを保存Ctrl+S)を選択

2.ファイルを塗装プロジェクト.rdkとして保存します。ウィンドウのタイトルとステーション名前が更新されます

相対TCPを設定

別のツールに対してツール(TCP)を参照することができます。例えば、特定のスタンドオフを定義したり、または参照系かツールホルダーに対してカッターを配置したりできます。

これらの手順では、2番目のTCPを最初のTCPに対してZ軸に沿って150 mmの位置に追加する必要がある事を想定しています:

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

2.Getting Started - 画像 24ツールを追加(TCPを選択します。Tool 2という新しいアイテムが表示されます。

3.この新しいTCPをダブルクリックしてください

4.次を基準にツールの中心点を配置ペイントガンを選択してください

5.座標Z150 mmに入力し、他の位置と回転を0に設定してください。

Getting Started - 画像 25

この項目で定義されたTCPに対するこの新しいTCPは、次の項目では削除されます。

ツールの立体を移動

ツールの立体をRoboDKに読み込む際に、ロボットフランジ(アダプターの参照系)に対して立体の位置が一致しない場合があります。次の手順では、ツールがZ軸を中心に180度逆に取り付けられていることを予想して修正を行います:

1.ツールの詳細ウィンドウでその他の設定を選択します

2.次の画像で示すように、ペイントガンの立体設定の黄色の枠(Z回転)に180と入力します。マウスホイールを各枠の上で使用して、メイン画面上の位置をすばやく更新できます。

Getting Started - 画像 26

Getting Started - 画像 27

ターゲットの作成

ロボットの位置はターゲットとして記録されます。デカルトターゲットは、座標系に対するツールの位置を定義します。関節ターゲットは、ロボットの関節の値を指定してロボットの位置を定義します。

次の手順を辿って、2つのターゲットを新しいホームターゲットおよび接近ターゲットとしてそれぞれ作成できます:

1.ロボットをダブルクリックしてロボットパネルを表示させます

2.ペイントガンをツールの座標系として選択してください。ツールまたは参照系が有効になると、ツリーのアイコンに緑色の点が表示されます。

3.座標系2を参照系として選択してください

4.Altキーを押したまま、TCPまたはロボットフランジを通してロボットを安全な位置にドラッグし、オブジェクトとの衝突がないようにします。または、参照系を基準にツールの座標系(TCP)の座標を移動してください。

5.その他の構成の部分で、様々なロボットの構成に切り替え、ロボットの軸が制限に近づいていないことを確認できます。

6.プログラムGetting Started - 画像 28ターゲットを教えるCtrl + Tを選択、またはツールバーにある同様のボタンで(画像を参照に)。ターゲットは有効な参照系との関係を持って配置され、現在のロボットの位置を自動的に記録します(デカルト軸と関節軸)。  
この例では、最初のターゲットに使用されるロボットの関節座標は:[0, -5, 35, 0, -75, -180]度です。これらの関節の値をテキストからコピーして、ロボットパネルの関節軸ジョグで同様のボタンを使用して貼り付けGetting Started - 画像 29ることができます。

Getting Started - 画像 30

7.F2を押して、最初のターゲットの名前をホームに変更します。または、ツールアイテムの名前を変更を選択してください。

8.ロボットをパーツの一つの端っこに近づけます(Altキーを使用してツールをドラッグするか、座標を入力するか、軸を手動でジョグして) 
この例では、次の直交座標[0,0,200,180,0,180]を使用しました。

9.プログラムGetting Started - 画像 31ターゲットを教えるCtrl+T)を選択するかツールバーの同様のボタンで新しいターゲットを作成してください

10.ステップ7で示したように、ターゲットの名前を接近に変更します。

11.ホームターゲットと接近ターゲットを交互に選択して、2つのターゲットの間を移動するロボットが確認できます。

12.一つのターゲットの為に別の位置を記録する必要がある場合は、ターゲットを右クリックして、現在の位置を教えるAlt+ダブルクリック)を選択してください。

13.ターゲットを右クリックしてGetting Started - 画像 32ターゲットの設定F3)を選択しますと、次の画像で示すようにターゲットの設定ウィンドウが開きます

Getting Started - 画像 33

必要に応じて、異なる値を指定してターゲットを定義してください。

接近プログラムの追加

次の手順を辿って、ホームターゲットから接近ターゲットに移動するプログラムを作成します:

1.メニューからプログラムGetting Started - 画像 34プログラムを追加を選択、またはツールバーにある同様のボタンから(次の画像で示すように)

2.プログラムの名前を接近移動に変更します。

3.ホームターゲットを選択してください

4.プログラムGetting Started - 画像 35関節移動の指示を選択(またはツールバーにある同様のボタン)
使用しているツールの座標系と参照系をロボットに伝える為に、2つの指示が自動的に追加されます。

5.接近ターゲットを選択してください

6.プログラムGetting Started - 画像 36関節移動の指示を再び選択してください

接近移動プログラムをダブルクリックすると、プログラムのシミュレーションが実行されます。シミュレーションバーと推定サイクルタイムが表示されます。

Getting Started - 画像 37

表面上にターゲットの作成

表面上にターゲットを作成する機能は、塗装や検査プロジェクトなどに役立ちます:

1.プログラムGetting Started - 画像 38表面上にターゲットを教えるCtrl+Shift+T)を選択してください

2.パーツの上にマウスカーソルを移動して、パーツに到達したときのロボットの外見のプレビューが見られます。

3.オブジェクトの上にいくつか点を選択してくださ(左クリック)。マウスを左クリックするたびに、TCPZ軸を表面と垂直に保ったまま(表面の法線)、新しいターゲットが定義されます。

4.必要に応じて、左パネルの上でホイールを動かし、Z軸周りの方向が調整できます。または、左/右キーを調整に使用してください。

5.Altキーを押しながら既に存在するターゲットを移動させることができます

6.Alt+Shiftを押したままだと、存在するターゲットを表面上に維持したまま移動できます

7.表面上にターゲットを作成するモードを終了するには、Escキーを選択するか、画面を右クリックして完了を選択します

Getting Started - 画像 39

ターゲットを作成しましたら、次の手順に従ってプログラムを生成します:

1.表面上に作成されたすべてのターゲットを選択して右クリックします

2.ポップアップメニューからグループ名変更を選択します

3.表面塗装を入力。選択したすべてのターゲットの名前が変更され、番号が振り付けられます。

4.ターゲットをもう一度右クリックして、プログラムを作成を選択してくださ。新しいプログラムが生成され、最初の動きは関節移動で、次の動きは直線移動です。

5.F2を選択して、プログラムの名前を表面を塗装に変更します。

6.表面を塗装プログラムをダブルクリックして、シミュレーションがターゲットに沿って移動するのが確認できます

7.必要に応じて、プログラム内の移動指示をドラッグして動作の順番を並べ替えます

Getting Started - 画像 40

後退プログラムの追加

以前の操作と同様:

1.ロボットが最後のターゲットに配置された状態で、ロボットを上へ移動させます。ロボットパネル内で参照系に対するTCPZ座標を増やしてください(次の画像で強調されている枠)

2.プログラムGetting Started - 画像 41プログラムを追加を選択、またはツールバーにある同様のボタンから。

3.プログラムGetting Started - 画像 42直線移動の指示を選択、またはツールバーにある同様のボタンからGetting Started - 画像 43F2キーを押して、名前を後退移動に変更します。

4.ホームターゲットを選択してください

5.プログラムGetting Started - 画像 44関節移動の指示を選択。ホームターゲットにリンクされた新しい移動指示が追加されます。

各プログラムをダブルクリックして、別々でシミュレーションしてください。スペースバーキーを押し続けるか、高速シミュレーションボタンを選択して、シミュレーションを加速できますGetting Started - 画像 45/Getting Started - 画像 46

Getting Started - 画像 47

メインプログラム

メインロボットプログラムは、接近、塗装、後退プログラムを順番に実行します:

1.プログラムGetting Started - 画像 48プログラムを追加を選択してください。

2.プログラムGetting Started - 画像 49プログラムコール指示を選択。

3.接近移動と名前を入力するか、プログラムを選択を選択して自動的に選択します。

4.OKを選択。

5.次の画像に示すように、表面を塗装後退移動プログラムの為に前の手順を繰り返します

メインプログラムをダブルクリックすると、全シミュレーションが実行されます。メインプログラムを右クリックしてループを選択すると、繰り返しでシミュレートします。

Getting Started - 画像 50

参照系の座標系2を移動すると(例えば、Altキーを押したまま参照系のX/赤い軸をドラッグすれば)、オブジェクトとターゲットが付いてきます。もしターゲットに到達できなくなると、小さな警告サインがターゲットのアイコンに表示されますGetting Started - 画像 51次の画像に示すように。

Getting Started - 画像 52

ロボットプログラムの生成

サブプログラムも含めてメインプログラムや別々のどのプログラムでもエクスポートすることができます:

1.プログラムを右クリックしてください(例えばメインプログラムなど)。

2.ロボットプログラムを生成(F6を選択します。 
または、ロボットプログラムを生成を選択して、ファイルの保存先を指定します。

3.LR Mate 200iCロボット用のSCRIPTプログラムがテキストエディターで表示されます。

このファイルは、プログラムをオフラインで生成した結果です。ファイルをロボットコントローラーに送信して、RoboDKでシミュレートしたように同じ動きが実行できます。

プログラムをロボットに送信(Ctrl+F6を選択して、FTP経由でプログラムを送信(オフラインプログラミング)

ロボットで実行設定を有効にして、プログラムを実行するたびにプログラムを段階的に実行(オンラインプログラミング)。これにより、シミュレーションと同時にロボットでプログラムが実行できます。オンラインプログラミングにはロボットドライバーが必要です。

Getting Started - 画像 53

LR Mate 200iCロボットのポストプロセッサーを変更して、プログラムの生成方法をカスタマイズすることができます:

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

2.Getting Started - 画像 54ポストプロセッサーを選択を選択してください

3.Fanuc R30iAを選択

プログラムを再度生成してください。この例では、デフォルトのポストプロセッサは関節の値を使用して各直線移動を定義し、2番目のポストプロセッサーは直交座標を使用して各直線移動を定義します。

マクロの使用

RoboDK APIでは、シミュレーションを好きなだけカスタマイズできます。RoboDKはデフォルトで、Pythonと、サンプルのマクロセットをより高度なカスタマイズを可能にする為インストールします。これに含まれるのは、ペイントガンのシミュレーション、Pythonによるロボットのプログラミング、2Dカメラのシミュレーション、SVGファイルをロボットプログラムへの変換、スタンドオフを指定してTCPを自動設定、離散イベントのシミュレーションなどです。C#C++Matlabなどの他のプログラミング言語も使用できます。詳細については、RoboDK API項目を参照に。

この例では、ペイントガンの動作をシミュレートする既に存在するサンプルマクロを追加します。同時に、噴霧量の色を透明にします(ツールツールの色変更- Shift+Tを選択して)または正しい色のモデルを読み込みます(ローカルライブラリからpaint_gun.toolまたはオンラインライブラリから入手できます。新しいツールをリンクするには、ツールを設定する指示を更新する必要がある場合があります)。

1.ファイルGetting Started - 画像 55開くを選択して、新しいPythonマクロ(pyファイル)を開きます。

2.C:/RoboDK/Library/Macros/に移動して、いくつかのサンプルマクロが見れます。

3.SprayOnを選択してください。

4.開くを選択。新しいPythonオブジェクトGetting Started - 画像 56が追加されます。このマクロにより、噴霧量をモデリングする粒子堆積をシミュレーションできます。

5.SprayOnマクロをダブルクリックしてテストできます。

6.オンを選択して有効にします。

7.Altキーを押したままロボットのフランジをドラッグし、ペイントガンでロボットを表面に沿って動かしてください。ペイントガンの跡が見えるはずです。色と透明度は、TCPが表面からどれだけ近いか遠いかに応じて変化します。       
Esc
1回選択して、シミュレートされたペイントをクリアします。

8.同じSprayOnプログラムをダブルクリックし、オフを選択して粒子のシミュレーションをオフにします。

Getting Started - 画像 57

マクロが何をしてるかをよりよく理解する為には、次の方法でPythonコードを表示または編集できます:

1.Getting Started - 画像 58SprayOnを右クリック。

2.Pythonスクリプトを編集を選択します。

新しいウィンドウ(テキストエディター)が表示され、スプレーの動作をモデル化するコードと、PythonRoboDKにどうやって生みこまれているかが示されます。

メインプログラムにスプレーシミュレーションを考慮するには、次の手順を辿ってください:

1.接近移動をコールという指示を右クリックします。

2.指示を追加Getting Started - 画像 59プログラムコール指示を選択し、最初のプログラムコールの後に新しい指示が追加され、新しいウィンドウがポップアップします。

3.SprayOn(1)と入力してください。

4.OKを選択します。

5.次の画像で示すように、表面を塗装プログラムの後に同じ操作を繰り返しSprayOn(0)と設定ます。  
必要に応じて、プログラム内でドラッグアンドドロップして手順を並べ替えてください。

6.メインプログラムを実行してください。二往復後、結果は画像のようになります(通常の速度でシミュレーションすれば)。

Getting Started - 画像 60

新しいマクロを作成することも可能です:

1.プログラムGetting Started - 画像 61Pythonプログラムを追加を選択

2.新しいプログラムを右クリックし、Pythonスクリプトを編集を選択してください。

RoboDKは、プログラム内のロボット速度の設定、デジタル出力の設定、デジタル入力の待機、メッセージの表示などをサポートしています。これらの手順は、プログラムメニューを参照にしてください。