在ROS环境下对笔记本自带的摄像头(单目)进行标定

来源:互联网 发布:淘宝淘口令怎么编辑 编辑:程序博客网 时间:2024/04/29 16:35

ROS官方提供了用于单目或者双目标定的camera_calibration包。这个包是使用OpenCV里的张正友标定法,所以如果你有使用opencv标定的经验,可以直接标定,而不使用官方的程序。

        官方也给出了单目的标定教程和双目视觉的标定教程。本教程基于usb_cam  package 读取图像,然后使用官方例程进行标定。

注意:前提是已经安装好usb_cam驱动。(具体安装说明见:http://blog.csdn.net/zhuquan945/article/details/73167474)

1.使用usb_cam 读取图像,launch文件(usb_cam-test.launch)如下:

<launch>  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >    <param name="video_device" value="/dev/video0" />    <param name="image_width" value="640" />    <param name="image_height" value="480" />    <param name="pixel_format" value="yuyv" />    <param name="camera_frame_id" value="usb_cam" />    <param name="io_method" value="mmap"/>  </node>  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">    <remap from="image" to="/usb_cam/image_raw"/>    <param name="autosize" value="true" />  </node></launch>

 copy 

打开一个终端,运行:

$ roscore

打开另一个终端,运行:

$ roslaunch usb_cam usb_cam-test.launch
打开笔记本摄像头。


2.检查usb_cam package发布的消息:

[plain] view plain copy
  1. $ rostopic list  
看是否有如下消息,并记住名称

  • /usb_cam/camera_info/usb_cam/image_raw

3.启动标定程序:

$ rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.108 image:=/usb_cam/image_raw camera:=/usb_cam

 view p其中参数size 8x6 注意:中间是字母x,他是棋盘内部角点个数,如下图所示。square为棋盘正方形边长,注意:刚刚开始标定的时候,CALIBRATE按钮是灰色的。

                         

4.标定程序使用方法:

       为了得到一个好的标定结果,应该使得标定板尽量出现在摄像头视野的各个位置里:

       如标定板出现在视野中的左边,右边,上边和下边,标定板既有倾斜的,也有水平的,。

       界面中的x:表示标定板在视野中的左右位置。

                     y:表示标定板在视野中的上下位置。

                size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。

                skew:标定板在视野中的倾斜位置。

              

还要有棋盘占住大部分视野的图片,如下图所示:


       按着上述方式不断移动标定板,直到CALIBRATE按钮变亮,点击该按钮就会进行标定。标定过程将持续一两分钟,并且标定界面会变成灰色,无法进行操作,耐心等待即可。

       标定完成以后,你将看到如下图所示的窗口,窗口中的图像为标定后的结果,纠正了畸变

                           

        并且,摄像机的各个参数会出现在标定程序的终端窗口中,如下:

    

如果对标定结果满意,点击COMMIT按钮将结果保存到默认文件夹,在usb_cam窗口中可以看到如下信息,说明标定结果已经保存在相应文件夹下下次启动usb_cam节点时,会自动调用。



reference:

1.ROS官方:单目标定

阅读全文
0 0
原创粉丝点击