カメラを探してVINS-Fusion(二)-Camera-IMUパラメータ標定を実行する
: 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ファイルを作成する必要がある.
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を使用して可視化して表示できます.具体的には、
roscore
、rqt
、メニューバー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 calibration
multiple 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)カメラ/歪みモデル【注】:実際の標定時に注意する2つのこと:1.
--target
に対応するファイルの値を修正し、自分が実際に印刷したパターンの値を変更する;2.カメラ/歪みモデルの選択:pinhole-radtan
!ウェブサイト及び文献[1]を参照する.Kalibr公式wikiリンク[2].mynt小型カメラを標定する(両目のみ)