环境:ubuntu16.04 ros版本 kinetic
标定笔记本单目摄像头
需要的准备:1、标定图:下面这张打印到a4纸上。

ros学习之camera calibration 单目摄像头标定-LMLPHP
2、摄像机驱动,我使用的是usb_cam,下载地址:https://github.com/ros-drivers/usb_cam
下载后放到ros的src目录下(catkin_ws/src) ,编译一下:
打开终端

$cd
$ cd catkin_ws
$ catkin_make

3、标定用的camera calibration包。下载地址:https://github.com/ros-perception/image_pipeline
现在还没有kinrtic版本的,这个一样可以的,下载后解压,只要camera_calibration这个包。将camera_calibration放到catkin_ws/src下,编译:

$cd
$ cd catkin_ws
$ catkin_make

ros学习之camera calibration 单目摄像头标定-LMLPHP

开始标定
步骤:
1、运行摄像头驱动

$cd
$cd catkin_ws/src/usb-cam/launch
$roslaunch usb_cam-test.launch

摄像头一般有指示灯,亮了就可以了,没有图像也没关系。

2、运行标定程序camera_calibration:
新打开一个终端;

rosrun camera_calibration cameracalibrator.py --size 7x5 --square 0.018 image:=/usb_cam/image_raw camera:=/usb_cam

注意:这里有几个参数需要根据自己设定 size 7x5的7x5标定棋盘的内角点数,不是色块数; square 0.018 是色块的大小,单位是米; image:=/usb_cam/image_raw camera:=/usb_cam,可以使用rostopic list查看:

rostopic list

ros学习之camera calibration 单目摄像头标定-LMLPHP
运行命令之后会出现一个灰色的摄像头窗口;
3、
引用官方:

将打印的标定图在相机框架中移动:
要出现摄像头的各个位置
要求:
相机的左侧,右侧,顶部和底部的棋盘格
X栏 - 在视野中左/右
Y栏 - 视野中的顶部/底部
尺寸栏 - 朝向/离开并从相机倾斜
棋盘填满整个视野
棋盘向左,向右,向上和向下倾斜(歪斜)
在每个步骤中,保持棋盘静止,直到图像在校准窗口中突出显示。
ros学习之camera calibration 单目摄像头标定-LMLPHP

当您移动棋盘时,您会看到校准侧栏上的三个条的长度增加。当CALIBRATE按钮亮起时,您有足够的数据进行校准,可以单击CALIBRATE查看结果。

校准可能需要大约一分钟。窗户可能是灰色的,但只是等待,它正在工作。

4、结果处理
可以在终端找到数据存储位置
解压。
找到 .yaml 文件(a)。
找到usb_cam/camera_info里的 .yaml文件(b)。
将a的名字改为b的,将a中的camera_name:<参数>改为b中的参数。
用a替换掉b。

重新启动摄像头

标定完成。

10-03 18:06