使用ROS-UsbCam节点驱动相机并进行标定(支持realsense)

大家好,我是小鱼,今天来说一首如果使用ros自带的相机驱动来进行相机标定。

还有一个小技能,当我们使用realsense相机时,不安装驱动也可以使用其相机的RGB通道,只要对应的video编号能对上即可。

1.使用ROS usb_cam驱动相机

1.1 安装usbcam

Kinetic:

sudo apt-get install ros-kinetic-usb-cam

Melodic:

sudo apt-get install ros-melodic-usb-cam

其他版本

sudo apt-get install ros-版本名称-cam

1.2 修改launch文件

进入目录:

roscd usb_cam
cd launch
sudo gedit usb_cam-test.launch 

目前主要修改device和width两个参数,可以使用ls /dev/video*查看系统视频设备。


  
    
    
    
    
    
    
    
    
  
  
    
  

1.3 启动相机

roslaunch usb_cam usb_cam-test.launch

2 使用ROS进行相机标定

2.1 使用ROS自带的标定程序进行标定。

  • 小工具:棋盘格pdf在线生成网站:后台回复标定板即可获取,生成后使用一比一打印要比手动量的要精准哦。
  • 标定完成后点击Save可以保存标定所用的图片和参数矩阵。在终端里会输出标定产生的压缩包,默认放在/tmp目录下。

2.2 运行标定程序

首先运行4.1中的相机程序

roslaunch usb_cam usb_cam-test.launch

运行前需要根据你的棋盘格修改参数

  • 一个是size参数为棋盘格角点数量比如8x9=72个格子的棋盘格,角点个数为7x8=63个,size参数就要写7x8
  • 另外一个参数为square,传入的参数为棋盘格一个小格子的宽度(注意单位为m)
  • image,图像话题的原始数据默认为camera:=/usb_cam
rosrun camera_calibration cameracalibrator.py --size 10x7 --square 0.015 image:=/usb_cam/image_raw camera:=/usb_cam

2.3 生成标定文件

标定完成后点击Calculate会稍微有点卡顿,不要担心后台正在进行标定,完成后下面的SAVE和COMMIT按钮变为可用状态,点击SAVE即可保存标定完成后的文件。

点击commit即可把标定文件存储到系统的~/.ros/camera_info/xxx.yaml目录

2.4 在ROS中使用该参数

可以在usb_cam的launch文件中增加以下参数,重新启动usb_cam节点,即可使用该标定参数。

参数值小鱼这里写的是file:///home/dev/.ros/camera_info/ost.yaml,可打开目录~/.ros/camera_info/进行查看


添加完成后结果~


  
    
    
    
    
    
    
    
    
    
  
  
    
  

你可能感兴趣的:(机器人,ROS,相机标定,ROS)