自動キャリブレーション(Eye to Hand)

本節では、カメラがEye to Hand (ETH) 方式で取り付けられている場合に自動キャリブレーションを実行する方法について説明します。

事前準備

以下は、ロボットハンド・アイ・キャリブレーションを実行する前に必要な事前準備です。

  • Mech-Mindビジョンシステムを構築します。

  • キャリブレーションに必要なものを準備します。

  • キャリブレーションボードの点群画像生成を調整します。

  • ロボットと通信の設定を完了します。

Mech-Mindビジョンシステムを構築

詳細については、 ビジョンシステムを構築 をご参照ください。

ハンド・アイ・キャリブレーションには、Mech-Eye Viewer、Mech-Center、Mech-VisionおよびMech-Vizが必要です。これらのソフトウェアがインストールされ、最新バージョンにアップグレードされていることを確認してください。

キャリブレーションに必要なものを準備

カメラがEye to Hand方式で取り付けられている場合、自動キャリブレーションを実行するにはキャリブレーションボードの使用が必要です。

キャリブレーションボードについては、以下の要件があります。

  • キャリブレーションボードの白い円がはっきりと見えること、破損や曲げ変形がないことを確認してください。

  • キャリブレーションボードのコネクタをロボット先端のフランジに取り付け、そのコネクタにキャリブレーションボードを取り付けます。キャリブレーションボードがしっかりと取り付けられていること、ロボット先端のXY平面と平行であることを確認してください。

    注釈

    ロボットフランジに取り外しができないハンドがある場合、キャリブレーションボードをハンドに直接固定します。

また、キャリブレーションを実行する前に、ロボットをキャリブレーションの開始位置に移動させてください。Eye to Handでは、キャリブレーションの開始位置はカメラ視野の最下部中央にあります。ロボットは、キャリブレーションボードを移動させて下から上にキャリブレーションを実行します。

キャリブレーションボードの点群画像生成を調整

  1. Mech-Eye Viewerソフトウェアを起動し、カメラのパラメータを調整します。

  2. 2Dパラメータ を調整して、2D画像にキャリブレーションボードがはっきり見られ、露光過度や露光不足などがないようにします。

  3. 3Dパラメータ を調整して、キャリブレーションボードの白い円の点群が完全に見られるようにします。点群の変動範囲を小さくするために、 点群後処理 の中の 点群平滑化ノイズ除去 をNormalに設定することを推奨します。

    注釈

    現場の環境光が複雑な場合、2D画像や点群への影響を軽減するために、遮光・補光することを推奨します。

  4. 上記の手順を実行して、下図のようにキャリブレーションボードの白い円の点群が完全で輪郭がはっきり表示されていることを確認してください。

../../_images/clear-board.png

ヒント

キャリブレーション中にカメラの2D画像ソースは同じソースのテクスチャ画像であるため、取得した画像と得られたシーンの点群は白黒画像となります。

ロボット通信設定

ロボット側は標準インターフェース方式でビジョン側と通信する場合、ロボット側で標準インターフェースの通信設定を行ってください。詳細については、 標準インターフェース通信 をご参照ください。

ロボット側はVizティーチング方式でビジョン側と通信する場合、ロボット側でVizティーチングの通信設定を行ってください。詳細については、 Vizティーチング通信 をご参照ください。

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

ロボット側は標準インターフェース方式でビジョン側と通信する場合、 キャリブレーション前の設定(標準インターフェース) を行ってください。

ロボット側はVizティーチング方式でビジョン側と通信する場合、 キャリブレーション前の設定(Vizティーチング) を行ってください。

キャリブレーション前の設定(標準インターフェース)

