by luoshi006
参考:kalib
双目标定
camera_calibration
官方介绍:
http://wiki.ros.org/camera_calibration/Tutorials/StereoCalibration
- 首先启动摄像头程序;
- 启动 camera_calibration:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.03 --no-service-check --approximate=0.1 right:=/cam1/image_raw left:=/cam0/image_raw right_camera:=/cam1 left_camera:=/cam0
其中:
--size 8x6
注意是字母 x
,他是棋盘格内部角点个数。
--square 0.03
,表示棋盘格为正方形,边长3cm。
- 软件启动后,自动检测棋盘格开始标定。
界面中的:
x:表示标定板在视野中的左右位置。
y:表示标定板在视野中的上下位置。
size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
skew:标定板在视野中的倾斜位置。
标定数据采集完成后,右侧
calibration
按钮点亮。点击
calibration
,软件无响应/变暗,等待2~5分钟,软件显示校准后图像。- 确认校准效果,无误后点击
commit
输出标定参数;或点击save
,保存标定参数和图像。
kalibr
func
kalibr_bagcreater kalibr_create_target_pdf
kalibr_bagextractor kalibr_maplab_config
kalibr_calibrate_cameras kalibr_msf_config
kalibr_calibrate_imu_camera kalibr_okvis_config
kalibr_calibrate_rs_cameras kalibr_rovio_config
kalibr_camera_focus kalibr_visualize_calibration
kalibr_camera_validator
for help:
kalibr_calibrate_cameras -h
checkerboard
# 生成棋盘格,用于屏幕显示。
# 宽:6*3cm, 高:6*2cm。
kalibr_create_target_pdf --type checkerboard --nx 6 --ny 6 --csx 0.03 --csy 0.02
cameras calibration
kalibr_calibrate_cameras --topics /cam0/image_raw /cam1/image_raw --bag ~/src/bag/dynamic/dynamic.bag --target ~/src/bag/dynamic/april_6x6.yaml --models pinhole-radtan pinhole-radtan
imu calibration
kalibr_calibrate_imu_camera --bag ~/src/bag/dynamic/dynamic.bag --cam camchain-homepvsrcbagdynamicdynamic.yaml --imu ~/src/bag/dynamic/imu_adis16448.yaml --target ~/src/bag/dynamic/april_6x6.yaml
install
# 一些依赖库
sudo apt install python-scipy
sudo apt-get install libv4l-dev
sudo pip install pyx==0.12.1
rosbag
rosbag record -O stereo /cam0/image_raw /cam1/image_raw /imu0
target.yaml
target_type: 'checkerboard' #gridtype
targetCols: 8 #number of internal chessboard corners
targetRows: 6 #number of internal chessboard corners
rowSpacingMeters: 0.03 #size of one chessboard square [m]
colSpacingMeters: 0.03 #size of one chessboard square [m]