キャリブレーション結果の確認と分析

キャリブレーション済みの外部パラメータデータを確認し、その精度が要求を満たすかどうかを判断する必要があります。誤差が通常の範囲を超えた場合は、原因を突き止めて問題を解決し、外部パラメータが要求を満たすまで再キャリブレーションを行う必要があります。

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

点群ビューで誤差点群を確認

カメラパラメータをチェック 手順でキャリブレーション結果が計算した後、下図のような誤差点群が 点群ビュー パネルに表示されます。誤差点群は、各キャリブレーション位置姿勢におけるキャリブレーションボードの白い円の実際値と測定値との誤差を表示するために使用されます。

../../../_images/error_point_cloud1.png

誤差点群の色は誤差レベル(0.5mmにつき1つの誤差レベル)を示し、緑から赤にかけて色が濃いほど、その点での誤差が大きくなります。

誤差レベルごとの点を表示するには、 点群ビュー パネルで、英語入力方式で数字キー0-9を押します。ソフトウェアは、点群の誤差レベルに対応するポイントを強調表示します。キー0は誤差0.5mm以下のポイントに、キー1は誤差0.5mm-1mmの点に対応します。これによって類推します。

下図では、誤差が0.5mm以下のポイントを示しています(数字キー0を押す)。

../../../_images/check-errorpointcloud1.png

下図では、誤差が2.0-2.5 mmのポイントを示しています(数字キー4を押す)。

../../../_images/check-errorpointcloud2.png

シーンビューまたはMech-Vizでロボットの点群とロボットモデルとの重なりを確認

また、シーンビューやMech-Vizでロボットの点群とロボットモデルの重なりを確認することで、キャリブレーション結果をおおまかに判断することができます。詳細は以下の通りです。

ETHの場合に取得した外部パラメータの計算結果については、ロボットをカメラの視野の下に移動させ、シーンビューまたはMech-Vizソフトウェアで取得したロボットの点群を確認します。下図に示すように、ロボットの点群がロボットモデルとほぼ一致することが理想的です。ただし、ロボットモデルはロボット実機の外観と完全に一致しない場合があり、外部パラメータの微調整の基準とすることができないことに注意してください。

../../../_images/coincidence_degree.png

EIHの場合に取得した外部パラメータの計算結果については、キャリブレーションボードを固定場所に配置し、ロボットにカメラ位置姿勢を数回変更させてキャリブレーションボードを撮影し、キャリブレーションボードの点群がロボットベース座標系に対して大きくずれているかどうかを確認することができます。下図のように示します。

../../../_images/plate_point_cloud.png

注意

EIHの場合、ロボットが接続されていないとロボットの位置姿勢はリアルタイムで取得できないため、シーンビューやMech-Vizに表示される正確な点群を確認するには、画像撮影時のロボットの位置姿勢を記入する必要があります。

キャリブレーション結果の分析

キャリブレーション結果の評価指標

キャリブレーション済みの外部パラメータデータについては、精度の要求を満たすかどうかを判断する必要があります。点群誤差の基準は以下の通りです。

  • 一般的なプロジェクトでは、すべてのデータポイントの誤差が3mm未満である必要があります。つまり、誤差が3mm未満のポイントが100%に達する必要があります。

  • 高精度が求められるシーンでは、すべてのデータポイントの誤差が2mm未満である必要があります。つまり、誤差が2mm未満のポイントが100%に達する必要があります。

  • パレタイジングのシーンでは、すべてのデータポイントの誤差が5mm未満である必要があります。つまり、誤差が5mm未満のポイントが100%に達する必要があります。

上記は基準値であり、具体的には作業現場の工程精度の要求に従うものとします。

キャリブレーション精度に影響する要因

キャリブレーション済みの外部パラメーターデータの精度が要求を満たさない場合は、誤差の原因を突き止める必要があります。以下の通りに、キャリブレーションデータを1つずつ確認し、原因をチェックしてください。

キャリブレーションデータ問題の有無を確認

キャリブレーションデータとは、キャリブレーション中に生成された キャリブレーションポイント のデータのことを指します。それは、カメラIDフォルダの下のcalib_data.jsonファイルに格納されます。このファイルには、キャリブレーションポイントのフランジ位置姿勢、 キャリブレーションボードの白い円 のデータなどが含まれています。

キャリブレーションポイントのデータを確認するには、以下の手順を実行します。

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

  2. キャリブレーションの実行方法を選択 画面で、 既存のキャリブレーションパラメータを使用 を選択し、キャリブレーションのパラメータファイルを選択してから 次へ をクリックします。

    ../../../_images/load_existing_calib_params.png
  3. パラメータの使用法を選択 画面で、 現在読み込んでいるカメラをキャリブレーション を選択してから 次へ をクリックします。

    ../../../_images/load_existing_calib_params_2.png
  4. キャリブレーションのタスクを選択 画面で、 外部パラメータを再計算 を選択し、 キャリブレーションデータを読み込む にチェックを入れてから 実行 をクリックします。

    ../../../_images/load_existing_calib_params_3.png
  5. キャリブレーションの カメラパラメータを計算 手順で、 画像と位置姿勢一覧 からキャリブレーションポイント(pose_000など)を1つ選択し、 キャリブレーションボードの白い円の情報 パネルでキャリブレーションポイントのフランジ位置姿勢とキャリブレーションボードの白い円のデータを確認します。

    ../../../_images/check_calib_circle_data.png

