操作系统:Ubuntu14.04 LTS
ROS版本:indigo(kinetic)
摄像头:640×480像素 单目摄像头
1安装相关软件
$sudo apt-get install ros-indigo-camera-calibration
2摄像头驱动安装
$sudo apt-get install ros-indigo-usb-cam
//查看结果
$roslaunch usb_cam usb_cam-test.launch
$rqt_image_view
3其他驱动(其他设备)
深度相机KINECT 驱动
$sudo apt-get install ros-indigo-freenenct-*
$git clone http://github.com/avin2/SensorKinect.git
$cd SensorKinect/Bin
$tar xvf SensorKinect093-Bin-Linux-x86-v5.1.2.1.tar.bz2
$sudo ./install.sh
雷达驱动
$sudo apt-get install ros-indigo-rplidar-ros
$rosrun rplidar_ros rplidarNode
if 报错
串口权限问题
$sudo gpasswd --add USER_NAME dialout
4相机模型
详细请看下面的链接。本文不具体讲解相机模型。
https://blog.csdn.net/honyniu/article/details/51004397
相机内参主要是两个矩阵,一个为camera_matrix,另外一个是distortion_coefficients.
5单目相机标定
$roslaunch usb_cam usb_cam-test.launch //打开单目相机
$rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/usb_cam/image_raw camera:=/usb_camera
说明
1 size:标定棋盘格内部的角点个数。本文使用的棋盘格在资源处可下载。
2 square: 对应每个棋格的大小,单位为米
3 image 和 camera:设置摄像头发布的话题。
6Kinect相机标定
$roslaunch freenect.launch //打开单目相机
$rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/camera/rgb/image_raw camera:=/camera/rgb //标定彩色摄像头
$rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/camera/ir/image_raw camera:=/camera/ir //标定红外摄像头
此处需要分别标定彩色摄像头和深度摄像头。
标定结束,产生一个yaml文件,里面就是我们需要的相机内参了:
分别对应上面的矩阵所对应的相关内参系数。
资源处有相关代码和工具。