ハンドアイキャリブレーション用 Zivid CLI ツール
このチュートリアルでは、コマンドラインインターフェース(CLI)ツールを使用してハンドアイキャリブレーションを行う方法を説明します。手順をスクリーンショット付きで以下に示します。
注釈
ロボットの姿勢に *.yaml ファイル形式を使用する ZividExperimentalHandEyeCalibration.exe CLI ツールは 実験的 です。代わりに Hand-Eye GUI を使用することをお勧めします。
要件
ハンドアイキャリブレーション に関する基本的な知識
ハンドアイキャリブレーションのデータセット - 以下の最初のステップで説明します
手順
データセットを取得する
ハンドアイキャリブレーション のチュートリアルをまだお読みになっていない場合は、ぜひお読みください。データセットを取得するための最低限の手順については、 ハンドアイキャリブレーションに適したデータセットを取得する方法 をご確認ください。また、 ハンドアイキャリブレーションに関する注意事項と推奨事項 もご参照いただくことをお勧めします。
このデータセットは、.zdf ファイル形式の Zivid キャリブレーションオブジェクト 点群と、それに対応する .yaml ファイル形式のロボット姿勢のペアが 10 〜 20 組あることを前提としています。命名規則は次のとおりです。
点群: img01.zdf、img02.zdf、img03.zdf など
ロボット姿勢: pos01.yaml、pos02.yaml、pos03.yaml など
注意
ロボット姿勢の並進部分は mm 単位で指定する必要があります。
CLI ツールは、Zivid チェッカーボードまたは ArUco マーカーに対応しています。ただし、 SDK とは異なり、CLI ツールは単一の ArUco マーカー辞書(DICT_4X4_50)のみに対応しています。
Here's an example of a robot pose available for download - pos01.yaml.
It is a 4x4 transformation matrix where the rightmost column (first three rows) holds the translation, here in millimeters (for example 302.8, 647.9, 458.3).
If your robot reports the translation in meters, multiply it by 1000 before saving the pose.
To learn how to write/read files in .yaml format, check out the OpenCV YAML file storage class.
The dataset folder should look similar to this:
注意
ロボット姿勢ファイルは .yaml ファイル形式ですが、カメラの設定ファイルや構成ファイルは .yml ファイル形式です。
ハンドアイキャリブレーション CLI ツールを実行する
キーボードの Win + R キーを押してコマンドプロンプトを起動し、 cmd と入力して Enter を押します。
Zivid ソフトウェアをインストールしたフォルダーに移動します。
cd C:\Program Files\Zivid\bin
次のコマンドを入力すると、 ZividExperimentalHandEyeCalibration.exe CLI ツールの入力と出力を表示できます。
ZividExperimentalHandEyeCalibration.exe -h
ZividExperimentalHandEyeCalibration.exe CLI ツールを実行するには、次の項目を指定する必要があります。
キャリブレーションのタイプ(eye-in-hand または eye-to-hand)
データセット(.zdf ファイルと .yaml ロボット姿勢)を含むディレクトリへのパス
結果として得られるハンドアイ変換と残差を保存する場所を指定することも便利です。以下の例を参照してください。
SET dataset=C:\Users\Public\Documents\Directory_where_dataset_is_located ZividExperimentalHandEyeCalibration.exe --eth -d "%dataset%" --tf "%dataset%\transform.yaml" --rf "%dataset%\residuals.yaml"
キャリブレーションのタイプ(eye-in-hand または eye-to-hand)
データセット(.zdf ファイルと .yaml ロボット姿勢)を含むディレクトリへのパス
使用する ArUco マーカーの ID
結果として得られるハンドアイ変換と残差を保存する場所を指定することも便利です。以下の例を参照してください。
SET dataset=C:\Users\Public\Documents\Directory_where_dataset_is_located ZividExperimentalHandEyeCalibration.exe --eth -d "%dataset%" --tf "%dataset%\transform.yaml" --rf "%dataset%\residuals.yaml" --ids 1, 2, 3
実行中、アルゴリズムはキャリブレーション対象を検出できた場合は「OK」を、検出できなかった場合は「FAILED」を出力します。検出フェーズの後、結果として得られるハンドアイ変換(4x4 同次変換行列)を出力します。最後に、各ポーズについて ハンドアイキャリブレーション残差 を出力します。出力例を以下に示します。
ハンドアイキャリブレーションが完了したら、次のステップは、結果として得られた変換行列が正しく、正確度の要件を満たしていることを確認することです。記事 ハンドアイキャリブレーションの検証方法 では、いくつかの方法について説明しています。
結果として得られる同次変換行列(eyeInHandTransform.yaml)を使用して、ピッキングポイントの座標または点群全体をカメラフレームからロボットベースフレームに変換できます。この方法については、 ハンドアイキャリブレーション結果の使い方 をご参照ください。