注釈

下図では、X (pixel)とY (pixel)列は、キャリブレーションボードが現在のキャリブレーションボード経路点での2D画像におけるキャリブレーションボードの白い円の中心ピクセル座標を示します。Camera frame:X(m)/Y(m)/Z(m)列は、キャリブレーションボードが現在のキャリブレーションボード経路点での深度画像におけるキャリブレーションボードの白い円の中心がカメラ座標系での座標を示します。

キャリブレーションポイントのデータは、3つの方法で確認します。

  1. ピラミッド型の経路のキャリブレーションポイントのフランジ位置姿勢において、前後のオイラー角の変化を確認します。

    注釈

    ピラミッド型の経路のキャリブレーションポイントのみが含まれ、回転のキャリブレーションポイントは含まれないことに注意してください。このチェックは、標準キャリブレーション法でキャリブレーションデータを取得する場合にのみ適しています。

    画像と位置姿勢一覧 からキャリブレーションポイント(pose_000など)を1つ選択し、 キャリブレーションボードの白い円の情報 パネルでキャリブレーションポイントのフランジ位置姿勢を確認します。ピラミッド型の経路に沿って移動する際、ロボットは自身のベース座標系またはフランジ座標系に沿って移動し、回転はしないので、オイラー角は基本的に変わりません。

    ロボットの精度によっては、位置姿勢が上下に変動することがあります。変動が1度以上の場合、ロボット自体の原点が失われたり、ロボットの精度が低下することがあります。

    解決策:この場合には、ハンド・アイ・キャリブレーションは使用できません。ロボットの原点をチェック(再位置決め)して、問題を解決しなければ、続いてキャリブレーションすることはできません。

  2. キャリブレーションポイントの「キャリブレーションボードの白い円の中心距離の測定値の平均誤差」が標準値を超えたかどうかを確認

    画像と位置姿勢一覧 パネルからキャリブレーションポイントを選択し、画面の下部で キャリブレーションボードの白い円の中心距離の測定値の平均誤差 を確認します。

    注釈

    誤差が上限を超えると、キャリブレーションポイントが黄色に変わり、警告が表示されます。 キャリブレーションボードの白い円の中心距離の測定値の平均誤差 は、内部パラメータのチェック結果の一部として、現在のカメラ内部パラメータの誤差値を部分的に反映させるために使用されます。

    ../../../_images/check_instrinc_and_point_cloud_error.png

    解決策:高精度が求められない場合では、標準値からわずかに外れた内部パラメータでも使用することができます。 しかし、高い精度が求められるや大きな誤差がある場合は、カメラの内部パラメータを再キャリブレーションするか、メーカーに返送して交換することをお勧めします。

    注釈

    内部パラメータの誤差はキャリブレーションの結果に影響を与えますが、誤差が基準値以内であれば、一般的には問題ありません。

  3. キャリブレーションポイントの「キャリブレーションボードの白い円の点群変動」が3mmを超えたかどうかを確認

    画像と位置姿勢一覧 パネルからキャリブレーションポイントを選択し、画面の下部で キャリブレーションボードの白い円の点群変動 を確認します。 キャリブレーションボードの白い円の点群変動 は、現在のキャリブレーションポイントですべてのキャリブレーションボードの白い円の中心座標がフィッティングする平面での変動を統計します。その大きさは外部パラメータの精度に直接影響します。

    ../../../_images/check_instrinc_and_point_cloud_fluctuation.png

    求められる精度が高いほど、点群変動の値は小さくなります。通常、最大値を3mm以上に設定しないでください。3つ以上のキャリブレーションポイントの点群変動の最大値が3mmを超える場合、全体的な精度が保証できなくなります。この時点に、問題を突き止めて解決したら、キャリブレーションを再度実行する必要があります。

    キャリブレーションボードの白い円の点群に変動が発生する原因は以下の通りです。

    原因1:カメラの3D露光パラメータが正しく設定されていないため、点群に大きな変動が発生します。 点群平滑化ノイズ除去 を有効にしないか、 カメラゲイン を有効にします。

    解決策点群平滑化ノイズ除去 を有効にし、 カメラゲイン を無効にすることで3D露出を調整します。調整してもキャリブレーションボードの白い円の点群が抜けている場合、遮光が必要となります。

    原因2:ETH方式で自動キャリブレーションを実行する際、キャリブレーションボードがロボットフランジにしっかりと固定されていません。キャリブレーション中にロボット動作が速すぎるため、カメラ撮影時にキャリブレーションボードが揺れ、点群に大きな変動が発生します。

    解決策:ロボットの移動速度を下げ、キャリブレーションボードをしっかり取り付け、カメラ撮影の待ち時間を長くします。