天天看點

學習Kalibr工具--Camera标定過程

這裡介紹用kalibr工具對相機進行單目和雙目的标定;

在kalibr中不僅提供了IMU與camera的聯合标定工具,也包含了camera的标定工具箱;

- 準備:

安裝好kalibr之後,開始準備标定闆,在kalibr中适用于三種标定闆,分别是:Aprilgrid,Checkerboard和Circlegrid。其中checkboard最常用,但是aprilgird精度最好,因為它可以提供序号資訊,能夠防止姿态計算時出現跳躍的情況。

- 制作标定闆:

這裡使用aprilgrid标定闆,可以使用kalibr自帶工具自定義生成不同大小的标定闆,指令行如下:

kalibr_create_target_pdf --type apriltag --nx [NUM_COLS] --ny [NUM_ROWS] --tsize [TAG_WIDTH_M] --tspace [TAG_SPACING_PERCENT]
           

将以上指令生成的标定闆PDF格式,直接無縮放比例列印出來,就可以直接使用。

- 資料采集:

制作好标定闆之後,就可以使用相機對标定闆進行拍攝,進行資料采集,相機要從多個角度對标定進行拍攝,這樣相機pose要足夠多。指令行如下:(若是單目标定,則執行一行)

rosrun topic_tools throttle messages /mynteye/left/image_raw 4.0 /left
 rosrun topic_tools throttle messages /mynteye/right/image_raw 4.0 /right
           

指令行中 topic_tools throttle 為ROS中改變topic釋出頻率的指令,通常裝置采集頻率為30左右,這會使得标定的圖像太多,急劇增加計算量,最好将ros topic降到 4hz左右進行資料采集。要確定圖像不要模糊,運動不要太快!

- 制作 rosbag:

資料采集好了之後就可以進行 bag 的制作了,指令行如下:(若是單目标定,則執行一行)

rosbag record -O stereo_calibra.bag /left /right
           

上述的stereo_calibra.bag就是生成的bag.

- 标定:

使用前邊的 bag 與 采集的圖像進行标定,指令行如下:

source /home/kalibr/devel/setup.bash

kalibr_calibrate_cameras --bag /home/stereoCamData/stereo_calibra.bag --topics /left /right --models pinhole-radtan pinhole-radtan --target /home/stereoCamData/april_6x6_80x80cm_A0.yaml
           

- 标定驗證:

可以使用calibration validator進行标定結果的驗證,原理是對重投影誤差進行量化分析。指令行如下:

kalibr_camera_validator --cam camchain.yaml --target target.yaml
           

指令行中 camchain.yaml 與 target.yaml 分别為上述中camera标定的結果以及 标定闆的yaml檔案。

相機标定之後就可以進行 camera 與IMU 的聯合标定。

參考部落格:

https://blog.csdn.net/wwchen61/article/details/78013962

https://blog.csdn.net/heyijia0327/article/details/83583360

https://www.jianshu.com/p/34c301cdc312

繼續閱讀