相机--相机标定实操

教程

camera_calibration移动画面示例

usb_cam使用介绍和下载

标定流程

单目相机标定

我使用的是USB相机,所以直接使用ros的usb_cam功能包驱动相机闭关获取实时图像,然后用ros的camera_calibration标定相机。

1,下载usb_cam和camera_calibration:

sudo apt install ros-${ROS_DISTRO}-usb-cam
sudo apt install ros-${ROS_DISTRO}-camera-calibration

2,在相机接入的控制系统中执行usb_cam驱动相机:

ros2 run usb_cam usb_cam_node_exe 

2,在电脑端执行camera_calibration

执行这个标定持续需要使用到图像发布的话题和相机的名称:

图像话题:

相机名称(frame_id):

启动camear_calibration:

ros2 run camera_calibration cameracalibrator --size 8x6 --square 0.024 --ros-args -r image:=/image_raw -p camera:=default_cam

size:

  • 8是每行的角点数(列数 )

  • 6 是每列的角点数(行数)

8和6是否可以互换,没测。

squarre:

棋盘格中每一个方格的边长,单位m。

4,移动棋盘格标定

启动camera_calibration之后就可以按照下面的视频的方式移动棋盘格进行标定的数据采集。

链接

注意:相机放置的位置一定要又足够的上下左右和前后移动达到空间,否则采集不到数据。

采集完数据,calibration按钮变为绿色,就可以点击calibration进行标定,等待标定完成,点击save,在终端可以查看文件保存的位置。点击commit之后,退出。

5,修改标定文件并使用

通过上面的标定步骤完成得到的是一个压缩文件,解压之后其中有一个.yaml文件就是标定数据文件。需要改动两个地方:

1,把文件名改为相机名称:

eg:

ost.yaml--->defualt_cam.yaml

2,打开文件,查看文件中的相机名称和自己使用的相机名称一不一样,不一样就改未自己的相机名称。

将文件复制到昵称程序使用标定文件的路径下即可使用。

问题

swscaler @ 0xaaaaf438c7e0] No accelerated colorspace conversion found from yuv422p to rgb24.

硬件加速不可用:你的系统可能缺少必要的硬件加速支持或驱动程序,无法提供从 YUV 到 RGB 的快速转换。

意味着 FFmpeg 在尝试将 YUV422P 格式的图像转换为 RGB24 格式时,没有找到任何硬件加速的方法来进行这个颜色空间转换。因此,它只能使用软件方式来完成这一任务,这通常会导致更高的 CPU 使用率,而且音频话题发送频率慢。

YUV 到 RGB 转换的需求:当你使用 usb_cam 节点以原始像素格式(如 YUYV 或 YUV422P)读取摄像头数据时,ROS 需要将其转换为更常用的 RGB 格式以便进一步处理。如果没有硬件加速选项可用,这个转换过程将由软件执行,但是速度慢。

-- 这个报警不影响标定。

FFmpeg:

这是一个命令行工具,用于格式转换、裁剪、合并、缩放等操作。它可以将音频和视频数据从一种格式转换为另一种,并且支持大量的编解码器和文件格式。

本质上就是具有音频存储和发送格式转换一套代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值