パラメータ補正

ロボットやカメラが現場で長時間稼働していると、カメラの内部・外部パラメータに変化が発生し、把持精度に影響する可能性があります。現場でカメラのキャリブレーションが実行できない場合は、「パラメータ補正」によってカメラの内部・外部パラメータを補正することができます。

パラメータ補正の原理は、 ロボットハンド・アイ・キャリブレーションの使用ガイド とほぼ同じで、より使いやすくて、迅速なキャリブレーションとして使用できます。そのため、カメラのキャリブレーションより精度が低いので、カメラの位置決めに重大な問題が発生した場合に(現場のタスクの要件に応じて)再キャリブレーションする必要があります。

「パラメータ補正」機能は 「カメラアシスタント」 ‣ 「パラメータ補正」 で実行できます。 パラメータ補正 をクリックすると、インターフェイスは下図のように示します。

参数补偿位置

基準観測値の生成 では、毎回の観測によって、マーカーを認識し、カメラ座標における位置姿勢を推定します。シーン内のマーカーの基準(初期)観測位置姿勢と後の観測位置姿勢を比較することで補正を求めます。

誤差分析 とはパラメータ補正の結果に対して可視化分析を行うことです。

補正流れ

補正流れに、通常の現場作業の後でマーカー検出や補正パラメータ検出の流れを追加し、現場でマーカーを固定する必要があります。プロジェクトについては、元のMech-Vizプロジェクトにいくつかの「スキル」を追加し、さらにプロジェクトを追加する必要もあります。必要な追加項目は下図の通りです。

参数补偿流程

通常のプロジェクトが終わるたびに補正を行う必要があるわけではないので、カウンターとリセットスキルを追加し、必要に応じてカウンターの値を設定し、プロジェクトが設定された回数に実行された後でもう一回補正を行います。

追加した項目はMech-Visionの 基準観測値を生成 で生成します。以下では、この機能の使い方について説明します。

基準観測値の生成

カメラ露出パラメータの設定

既存プロジェクト項目の要求を満たす前提で、Mech-Eye Viewerでマーカー表面の白い部分に点群が見える(右端図)まで3D露光パラメータを調整します。下図は、効果の「悪い」画像から「良い」画像へ並んでいます。

マーカーの平滑な表面点群を生成できるように、マーカーをMech-Eyeカメラの最適視野内に置くようにしてください。 できない場合は、マーカーのキーポイント(円の場合は円の中心、四角の場合は角点)の周辺にある点群が平滑であることを優先確保します。

参数补偿界面

カメラとの接続

パラメータ補正 をクリックし、 基準観測値を生成 を選択します。その画面は下図のように示します。

参数补偿界面

保存パスを設定・保存し、カメラに接続し、既存のカメラ外部パラメータを選択します。接続した後で一回キャプチャをして、カメラ接続に成功したことを再確認できます。その後、 次のステップへ をクリックします。

マーカーの設定

現在、マーカーには多くのオプションがないので、調整する必要がなく、デフォルト値を使用すればいいです。後でさまざまなシーンに適用するマーカーのパラメータやタイプを追加する予定です。CCTag または STagの使用をお薦めします。本文では、カメラの取り付け方法はEIHで、CCtagをマーカーとしてロボットアーム外に設置します。具体的な設定は下図の通りです。設定を確認したら、「確認」をクリックして次のステップへ進みます。

参数补偿界面

注釈

ETHのカメラ取り付け方法を使用する場合は、マーカーをロボットアームに取り付け、カメラをロボットアーム外に取り付けます。

マーカーの固定

この時のカメラは、画像を連続キャプチャします。ソフトウェアでマーカーの位置をリアルタイムに見ることができます。

マーカーの放置ルールは以下の通りです。

  • 作業エリアやロボットアームの適切な位置に固定します。固定物(地面、ロボットアーム)に対するマーカーの相対的な位置を一定にしなければなりません。

  • 作業エリアに配置すれば、複数番号(ID)のマーカーを使用するようお薦めします。配置位置はできるだけカメラ視野内に分散するようにします。

  • 複数のマーカーを使用する場合は、任意の3つのマーカーが一直線にならないようにしてください。

下図に示すように、マーカーを配置した後、 一回キャプチャ をクリックし、ソフトウェアが推定結果を算出するまで数秒を待ちます。

固定标记物

確認した上、 確認次のステップへ をクリックします。

マーカー位置姿勢の記録(大まか)

まずはロボットの初期観測位置(フランジ位置姿勢)を記録し、この観測位置にあるカメラが取得したマーカーの位置姿勢を記録します。

下図に示すように、 現在のフランジ位置姿勢と推定されたマーカー位置姿勢を記録 をクリックした後、その下で 1回目の観測 が表示されます。

记录标记物位姿

