基于ROS自带工具的相机参数标定

前言

本文使用的是noetic版本ros,使用的是usb相机,标定流程下面两篇博客有详细的说明,这里记录一下出现的意外问题,博客里面没有提到这些问题。
先看这两篇:

https://huaweicloud.csdn.net/635665e8d3efff3090b5d34d.html

https://blog.csdn.net/KID_yuan/article/details/101272384#t0

问题小结

如果在launch文件里面参数设置不对,可能无法通过ros的驱动启动相机,可以先使用 xawtv 测试相机是否正常连接,xawtv安装命令:

sudo apt-get install xawtv

安装后,终端输入下面命令,X是相机映射的设备号,查看方法上面两篇博客有说明,一个相机映射了两个设备号的话,输入其中一个就行。

xawtv /dev/videoX

如果使用 xawtv 测试相机能正常打开,一般就是launch文件里面参数设置不对。

首先需要根据相机的参数调整分辨率参数,但就算成功通过ros的驱动启动相机,也可能出现绿屏的现象。
在这里插入图片描述
可以尝试把usb_cam-test.launch(该launch文件在安装ros的相机驱动时就存在,不需要自己创建)文件中光标显示的参数改为mjpeg,原本默认是yuyv格式。

在这里插入图片描述成功启动后会发布一个话题,话题一般是/usb_cam/image_raw,然后启动标定的程序注意棋盘格的角点行列数和棋盘格面积(单位:米),在终端启动程序的指令可以输入这两个参数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
相机标定是指确定相机内部和外部参数的过程,其中内部参数包括焦距、光心位置、畸变等,外部参数包括相机在世界坐标系下的位置和方向。标定的目的是将图像像素坐标转换成真实世界坐标。 在ROS中,相机标定可以通过使用camera_calibration包来实现。该包通过拍摄一组已知的物体,利用OpenCV的calibrateCamera函数求解相机的内部和外部参数。 具体流程如下: 1. 采集标定用的数据,包括一组已知的物体的图像和真实世界坐标。 2. 使用camera_calibration包中的rosrun camera_calibration cameracalibrator.py工具来进行标定。 3. 在标定工具中,选择标定相机和所使用的标定板,设置标定板的大小和类型,并在相机中显示标定板。 4. 通过移动标定板,采集一组图像和对应的真实世界坐标。 5. 根据采集到的数据,利用OpenCV的calibrateCamera函数求解相机的内部和外部参数。 6. 将求解出的相机参数保存到参数服务器中,以便在程序中使用。 7. 使用求解出的相机参数,将图像像素坐标转换成真实世界坐标。 相机标定的原理是利用已知的物体的真实世界坐标和相应的图像像素坐标,通过求解相机的内部和外部参数,将图像像素坐标转换成真实世界坐标。这个过程中,需要保证物体的真实世界坐标与图像像素坐标之间的对应关系是唯一的,否则会影响标定的精度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值