相机校准
概述
本教程展示如何获取单目相机的标定参数。
要求
1- 使用操作系统的包管理器安装相机校准解析器、相机信息管理器并启动测试 Ament Cmake:
sudo apt install ros-<ros2-distro>-camera-calibration-parsers
sudo apt install ros-<ros2-distro>-camera-info-manager
sudo apt install ros-<ros2-distro>-launch-testing-ament-cmake
2- 图像管道需要从工作区中的源代码构建:
git clone – b <ros2-distro> git@github.com:ros-perception/image_pipeline.git
另外,请确保您拥有以下内容:
尺寸已知的大棋盘。本教程使用 7x9 棋盘,方格大小为 20 毫米。 校准使用棋盘格的内部顶点点,因此“8x10”棋盘使用内部顶点参数“7x9”,如下例所示。 具有设定尺寸的棋盘格可以从`此处下载 <https:// calib.io/pages/camera-calibration-pattern-generator>`_.
光线充足、没有障碍物和其他检查板图案的区域
单目相机通过 ROS 发布图像
教程步骤
1- 在 GUI 中启动终端
2- 启动适用于您的特定相机的 ROS 驱动程序。
3- 确保相机正在通过 ROS 发布图像。这可以通过运行来测试:
ros2 topic list
4-这将向您显示所有已发布的主题,确保有一个 image_raw 主题 /camera/image_raw。要确认它是真实主题并实际发布,请检查主题 hz:
ros2 topic hz /camera/image_raw
5-启动相机标定节点
ros2 run camera_calibration cameracalibrator --size 7x9 --square 0.02 --ros-args -r image:=/my_camera/image_raw -p camera:=/my_camera
相机名称:
-c, --camera_name
出现在校准文件中的相机名称
棋盘选项:
您必须将一个或多个棋盘指定为一对 --size 和 --square 选项。
-p PATTERN, --pattern=PATTERN
calibration pattern to detect - 'chessboard','circles', 'acircles','charuco'
-s SIZE, --size=SIZE
chessboard size as NxM, counting interior corners (e.g. a standard chessboard is 7x7)
-q SQUARE, --square=SQUARE
chessboard square size in meters
ROS 通信选项:
--approximate=APPROXIMATE
allow specified slop (in seconds) when pairing images from unsynchronized stereo cameras
--no-service-check
disable check for set_camera_info services at startup
校准优化器选项:
--fix-principal-point
fix the principal point at the image center
--fix-aspect-ratio
enforce focal lengths (fx, fy) are equal
--zero-tangent-dist
set tangential distortion coefficients (p1, p2) to
zero
-k NUM_COEFFS, --k-coefficients=NUM_COEFFS
number of radial distortion coefficients to use (up to
6, default 2)
--disable_calib_cb_fast_check
uses the CALIB_CB_FAST_CHECK flag for findChessboardCorners
这将打开一个校准窗口,突出显示棋盘格。
6- 为了获得良好的校准,您需要在相机框架中移动棋盘,以便:
- 相机视野的左、右、上、下棋盘格
◦ X bar - left/right in field of view
◦ Y bar - top/bottom in field of view
◦ Size bar - toward/away and tilt from the camera
棋盘格充满整个视野
棋盘向左、右、上、下倾斜(倾斜)
7- 当棋盘围绕校准侧栏上的 4 个条移动时,长度会增加。当 4 个条全部呈绿色并且有足够的数据可用于校准时,“校准”按钮将亮起,单击它即可查看结果。校准大约需要一分钟时间。
8- 校准完成后,保存和提交按钮会亮起,您还可以在终端中看到结果。
9-按保存按钮查看结果。数据保存到“/tmp/calibrationdata.tar.gz”
- 10-要使用校准文件,请解压calibration.tar.gz
tar -xvf 校准.tar.gz
11-在文件夹中,可以使用用于校准的图像以及“ost.yaml”和“ost.txt”。您可以使用包含相机驱动程序指示的校准参数的 yaml 文件。