UR Eシリーズ(Polyscope 5.9以上)
以下では、UR(ユニバーサルロボット)Eシリーズロボットの標準インターフェース通信設定について説明します。
プラグインのインストールと設定
以下では、UR EシリーズロボットのMech-Mind 3D Vision Interface(URCapプラグイン)のインストールと設定について説明します。
前提条件
Mech-MindビジョンシステムとPolyscopeがバージョンの最小要件を満たすことを確認します。
Polyscopeのバージョンを確認するには、ティーチペンダントの右上隅にあるハンバーガーボタンをクリックし、 バージョン情報 を選択します。
URCapプラグインのインストール
URCapプラグインをインストールするには、以下の手順を実行します。
-
Mech-VisionとMech-Vizソフトウェアのインストールディレクトリにある
Mech-Center\Robot_Interface\Robot_Plugin\UR_URCAP
フォルダから、拡張子が1.5.0.urcapのファイルをコピーして、USBメモリに貼り付けます。 -
USBメモリをティーチペンダントに差し込みます。
-
ティーチペンダントの右上隅にあるハンバーガーボタンをクリックし、 ロボットの設定 を選択します。
-
設定画面 で、
を選択します。 -
+ をクリックしてUSBメモリに切り替え、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を起動します。表示される画面に応じて、以下のようにソリューションの作成方法を選択します。
-
ようこそ画面が表示されたら、 ソリューションを新規作成 をクリックして新しい空白のソリューションを作成します。
-
メイン画面が表示されたら、メニューバーの
をクリックして新しい空白のソリューションを作成します。
-
-
Mech-Visionのツールバーで ロボット通信設定 をクリックします。
-
ロボット通信設定 の画面で以下の設定を行います。
-
ロボットを選択 のドロップダウンボックスをクリックし、 適応可能なロボット を選択して ロボット型番を選択 をクリックします。表示される画面で特定のロボット型番を選択して 次へ をクリックします。
-
通信方式 の画面で、 インターフェースサービスのタイプ を 標準インターフェース に、 通信プロトコル を TCP Server に、 プロトコル形式 を ASCII に選択します。
-
ポート番号を50000(固定値、変更不可)に設定します。設定したポート番号が他のプログラムで使用されていないことを確認してください。
-
(オプション) ソリューションを開くとインターフェースサービスを自動的に起動 にチェックを入れることを推奨します。
-
適用 をクリックします。
-
-
Mech-Visionのメイン画面で、ツールバーのインターフェースサービスが起動されていることを確認します。
Mech-Visionでインターフェースサービスを起動した後、UR ティーチペンダントで以下の操作を行って、インターフェースサービスに接続します。
-
ティーチペンダントの上部にある 設置設定 をクリックし、
を選択します。すると、URCapプラグインの ネットワーク設定 画面が表示されます。 -
MechMind IPC IP Address と Port No. をそれぞれMech-Mind IPCのIPアドレスとポート番号(Mech-Visionの通信設定で設定されたポート番号と一致する必要があります)に設定し、 Apply をクリックします。
-
Connection Test をクリックします。
-
接続に成功した場合は、下図のようなステータスメッセージが返されます。
-
接続に失敗した場合は、下図のようなステータスメッセージが返されます。
これはテスト目的のみに使用されます。接続に成功すると自動的に切断されます。したがって、Mech-Visionのログバーの コンソール タブにクライアント接続とクライアント切断のメッセージが表示されます。
-
プラグインによる自動キャリブレーション
以下では、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でキャリブレーションを実行してください。」が表示されます。
Mech-Visionでキャリブレーションを実行
-
Mech-Visionを起動し、 カメラキャリブレーション(標準モード) をクリックするか、またはメニューバーの
を順番にクリックしてキャリブレーションツールを起動します。 -
カメラの取り付け方式に応じて、ソフトウェアの指示に従って残りの操作を行います。
-
カメラの取り付け方式はEye to handの場合、 自動キャリブレーション(Eye to hand) をご参照ください。
-
カメラの取り付け方式はEye in handの場合、 自動キャリブレーション(Eye in hand) をご参照ください。
-
後で使用するためにキャリブレーションプログラムを保存するには、上部にある
を選択します。キャリブレーションが完了したら、 把持・配置プログラム を作成してURロボットを制御し、ビジョンシステムによる把持と配置を実行します。
把持・配置プログラムを作成
URCapプラグインは、ごくわずかなプログラミング作業で作成できる把持・配置のサンプルノードを提供します。
把持・配置のサンプルプログラムノードには、3つのオプションが提供されています。
-
With Mech-Vision(picking points):これは、Mech-Visionプロジェクト(「経路計画」ステップを含まない)のみを使用し、ロボットがMech-Vizによって計画された動作経路を必要としない場合に適しています。
-
With Mech-Vision(picking path):これは、Mech-Visionプロジェクト(「経路計画」ステップを含む)のみを使用し、ロボットがMech-Vizによって計画された動作経路を必要としない場合に適しています。
-
With Mech-Viz:これは、Mech-VizプロジェクトとMech-Visionプロジェクトを併用し、ロボットに衝突のない動作経路を提供する場合に適しています。
このプラグインは、各オプションに対してプログラムテンプレートを提供し、プログラミングを容易にします。
以下の例は、現在使用中のロボットハンドとツールセンターポイント(TCP)が正しく設定されていることを前提としています。 |
With Mech-Vision(picking points)
With Mech-Vision(picking points)のプログラムを作成するには、以下の手順を実行します。
-
With Mech-Vision(picking points)のオプションを選択します。
-
ティーチペンダントの上部にある 新規... をクリックし、 プログラム を選択して新しいプログラムを作成します。
-
上部にある プログラム をクリックし、
を選択します。Pick and Place サンプルプログラムノードは、左側パネルの ロボットプログラム に自動的に作成されます。 -
右側パネルの コマンド タブで、 With Mech-Vision(picking points) をクリックします。プログラムテンプレートは、プログラムツリーの 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 パネルで Type of robot pose to send、 Mech-Vision Project ID および Num of expected poses パラメータを設定します。
パラメータ 説明 Type of robot pose to send(ロボット位置姿勢のタイプ)
ロボット実機の位置姿勢をMech-Visionに送信する形式を指定します。
-
Current Position(現在の位置):ロボットの位置姿勢は、「現在のロボットの関節角度+現在のフランジの位置情報」の形式でビジョンシステムに送信します。Eye in Handのプロジェクトでは、このパラメータを推奨します。 Mech-Visionプロジェクトの「経路計画」ステップでは、ロボットから返された関節角度を使用します。フランジ位置姿勢がすべてゼロの場合、フランジデータは無視されます。
-
Predefined JPs(定義済みの関節角度):ロボットの位置姿勢は、カスタマイズされた関節角度の形式(ユーザーにより設定された関節角度の変数を読み込む)でビジョンシステムに送信します。Eye to Handのプロジェクトでは、このパラメータを推奨します。 Mech-Visionプロジェクトの「経路計画」ステップでは、ロボットから返された関節角度を初期位置姿勢として使用します。
Mech-Vision Project ID(Mech-Vision プロジェクト番号)
Mech-Visionのプロジェクト番号は、Mech-Visionのプロジェクトリストで確認できます。プロジェクト名の前の数字は、プロジェクト番号を表します。
Num of expected poses(返された位置姿勢の数)
Mech-Visionから出力する対象物の位置姿勢の数です。
-
0に設定すると、検出されたすべての対象物の位置姿勢(20以下)が出力されます。
-
1から20の間の整数に設定すると、検出された対象物の位置姿勢の総数が期待数より多い場合、Mech-Visionは固定の対象物の位置姿勢の数を返します。
-
-
(オプション) Set the Recipe ID をクリックすると、 Set Recipe ID ノードは、プログラムツリーの Trigger Mech-Vision ノードの下に自動的に追加されます。
-
プログラムツリーで Set Recipe ID ノードを選択し、右側の Set Recipe ID パネルで Project parameter recipe ID を設定します。
-
-
Mech-Visionの結果の受信方式を設定します。
プログラムツリーで Receive Mech-Vision Result ノードを選択し、「Resule type」を「Basic」に設定します。また、ビジョン結果を格納するための Pose、 Label、 Total Received、および Status Code の変数名をそれぞれ設定します。
パラメータ 説明 Resule type(受信データタイプ)
Basic:ビジョンポイントとラベルを受信します。 Planned path:「経路計画」ステップによって出力された経路点とラベルを受信します。 Custom:ビジョンポイント、ラベルおよびカスタマイズされたデータを受信します。
Pose(位置姿勢)
検出された対象物の位置姿勢であり、XYZで表します。アクティブTCPを持つロボットは、このポイントに直接移動することができます。デフォルトでは、受信したビジョンポイントは配列変数「pose[]」に格納されます。配列の開始インデックスは1となります。
Label(ラベル)
検出された対象物のラベルであり、ラベルの値は整数です。デフォルトでは、ラベルは配列変数「label[]」に格納されます。配列の開始インデックスは1となります。ラベルと位置姿勢が一対一で対応しています。
Total Received(受信した位置姿勢の数)
受信した検出された対象物の位置姿勢の総数です。
Status Code(ステータスコード)
返されたステータスコードです。詳細については、『標準インターフェースのステータスコード一覧とトラブルシューティング』をご参照ください。11xxは正常実行完了のコードで、10xxはエラーコードです。デフォルトでは、ステータスコードは変数「status_code」に格納されます。
Starting at ID(開始インデックス)
位置姿勢およびラベルの配列変数の開始インデックスです。デフォルトでは、インデックスの開始値は1となります。
Picking point index(把持位置姿勢のインデックス)
この変数は、 Resule type を Planned path に設定する場合にのみ表示されます。 これは、受信した経路点のうち、「ビジョン処理による移動」のビジョンポイントのインデックスを示します。例えば、「経路計画」ステップが3つのポイント(相対移動_1、ビジョン処理による移動_1と相対移動_2)を返した場合、把持位置姿勢のインデックスは2となります。 デフォルトでは、把持位置姿勢のインデックスが変数「vision_point」に格納されます。
Custom data(カスタマイズされたデータ)
この変数は、 Resule type を Custom に設定する場合にのみ表示されます。 Mech-Visionプロジェクトの「出力」ステップからカスタマイズされたデータを受信します。カスタマイズされたデータとは、poses と labels以外のポートのデータを指します。 デフォルトでは、カスタマイズされたデータが変数「custom_data」に格納されます。
-
把持作業に関する設定を行います。
一回の把持作業は、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(把持位置姿勢)を使用する簡単な把持・配置プログラムの作成が完了しました。下部にある をクリックしてプログラムを実行することができます。
With Mech-Vision(picking path)
With Mech-Vision(picking path)のプログラムを作成するには、以下の手順を実行します。
-
With Mech-Vision(picking path)のオプションを選択します。
-
ティーチペンダントの上部にある 新規... をクリックし、 プログラム を選択して新しいプログラムを作成します。
-
上部にある プログラム をクリックし、
を選択します。Pick and Place サンプルプログラムノードは、左側パネルの ロボットプログラム に自動的に作成されます。 -
右側パネルの コマンド タブで、 With Mech-Vision(picking path) をクリックします。プログラムテンプレートは、プログラムツリーの Pick and Place ノードに自動的に追加されます。
-
-
With Mech-Vision(picking points) の手順2を参照して、 Host IP が Mech-Mind IPCのIPアドレスであることを確認します。
-
With Mech-Vision(picking points) の手順3を参照して、画像撮影点を設定します。
-
With Mech-Vision(picking points) の手順4を参照して、Mech-Visionプロジェクトを実行します。
-
With Mech-Vision(picking points) の手順5を参照して、Mech-Visionの結果の受信形式を設定します。
-
プログラムツリーで Receive Mech-Vision Result ノードを選択し、 Resule type を Planned path に設定します。
-
把持位置姿勢インデックスの変数は、受信した経路点のうち、「ビジョン処理による移動」のビジョンポイントのインデックスを表します。例えば、「経路計画」ステップが3つのポイント(相対移動_1、ビジョン処理による移動_1と相対移動_2)を返した場合、把持位置姿勢のインデックスは2となります。デフォルトでは、把持位置姿勢のインデックスが変数「vision_point」に格納されます。
-
-
ロボットが「経路計画」ステップによって出力された経路(アプローチ点、把持点、離れる点(配置点は除く))に従って動作するように、ロボットの動作ループを設定します。MoveLノードとMoveJノードの設定方法は、 With Mech-Vision(picking points) の手順6をご参照ください。
実際には、ロボットの動作ループに複数の「pick_above MoveJ」ノード、1つの「pick MoveL」ノード、複数の「pick_depart MoveJ」ノードが含まれる可能性があります。
-
With Mech-Vision(picking points) の手順7を参照して、配置作業に関する設定を行います。
これで、Mech-Vision(把持経路)を使用する簡単な把持・配置プログラムの作成が完了しました。下部にある をクリックしてプログラムを実行することができます。
With Mech-Viz
With Mech-Vizの把持・配置プログラムを作成するには、以下の手順を実行します。
-
With Mech-Vizのオプションを選択します。
-
ティーチペンダントの上部にある 新規... をクリックし、 プログラム を選択して新しいプログラムを作成します。
-
上部にある プログラム をクリックし、
を選択します。Pick and Place サンプルプログラムノードは、左側パネルの ロボットプログラム に自動的に作成されます。 -
右側パネルの コマンド タブで、 With Mech-Viz をクリックします。プログラムテンプレートは、プログラムツリーの Pick and Place ノードに自動的に追加されます。
-
-
ツリーの Mech-Mind Connect ノードを選択し、右側の Mech-Mind Connect パネルで Host IP が Mech-Mind のIPCのIPアドレスであることを確認します。
-
With Mech-Vision(picking points) の手順3を参照して、画像撮影点を設定します。
画像撮影点では、Mech-Vizプロジェクトがトリガーされます。
-
Mech-Vizプロジェクトを実行します。
-
プログラムツリーで Trigger Mech-Viz ノードを選択し、右側の Trigger Mech-Viz パネルで Type of robot pose to send パラメータを設定します。
-
送信するロボットの位置姿勢タイプをCurrent Positionに設定すると、ロボットの現在の関節角度とフランジ位置姿勢がMech-Vizに送信されます。Mech-Vizでは、仮想ロボットは現在のロボットの関節角度から最初の経路点に移動します。送信するロボットの位置姿勢タイプをPredefined JPsに設定すると、最初の事前定義済みのロボットの関節角度がMech-Vizに送信されます。Mech-Vizでは、仮想ロボットは現在のロボットの関節変数によって設定された位置から、最初の経路点に移動します。
-
Mech-Vizプロジェクトで分岐ステップを使用し、ロボットに分岐出口を選択させたい場合は、 Set branch exit port をクリックして手順bにスキップし、分岐出口を設定します。
-
インデックスパラメータを持つ移動ステップを使用する場合は、 Set Index Value をクリックして手順cにスキップし、インデックス値を設定します。
-
-
(オプション)プログラムツリーで Set Branch Value ノードを選択し、右側の Set Branch Value パネルで Branch Step ID と Exit port number パラメータを設定します。
-
(オプション)プログラムツリーで Set Index Value ノードを選択し、右側の Set Index Value パネルで Move Step ID と Index Value パラメータを設定します。
-
-
Mech-Vizの結果の受信形式を設定します。
プログラムツリーで Receive Mech-Viz Result ノードを選択し、Mech-Vizによって計画された動作経路を格納するための Pose、 Label、 Speed (%)、 Total Received、 Status Code、 Picking point index の変数名をそれぞれ設定します。
パラメータ 説明 Pose(位置姿勢)
計画された経路点の位置姿勢で、XYZで表します。アクティブTCPを持つロボットは、このポイントに直接移動することができます。デフォルトでは、受信した位置姿勢が配列変数「pose[]」に格納されます。配列の開始インデックスは1となります。
Label(ラベル)
検出された対象物のラベルであり、ラベルの値は整数です。ビジョンポイントでない場合、ラベルは0である必要があります。デフォルトでは、ラベルは配列変数「label[]」に格納されます。配列の開始インデックスは1となります。ラベルと位置姿勢が一対一で対応しています。
Speed(速度)
ロボットが経路点に移動する速度(パーセンテージで表す)です。
Total Received(受信した位置姿勢の数)
受信した経路点の位置姿勢の合計数です。
Status Code(ステータスコード)
返されたステータスコードです。詳細については、『標準インターフェースのステータスコード一覧とトラブルシューティング』をご参照ください。21xxは正常実行完了のコードで、20xxはエラーコードです。デフォルトでは、ステータスコードは変数「status_code」に格納されます。
Picking point index(把持位置姿勢のインデックス)
受信した経路点のうち、「ビジョン処理による移動」のインデックスです。例えば、Mech-Vizが3つのポイント(相対移動_1、ビジョン処理による移動_1と相対移動_2)を返した場合、把持位置姿勢のインデックスは2となります。デフォルトでは、把持位置姿勢のインデックスが変数「vision_point」に格納されます。
Starting at ID(開始インデックス)
位置姿勢およびラベルの配列変数の開始インデックスです。デフォルトでは、インデックスの開始値は1となります。
-
ロボットがMech-Vizで計画された経路(アプローチ点、把持点、離れる点(配置点は除く))に従って動作するように、ロボットの動作ループを設定します。MoveLノードとMoveJノードの設定方法は、 With Mech-Vision(picking points) の手順6をご参照ください。
-
実際には、ロボットの動作ループに複数の「pick_above MoveJ」ノード、1つの「pick MoveL」ノード、複数の「pick_depart MoveJ」ノードが含まれる可能性があります。
-
Receive Mech-Viz Result ノードで位置姿勢やラベルなどのパラメータの初期変数名を変更した場合は、それに合わせてこの手順の変数名も変更する必要があります。
-
-
With Mech-Vision(picking points) の手順7を参照して、配置作業に関する設定を行います。
これで、Mech-Vizを使用する簡単な把持・配置プログラムの作成が完了しました。下部にある をクリックしてプログラムを実行することができます。