直行ロボットのハンド・アイ・キャリブレーション

本節では、直行ロボットのハンド・アイ・キャリブレーションを実行する方法について説明します。

注釈

直行ロボットのハンド・アイ・キャリブレーションの概念や外部パラメータファイルの使用については、 直行ロボットのハンド・アイ・キャリブレーションの説明 をご参照ください。

事前準備

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

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

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

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

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

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

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

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

以下のことが必要です。

  • キャリブレーションボード

  • TCP先端

  • 巻尺

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

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

  • 直行ロボットのハンド・アイ・キャリブレーションでは、キャリブレーションボードを作業平面の中心に平らに配置してください。

TCP先端は直行ロボットのハンドに取り付ける必要があります。巻尺を使用して、TCP先端からフランジの中心までのX、Y、Z方向のオフセットを測定します。

../../_images/point_intall.png

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

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

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

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

    注釈

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

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

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

ヒント

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

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

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

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

    ../../_images/calib_preset_new.png
  3. キャリブレーションのタスクを選択 画面で、ドロップダウンリストから その他のロボットのハンド・アイ・キャリブレーション を選択し、必要に応じて ロボットのオイラー角のタイプ を指定し、ロボットの座標系を選択してから 次へ をクリックします。

    ../../_images/calib_preset_select_robot_other.png

    注釈

    • ロボットの座標系タイプは、 左手/右手系 を参照して確認できます。直行ロボットが左手系を使用している場合は、ここで左手系を選択すれば問題ありません。

    • ロボットと通信する際、通信モジュールは、位置姿勢の送受信時に座標系を自動的に変換します。ロボット側から送信されたロボット位置姿勢を受信すると、自動的に左手座標系の位置姿勢を右手座標系の位置姿勢に変換します。また、ソフトウェアから出力された位置姿勢をロボット側に送信する前に、右手座標系の位置姿勢を左手座標系の位置姿勢に変換します。

    • キャリブレーション中にロボットのフランジ位置姿勢を手動で入力する必要がある場合、Y軸の値を反転させる必要があります。

  4. キャリブレーションするためのロボットを選択 画面で、 直行ロボット(最大6自由度に対応、XYZABC) を選択してから 次へ をクリックします。

    ../../_images/calib_preset_select_robot_truss.png
  5. カメラに影響を与える軸を選択 画面で、実際の状況に応じて軸( X軸Y軸Z軸Rz など)を選択してから 実行 をクリックします。

    ../../_images/calib_preset_select_affected_axes.png

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

カメラに接続

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

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

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

    注釈

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

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

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

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

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

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

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

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

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

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

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

補助円を描画

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

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

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

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

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

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

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

フランジ座標系でTCP値を設定

ちなみに

この手順を実行する前に、巻尺を使用してTCP先端からフランジ中心までのX、Y、Z方向のオフセット値(ミリメートル単位)を測定する必要があります。

フランジ座標系でTCP値を設定 手順で、測定したX、Y、Z方向のオフセット値をX、Y、Zのテキストボックスに入力し、 TCP値を確認 をクリックしてから、下部にある 次へ をクリックします。

../../_images/set_tcp_offset_truss.png

注釈

左手座標系を使用する直行ロボットの場合、入力前にY軸のオフセット値を反転させる必要があります。

画像と位置姿勢を取得

  1. ハンドのTCP先端がキャリブレーションボードのポイント1での十字型の中心にタッチするように直行ロボットを移動させ、ティーチペンダントでのロボットのフランジ位置姿勢を読み取ります。

  2. 画像と位置姿勢を取得 手順で、ポイント1の add_button をクリックし、表示される ロボットのフランジ位置姿勢を入力 画面でロボットのフランジ位置姿勢を入力してから、 OK をクリックします。

    注釈

    左手座標系を使用する直行ロボットの場合、ロボットのフランジ位置姿勢を入力する前にY軸のオフセット値を反転させる必要があります。

    ../../_images/enter_touch_flange_pose.png
  3. 上記の手順をクリックし、TCP先端がポイント2とポイント3での十字型の中心にタッチし、ロボットのフランジ位置姿勢を入力します。

  4. キャリブレーションボードの add_button をクリックし、キャリブレーションボードの画像を取得します。

  5. データを更新 をクリックし、下部にある 次へ をクリックします。

    ../../_images/update_touch_data.png

注釈

  • キャリブレーションでは、外部パラメータを計算するために、少なくとも3つの共線でないポイントをタッチする必要があります。

  • 直行ロボットがある方向の自由度を持たない場合、複数のキャリブレーションボードの位置姿勢を追加することができます。以下では、Y軸の自由度を持たないことを例として説明します。まず、TCP先端がキャリブレーションボード上の2つのポイントをタッチできるようにキャリブレーションボードの方向を調整し、ロボットのフランジ位置姿勢を入力してキャリブレーションボードの画像を取得します。次に、キャリブレーションボードの位置をZ方向に上に調整(または下に調整)し、X方向にキャリブレーションボード上のポイントをタッチし、ロボットのフランジ位置位置を入力してキャリブレーションボードの画像を取得します。

カメラパラメータを計算

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

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

    ../../_images/confirm_calib_result1.png

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

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

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

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

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

直行ロボットのハンド・アイ・キャリブレーションについての説明は終わります。キャリブレーション精度を向上させるには、 キャリブレーション結果の分析 をご参照ください。