最初の把持を開始

ビジョンシステムが構築されたら、最初の把持を開始するためにビジョンソリューションの実装を行うことができます。

ソリューションの作成

  1. Mech-Visionを起動すると、 Mech-Visionへようこそ 画面が表示されます。

    ../_images/welcome.png
  2. ソリューションライブラリから新規作成 をクリックします。すると、ソリューションライブラリの画面が表示されます。

  3. ソリューションライブラリの画面では、下部にある もっと詳しく をクリックすると、最新のソリューションライブラリにアクセスできます。

  4. 部品供給 タブでは、 一般的な部品ピッキング を選択し、 ソリューション名保存先 を設定して 作成 をクリックします。

    ../_images/create_solution.png

    注釈

    • ソフトウェアは、ソリューションライブラリからこのソリューションのデータを自動的にダウンロードします。

    • 詳細はことら をクリックすると、このソリューションのヘルプマニュアルが表示されます。

  5. ポップアップダイアログボックスで、 はい をクリックしてダウンロードを確認します。

  6. ソフトウェアがオンラインソリューションライブラリからデータをダウンロードするのを待ちます。ダウンロードに成功すると、ソリューションが自動的に開かれます。

ロボット設定と通信設定を実行

ビジョン側がロボット側と正常に通信できるために、以下のことを完了させてください。

  1. ビジョン側でロボット設定と通信設定を行います。

  2. ロボット側で通信設定を行います。

  3. ロボット側とビジョン側が正常に通信できることをテストします。

ビジョン側でのロボット設定と通信設定

  1. Mech-Visionを起動し、ツールバーで ロボット通信設定 をクリックします。すると、 ロボット通信設定 画面が表示されます。

    ../_images/robot_and_communication.png
  2. ロボットを選択します。

    1. ロボットを選択 のドロップダウンボックスで 適応可能なロボット を選択し、 ロボット型番を選択 をクリックします。

      ../_images/select_robot.png
    2. ロボットブランド のドロップダウンボックスで「ABB」を選択し、右側でABB_IRB_120_3_0_6の型番を選択して 選択 をクリックします。

      ../_images/select_robot_model.png
    3. 次へ をクリックします。

  3. TCP/IP Socketの通信設定を行います。

    1. 通信方式 画面では、 インターフェースタイプ標準インターフェース に、 通信プロトコルTCP ServerHEX(リトルエンディアン) に設定します。ホストIPアドレスを 50000 に設定して ソリューションを開くとインターフェースサービスを自動的に起動 にチェックを入れます。

      ../_images/communication_mode.png

      ちなみに

      選択したロボットブランドに応じて 通信方式を設定 します。

    2. 適用 をクリックします。

この場合、インターフェースサービスが自動的に起動されることになります。Mech-MindソフトウェアシステムはTCP/IPサーバーとして動作し、ロボット側からのTCP/IPリクエストを産業用PCのIPアドレスと50000番ポートで待ち受けます。

ロボット側での通信設定

  1. プログラムフォルダを開く をクリックすると、Mech-Mindが提供する標準インターフェースのロボット通信プログラム、自動キャリブレーションプログラム、把持のサンプルプログラムなどが表示されます。

    ../_images/builtin_program.png

    注釈

    • MM_Module.modは、標準インターフェースのロボット通信プログラムとなります。

    • MM_Auto_Calib.modは、自動キャリブレーションプログラムとなります。

    • sampleフォルダのMM_Sample.modは、把持のサンプルプログラムとなります。

  2. 標準インターフェース通信 を参照して、ロボットプログラムの読み込みとロボット側の通信設定を行います。

通信プログラムやプラグインの読み込みが完了すると、ロボット側はTCP/IPクライアントとして動作し、TCP/IPサーバにTCP/IPリクエストを送信することができるようになります。

ロボット側とビジョン側が正常に通信できることをテスト

ちなみに

他のロボットを使用する場合、 標準インターフェース通信 またはロボットのマニュアルをご参照ください。

  1. ABBロボットのティーチペンダントで デバッグ > PPをメインへ を順番に選択します。

    ../_images/test1.png
  2. MM_Calibration を選択して OK をクリックします。

    ../_images/test2.png
  3. 指針が17行目に移すまで手動でプログラムを実行します。

    ../_images/test3.png
  4. ティーチペンダントで「T_ROB1→MM: Init connection successfully」というメッセージが表示されると、正常に接続されたことになります。

    ../_images/test4.png

ハンド・アイ・キャリブレーションを実行

