之前已经安装了摄像头驱动详见: 上篇 四、摄像头信息的读取和显示
一、相机标定
我要标定的黑白棋盘:
1、下载ROS相机标定包并编译:
rosdep install camera_calibration
rosmake camera_calibration
2、启动usb_cam,获取笔记本摄像头的图像
roslaunch usb_cam usb_cam-test.launch
3、启动标定程序
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/usb_cam/image_raw camera:=/usb_cam
其中image:= 和camera:=后的内容需要根据自己电脑摄像头的话题和节点来修改,可以通过rqt_graph来查看。比如有的会是image:=/camera/image_raw camera:=/camera
4、标定界面出现后,按照x(左右)、y(上下)、size(前后)、skew(倾斜)等方式移动棋盘,直到x,y,size,skew的进度条都变成绿色位置.
此时可以按下CALIBRATE按钮,点击一下后,界面会卡住
此时不要做任何操作,直到运行标定程序的终端输出标定的结果,大概是这样的
5、有标定结果出来后,点击标定界面的SAVE按钮,再点commit按钮,标定结果保存在/tmp/calibrationdata.tar.gz这个压缩包中,到这里彩色相机的标定就结束了,关闭标定程序
6、完成后Commit,在终端后会有标定结果yaml文件地址.默认一般为/home/用户名/.ros/camera_info/head_camera.yaml
二、在ORB_SLAM2中运行:
1、打开后,按照TUM1.yaml的格式修改,只是需要加上camera的尺寸Camera.width和Camera.height,命名为myUsb_cam.yaml.
而在orb_slam中的格式如下,需要将上面的
camera_matrix:
distortion_coefficients:
参数值对应。其中ORB参数与Viewer参数不变。
2、在终端运行:
roslaunch usb_cam usb_cam-test.launch
3、另开终端运行:
rosrun ORB_SLAM2 Mono /home/yuxin/catkin_ws/src/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/yuxin/catkin_ws/src/ORB_SLAM2/Examples/Monocular/myUsb_cam.yaml
参考:
http://mario.is-programmer.com/posts/212024.html
https://blog.csdn.net/qq_43269411/article/details/107266922