本文介绍 ROS下摄像头的标定方法教程

ROS下摄像头的标定方法教程

This article was original written by Jin Tian, welcome re-post, first come with https://jinfagang.github.io . but please keep this copyright info, thanks, any question could be asked via wechat: jintianiloveu

标定目的

简单来说,任何摄像头要使用都需要标定,为什么要标定呢?我们需要将摄像头与3D立体空间坐标系对应起来,就需要知道相机的内参。外参取决与摄像头与其他传感器的相对位置,所以我们标定的核心目的是得到相机的内参,以及相机对应的畸变。

相机标定其实非常简单,但是你需要一个标定板。标定版一般是8x6,这个8指的是板子上黑白相间隔的点(注意不是方格的个数)。

标定步骤

使用ros下面的包:camera_calibration 包可以方便的进行标定,可以用:rosdep install camera_calibration 安装这个包。

但是初次之外,你还需要一个 包来驱动摄像头,安装包:sudo apt install ros-kinetic-usb-cam 这个包用来驱动usb摄像头。

然后进行一下步骤:

  1. 先启动usb_cam, 如果你是笔记本,这个通常会默认开启笔记本摄像头,这个时候要修该一下device1,启动方法:rosrun usb_cam usb_cam_node 如果是笔记本,用ros_launch,;
  2. 第二部,再启动calibration,rosrun camera_calibration cameracalibration.py 加上参数 –size, –squre, image camera , image和camera对应的是你的image_raw的topic,camera取决于你用的哪个相机。

2之后,就可以弹出一个GUI,如果你的size正确(标定办的size),那么就会看到方格的匹配点,反复的改变标定板的位置,一直到calib那个按钮亮,亮了点击,自动会计算出参数。标定完成。