ROS 摄像头的标定

2024-01-08 19:39:58

在ROS中,标定摄像头是一个重要的步骤,它是为了获取摄像头的内参外参,进而提高摄像头的定位精度。摄像头标定校正由镜头畸变相机内参(焦距、主点坐标等)相机外参(旋转和平移矩阵)等因素引起的图像失真和位置偏移。

ROS提供了camera_calibration功能包,可以用来进行单目双目相机的标定。

对于棋盘格图案的标定靶,可以将其打印出来并贴到平面硬纸板上以备使用。

以下是使用ROS进行摄像头标定的简要步骤:

1、安装所需软件包:

???sudo apt-get install ros-noetic-camera-calibration

2、准备棋盘格标定板:

???使用标准的棋盘格图案作为标定目标,其尺寸大小可以在标定过程中指定。

???将打印出来的棋盘格贴在一个平面硬纸板上,并确保在标定过程中能从不同角度和距离下捕捉到清晰的图像。

3、启动摄像头节点:

???根据摄像头类型启动相应的ROS驱动节点,如果是USB摄像头,则可以使用usb_cam包提供的launch文件启动。

4、运行camera_calibration工具:

启动camera_calibration工具,它会显示实时的摄像头画面并允许进行参数采集。

例如:rosrun?camera_calibration cameracalibrator.py --size 8x6 --square 0.024 image:=/camera/image_raw camera:=/camera

参数解释:

(1)size:标定棋盘格的内部角点个数,使用的棋盘一共有6行,每行有8个内部角点。

(2)square:这个参数对应每个棋盘格的边长,单位是米。

(3)image和camera:设置摄像头发布的图像话题。

根据使用的摄像头和标定靶棋盘格尺寸,相应修改以上参数,即可启动标定程序。

5、?收集数据:

在摄像头视野中不断移动棋盘格,使其出现在不同的位置、角度和距离,直到所有进度条达到绿色满格状态。

?当有足够的样本后,"CALIBRATE"按钮将变为可用状态。

6、标定过程:

点击"CALIBRATE"按钮开始计算标定参数。

如果标定成功,程序将输出一个yaml文件,其中包含了标定结果,包括相机的内参、畸变系数以及外参

7、应用标定参数:

?将生成的yaml文件加载到摄像头驱动节点配置中,以便在后续处理时自动对图像进行矫正。

8、?验证标定效果:

可以通过查看矫正后的图像来验证标定效果是否良好。

在进行摄像头标定时,需要注意以下几点:

标定板与摄像头距离:

标定过程中应保证标定板与摄像头之间的距离变化多样,包括远近、不同角度和位置,以便采集到足够的数据来准确估计摄像头的内参(焦距、主点坐标、径向畸变系数)和外参(相对于世界坐标系的位置和旋转)。

标定板尺寸与格数:

使用棋盘状的标定靶时,确保已知其每格的实际尺寸,并正确输入到camera_calibration工具中。棋盘格的数量也应足够多以提高标定精度,通常至少为5x6以上。

视野覆盖范围:

尽可能让标定板在摄像头的整个视野范围内移动,包括中心区域以及边缘区域,这样才能得到全面的参数信息,有效校正畸变。

立体视觉标定:

如果是双目或多目摄像头系统,除了单个摄像头的标定之外,还需要进行立体视觉标定,确保左右摄像头之间的时间同步以及相对位置关系准确。

文章来源:https://blog.csdn.net/2301_79503228/article/details/135463715
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。