相机标定
相机内参标定理论网上有很多资料可查,在高翔的《slam十四讲》中也有过程推导。本文主要介绍具体标定过程,利用ROS自带包可标定单目和双目相机。
相机标定有两种方式:在线标定与离线标定
1.在线标定:使用驱动在线启动相机,启动标定程序执行标定步骤
2.离线标定:提前录制数据包,数据包包含相机topic,订阅相机topic启动标定程序执行标定步骤
本文采用在线标定的方式标定相机
文章目录
系统配置:
ubuntu18.04
ROS melodic
一、单目相机标定
http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration
1.准备标定版(checkerboard下载)
下载的标定版为6X8的规格,使用A4纸打印出来,我用卷尺量的每一个小方格的边长为2.45厘米(标定过程中所有长度单位需要统一为米)即0.0245m,作为标定输入参数。
2.安装相机驱动
安装相机驱动,参考usb_camera
cd catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git
cd ..
catkin_make
3.启动相机
roslaunch usb_cam usb_cam-test.launch
#All required rosdeps installed successfully
4.安装标定程序
rosdep install camera_calibration
之后执行相机矫正py文件,在ubuntu系统中cd到cameracalibrator.py所在目录下,执行下面语句。
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0245 image:=/usb_cam/image_raw camera:=/usb_cam
应该弹出一个display的窗口如下:
不断调整标定版板的角度,使右边的线条为绿色后点击CALIBRATE执行标定过程,等待标定完成后点击save保存标定结果。