基于ros的机器视觉--摄像头标定

目的:摄像头是一种精密仪器,对光学器件要求较高,由于摄像头内部及外部一些原因,生成图像往往会发生畸变,为避免数据源造成误差,需要针对摄像头的参数进行标定。(引自ROS培训古月老师)这里我把视频学习整理了一下,仅用于个人记忆学习。

1.安装标定功能包

sudo apt-get install ros-kinetic-camera-calibration

2.摄像头标定流程

(1)启动摄像头 (在工作空间下 /home/catkin_ws)

roslaunch robot_vision usb_cam.launch

这里注意:采用的外接摄像头参数显示是无驱动版,但是却报错 error 22 ....,这里认为可能需要安装驱动,这里借鉴了一篇博客:

https://blog.csdn.net/qq_39989653/article/details/80393912

(2)启动标定包(~$)另外打开一个终端

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

这时会有显示标定窗口display。然后把棋盘格放入,角点会被识别,并被连接起来,如下图:

上下左右移动旋转棋盘格,右边上部X,Y,Size,Skew表示各个方向标定进度,直到CALIBRATE呈绿色,标定结束并点击,这时后台计算标定数据,耐心等待几分钟后,下面的SAVE、CMMIT会变成绿色,表示后台计算完毕。

同时终端会显示获得的标定参数。接着点击SAVE保存标定数据。

终端显示将标定数据默认保存路径:/tmp/calibrationdate.tar.gz(在目录Computer/tmp文件夹下的压缩文件)

关闭标定程序,标定结束。

(3)Kinetic的标定

Kinetic的标定与普通摄像头类似,要分别标定彩色摄像头和红外摄像头。(这里暂时没有拿Kinetic实际标定,待后面再记录)

(4)标定文件使用

标定完成以后,在/tmp/calibrationdate.tar.gz压缩包解压之后可以看到标定过程中的图像帧,主要用到的是生成的标定文件ost.yaml

 

打开该文件,是标定生成的参数。

将yaml该文件复制到功能包下,并在launch文件中写入就可以使用了

(5)kinetic标定文件使用

kinetic标定会生成两个标定文件,一个是彩色相机,一个是红外相机的。使用的时候把这两个文件都写入到launch文件。

例如:robot_vision是功能包名称,kinetic rgb calibration.yaml是彩色相机标定生成文件。

(6)使用标定文件可能会产生的错误

标定文件如ost.yaml(在此处复制到功能包后更名为camera_calibration.yaml)更改位置如下:

 

 

 

 
 
 
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值