以下の手順を実行します。

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

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

    ../../_images/calib_preset_new.png
  3. キャリブレーションのタスクを選択 画面で、ドロップダウンリストから 適応可能なロボットのハンド・アイ・キャリブレーション を選択し、 ロボット型番を選択 をクリックして型番を選択してから、 次へ をクリックします。

    ../../_images/calib_preset_select_robot.png
  4. カメラ取り付け方式を選択 画面で、 Eye to hand にチェックを入れ、 次へ をクリックします。

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

    ../../_images/calib_preset_auto_standardinterface.png
  6. 通信設定 画面で、実際の状況に応じて 通信プロトコルホストIPアドレス を設定してから インターフェースサービスを起動 をクリックします。すると、 ロボットとの接続を待機中… に変わります。

    ../../_images/calib_preset_auto_start_interface.png

    注釈

    上図の TCP ServerHex (リトルエンディアン) はABBロボットの プロトコル 設定の一例です。 他のロボットには異なるプロトコル設定があり、ソフトウェアが自動的にロボットの初期設定を追加しますので、初期設定のままにしておいてください。

  7. ティーチペンダントで 自動キャリブレーションのプログラムを選択し、キャリブレーションの開始位置を定義してキャリブレーションプログラムを実行します 。様々なロボットに対応するキャリブレーション手順については、 標準インターフェース通信 をご参照ください。キャリブレーションプログラムが正常に起動されると、ログに「キャリブレーションプロセスに入ります。Mech-Visionでキャリブレーションを実行してください。」が表示されます。

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

キャリブレーション前の設定(Vizティーチング)

以下の手順を実行します。

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

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

    ../../_images/calib_preset_new.png
  3. キャリブレーションのタスクを選択 画面で、ドロップダウンリストから 適応可能なロボットのハンド・アイ・キャリブレーション を選択し、 ロボット型番を選択 をクリックして型番を選択してから、 次へ をクリックします。

    ../../_images/calib_preset_select_robot.png
  4. カメラ取り付け方式を選択 画面で、 Eye to hand にチェックを入れ、 次へ をクリックします。

    ../../_images/calib_preset_eth.png
  5. 実行モードとロボットの制御方式を選択 画面で、 自動キャリブレーションVizティーチング を選択してから、 次へ をクリックします。

    ../../_images/calib_preset_auto_mastercontrol.png
  6. 次の画面で ロボットIPアドレス を設定します。

    ../../_images/calib_preset_auto_mastercontrol_robotip.png
  7. ティーチペンダントで Vizとの通信プログラムを選択して実行します 。様々なロボットに対応する実行方法については、 Vizティーチング をご参照ください。

  8. Mech-Visionに戻り、 ロボットを接続 の下にある ロボットを接続 をクリックします。すると、 ロボットとの接続を待機中… に変わります。

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

これで、キャリブレーション前の設定が完了し、キャリブレーションに進むことになります。

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

カメラ接続

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

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

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

    注釈

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

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

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

    ../../_images/select_calib_board_auto.png
  2. キャリブレーションボードが作業平面の中心に配置されていることを確認してから、 2. キャリブレーションボードの取り付け確認 をクリックします。

  3. キャリブレーションボードがカメラの視野中心(赤い長方形)にあることを確認してから、 3. キャリブレーションボードを赤い長方形に配置確認 をクリックします。

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

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

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

    ../../_images/check_intri_auto.png
  2. 内部パラメータのチェック結果を確認します。

    • カメラの内部パラメータが合格した場合、 OK をクリックして 次へ をクリックします。

      ../../_images/check_intri_pass1.png
    • カメラの内部パラメータが合格しなかった場合、補助円を描画するか、キャリブレーションボードの白い円の検出パラメータを手動で編集してから、 再度チェック をクリックします。

補助円を描画

  1. 補助円を描画する場合、 補助円を描画 をクリックします。

  2. 右側の 画像ビュー パネルで、キャリブレーションボードの画像を右クリックし、 ウィンドウに合わせる のチェックを外します。その後、Ctrlキーを押しながらスクロールホイールをドラッグして画像のサイズを適切な大きさに変更します。

  3. キャリブレーションボードの白い円の十字型の中心にマウスポインタを合わせて、マウスの左ボタンを押し、補助円をキャリブレーションボードの白い円に完全に含ませてから離します。

    ../../_images/adjust_blob.png
  4. 再度チェック をクリックし、カメラ内部パラメータのチェックが合格したことを確認します。

