UR E シリーズ(Polyscope 5.3以上)
UR(ユニバーサルロボット)Eシリーズロボットの標準インターフェース通信設定について説明します。
プラグインのインストールと設定
以下では、UR EシリーズロボットのMech-Mind 3D Vision Interface(URCapプラグイン)のインストールと設定について説明します。
前提条件
Mech-MindビジョンシステムとPolyscopeがバージョンの最小要件を満たすことを確認します。
Polyscopeのバージョンを確認するには、ティーチペンダントの右上隅にあるハンバーガーボタンをクリックし、 バージョン情報 を選択します。
URCapプラグインのインストール
URCapプラグインをインストールするには、以下の手順を実行します。
-
Mech-Mindソフトウェアシステムのインストールディレクトリ
Mech-Center\Robot_Interface\Robot_Plugin\UR_URCAP
フォルダから、拡張子が1.4.6.urcapのファイルをコピーして、USBメモリに貼り付けます。 -
USBメモリをティーチペンダントに差し込みます。
-
ティーチペンダントの右上隅にあるハンバーガーボタンをクリックし、 ロボットの設定 を選択します。
-
設定画面 で、
を選択します。 -
+ をクリックしてUSBメモリに切り替え、URCapプラグイン(.urcapファイル)を見つけます。
-
設置するURCapを選択してください 画面で、URCapプラグインを選択し、 開く をクリックします。すると、URCapプラグインが自動的にインストールされます。
-
再起動 をクリックすると、変更が有効になります。
これで、URCapプラグインは正常にティーチペンダントにインストールされます。
インストール後、ロボットのIPアドレスを設定する必要があります( 設定>システム >ネットワーク で設定可能)。ロボットのIPアドレスは、IPCのIPアドレスと同じネットワークセグメント内にある必要があります。 |
Mech-Mind 3D Vision Interfaceの使用
使用する前に、Mech-VisionとMech-Viz(必要な場合)プロジェクトが実行可能で、Mech-MindのIPCがロボットに接続されていることを確認してください。 |
Mech-Mind 3D Vision Interfaceを使用するには、以下の設定が必要になります。
-
Mech-Visionのツールバーで ロボット通信設定 をクリックします。
-
ロボットを選択 のドロップダウンボックスをクリックし、 適応可能なロボット を選択して ロボット型番を選択 をクリックします。表示される画面で特定のURロボット型番を選択して 次へ をクリックします。
-
通信方式 の画面で、インターフェースタイプを 標準インターフェース に、通信プロトコルを TCP Server に、プロトコル形式を ASCII に選択し、ホストIPポートに 50000 (変更不可)を使用し、 適用 をクリックします。
-
Mech-Visionのメイン画面で、ツールバーのインターフェースサービスが起動されていることを確認します。
Mech-Visionでインターフェースサービスを起動した後、UR ティーチペンダントで以下の操作を行って、インターフェースサービスに接続します。
-
ティーチペンダントの上部にある 設置設定 をクリックし、
を選択します。すると、URCapプラグインの ネットワーク設定 画面が表示されます。 -
MechMind IPC IP Address と Port No. をそれぞれMech-Mind IPCのIPアドレスとポート番号(Mech-Visionの通信設定で設定されたポート番号と一致する必要があります)に設定し、 Apply をクリックします。
-
Connection Test をクリックします。
-
接続に成功した場合は、下図のようなステータスメッセージが返されます。
-
接続に失敗した場合は、下図のようなステータスメッセージが返されます。
これはテスト目的のみに使用されます。接続に成功すると自動的に切断されます。したがって、Mech-Visionでは、ログの「Console」タブにクライアント接続とクライアント切断のメッセージが表示されます。
-
プラグインによる自動キャリブレーション
以下では、URCapプラグインによる自動キャリブレーションの実行流れについて説明します。
前提条件
キャリブレーションを実行する前に、以下のことを確認してください。
-
URCapプラグインを標準インターフェースのサービスに接続できました。
-
ロボットハンド・アイ・キャリブレーションに関する内容を理解しました。
キャリブレーションプログラムの作成
-
ティーチペンダントの上部にある 新規... をクリックし、 プログラム を選択して新しいプログラムを作成します。
-
上部にある プログラム をクリックし、
を選択します。Calibrate サンプルプログラムノードは、左側パネルの ロボットプログラム に自動的に作成されます。作成されたサンプルプログラムノードはテンプレートです。キャリブレーションプログラムをさらに設定し、キャリブレーションの初期位置を設定する必要があります。
キャリブレーションの初期位置を設定
-
プログラムツリーで Calibrate ノードを選択し、右側のパネルの コマンド タブで Receive Point Type from Mech-Vision を「Joint Angle」または「Flange Pose」に設定します。
-
プログラムツリーで MOVEJ ノードを選択し、右側の 移動 パネルで動作タイプを「MoveJ」、「MoveL」または「MoveP」に設定し、 TCPを設定 を アクティブTCPの無視 に設定して、ウェイポイントがフランジ位置姿勢として記録されるようにします。
-
ロボットを手動でキャリブレーションの初期位置に移動させます。
-
ティーチペンダントの画面に戻り、プログラムツリーで start_pose ノードを選択し、右側の ウェイポイント パネルで ウェイポイントを設定 をクリックします。すると、 移動 タブが表示されます。
-
移動 タブでは、ロボットが現在適切なフランジ位置にいることを確認し、 OK ボタンを押します。
キャリブレーションプログラムを実行
-
左側パネルの ロボットプログラム を選択し、このプログラムを1回のみ実行すために、右側パネルで 無限ループ のチェックを外します。
-
安全のため、ロボットの速度を適切な値、例えば10%に調整してください。
-
下部にある ボタンをクリックしてプログラムを実行します。
Mech-Visionでキャリブレーションを実行
-
Mech-Visionを起動し、 カメラキャリブレーション(標準モード) をクリックするか、またはメニューバーで
を順番にクリックしてキャリブレーションツールを起動します。 -
カメラの取り付け方式に応じて、ソフトウェアの指示に従って残りの操作を行います。
-
Eye to Handの場合、 自動キャリブレーション(Eye to Hand) をご参照ください。
-
Eye in Handの場合、 自動キャリブレーション(Eye in Hand) をご参照ください。
-
キャリブレーションプログラムが正常に実行されると、Mech-VisionログのConsoleタブに「キャリブレーションプロセスに入ります。Mech-Visionでキャリブレーションを実行してください。」が表示されます。
後で使用するためにキャリブレーションプログラムを保存するには、上部にある
を選択します。キャリブレーションが完了したら、 把持・配置プログラム を作成してURロボットを制御し、ビジョンシステムによる把持と配置を実行します。
把持・配置プログラムを作成
URCapプラグインは、ごくわずかなプログラミング作業で作成できる把持・配置のサンプルノードを提供します。
把持・配置のサンプルプログラムノードには、2つのオプションが提供されています。
-
Mech-Visionと組み合わせて把持・配置(With Mech-Vision):これは、Mech-Visionプロジェクトのみを使用し、ロボットがMech-Vizによって計画された動作経路を必要としない場合に適しています。
-
Mech-Vizと組み合わせて把持・配置(With Mech-Viz):これは、Mech-VizプロジェクトとMech-Visionプロジェクトを併用し、ロボットに衝突のない動作経路を提供する場合に適しています。
このプラグインは、各オプションに対してプログラムテンプレートを提供し、プログラミングを容易にします。
以下の例は、現在使用中のロボットハンドとツールセンターポイント(TCP)が正しく設定されていることを前提としています。 |
Mech-Visionと組み合わせて使用する把持・配置プログラムを作成
Mech-Visionと組み合わせて使用する把持・配置プログラムを作成するには、以下の手順を実行します。
-
「Mech-Visionと組み合わせて把持・配置」のオプションを使用します。
-
ティーチペンダントの上部にある 新規... をクリックし、 プログラム を選択して新しいプログラムを作成します。
-
上部にある プログラム をクリックし、
を選択します。Pick and Place サンプルプログラムノードは、左側パネルの ロボットプログラム に自動的に作成されます。右側パネルの コマンド タブで、 With Mech-Vision をクリックします。プログラムテンプレートは、ツリーの Pick and Place ノードに自動的に追加されます。
-
-
ツリーの Mech-Mind Connect ノードを選択し、右側の Mech-Mind Connect パネルで Host IP が Mech-Mind のIPCのIPアドレスであることを確認します。
-
画像撮影点を設定します。
-
ロボットを手動で適切な位置に移動させます。Mech-Visionはこの位置で撮影を行います。
-
Eye in Handの場合、ロボットがワークの上方に配置する必要があります。
-
Eye to Handの場合、ロボットがカメラの視野を遮らないように配置する必要があります。
-
-
ティーチペンダントの画面に戻り、プログラムツリーで MOVEJ ノードを選択し、右側の 移動 パネルで動作タイプ「MoveJ」、「MoveL」または「MoveP」に設定し、 TCPを設定 を アクティブTCPを使用 に設定します。
-
プログラムツリーで Capture_image ノードを選択し、右側の ウェイポイント パネルで ウェイポイントを設定 をクリックします。すると、 移動 タブが表示されます。
-
移動 タブでは、ロボットの現在TCP位置姿勢が適切であることを確認し、 OK をクリックします。
-
画像撮影点が設定したら、次の手順に進みます。
-
-
Mech-Visionプロジェクトを実行します。
-
プログラムツリーで Trigger Mech-Vision ノードを選択し、右側の Trigger Mech-Vision パネルで Send Current Robot Position to Mech-Vision、 Mech-Vision Project ID と Request Vision Point Number パラメータを設定します。
パラメータ 説明 Mech-Vision Project ID(Mech-Visionプロジェクト番号)
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
Request Vision Point Number(ビジョンポイントの期待数)
Mech-Visionから出力するビジョンポイントの数を指します。
-
0に設定すると、検出されたすべての対象物のビジョンポイント(20以下)が出力されます。
-
1から20の間の整数に設定すると、検出されたビジョンポイントの総数が期待数より多い場合、Mech-Visionは固定のビジョンポインの数を返します。
-
-
(オプション) Set Vision Recipe ID をクリックすると、 Set Recipe ID ノードは、プログラムツリーの Trigger Mech-Vision ノードの下に自動的に追加されます。
-
プログラムツリーで Set Recipe ID ノードを選択し、右側の Set Recipe ID パネルで Mech-Vision Recipe ID を設定します。
-
-
Mech-Visionの結果の受信方法を設定します。
プログラムツリーで Receive Mech-Vision Result ノードを選択し、ビジョン結果を格納するための Pose、 Label、 Total Received、および Status Code の変数名を設定します。
パラメータ 説明 Pose(ビジョンポイントの位置姿勢)
検出された対象物の位置姿勢であり、XYZで表します。アクティブTCPを持つロボットは、このポイントに直接移動することができます。デフォルトでは、受信したビジョンポイントは配列変数 「pose[]」に格納されます。配列の開始インデックスは1となります。
Label(ラベル)
検出された対象物のラベルであり、ラベルの値は整数です。デフォルトでは、ラベルは配列変数「label[]」に格納されます。配列の開始インデックスは1となります。ラベルと位置姿勢が一対一で対応しています。
Total Received(ビジョンポイントの数)
受信したビジョンポイントの合計数です。
Status Code(ステータスコード)
返されたステータスコードです。詳細については、『標準インターフェースのステータスコード一覧とトラブルシューティング』をご参照ください。11xxは正常実行完了のコードで、10xxはエラーコードです。デフォルトでは、ステータスコードは変数「status_code」に格納されます。
Starting at ID(開始インデックス)
位置姿勢およびラベルの配列変数の開始インデックスです。デフォルトでは、インデックスの開始値は1となります。
-
把持作業に関する設定を行います。
一回の把持作業は、3つの動作で構成されます:1つ目はPick_aboveで、ロボットは直線運動で把持位置に移動させます。2つ目はPickで、ロボットは対象物を把持します。3つ目はPick_departで、ロボットは対象物を把持したまま、直線運動で把持位置から離れます。
-
右側の Mech-Mind Pick パネルで、 Pick_above と Pick_depart のパラメータ Dist と Coordinates をそれぞれ設定します。
-
プログラムツリーで pick ノードの下の MoveJ ノードを選択し、右側の 移動 パネルの初期設定を使用します。
-
プログラムツリーで pick_above ノードを選択し、右側の ウェイポイント パネルの初期設定を使用します。
-
プログラムツリーで MoveL ノードを選択し、右側の 移動 パネルの初期設定を使用します。
-
プログラムツリーで pick ノードを選択し、右側の ウェイポイント パネルの初期設定を使用します。
-
必要に応じて、 pick ノードの後にロボットハンドの制御ロジックを追加することができます。
-
プログラムツリーで2番目の MoveJ ノードを選択し、右側の 移動 パネルの初期設定を使用します。
-
プログラムツリーで pick_depart ノードを選択し、右側の ウェイポイント パネルの初期設定を使用します。
-
-
配置作業に関する設定を行います。
-
プログラムツリーで place ノードの下の MoveJ ノードを選択し、右側の 移動 パネルの初期設定を使用します。
-
ロボットを手動で、把持する対象物を配置するための正確な位置に移動させます。
-
ティーチペンダントの画面に戻り、プログラムツリーで MoveJ ノードの下の place ノードを選択し、右側の ウェイポイント パネルで ウェイポイントを設定 をクリックします。すると、 移動 タブが表示されます。
-
移動 タブでは、ロボットが現在適切なフランジ位置にいることを確認し、 OK ボタンを押します。
-
必要に応じて、 place ノードの後にロボットハンドの制御ロジックを追加することができます。
-
これで、Mech-Visionプロジェクトと組み合わせて使用する簡単な把持・配置プログラムの作成が完了しました。下部にある をクリックしてプログラムを実行することができます。
Mech-Vizと組み合わせて使用する把持・配置プログラムを作成
Mech-Vizと組み合わせて使用する把持・配置プログラムを作成するには、以下の手順を実行します。
-
「Mech-Vizと組み合わせて把持・配置」のオプションを使用します。
-
ティーチペンダントの上部にある 新規... をクリックし、 プログラム を選択して新しいプログラムを作成します。
-
上部にある プログラム をクリックし、
を選択します。Pick and Place サンプルプログラムノードは、左側パネルの ロボットプログラム に自動的に作成されます。 -
右側パネルの コマンド タブで、 With Mech-Viz をクリックします。プログラムテンプレートは、ツリーの Pick and Place ノードに自動的に追加されます。
-
-
ツリーの Mech-Mind Connect ノードを選択し、右側の Mech-Mind Connect パネルで Host IP が Mech-Mind のIPCのIPアドレスであることを確認します。
-
Mech-Visionと組み合わせて使用する把持・配置プログラムを作成 の手順3を参照して画像撮影点を設定します。
画像撮影点では、Mech-Vizプロジェクトがトリガーされます。
-
Mech-Vizプロジェクトを実行します。
-
プログラムツリーで Trigger Mech-Viz ノードを選択し、右側の Trigger Mech-Viz パネルで Send Current Robot Position to Mech-Viz パラメータを「JPs&TCP」または「Dedicated Point」に設定します。
-
ロボットが初期位置に移動する前にMech-Vizで経路計画を行う必要がある場合は、パラメータ Send Current Robot Position to Mech-Viz を「Dedicated Point」に設定し、特定の関節角度位置を指定します。
-
Mech-Vizプロジェクトで分岐ステップを使用し、ロボットに分岐出口を選択させたい場合は、 Set Branch Out Port をクリックして手順bにスキップし、分岐出口を設定します。
-
インデックスパラメータを持つ移動ステップを使用する場合は、 Set Index Value をクリックして手順cにスキップし、インデックス値を設定します。
-
-
(オプション)プログラムツリーで Set Branch Value ノードを選択し、右側の Set Branch Value パネルで Branch Task ID と Branch Out Port パラメータを設定します。
-
(オプション)プログラムツリーで Set Index Value ノードを選択し、右側の Set Index Value パネルで Index Task ID と Index Value パラメータを設定します。
-
-
Mech-Vizの結果の受信方法を設定します。
プログラムツリーで Receive Mech-Viz Result ノードを選択し、計画されたビジョン結果を格納するための Pose、 Label、 Speed (%)、 Total Received、 Status Code、 Vision Point Index の変数名をそれぞれ設定します。
パラメータ 説明 Pose(ビジョンポイントの位置姿勢)
計画された動作経路で、XYZで表します。アクティブTCPを持つロボットは、このポイントに直接移動することができます。デフォルトでは、受信した位置姿勢が配列変数「pose[]」に格納されます。配列の開始インデックスは1となります。
Label(ラベル)
検出された対象物のラベルであり、ラベルの値は整数です。ビジョンポイントでない場合、ラベルは0である必要があります。デフォルトでは、ラベルは配列変数「label[]」に格納されます。配列の開始インデックスは1となります。ラベルと位置姿勢が一対一で対応しています。
Speed(速度)
ロボットがビジョンポイントに移動する速度で、単位は%です。
Total Received(ビジョンポイントの数)
受信したビジョンポイントの合計数です。
Status Code(ステータスコード)
返されたステータスコードです。詳細については、『標準インターフェースのステータスコード一覧とトラブルシューティング』をご参照ください。21xxは正常実行完了のコードで、20xxはエラーコードです。デフォルトでは、ステータスコードは変数「status_code」に格納されます。
Vision Point Index(ビジョンポイントのインデックス)
受信したビジョンポイントのうち、「ビジョン処理による移動」のビジョンポイントのインデックスです。例えば、Mech-Vizから3つのビジョンポイント(relative_move_1、visual_move_1およびrelative_move_2)を返した場合、「ビジョン処理による移動」のビジョンポイントのインデックスは2となります。デフォルトでは、「ビジョン処理による移動」のビジョンポイントが変数「vision_point」に格納されます。
Starting at ID(開始インデックス)
位置姿勢およびラベルの配列変数の開始インデックスです。デフォルトでは、インデックスの開始値は1となります。
-
ロボットがMech-Vizで計画された経路(アプローチ点、把持点、離れる点(配置点は除く))に従って動作するように、ロボットの動作ループを設定します。MoveLノードとMoveJノードの設定方法は、 Mech-Visionと組み合わせて使用する把持・配置プログラムを作成 の手順6をご参照ください。
-
実際には、ロボットの動作ループに複数の「pick_above MoveJ」ノード、1つの「pick MoveL」ノード、複数の「pick_depart MoveJ」ノードが含まれる可能性があります。
-
Receive Mech-Viz Result ノードで位置姿勢やラベルなどのパラメータの初期変数名を変更した場合は、それに合わせてこの手順の変数名も変更する必要があります。
-
-
Mech-Visionと組み合わせて使用する把持・配置プログラムを作成 の手順7を参照して、配置作業の関連設定を行います。
これで、Mech-Vizプロジェクトと組み合わせて使用する簡単な把持・配置プログラムの作成が完了しました。下部にある をクリックしてプログラムを実行することができます。