2台ロボットの相対位置姿勢キャリブレーション
以下では、2台ロボット間の相対位置姿勢キャリブレーション機能とその使用手順について説明します。
機能
2台のロボット間の空間的な位置姿勢関係をキャリブレーションするための機能です。つまり、一方のロボットの位置姿勢をもう一方のロボットの座標系で表現した位置姿勢を計算します。以下の2つのハードウェア構成に対応しています。
-
1台ロボットにカメラを搭載:一方のロボットにカメラを搭載し、もう一方のロボットにキャリブレーションボードを搭載します。カメラでキャリブレーションボードを撮影することで、2台のロボット間の位置姿勢関係を計算します。
-
2台のロボットにカメラを搭載:2台のロボットそれぞれにカメラを搭載し、同一の固定キャリブレーションボードを撮影します。カメラ外部パラメータを利用して、2台のロボット間の位置姿勢関係を計算します。
キャリブレーション完了後、2台のロボット間の相対位置姿勢が出力ポートから出力されます。この相対位置姿勢は、その後の座標系変換やデータマージに利用でき、2台のロボットによる協調作業を実現できます。また、保存済みの位置姿勢関係は再利用できるため、毎回キャリブレーションを行う必要はありません。
使用手順
以下では、2台のロボット間の相対位置姿勢を取得する以下の3つの方法について説明します。
単台ロボットに取り付けたカメラによる位置姿勢キャリブレーション
2台のロボット間の相対位置姿勢がまだ確立されておらず、1台のロボットのみにカメラを搭載してキャリブレーションを行う場合に使用します。
作成タイプを選択
-
設定ツール をクリックして位置姿勢変換ツールを開き、2台ロボットの相対位置姿勢キャリブレーション を選択します。
-
右側のパラメータエリアで、作成タイプを 空白の関係計算を作成 に設定します。カメラ取り付け方式として 1台ロボットにカメラを搭載 を選択します。
OK をクリックしてキャリブレーション画面へ進みます。
2台ロボット間の位置姿勢関係をキャリブレーション
全体フローを以下に示します。
デフォルトではロボットR2を基準座標系とし、ロボットR1にカメラを搭載します。計算結果として、R2座標系におけるR1の位置姿勢を取得します。操作手順は以下の通りです。
-
EIH外部パラメータを取得:ハンド・アイ・キャリブレーションにより、ロボットR1に搭載されたカメラのEIH外部パラメータを取得します(図3参照)。
-
フランジ位置姿勢を入力:カメラを搭載したロボットR1を固定し、ETH外部パラメータのキャリブレーション時にはカメラブラケットとして使用します。ETH外部パラメータのキャリブレーション時におけるロボットR1のフランジ位置姿勢を手動で入力します(図2参照)。
-
ETH外部パラメータを取得:ロボットR1を固定したまま、ロボットR2に搭載したキャリブレーションボードを移動させ、ハンド・アイ・キャリブレーションによってカメラとロボットR2との外部パラメータを取得します(図4参照)。
-
相対位置姿勢を計算:上記のデータに基づき、R2座標系におけるロボットR1の相対位置姿勢を計算します(図1参照)。
以下では、位置姿勢キャリブレーションの手順について説明します。
-
EIH外部パラメータを取得します。
EIH外部パラメータの取得方法は以下の3種類です。
番号 取得方法 方法 1
プロジェクトから取得
-
既に外部パラメータのキャリブレーション結果がある場合、現在のソリューション内の プロジェクト を選択します。
-
選択したプロジェクト内で使用する キャリブレーションパラメータグループ を選択します。
-
選択後、既存の キャリブレーション結果 が読み込まれます。
2
EIHキャリブレーションから取得
EIHキャリブレーションから取得 をクリックすると 3Dカメラキャリブレーションツール が起動します。ハンド・アイ・キャリブレーション使用ガイド を参照してEIH外部パラメータを取得してください。
3
手動入力
手動入力 をクリックすると位置姿勢編集ツールが起動します。EIH外部パラメータを手動で設定できます。
-
-
ロボットR1のフランジ位置姿勢を入力します。
位置姿勢編集ツールで、ETH外部パラメータ取得時に記録したロボットR1のフランジ位置姿勢を入力します。
-
ETH外部パラメータを取得します。
ETH外部パラメータの取得方法は以下の3種類です。
番号 取得方法 方法 1
プロジェクトから取得
-
既に外部パラメータのキャリブレーション結果がある場合、現在のソリューション内の プロジェクト を選択します。
-
選択したプロジェクト内で使用する キャリブレーションパラメータグループ を選択します。
-
選択後、既存の キャリブレーション結果 が読み込まれます。
2
ETHキャリブレーションから取得
ETHキャリブレーションから取得 をクリックすると 3Dカメラキャリブレーションツール が起動します。ハンド・アイ・キャリブレーション使用ガイド を参照してETH外部パラメータを取得してください。
3
手動入力
手動入力 をクリックすると位置姿勢編集ツールが起動します。ETH外部パラメータを手動で設定できます。
-
-
相対位置姿勢を計算します。
上記のデータを取得した後、計算を開始 をクリックします。すると、2台ロボット間の相対位置姿勢が自動的に計算され、計算結果が出力ポートから出力されます。
-
相対位置姿勢の名前を設定します。
基本設定 で、ロボット相対位置姿勢の名前を設定します。この名前はソリューション内で呼び出すために使用されます。現在のソリューション内に既に存在する相対位置姿勢の名前と重複する名前は使用できません。
これで、1台ロボットにカメラを搭載した場合の相対位置姿勢キャリブレーションは完了です。適用 をクリックして出力ポートの設定を完了し、キャリブレーション済みの相対位置姿勢ファイルを保存します。
2台のロボットに取り付けたカメラによる位置姿勢キャリブレーション
2台のロボット間の相対位置姿勢がまだ確立されておらず、両方のロボットにカメラを搭載してキャリブレーションを行う場合に使用します。
作成タイプを選択
-
設定ツール をクリックして位置姿勢変換ツールを開き、2台ロボットの相対位置姿勢キャリブレーション を選択します。
-
右側のパラメータエリアで、作成タイプを 空白の関係計算を作成 に設定します。カメラ取り付け方式として 2台のロボットにカメラを搭載 を選択します。
OK をクリックしてキャリブレーション画面へ進みます。
2台ロボット間の位置姿勢関係をキャリブレーション
全体フローを以下に示します。
デフォルトではロボットR2を基準座標系とし、ロボットR1およびR2にそれぞれカメラC1、C2を搭載します。計算により、R2座標系におけるロボットR1の位置姿勢を出力します。操作手順は以下の通りです。
-
EIH外部パラメータを取得:ハンド・アイ・キャリブレーションにより、ロボットR1に搭載されたカメラC1の外部パラメータと、ロボットR2に搭載されたカメラC2の外部パラメータをそれぞれ取得します(図2b、図3b参照)。
-
キャリブレーションボードを配置して画像を取得:キャリブレーションボードを2台のロボットの間に設置し、R1およびR2に搭載されたカメラの両方から撮影できるようにします。カメラC1およびC2でそれぞれ画像を取得し、キャリブレーションボードの位置姿勢を計算します。画像取得中は、キャリブレーションボードを移動しないでください。取得中にキャリブレーションボードが移動した場合は、画像を再取得する必要があります(図2c、図3c参照)。
-
フランジ位置姿勢を入力:画像取得後、キャリブレーションボードを撮影した時点のロボットR1およびR2のフランジ位置姿勢をそれぞれ記録し、入力します(図2a、図3a参照)。
-
相対位置姿勢を計算:上記のデータに基づき、R2座標系におけるロボットR1の相対位置姿勢を計算します(図1参照)。
以下では、位置姿勢キャリブレーションの手順について説明します。
-
ロボットR1およびR2のEIH外部パラメータを取得します。
EIH外部パラメータの取得方法は以下の3種類です。
番号 取得方法 方法 1
プロジェクトから取得
-
既に外部パラメータのキャリブレーション結果がある場合、現在のソリューション内の プロジェクト を選択します。
-
選択したプロジェクト内で使用する キャリブレーションパラメータグループ を選択します。
-
選択後、既存の キャリブレーション結果 が読み込まれます。
2
EIHキャリブレーションから取得
EIHキャリブレーションから取得 をクリックすると 3Dカメラキャリブレーションツール が起動します。ハンド・アイ・キャリブレーション使用ガイド を参照してEIH外部パラメータを取得してください。
3
手動入力
手動入力 をクリックすると位置姿勢編集ツールが起動します。EIH外部パラメータを手動で設定できます。
EIH外部パラメータを取得した後、各ロボットで撮影したキャリブレーションボードの位置姿勢をそれぞれ取得し、撮影時の各ロボットのフランジ位置姿勢を記録する必要があります。
-
-
キャリブレーションボードを配置して画像を取得します。
-
キャリブレーションボードを選択します。
パラメータエリアで標準キャリブレーションボードの型番を設定し、次へ をクリックします。
-
キャリブレーションボードの位置および画像品質を確認します。
-
キャリブレーションボードを2台ロボットの共通作業領域内に設置し、両方のカメラから撮影できるようにします。
-
接続 をクリックしてカメラを接続します。カメラ番号一覧から接続するカメラを選択し、接続アイコンをクリックするか、接続するカメラをダブルクリックします。
-
連続キャプチャ をクリックしてキャリブレーションボードの画像を取得します。2Dビューで、キャリブレーションボード全体が赤枠内に収まっていることを確認してください。また、画像品質が以下の条件を満たしていることを確認してください。
-
2D画像では、キャリブレーションボードの輝度が均一で、過度に明るくても暗くてもなく、円はいずれも完全ではっきり見られます。
-
深度画像では、キャリブレーションボード上の各キャリブレーション円が完全に取得されています。
キャリブレーションボードの画像品質が低い場合は、Mech-Eye Viewer で「calib」パラメータグループを調整してください。DEEP シリーズまたは LSR シリーズのカメラを使用している場合は、「2D画像(深度ソース)」グループのパラメータを調整してください。
-
-
-
キャリブレーションボードの位置および画像品質に問題がないことを確認したら、キャリブレーションボードを動かさないでください。画像を取得して位置姿勢を計算 をクリックし、キャリブレーションボード位置姿勢の取得および計算を行います。
-
キャリブレーションボードの位置姿勢が確定した後は、その位置および姿勢を変更しないでください。ロボットR1とR2でそれぞれ画像を取得する必要があります。画像取得中にキャリブレーションボードが移動した場合は、手順内の「キャリブレーションボードの画像を取得し、位置姿勢を計算」を再度実行し、画像を取得し直してください。
-
キャリブレーションボード画像を取得する際は、撮影時のロボットのフランジ位置姿勢を正確に記録し、後続の手順で入力してください。入力するフランジ位置姿勢は、画像取得時の実際の位置姿勢と完全に一致している必要があります。
-
-
-
ロボットR1およびR2のフランジ位置姿勢を入力します。
キャリブレーションボード位置姿勢の取得および計算後、位置姿勢編集ツールで、キャリブレーションボード画像取得時に記録したロボットR1およびR2のフランジ位置姿勢をそれぞれ入力します。
-
相対位置姿勢を計算します。
上記のデータを取得した後、計算を開始 をクリックします。すると、2台ロボット間の相対位置姿勢が自動的に計算され、計算結果が出力ポートから出力されます。
-
相対位置姿勢の名前を設定します。
基本設定 で、ロボット相対位置姿勢の名前を設定します。この名前はソリューション内で呼び出すために使用されます。現在のソリューション内に既に存在する相対位置姿勢の名前と重複する名前は使用できません。
これで、2台ロボットにカメラを搭載した場合の相対位置姿勢キャリブレーションは完了です。適用 をクリックして出力ポートの設定を完了し、キャリブレーション済みの相対位置姿勢ファイルを保存します。
キャリブレーション済みの2台のロボット間の相対位置姿勢関係を使用
キャリブレーション済みの2台ロボット間の相対位置姿勢を読み込みます。過去のキャリブレーション結果を再利用できるため、再度キャリブレーションを行う必要はありません。