自動キャリブレーション(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画像や点群への影響を軽減するために、遮光・補光することを推奨します。

  1. 上記の手順を完了することで、キャリブレーションボードの点群の画像品質が要件を満たしていることを確認します。

    正常 露光過度 露光不足

    2D画像

    normal-2d

    overexposure-2d

    underexposure-2d

    点群

    normal-3d

    overexposure-3d

    underexposure-3d

ロボット通信設定

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

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

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

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

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

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

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

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

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

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

    calibration calib preset select robot
  4. カメラの取り付け方式を選択画面で、Eye to handを選択して次へをクリックします。

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

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

    calibration auto calib preset auto start interface
    上図では、 TCP SeverHex(リトルエンディアン) はABBロボットのプロトコル設定の例です。他のロボットのプロトコル設定は異なる場合があります。ソフトウェアは自動的にロボットの初期設定を追加しますので、初期設定のままにしておいてください。
  7. ティーチペンダントで自動キャリブレーションのプログラムを選択し、キャリブレーションの開始位置を定義してキャリブレーションプログラムを実行します。様々なロボットに対応するキャリブレーション手順については、 標準インターフェース通信 をご参照ください。キャリブレーションプログラムが正常に起動されると、ログに「キャリブレーションプロセスに入ります。Mech-Visionでキャリブレーションを実行してください。」が表示されます。

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

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

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

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

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

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

    calibration calib preset select robot
  4. カメラの取り付け方式を選択画面で、Eye to handを選択して次へをクリックします。

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

    calibration auto calib preset auto mastercontrol
  6. 次の画面でロボットIPアドレス を設定します。

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

  8. Mech-Visionに戻り、ロボットを接続エリアの下にロボットを接続をクリックします。このボタンがロボットの接続を待機中…に変わります。

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

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

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

カメラの接続

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

    calibration auto connect camera auto
  2. カメラ接続後、一回キャプチャまたは連続キャプチャをクリックします。

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

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

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

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

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

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

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

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

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

    calibration auto check intri auto
  2. 内部パラメータのチェック結果を確認します。

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

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

補助円を描画

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

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

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

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

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

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

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

ロボット経路を設定

  1. ロボット経路を設定手順で、高さ範囲を設定します。

    calibration auto set robot path eth

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

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

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

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

    calibration auto set robot path eth view
  5. 確認後、下部にある次へをクリックします。

画像と位置姿勢を取得

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

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

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

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

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

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

    calibration auto auto capture finished
  5. 認識したキャリブレーションポイントが要件を満たしていることを確認してから、下部にある次へをクリックします。

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

カメラパラメータを計算

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

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

    calibration auto confirm calib eth result
  1. 右側の 点群ビュー パネルでキャリブレーションの誤差点群が表示されます。

    誤差点群は、各キャリブレーション位置姿勢におけるキャリブレーションボードの白い円の実際の値と計算値との偏差を示すために使用されます。
  2. キャリブレーション精度が要件を満たしていることを確認します。

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

    calibration error point cloud

    キャリブレーション精度を向上させるには、 キャリブレーション結果の分析 をご参照ください。

キャリブレーション結果の確認と保存

カメラの外部パラメータを計算した後、シーンビューでロボット点群とロボットモデルの点群との重なりを確認してキャリブレーション結果を大まかに判断します。具体的な流れは以下の通りです。

  1. ロボットアームをカメラの視野範囲内に移動させます。

  2. カメラパラメータを計算手順で外部パラメータを再計算をクリックします。クリックすると、カメラが撮影を行います。

  3. シーンビューに切り替え、ロボットの点群とロボットモデルの重なりを確認します。

    ロボットの点群がロボットモデルとほぼ一致すれば、キャリブレーション結果が使用可能です。

    calibration reference coincidence degree
    1. ただし、ロボットモデルはロボット実機の外観と完全に一致しない場合があり、外部パラメータの微調整の基準とすることができないことに注意してください。

    2. シーンビューに加え、Mech-Vizでロボットの点群とロボットモデルとの重なりを確認できます。

  4. 下部にある保存をクリックし、ポップアップする キャリブレーションファイルを保存 画面でOKをクリックします。すると、カメラのキャリブレーション結果は、プロジェクトの「calibration」ディレクトリに自動的に保存されます。

これで、キャリブレーション手順が完了しました。