1.首先回顾摄像头Package 安装教程
我安装的是uvc_camera. 由于对ROS不熟悉,目前只知道cd到/opt/ros/hydro/share目录下,将uvc_camera 的package 下载下来
i.e: git clone https://github.com/ktossell/camera_umd.git 具体见另外一篇教程
采用$rosrun uvc_camera uvc_camera_node 即可打开摄像头,
采用$rostopic list & rosservice list ,分别查看发布的消息和服务
2.重新映射service,这个先介绍一下问题,在后面会重点分析
http://wiki.ros.org/Remapping%20Arguments 什么是重新映射remap
http://answers.ros.org/question/195217/ros-hydro-cannot-commit-gscam-camera-calibration-set_camera_info-not-under-camera/ //问题提出:发布的消息和矫正包订阅的名称不匹配
http://question1973.rssing.com/chan-34075800/all_p2.html // 矫正过程的其他问题汇总
http://question1973.rssing.com/browser.php?indx=34075800&item=33 //如何重新映射remap 问题解决方案
3.camera_calibration 包的使用(http://wiki.ros.org/camera_calibration)
教程http://wiki.ros.org/camera_calibration/Tutorials/MonocularCalibration
a)得到依赖项,编译驱动
$ rosdep install camera_calibration $ rosmake camera_calibration
b)按照前面的教程开启摄像头,$rosrun uvc_camera uvc_camera_node,检查topic和service,需要注意
topic: /image_raw而非/camera/image_raw
c)运行calibration 节点
$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/camera/image_raw camera:=/camera
( 需要我们注意的是,红线标出的命令需要我们改为uvc_camera 发布的topic和service,改service的时候出了很多问题(详见2.重新映射service),这里只介绍解决方法:用如下命令重新开启摄像头:$ rosrun
uvc_camer uvc_camera_node set_camera_info:=/camera/set_camera_info )
( 需要根据自己的板子的实际方格的大小设置 参数 8*6 和 0.108)
矫正窗口打开(在这里借用人家的窗口)
调整矫正板
矫正板在视野的上下左右位置
X 轴:视野左右
Y 轴:视野上下
Size 条:前后 和倾斜
矫正板充满整个视野
矫正板倾斜着处于上下左右的位置
每一步都要保证矫正板在视野内被点亮
当你移动矫正板,你可以看到X轴等的变化,当CALIBRATE按钮亮起时,表示有足够数据用于矫正,点此按钮看下矫正效果
矫正结果会在中端和上图中显示
评价标准:
连续成功的校准将导致实际校正图像边缘连续出现。
校准失败通常会导致空白或未被承认的图像,不保持直线边缘的图像。
矫正成功后,点comment生成.yml文件