机器视觉(二)——摄像头标定

机器视觉(二)——摄像头标定

总述

摄像头这种精密仪器对光学器件的要求较高,由于摄像头内部与外部的一些原因,生成的物体图像往往会发生畸变,为了避免数据源造成的误差,需要针对摄像头的参数进行标定。ROS官方提供了用于双目和单目摄像头标定的功能包——camera_calibration。

一、camera_calibration功能包

首先使用以下命令安装摄像头标定功能包camera_calibration:

sudo apt-get install ros-kinetic-camera-calibration

标定需要用到棋盘格图案的标定靶。
在这里插入图片描述

二、启动标定程序

一切就绪后准备开始标定摄像头。首先使用以下命令启动USB摄像头:

roslaunch robot_vision usb_cam.launch

然后使用以下命令启动标定程序:

rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_cam

cameracalibrator.py标定程序需要以下几个输入参数。
1)size:标定棋盘格的内部角点个数,这里使用的棋盘一共有6行,每行有8个内部角点。
2)square:这个参数对应每个棋盘格的边长,单位是米。
3)image和camera:设置摄像头发布的图像话题。
根据使用的摄像头和标定靶棋盘格尺寸,相应修改以上参数,即可启动标定程序。

三、标定摄像头

标定程序启动成功后,将标定靶放置在摄像头视野范围内,应该可以看到如图所示的图形界面。
在这里插入图片描述
在没有标定成功前,右边的按钮都为灰色,不能点击。为了提高标定的准确性,应该尽量让标定靶出现在摄像头视野范围内的各个区域,界面右上角的进度条会提示标定进度。
1)X:标定靶在摄像头视野中的左右移动。
2)Y:标定靶在摄像头视野中的上下移动。
3)Size:标定靶在摄像头视野中的前后移动。
4)Skew:标定靶在摄像头视野中的倾斜转动。
不断在视野中移动标定靶,直到“CALIBRATE”按钮变色,表示标定程序的参数采集完成。点击“CALIBRATE”按钮,标定程序开始自动计算摄像头的标定参数,这个过程需要等待一段时间,界面可能会变成灰色无响应状态,注意千万不要关闭。
参数计算完成后界面恢复,而且在终端中会有标定结果的显示。
在这里插入图片描述
点击界面中的“SAVE”按钮,标定参数将被保存到默认的文件夹下,并在终端中看到该路径,如图所示。
这时候需要等一会,电脑需要进行一会计算,不要以为是卡了。
在这里插入图片描述
点击“COMMIT”按钮,提交数据并退出程序。然后打开/tmp文件夹,就可以看到标定结果的压缩文件calibrationdata.tar.gz;解压该文件后的内容如图所示,从中可以找到ost.yaml命名的标定结果文件,将该文件复制出来,重新命名就可以使用了。
在这里插入图片描述
把文件内容复制并替换robot_vision目录下camera_calibration.yaml中的内容。

猜你喜欢

转载自blog.csdn.net/weixin_45661757/article/details/113256274