准备工作
1) 棋盘格打印参数:
- 内部焦点个数8x6;
- 每个棋盘格正方形边长为24mm;
2) 安装ros相机标定程序
rosdep install camera_calibration #安装标定程序
mkdir catkin_ws
cd catkin_ws
mkdir src
git clone https://github.com/bosch-ros-pkg/usb-cam.git
cd ..
catkin_make
source devel/setup.bash
roslaunch usb_cam usb_cam-test.launch
# 打开一个新终端
rostopic list
# 输入一个标定指令
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam
标定步骤
- 打开一个终端,执行
roscore
命令启动ros - 再开一个终端,将usb-camera下载到catkin_ws下的src目录中;
- 然后在catkin_ws目录进行
catkin_make
; - 在catkin_ws目录下会生成两个build和devel目录
- source一下devel下的setup.bash文件
source devel/setup.bash
- 再打开一个新终端,执行启动USB摄像头命令:
roslaunch usb_cam usb_cam-test.launch
- 再打开一个终端,执行启动标定程序命令:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam



上述命令出现的几个输入参数。
1)--size 8x6:表示标定棋盘格的内部角点数目的长和宽,6行8列
2)--square 0.024:每个正方形棋盘格的边长,单位m。这里的每个棋盘小格子是2.4cm也就是0.024m;
3)image和camera:设置摄像头发布的图像topic。
-
标定程序使用方法:
为了得到一个好的标定结果,应该使得标定板尽量出现在摄像头视野的各个位置里:如标定板出现在视野中的左边,右边,上边和下边,标定板既有倾斜的,也有水平的。
x:表示标定板在视野中的左右位置。
y:表示标定板在视野中的上下位置。
size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
skew:标定板在视野中的倾斜位置。 -
从不同视角对准标相机定板,使得calibration 按钮变绿而且相机运动满足右上角“X,Y,Size,Skew”长条变绿为止;
-
此时CALIBRATE按钮从灰色不可点击变为绿色,点击CALIBRATE开始标定参数



相机内参yaml文件
image_width: 640
image_height: 360
camera_name: narrow_stereo
camera_matrix:
rows: 3
cols: 3
data: [ 767.61835, 0. , 346.00876,
0. , 767.70392, 176.00989,
0. , 0. , 1. ]
camera_model: plumb_bob
distortion_coefficients:
rows: 1
cols: 5
data: [-0.440663, 0.343160, -0.000965, -0.002679, 0.000000]
rectification_matrix:
rows: 3
cols: 3
data: [ 1., 0., 0.,
0., 1., 0.,
0., 0., 1.]
projection_matrix:
rows: 3
cols: 4
data: [ 708.30072, 0. , 347.95183, 0. ,
0. , 746.67316, 175.1875 , 0. ,
0. , 0. , 1. , 0. ]
用ROS下采集的标定图像方法Matlab R2020a上进行验证









网友评论