ROS下摄像头的标定方法教程
This article was original written by XRBLS, welcome re-post, 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摄像头。
然后进行一下步骤:
- 先启动usb_cam, 如果你是笔记本,这个通常会默认开启笔记本摄像头,这个时候要修该一下device1,启动方法:
rosrun usb_cam usb_cam_node
如果是笔记本,用ros_launch,; - 第二部,再启动calibration,
rosrun camera_calibration cameracalibration.py
加上参数 --size, --squre, image camera , image和camera对应的是你的image_raw的topic,camera取决于你用的哪个相机。
2之后,就可以弹出一个GUI,如果你的size正确(标定办的size),那么就会看到方格的匹配点,反复的改变标定板的位置,一直到calib那个按钮亮,亮了点击,自动会计算出参数。标定完成。