自動キャリブレーション方式で、ロボットのハンド・アイ・キャリブレーションを実行し、カメラの光学中心とロボットのベース座標系の位置と向きの関係を確立します。

キャリブレーション前の設定

  1. Mech-Visionを起動し、ツールバーで カメラキャリブレーション(標準モード) をクリックします。すると、 キャリブレーション前の設定 画面が表示されます。

  2. キャリブレーションの実行方法を選択 画面で、 新なキャリブレーションを開始 を選択してから 次へ をクリックします。

  3. キャリブレーションのタスクを選択 画面で、ドロップダウンリストから 適応可能なロボットのハンド・アイ・キャリブレーション を選択し、ロボット型番が正しいことを確認した上で 次へ をクリックします。

  4. カメラ取り付け方式を選択 画面で、 Eye to Hand を選択し、 次へ をクリックします。

  5. 実行モードとロボットの制御方式を選択 画面で、 自動キャリブレーション標準インターフェース を選択し、 次へ をクリックします。

  6. 通信設定 画面で インターフェースサービスを起動 をクリックします。すると、このボタンが ロボットとの接続を待機中… に変わります。

    ../_images/calib_connect_robot.png
  7. ティーチペンダントでMM_Auto_Calibの自動キャリブレーションプログラムを選択し、キャリブレーションの開始位置を教示してプログラムを実行します。詳細については、 ABBロボットのキャリブレーション手順 をご参照ください。プログラムが正常に起動すると、「キャリブレーションプロセスに入ります。Mech-Visionでキャリブレーションを実行してください。」というログが出力されます。

  8. Mech-Visionに戻り、 ロボットを接続 の下で「接続済み」が表示されることを確認してから 実行 をクリックします。すると、 キャリブレーション(Eye to Hand) 画面が表示されます。

キャリブレーションの実行手順

カメラ接続

  1. カメラに接続 手順で、 検出されたカメラ から接続するカメラを選択して Connect をクリックするか、ダブルクリックして接続します。

    ../_images/connect_camera.png
  2. 接続後、 一回キャプチャ または 連続キャプチャ をクリックします。

  3. 画像ビュー では、取得した2D画像と深度画像が要件を満たしていることを確認した上で下部にある 次へ をクリックします。

ちなみに

取得した画像が要件を満たしていない場合、Mech-Eye Viewerで カメラの2Dと3D露光のパラメータを調整 して画像を再取得する必要があります。

キャリブレーションボードの取り付け

  1. キャリブレーションボードの取り付け 手順で、 1. キャリブレーションボードの型番を選択標準 を選択し、キャリブレーションボードに貼られているラベルに従って型番を選択します。

  2. キャリブレーションボードをロボットフランジにしっかりと取り付けたら、 2. キャリブレーションボードの取り付け確認 をクリックします。

  3. キャリブレーションボードがカメラの視野中央(2D画像の赤い長方形内)に配置されることを確認したら、 3. キャリブレーションボードを赤い長方形に配置確認 をクリックします。

    ../_images/install_calib_board.png
  4. キャリブレーションボードに関するすべての操作が完了したら、下部にある 次へ をクリックします。

内部パラメータをチェック

  1. 内部パラメータをチェック 手順で、 チェックを開始 をクリックします。

    ../_images/check_intri_params.png
  2. カメラの内部パラメータのチェックが合格したことを確認したら、下部にある 次へ をクリックします。

    ../_images/check_intri_pass.png

ちなみに

内部パラメータのチェックが合格しなかった場合、 補助円を描画するか、特徴検出パラメータを編集 してください。

ロボット経路を設定

  1. ロボット経路を設定 手順で、 高さ範囲 を設定します。このパラメータは、キャリブレーションボードが深度方向における移動可能な範囲に応じて設定する必要があります。

    ../_images/set_motion_path.png
  2. 高さ範囲 の設定に応じてピラミッド型の経路パラメータと回転角度を適切に調整し、 確認 をクリックします。

  3. 右側の シーンビュー では自動生成された動作経路の各ポイントが周囲と衝突していないことを確認してから、 次へ をクリックします。

画像と位置姿勢を取得

  1. 画像と位置姿勢を取得 手順で、 画像を保存 にチェックを入れます。

    ../_images/add_image_poses.png
  2. 経路に沿ってロボットを自動で移動させ、画像を撮影 をクリックします。

  3. ロボット動作の安全に関する説明をよく読んでから、 OK をクリックします。

    ../_images/security_warnning.png
  4. ロボットが設定した経路に沿って移動し、カメラが各経路点で画像取得を完了するのを待ちます。右側の 画像と位置姿勢一覧 には、取得した画像が表示されます。

  5. キャリブレーションが完了したら、ポップアップウィンドウで OK をクリックし、下部にある 次へ をクリックします。

    ../_images/auto_capture_finished.png