Mech-Vizまたはロボットコントローラでロボットを目的観測位置に移動させ、 現在のフランジ位置姿勢と推定されたマーカー位置姿勢を記録 をクリックすると、観測結果リストの項目が増加されます。

記録が完了した後、各観測結果が要件を満たすかどうかを1つずつ確認します。満たさないもののチェックを外すれば、最終的に記録されません。確認した後、 確認次のステップへ をクリックします。

確認して保存する

図に示すように、出力ファイル名を変更できます。確認した後、 保存 をクリックします。

确认并保存

保存の内容は3項目があります。

  • パラメータ補正フォルダ:ParamsCompensation。

    毎回の基準は「日付-trial」で命名されたフォルダに保存されます。同じプロジェクトは複数の基準があり、要求に応じて選択して使用します。

    flange_*.json には単独のフランジ位置姿勢が記録され、その後の「位置姿勢を読み取る」ステップでロボットに運動経路点を送信するために使用されます。

    flanges.json にはすべての観測点のフランジ位置姿勢が記録されます。対応するステップと併用してロボットに運動経路点を送信するので、まだ使用されていません。

    reference.json にはパラメータ補正に関するすべての情報と観測結果が記録されます。「カメラ補正を検証・計算」ステップと併用し、後の観測値と対比して補正を計算します。

    observation_*.json には後の観測の推定結果が記録されます。

    offset.json には「カメラ補正を検証・計算」ステップで生成された補正データが記録されます。その後の「位置姿勢を読み取る」ステップで把持点を補正するために使用します。

    注意

    カメラ座標系における把持点でなければ補正できません。ロボット座標系の把持点を座標変換を行ってから補正します。

  • Mech-Visionプロジェクト————マーカーを検出:marker_detection。

    このプロジェクトでは、Mech-Vizによってビジョンサービスを呼び出し、マーカー位置姿勢を検出します。また、マーカー位置姿勢観測の推定結果を observation_*.json ファイルに記録して保存します。

  • Mech-Visionプロジェクト————エラー補正:error_compensation。

    このプロジェクトでは、Mech-Vizによってビジョンサービスを呼び出して補正値を計算します。 observation_*.json ファイルにあるマーカー位置姿勢を読み取り、初期のマーカー位置姿勢と対比して計算して補正値を取得し、 offset.json ファイルに保存します。

生成したプロジェクトとファイルを使用してエラー補正を行う

Mech-Visionプロジェクト

元のプロジェクトに、生成されたmarker_detectionとerror_compensationと、2つのプロジェクトを追加する必要があります。

marker_detectionプロジェクトでは、カメラIPとカメラパラメータ、画像保存パスを設定する必要があります。

「マーカー検出」ステップでパラメータ補正フォルダParamsCompensationと基準目標(上記のパラメータ補正フォルダの基準)を設定する必要があります

error_compensationプロジェクトは同じように「カメラ補正を検証・計算」ステップのパラメータ補正フォルダParamsCompensationと基準目標(上記のパラメータ補正フォルダの基準)を設定する必要があります。

これでMech-Visionプロジェクトの設定が完了します。

Mech-Vizプロジェクト

Mech-Vizプロジェクトでは、下図のように設定できます。まずは元のプロジェクトを現場に応用します。

Viz工程

その後、カウンタースキル、リセットスキル、検出と補正を追加します。

実際状況に応じてカウンターを設定します(一回に補正を行うまでに現場タスクが何回実行されますか)。

カウンターをスキルリセットでリセットするスキルにします。

検出と補正は下図に示します。観測と補正の2つのスキルがあります。

确认并保存

以下のように観測を設定します。

确认并保存

観測点(移動タスク)を初期観測点の位置姿勢に設定します。位置姿勢が上記の flange_*.json ファイルに記録されます。観測点の数はマーカーの数によって決まります。

marker_detectionビジョンサービスを呼び出すことで視覚による認識を行います。その数もマーカーの数によって決まります。

補正(視覚による認識スキル)でerror_compensationビジョンサービスを呼び出す必要があります。

これで、プロジェクトでカメラパラメータ補正の設定が完了です。Mech-Vizプロジェクトを実行すれば、カメラパラメータ補正を行うことができます。

誤差分析

誤差分析とは、生成されたカメラパラメータ補正のパラメータを可視化し、図表によって誤差のトレントや分布を確認することです。下図に示すように、パラメータ補正ツールの「誤差分析」をクリックすると、誤差分析の画面が表示されます。

误差分析

まずはデータソースを設定します。データは基準ベースフォルダ、即ち「日付ーtrial」で命名されたフォルダの中にあります。

  • 観測値トレンド:マーカー位置姿勢の誤差観測のトレンドです。フォルダの observation_*.json ファイルのデータを読み取ります。

  • 誤差トレンド:補正値のトレンドです。 offsets.json の中のデータを読み取ります。