6軸ロボットの自動キャリブレーション(Eye in Hand)
以下では、カメラがEye in Hand(EIH)方式で取り付けられている場合に6軸ロボットの自動キャリブレーションを実行する方法について説明します。
標準インターフェース通信を使用した場合、本ガイドと以下の動画を参照してキャリブレーションを行ってください。
動画:標準インターフェース通信を使用するハンド・アイ・キャリブレーション(Eye in Hand)
|
事前準備
以下は、ハンド・アイ・キャリブレーションを実行する前に必要な事前準備です。
-
Mech-Mindビジョンシステムを構築します。
-
キャリブレーションに必要なものを準備します。
-
キャリブレーションボードの点群画像生成を調整します。
-
ロボット通信設定を行います。
ビジョンシステムを構築
ビジョンシステムのハードウェア設置 を参照してMech-Mindビジョンシステムの構築を完了させてください。
ハンド・アイ・キャリブレーションを実行するには、Mech-Eye Viewer、Mech-VisionおよびMech-Vizの使用が必要です。これらのソフトウェアがインストールされ、最新バージョンにアップグレードされていることを確認してください。
キャリブレーションに必要なものを準備
カメラがEye in Hand方式で取り付けられている場合、自動キャリブレーションを実行するにはキャリブレーションボードの使用が必要です。
キャリブレーションボードについては、以下の要件があります。
-
キャリブレーションボードの白い円がはっきりと見えること、破損や曲げ変形がないことを確認してください。
-
キャリブレーションボードを作業平面の中心に配置してください。
また、キャリブレーションを実行する前に、ロボットをキャリブレーションの開始位置に移動させてください。カメラがEye in Hand方式で取り付けられている場合、キャリブレーションの開始位置はカメラの稼働位置となります。ロボットは、カメラを移動させて下から上にキャリブレーションを実行します。
キャリブレーションボードの点群画像生成を調整
-
Mech-Eye Viewerを起動し、カメラパラメータを調整します。
-
2D画像内のキャリブレーションボードがはっきり見え、露出過度や露出不足がないように、2Dパラメータを調整します。
-
3Dパラメータを調整して、キャリブレーションボードの白い円の点群が完全に見られるようにします。点群の変動範囲を小さくするために、点群後処理の中の表面平滑化とノイズ除去をNormalに設定することを推奨します。
現場では、環境光が複雑な場合、2D画像や点群への影響を軽減するために、遮光・補光することを推奨します。
-
上記の手順を完了することで、キャリブレーションボードの点群の画像品質が要件を満たしていることを確認します。
正常 露出過度 露出不足 2D画像
点群
ロボット通信設定を実行
ロボットは標準インターフェース方式でビジョンシステムと通信する場合、ロボットの標準インターフェースの通信設定を完了させてください。詳細については、 標準インターフェース通信 をご参照ください。
ロボットはVizティーチング方式でビジョンシステムと通信する場合、ロボットのVizティーチングの通信設定を完了させてください。詳細については、 Vizティーチング通信 をご参照ください。
キャリブレーション前の設定
ロボットは標準インターフェース方式でビジョンシステムと通信する場合、 キャリブレーション前の設定(標準インターフェース) を完了させてください。
ロボット側はVizティーチング方式でビジョンシステムと通信する場合、 キャリブレーション前の設定(Vizティーチング) を完了してください。
キャリブレーション前の設定(標準インターフェース)
標準インターフェース通信の場合、以下の手順に従ってキャリブレーション前の設定を行います。
-
Mech-Visionを起動し、ツールバーの カメラキャリブレーション(標準モード) をクリックします。すると、キャリブレーション前の設定 画面が表示されます。
-
キャリブレーションの実行方法を選択 画面で、 新なキャリブレーションを開始 を選択し、 次へ をクリックします。
-
キャリブレーションのタスクを選択 画面で、ドロップダウンリストから 適応可能なロボットのハンド・アイ・キャリブレーション を選択し、 ロボット型番を選択 をクリックして型番を選択してから、 次へ をクリックします。
-
カメラ取り付け方式を選択 画面で、 Eye in hand にチェックを入れ、次へをクリックします。
-
実行モードとロボットの制御方式を選択 画面で、 自動キャリブレーション と標準インターフェース を選択してから、次へをクリックします。
-
表示される画面で 通信プロトコル と ホストIPアドレス を設定してから、 インターフェースサービスを起動 をクリックします。すると、このボタンが ロボットの接続を待機中… に変わります。
-
上図では、 TCP Sever と Hex(Little-endian) はABBロボットのプロトコル設定の例です。他のロボットのプロトコル設定は異なる場合があります。ソフトウェアは自動的にロボットの初期設定を追加しますので、初期設定を使用してください。
-
デフォルトでは、 ホストIPアドレス のポート番号は 50000 となります。50000といったポート番号を使用しない場合は、実際の状況に応じて変更してください。
-
-
ティーチペンダントで 自動キャリブレーションのプログラムを選択し、キャリブレーションの開始位置を設定してキャリブレーションプログラムを実行します 。様々なロボットに対応するキャリブレーション手順については、標準インターフェース通信 をご参照ください。キャリブレーションプログラムが正常に起動されると、ログに「キャリブレーションプロセスに入ります。Mech-Visionでキャリブレーションを実行してください。」が表示されます。
-
Mech-Visionに戻り、 ロボットを接続 の下で「接続済み」が表示されることを確認してから 実行 をクリックします。すると、キャリブレーション(Eye in Hand) 画面が表示されます。
キャリブレーション前の設定(Vizティーチング)
Vizティーチング通信の場合、以下の手順に従ってキャリブレーション前の設定を行います。
-
Mech-Visionを起動し、ツールバーの カメラキャリブレーション(標準モード) をクリックします。すると、キャリブレーション前の設定 画面が表示されます。
-
キャリブレーションの実行方法を選択 画面で、 新なキャリブレーションを開始 を選択し、 次へ をクリックします。
-
キャリブレーションのタスクを選択 画面で、ドロップダウンリストから 適応可能なロボットのハンド・アイ・キャリブレーション を選択し、 ロボット型番を選択 をクリックして型番を選択してから、 次へ をクリックします。
-
カメラ取り付け方式を選択 画面で、 Eye in hand にチェックを入れ、次へをクリックします。
-
実行モードとロボットの制御方式を選択 画面で、 自動キャリブレーション と Vizティーチング を選択して 次へ をクリックします。
-
表示される画面で ロボットIPアドレス を設定します。
-
ティーチペンダントで Vizとの通信プログラムを選択して実行します 。様々なロボットに対応する実行方法については、 Vizティーチング通信 をご参照ください。
-
Mech-Visionに戻り、 ロボットを接続 エリアの下に ロボットを接続 をクリックします。すると、このボタンが ロボットの接続を待機中… に変わります。
-
ロボットを接続 の下で「接続済み」が表示されることを確認してから 実行 をクリックします。すると、キャリブレーション(Eye in Hand) 画面が表示されます。
これで、キャリブレーション前の設定が完了し、キャリブレーションに進むことになります。
キャリブレーションの実行手順
カメラ接続
-
カメラに接続 手順で、カメラ一覧から接続するカメラを選択して をクリックするか、ダブルクリックして接続します。
-
カメラ接続後、 一回キャプチャ または 連続キャプチャ をクリックします。
-
画像ビュー パネルでは、カメラが取得した2D画像と深度画像が要件を満たしていることを確認した上で 次へ をクリックします。
キャリブレーションボードを取り付けて内部パラメータをチェック
-
キャリブレーションボードを取り付けて内部パラメータをチェック 手順で、使用されているキャリブレーションボードに貼られているラベルに従って、 キャリブレーションボードを選択 の下の 標準キャリブレーションボード型番 を選択します。
-
キャリブレーションボードの位置と点群品質を確認 で、チェック基準を確認してから、連続キャプチャ をクリックします。すると、連続キャプチャ が キャプチャを停止して位置を検出 に変わります。
-
手動でキャリブレーションボードを適切な位置に移動し、キャリブレーションボードの2D画像と深度画像がチェック基準を満たしていることを確認してから、 キャプチャを停止して位置を検出 をクリックします。
取得した画像がチェック基準を満たしていない場合、 Mech-Eye Viewerを起動 をクリックしてMech-Eye Viewerを起動し、 カメラの2Dと3D露出パラメータを調整 してから画像を再取得します。パラメータを調整する前に、必ず パラメータグループ を「calib」に切り替えてください。
-
カメラの内部パラメータをチェック の下の 内部パラメータをチェック をクリックします。
-
内部パラメータのチェック結果を確認します。
-
カメラの内部パラメータのチェックが合格している場合は、表示される画面で OK をクリックし、下の 次へ をクリックします。
-
カメラの内部パラメータのチェックが合格していない場合、補助円を描画するか、キャリブレーションボードの白い円の検出パラメータを手動で調整してから、 内部パラメータを再チェック をクリックします。
-
補助円を描画
-
補助円を描画する場合、補助円を描画をクリックします。
-
右側の 画像ビュー パネルで、キャリブレーションボードの画像を右クリックし、 ウィンドウに合わせる のチェックを外します。その後、Ctrlキーを押しながらスクロールホイールをドラッグして画像のサイズを適切な大きさに変更します。
-
キャリブレーションボードの白い円の十字型の中心にマウスポインタを合わせて、マウスの左ボタンを押し、補助円をキャリブレーションボードの白い円に完全に含ませてから離します。
-
内部パラメータを再チェック をクリックし、カメラ内部パラメータのチェックが合格しているかどうかを確認します。
検出パラメータを手動で調整
検出パラメータを手動で調整する場合、 キャリブレーションボードの白い円の検出パラメータ(詳細設定) をクリックして展開し、検出パラメータの値を変更します。その後、 内部パラメータを再チェック をクリックし、カメラの内部パラメータのチェックが合格しているかどうかを確認します。
それでもキャリブレーションボードの白い円が検出されない場合、現場の環境に応じてカメラの関連パラメータを調整する必要があります。カメラパラメータの調整については、 パラメータ調整 をご参照ください。
動作経路を設定
-
動作経路を設定 手順で、 キャリブレーション範囲 の下の 高さ範囲 パラメータを設定します。
高さ範囲 は、カメラの推奨稼働範囲とロボットの稼働空間に応じて設定する必要があります。
-
経路パラメータを生成 をクリックし、ポップアップする ロボット経路をカメラ座標系に自動的に合わせる 画面で 確認 をクリックします。
この操作では、ロボットをわずかに移動させ、画像を取得します。全体のプロセスは10から15秒かかります。動作経路が安全であることを確認してください。緊急時にロボットティーチペンダントの非常停止ボタンを押してください。 -
ポップアップする キャリブレーション 画面で 確認 をクリックします。
-
右側の「シーンビュー」パネルで、各経路点の位置が正確で、周囲の環境との衝突が発生しないことを確認してください。
-
パラメータに基づいて経路を生成 をクリックし、下の 次へ をクリックします。
キャリブレーションボードの画像とフランジ位置姿勢を取得
-
キャリブレーションボードの画像とフランジ位置姿勢を取得 手順で、 画像を保存 にチェックを入れます。
-
ロボットがVizティーチング方式でビジョンシステムと通信する場合、デフォルトで ロボット実機と同期 にチェックを入れ(推奨)、 詳細情報 をクリックして展開し、表示されるロボットの関節角度および位置姿勢データがティーチペンダントに表示されるデータと一致していることを確認します。ロボット実機と同期する必要がない場合は、このボックスのチェックを外してください。
-
経路に沿ってロボットを自動で移動させ、画像を撮影 をクリックし、ポップアップウィンドウに表示されるロボットの動作に関するヒントを注意深く読み、その後 OK ボタンをクリックします。
-
ロボットが設定した経路に沿って移動し、カメラが各経路点で画像取得を完了するのを待ちます。右側の 画像ビュー パネルで取得された画像が表示されます。
-
ロボット動作中に、ロボットの動作範囲に近づかないようにしてください。
-
「ロボットを停止」ボタンをクリックするとキャリブレーションを終了しますが、ロボットはすぐには停止せず、現在の経路点に達するまで停止します。緊急時にロボットティーチペンダントの非常停止ボタンを押してください。非常停止を押した後、ロボットに再接続する必要があります。
-
-
画像が取得した後、表示される画面で OK をクリックします。
-
取得されたキャリブレーションデータが要件を満たしていることを確認してから、下の 次へ をクリックします。
要件を満たしていない場合、ロボットを手動で移動した後(ティーチペンダントでもMech-Vizでも選択可能)、 画像を手動で追加 にチェックを入れ、 画像を追加してフランジ位置姿勢を記録 をクリックし、キャリブレーションボードの画像を追加してロボットのフランジ位置姿勢を入力する必要があります。
外部パラメータを計算
-
外部パラメータを計算 手順で、 外部パラメータを計算 をクリックします。
-
キャリブレーションが正常に実行されたことを示すダイアログで、 OK をクリックします。
-
外部パラメータのキャリブレーションレポートを表示 をクリックします。外部パラメータのキャリブレーションレポートが生成されると、自動的に表示されます。
-
外部パラメータのキャリブレーションレポートには、オイラー角のタイプのチェック結果、カメラ精度のチェック結果、ロボットの絶対精度のチェック結果などが表示されます。
-
ロボット精度と計算された外部パラメータの精度を評価するには、「外部パラメータを計算」手順の画面で ロボットの精度 および 外部パラメータの精度 をクリックし、精度誤差分析ツールを使用して ロボットの絶対精をチェック し、 外部パラメータの誤差(EIHの場合)を評価 します。
-
-
外部パラメータのキャリブレーションレポートに表示されるオイラー角のタイプのチェック結果、カメラ精度のチェック結果、ロボットの絶対精度のチェック結果に問題がないことを確認した後、 閉じる をクリックします。
-
下の 保存 をクリックし、ポップアップする キャリブレーションファイルの保存 画面で OK をクリックします。すると、キャリブレーション結果はプロジェクトの「calibration」ディレクトリに自動的に保存されます。
これで、キャリブレーション手順が完了しました。
外部パラメータファイルの切替え
Mech-Visionプロジェクトがカメラの外部パラメータファイルを使用している場合、ハンド・アイ・キャリブレーションが完了したら、Mech-Visionプロジェクトに使用されている外部パラメータファイルを新しいものに切り替える必要があります。
-
カメラから画像を取得 ステップを選択します。
-
ステップパラメータ から キャリブレーションパラメータグループ の をクリックし、表示される画面で新しい外部パラメータファイルを選択します。
キャリブレーションに関するステータスコード
ハンド・アイ・キャリブレーションを行う際、ロボットとビジョンシステムが標準インタフェースを使用して通信している場合、ビジョンシステムからのデータにはコマンドの実行状態を示すステータスコードが含まれます。このステータスコードには正常な実行完了および異常なアラートが含まれ、ステータスコードに基づいてエラー処理を行うことができます。