在Ubuntu18系统中完成摄像头标定
1、安装相机校准功能包
sudo apt-get install ros-melodic-camera-calibration
sudo apt-get install ros-melodic-uvc-camera
2、运行ROS核心程序
roscore
3、新建终端运行uvc_camera_node节点
rosrun uvc_camera uvc_camera_node
4、打印相机信息
rostopic echo /camera_info
这里D、K、R、P的原始数据都是0
5、使用黑白棋盘进行校正
准备棋盘
输入命令开始校正
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/camera/image_raw camera:=/camera
在屏幕右侧有X、Y、Size、Skew控件,这是校准的进展状态,校准过程中将棋盘朝着左、右、上、下、前、后移动,等到条形变绿以后点击CALIBRATE按钮进行实际的校准计算,完成后点击SAVE保存校准信息。
进入 /tmp文件,解压calibrationdata.tar.gz文件,查询图像文件和校准参数
cd /tmp
tar -xvzf calibrationdata.tar.gz
6、将ost.txt文件改名为ost.ini,并使用camera_calibration_parsers功能包的convert节点创建相机参数文件(camera.yaml)。创建完成后,将其保存在~/.ros/camera_info/目录中,则ROS中使用的相机相关功能包会引用此信息
cd /tmp
将ost.txt文件改名为ost.ini
mv ost.txt ost.ini
使用camera_calibration_parsers功能包的convert节点创建相机参数文件(camera.yaml)
rosrun camera_calibration_parsers convert ost.ini camera.yaml
在~/.ros/ 下创建 camera_info目录
mkdir ~/.ros/camera_info
将camera.yaml其保存在~/.ros/ camera_info/目录中
mv camera.yaml ~/.ros/camera_info/
再次运行uvc_camear_node节点,确保校准文件没有错误
rosrun uvc_camera uvc_camera-node
以上没有报错,进行下一步,查看相机信息
rostopic echo /camera_info
可以看见D、K、R、P的数据以及被填充了,至此,摄像头标定顺利完成!