カメラを探してVINS-Fusion(二)-Camera-IMUパラメータ標定を実行する

4826 ワード

          :      Kalibr         IMU     

Kalibrはツールボックス(a toolbox).The camera-imu calibration tool(その中の1つのツール)estimates the spatial and temporal parameters of a camera system with respect to an intrinsically calibrated IMU.The calibration parameters(所定のパラメータを推定する)are estimated in a full batch optimization using splines to model the pose of the system.
だから、Kalibrは私たちに必要なものです!Kalibrツールボックスを取得するには、2つの方法があります.1.ソースコードからコンパイル;2.CDEパッケージ.1.ソースコードのコンパイル:ROS indigoとcatkinワークスペースに依存します.この方式の標定には2つの利点がある:CDEパッケージよりも速く、すべてのツールを提供する.2.CDEパッケージ:すべての依存はパッケージにパッケージされており、他の依存は必要ありません.ただし、Camera focusおよびCalibration validatorツールは使用できません(ROS依存のため).まず2を選択してください.
一、kalibrのCamera-IMU calibration
ダウンロードサイトを参照[1]
1.使用方法
1)予備項目IMUの内部パラメータ(intrinsic parameters)例えば、スケーリングファクタ、軸非直交角、非線形度などは事前にスケーリングし、これらのパラメータを元のデータに適用する必要がある.また、加速度計とジャイロの以下の統計属性を含むIMUの構成YAMLファイルを作成する必要がある.
  • ノイズ強度(noise density)
  • バイアスランダムウォーク(bias random walk)
  • 2)予備項2は、元の画像ストリームを記録するROSパケットを作成する.具体的な方法は、ROSセンサからのストリームを直接録画(recording)するか、画像ファイルリストのbagcreaterスクリプトとIMU測定値を含むCSVファイル(後者は、bagファイルを作成するために多くの画像をローカルに保存することを意味する).(the calibration target、すなわち印刷されたA 4用紙パターン)は固定されており、camera-imuシステムはパターンの前に移動してすべてのIMU軸を励起する.同様に重要なのは、パターンの良好な均一な照明を確保することである.(good and even illumination)および過度の動きのぼやけを避けるためにカメラのシャッター時間が低いことを保証し、カメラが20 Hz、IMUが100 Hzの周波数でデータを収集し、良好な結果が得られることを検証した.
    今晩の目標:1:提供されたデータを使ってプログラムを走ります(CDEパッケージに問題がないことを証明します)2!bagを録画します!!まず、カメラのドライバを探して、CameraとIMUのデータをtopicの形式で発表させます.具体的には以下のコマンドを使用します.
    roslaunch mynt_eye_ros_wrapper display.launch
    

    そして、サンプリング周波数を4 Hzに低減し、文献[2]を参照する.具体的には、次のコマンドを使用します.
    rosrun topic_tools throttle messages /mynteye/left/image_raw 4.0 /left
    rosrun topic_tools throttle messages /mynteye/right/image_raw 4.0 /right
    

    【注】:このコマンドは、カメラライブラリの関数ではなく、ROSの関数です.効果的には、/mynteye/left/image_rawを購読した後、サンプリング周波数を4 Hzに下げ、サンプリング周波数を下げた画像データを/leftという新しいtopicを発行するのと似ています.
    最後に、rosbagを使って興味のある3つの話題を録画!
    rosbag record -O stereo_imu_calibra.bag /left /right /mynteye/imu/data_raw
    

    【注】:録画したbagはrqtを使用して可視化して表示できます.具体的には、roscorerqt、メニューバーPlugins->Logging->Bag、右ボタンView->imageを実行します.
    純カメラの標定を行うコマンドは以下の通りです.
    ./kalibr_calibrate_cameras --target dynamic/april_6x6.yaml --bag dynamic/stereo_imu_calibra.bag --models pinhole-radtan pinhole-radtan --topic /left /right
    

    2時間のIMUデータを記録し,続いてAllan分散を用いて解析を行った.
    3)標定を開始するには、次のコマンドを使用して実行します(以降のルーチンのコマンドを例にとります):./kalibr_calibrate_imu_camera --target dynamic/april_6x6.yaml --bag dynamic/dynamic.bag --cam camchain-homechangshendeskkalibr-cdedynamicdynamic.yaml --imu dynamic/imu_adis16448.yaml【注】:CDE版とソースコードコンパイル版のコマンドは若干異なります.ここで、パラメータの意味は:
  • --bagは、カメラ画像データおよびIMUデータのROSパケットを含む.
  • --camカメラシステムの内部パラメータと外部パラメータキャリブレーションパラメータのファイル(intrinsic and extrinsic calibration parameters)を保存します.ここではmultiple-camera-calibration toolで標定された結果を使用することができますので、ファイル名はそんなに長い!(詳細は第2節参照);
  • --imu IMUの統計的特性と話題名(the IMU statistics and the IMU’s topic)のファイルを保存する;
  • --targetターゲットパターンサイズ情報のファイルを保存します.

  • 4)出力標定により、-report-imucam-%BAGNAME.pdf – results-imucam-%BAGNAME%.txt – camchain-imucam-%BAGNAME%.yaml
    2.サンプルデータセットの例を使用して、解凍データセットをダウンロードします.
    アーカイブに含まれます.bagパッケージ、標定ターゲット、IMUプロファイル.kalibr_calibrate_imu_camera --target april_6x6.yaml --cam camchain.yaml --imu imu_adis16448.yaml --bag dynamic.bag --bag-from-to 5 45【注】データセットの先頭と末尾(持ち上げ/降ろしの間)にジッタが存在するため、5~45の間のデータのみが使用される.
    二、KalibrのMultiple camera calibrationmultiple camera calibrationツールは、マルチカメラシステムの内部パラメータおよび外部パラメータ(the intrinsic and extrinsic parameters)を推定することができる.多くのモデルをサポートする.
    1.使用方法
    1)センサのストリームデータを記録したROS bagを作成する.カメラシステムは固定され、標定対象物はカメラの前で移動して標定画像を得る.標定データ採取時にカメラストリームの周波数を4 Hzに下げることをおすすめします.これにより、情報の冗長性を低減し、標定時間を短縮することができる.2)運転標定下記のコマンドを使用して標定を実行する:上記サンプルのデータ及びファイルを同様に使用する:./kalibr_calibrate_cameras --target dynamic/april_6x6.yaml --bag dynamic/dynamic.bag --models pinhole-equi --topic /cam0/image_raw中、パラメータの意味は以下の通りである:
  • --topics:bagのすべてのカメラの話題リストは、modelsに対応しています.
  • --models:(camera/distortion)カメラ/歪みモデル
  • 【注意】最適化が開始された直後に発散する可能性があります.焦点距離の初期値の推定が悪いためです.この場合、標定プロセスを再開するだけです.3)出力標定は、-report-cam-%BAGNAME%.pdf–results-cam-%BAGNAME%.txt–camchain-%BAGNAME%.yaml 4)ソースコードからコンパイルされた場合、検証を使用して検証できる出力ファイルを生成します.(Calibration validator)ツールは、標定結果を検証します.
    【注】:実際の標定時に注意する2つのこと:1.--targetに対応するファイルの値を修正し、自分が実際に印刷したパターンの値を変更する;2.カメラ/歪みモデルの選択:pinhole-radtan!
    ウェブサイト及び文献[1]を参照する.Kalibr公式wikiリンク[2].mynt小型カメラを標定する(両目のみ)