カメラパラメータを計算

  1. カメラパラメータを計算 手順で、 カメラの外部パラメータを計算 をクリックします。

    ../_images/calculate_extri_params.png
  2. キャリブレーションが正常に実行されたことを示すダイアログで、 OK をクリックします。

キャリブレーション精度が要件を満たしていることを確認してデータを保存

  1. カメラパラメータを計算 画面でキャリブレーション結果を計算した後、右側の 点群ビュー パネルでキャリブレーションの誤差点群が表示されます。誤差点群は、各キャリブレーション位置姿勢におけるキャリブレーションボードの白い円の実際の値と計算値との偏差を示すために使用されます。

  2. キャリブレーション精度は、100%を占める誤差の値を求めることで判断できます。例えば、下図は3.5mm以下の精度を示しています。

    ../_images/check_calib_accuracy.png
  3. キャリブレーション精度が要件を満たしていることを確認してから、下部にある 保存 をクリックします。

  4. 表示される キャリブレーションファイルの保存 のダイアログで、 OK をクリックすると、キャリブレーション結果がプロジェクトディレクトリに保存されます。

これで、ロボットのハンド・アイ・キャリブレーションは完了しました。キャリブレーション精度を向上させるには、 キャリブレーション結果の分析 をご参照ください。

ソリューションのデバッグと最適化

この段階では、代表的なソリューションについて、実際の要件を満たすためにプロジェクトパラメータの調整とデバッグを行います。以下では、「一般的な部品ピッキング」を例として説明します。

項目

設定の説明

カメラから画像を取得 ステップ

仮想モードを無効にしてから、正しいカメラを選択する必要があります。

ワーク認識 ステップ

ワークをマッチングする点群モデル(エッジモデルを推奨)を作成して指定する必要があります。

点群前処理の効率化と良い認識結果のため、認識領域を調整します。

3Dマッチングの関連設定と出力設定を行います。

位置姿勢を一括調整 ステップ

位置姿勢の調整やソートに関するパラメータを調整します。

経路計画 ステップ

エンドツール、対象物、地面、シーンの物体など、実際の状況に応じてプロジェクトリソースを設定します。

衝突検出機能を使用するには、エンドツール、対象物、シーンの物体の3Dモデルと衝突モデルを作成してインポートします。

ワークフローと各ステップのパラメータを調整します。

シミュレーションを行い、計画した動作経路が衝突のないことを確認します。

出力 ステップ

実際の状況に応じて、出力ポート(ラベル、オフセットなどの通信キーの追加)を調整します。

これで、ビジョンソリューションに必要なMech-Visionプロジェクトの構築は完了しました。次に、ロボット側で把持プログラムを作成し、Mech-Visionプロジェクトを呼び出して衝突のないロボット動作経路を出力する必要があります。

ロボットの把持プログラムを準備して実行

この段階では、標準インターフェース通信でMech-Visionプロジェクトを起動し、Mech-Visionプロジェクトから位置姿勢または計画された経路点を取得するために、ロボットの把持プログラムを作成する必要があります。

本例では、衝突のない把持経路点を出力します。Mech-Mindが提供する サンプルプログラム を使用して把持プログラムを作成することも可能です。

把持プログラムを実行する前に、ロボット側で以下の設定を行います。

  1. ティーチペンダントでロボットの正しいツール中心点(TCP)を指定します。

  2. ティーチペンダントでサンプルプログラムを開き、入力をカスタマイズします。

    • 産業用PCのIPアドレスを指定します。

    • パラメータレシピ(複数の対象物に対応)を設定します。

    • Mech-Visionプロジェクト番号を指定します。

    • 実際のシーンに応じて、把持位置姿勢から配置位置姿勢までの中間点を追加します。

    • 初期位置、写真撮影点、中間点、配置位置姿勢を定義します。

    • ハンドで対象物を把持するためのロジックを補足します。

    • ハンドで対象物を配置するためのロジックを補足します。

    • 把持/配置前後の近接距離を定義します。

  3. 上記の設定が完了したら、ティーチペンダントでロボットの把持プログラムを実行し、最初の把持を開始します。

これまで、システム構築からソリューション実装、ロボットの把持まで、Mech-Mindビジョンシステムの応用の全プロセスを正常に完了したことになります。次は、この応用をさらに最適化し、実際の生産に適用可能です。詳細については、 応用ガイド をご参照ください。