検出パラメータを手動で調整

検出パラメータを手動で調整する場合、 キャリブレーションボードの白い円の検出パラメータ(詳細設定) をクリックし、実際の状況に応じてパラメータ値を変更します。

それでもキャリブレーションボードの白い円が検出されない場合、現場の環境に応じてカメラの関連パラメータを調整する必要があります。カメラパラメータの調整については、 パラメータ調整 をご参照ください。

ロボット経路を設定

  1. ロボット経路を設定 手順で、 位置姿勢の高さ範囲をキャリブレーション を設定します。

    ../../_images/set_robot_path_eth.png

    ちなみに

    高さ範囲 は、カメラの推奨稼働範囲とロボットの動作領域に応じて設定する必要があります。

  2. カメラとワールド座標系のZ軸が平行でない場合、 経路を自動的に合わせる をクリックします。

  3. 実際の状況に応じて 経路のタイプ を設定する必要があります。ここで ToHand に設定します。ピラミッド型の経路パラメータで 高さ範囲層数最下層サイズ最上層サイズ層ごとの移動グリッドの列と行数 を設定し、回転パラメータで 回転角度 を設定してから、 確認 をクリックします。

  4. 右側のシーンビューのパネルで、各経路点の位置が正確で、周囲と衝突していないことを確認します。

    ../../_images/set_robot_path_eth_view.png
  5. 確認後、下部にある 次へ をクリックします。

画像と位置姿勢を取得

  1. 画像と位置姿勢を取得 手順で、 画像を保存 にチェックを入れ、 経路に沿ってロボットを自動で移動させ、画像を撮影 をクリックします。

    ../../_images/add_image_pose.png
  2. ロボット動作の安全に関する説明をよく読んで、 OK をクリックします。

    ../../_images/safety_tips.png
  3. ロボットが設定された経路を移動し、カメラが各経路点で画像の取得を完了するのを待ちます。右側の 画像ビュー パネルで取得された画像が表示されます。

    注意

    • ロボット動作中に、ロボットの動作範囲に近づかないようにしてください。

    • 「ロボットを停止」ボタンをクリックするとキャリブレーションを終了しますが、ロボットはすぐには停止せず、現在の経路点に達するまで停止します。緊急時にロボットティーチペンダントの非常停止ボタンを押してください。非常停止を押した後、ロボットに再接続する必要があります。

  4. 画像が取得した後、表示される画面で OK をクリックします。

    ../../_images/auto_capture_finished1.png
  5. 認識したキャリブレーション位置姿勢が要件を満たしていることを確認してから、下部にある 次へ をクリックします。

ちなみに

要件を満たしていない場合、ロボットを手動で移動した後(ティーチペンダントでもMech-Vizでも選択可能)、 画像を手動で追加 にチェックを入れ、 画像を追加してフランジ位置姿勢を記録 をクリックし、キャリブレーションボードの画像を追加してロボットのフランジ位置姿勢を入力する必要があります。

カメラパラメータを計算

  1. カメラパラメータを計算 手順で、 パラメータの計算設定 を展開し、 回転結果と並進結果を別々に計算 にチェックを入れてから、 カメラの外部パラメータを計算 をクリックします。

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

    ../../_images/confirm_calib_eth_result.png

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

  1. カメラパラメータを計算 手順で、キャリブレーション結果が計算した後、右側の 点群ビュー パネルでキャリブレーションの誤差点群を確認します。

  2. キャリブレーション精度は、100%を占める誤差の値を求めることで、おおよそ判断することができます。例えば、下図の場合、精度は2.5mm以下となります。

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

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

これで、キャリブレーション手順が完了しました。キャリブレーション精度を向上させるには、 キャリブレーション結果の分析 をご参照ください。