ROS 学习-8<相机驱动安装及标定>

由于之前拿实验室的相机做了一些实验, 但是到目前为止,还不知道相机的具体参数, 自己的电脑上还没有安装好相关的软件。于是,开始折腾。。。。
我用的这款相机是point grey的,虽然是USB接口的,但是按照平常的USB相机在ROS下的教程, 还是不可以。 我按照教程按照了 usb_cam libuvc_cam 包等, 都不管用。 后来 Edward 告诉我要安装 point grey 的ROS 驱动才可以, 我安装了这个软件之后, 还是不行, Google说可能是因为driver没有权限去读取, 因为用sudo coriander 命令是可以检测到相机,但是用 coriander 命令就不可以。 参考(http://answers.ros.org/question/48244/unable-to-get-point-grey-usb-camera-work-in-ubuntu/ )
于是修改文件:“sudo gedit /etc/udev/rules.d/10-pointgrey.rules” 改成

SUBSYSTEM=="usb", ATTRS{idVendor}=="1e10", ATTRS{idProduct}=="2002", GROUP="plugdev", SYMLINK+="chameleon", MODE:="0666"

哦 之后又安装了 point grey的FlyCapture2 software 最终才可以启动这个傻逼相机。 启动方式是:

roslaunch pointgrey_camera_driver camera.launch 

我在camera.launch 文件里加如了显示图像的 image_view node 然后就可以用了。

标定

ROS自带的package,可以实现相机标定。先启动相机,然后再运行下面的代码,下面的代码里:其中参数size 11x8 注意是字母x,是棋盘内部角点个数,square为棋盘正方形边长(单位是米,m),注意刚刚开始标定的时候,CALIBRATE按钮是灰色的。

rosrun camera_calibration cameracalibrator.py --size 11x8 --square 0.06 image:=/usb_cam_node/image_raw camera:=/usb_cam_node

标定程序过程:
为了得到一个好的标定结果,应该使得标定板尽量出现在摄像头视野的各个位置里:
如标定板出现在视野中的左边,右边,上边和下边,标定板既有倾斜的,也有水平的,。
标定的过程中,terminal中出现下面的输出:

Added sample 1, p_x = 0.681, p_y = 0.728, p_size = 0.331, skew = 0.137

其中的x:表示标定板在视野中的左右位置。
y:表示标定板在视野中的上下位置。
size:标定板在占视野的尺寸大小,也可以理解为标定板离摄像头的远近。
skew:标定板在视野中的倾斜位置。

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

标定完成以后,窗口中的图像为标定后的结果,纠正了畸变。
并且,摄像机的各个参数会出现在标定程序的终端窗口中,如下:

ROS 学习-8<相机驱动安装及标定>_第1张图片
Camera parameter

如果对标定结果满意,点击COMMIT按钮将结果保存到默认文件夹
参考引用:ROS 教程之 vision: 摄像头标定camera calibration

你可能感兴趣的:(ROS 学习-8<相机驱动安装及标定>)