摄像头为什么要标定
摄像头是一种非常精密的光学仪器,它对外界环境的感知是非常敏感的。由于摄像头内部和外部的一些原因,生成的物体图像常常会发生一定的畸变,例如在鱼眼摄像头,畸变是非常大的,如果直接将采集到的图像拿来进行图像处理的话,会产生很大的问题,为了避免数据源造成的误差,需要针对摄像头的参数进行标定。
安装标定功能包
选择适合自己的ROS版本进行安装
//如果indigo版本
sudo apt-get install ros-indigo-camera-calibration
//如果kinetic版本
sudo apt-get install ros-kinetic-camera-calibration
将文件robot_vision下载 解压 到catkin_ws/src下面。 文件地址:云盘地址 提取码:csic
使用外部工具
棋盘格标定靶:
普通摄像头标定流程
1.启动摄像头
roslaunch robot_vision usb_cam.launch
此时虽然摄像头启动,并不会有可视化界面显示 。
2.启动标定包
打开新的终端窗口,输入以下命令:
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.0245 image:=/usb_cam/image_raw camera:=/usb_cam
命令解析:
1.size :标定棋盘个的内部角点个数,这里实用的棋盘一共有6行,每行有8个内部角点(不包括最外围的一圈棋盘格);
2.squre:这个参数对应每一个棋盘格的边长,单位是米,棋盘格打印出来以后要自己再测量一下打印的是或否准确然后自己更改。
<