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

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

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

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

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

calibration reference error point cloud

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

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

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

calibration reference check errorpointcloud1

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

calibration reference check errorpointcloud2

シーンビューでロボットの点群とロボットモデルとの重なりを確認(ETH場合のみ)

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

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

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

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

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

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

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

    end::calib_result_verification_eth[]

シーンビューで固定点に対するキャリブレーションボード点群のずれを確認(EIHの場合のみ)

tag::calib_result_verification_eih[] カメラの外部パラメータを計算した後、シーンビューで固定点に対するキャリブレーションボードの点群(キリブレーションボードの白い円の十字中心)のずれを確認することで、キャリブレーション結果を大まかに判断することができます。詳細は以下の通りです。

  1. キャリブレーションボードを固定位置に配置します。

  2. Mech-Vizを起動し、固定点を追加し、それをキャリブレーションボードの白い円の1つの十字の中心に合わせます。

    1. ステップライブラリから「移動」ステップを選択して、それをプロジェクト編集エリアにドラッグします。

    2. このステップをクリックして選択し、ステップパラメータで目標点タイプを「」に設定します。それがキャリブレーションボードの白い円のいずれかの十字中心と一致するように、位置姿勢のX/Y/Z座標値を調整します。

  3. ロボットを制御してカメラの位置姿勢を数回変更し、キャリブレーションの カメラパラメータを計算 手順で 外部パラメータを再計算 ボタンをクリックします。クリックすると、カメラが撮影を行います。

  4. シーンビューで、キャリブレーションボードの点群が固定点に対して大きくなずれがあるかどうかを確認します。

    キャリブレーションボードの点群が固定点に対して大きくなずれがない場合、キャリブレーション結果が使用可能であることを示します。

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

  2. シーンビューに加え、キャリブレーションボードの点群が固定点に対して大きくずれていないかどうかをMech-Vizで確認することも可能です。

end::calib_result_verification_eih[]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    calibration reference check calib circle data

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

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

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

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

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

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

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

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

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

    calibration reference check instrinc and point cloud error

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

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

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

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

    calibration reference check instrinc and point cloud fluctuation

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

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

    原因1:カメラの3D露光パラメータが正しく設定されていないため、点群に大きな変動が発生します。 点群平滑化ノイズ除去 を有効にしないか、カメラゲイン を有効にします。 解決策点群平滑化ノイズ除去 を有効にし、 カメラゲイン を無効にすることで3D露出を調整します。調整してもキャリブレーションボードの白い円の点群が抜けている場合、遮光が必要となります。 原因2:ETH方式で自動キャリブレーションを実行する際、キャリブレーションボードがロボットフランジにしっかりと固定されていません。キャリブレーション中にロボット動作が速すぎるため、カメラ撮影時にキャリブレーションボードが揺れ、点群に大きな変動が発生します。 解決策:ロボットの移動速度を下げ、キャリブレーションボードをしっかり取り付け、カメラ撮影の待ち時間を長くします。