ROS学习——-ubuntu16.04之摄像头的标定目录


      • 一、进行摄像头的挂载
        • 1、打开ubuntu16.04,进入图像界面后,选择VM上面的用户看,右击,选择可移动设备
      • 二、安装相机校准功能包
        • 1、安装命令如下,没有安装的就安装,安装过的会提示已经安装
      • 三、启动ROS,进行摄像头的标定
        • 1、启动ROS
        • 2、新建一个终端,运行相机节点
        • 3、准备棋盘
        • 4、进行摄像头校正
        • 1、输入如下命令进行摄像头的校正
        • 2、将棋盘放入摄像区域,校正成功如下所示:在这里插入图片描述#### 3、保持校准1到5分钟左右,便会出现校准的成功的标志,如下所示:
        • 4、校准过程大约进行了1分钟左右,上面的==CALIBRATE==按钮会被激活,点击这个按钮后会进行实际的校准计算,这大约需要半分钟,计算成功后的界面所下所示,所有按钮都被激活:
        • 5、点击==SAVE==按钮保存校准信息,这时候,在左边的终端会出现存储的地址信息:==/tmp/calibrationdata.tar.gz==
        • 6、进入 ==/tmp文件==,解压calibrationdata.tar.gz文件,查询图像文件和校准参数

在嵌入式的开发过程中,特别是人智能的开发,在进行机器人的开发的时候,我们需要通过摄像头进行信息的采集,ROS开发也是这样,需要调用摄像头对信息进行采集,进一步进行数据分析判断,做出下一步的行动,特别是摄像头的识别,对于人工智能来说是一项重要的设备,本次博客林君学长将带大家了解ubuntu16.04如何进行摄像头的标定

一、进行摄像头的挂载

1、打开ubuntu16.04,进入图像界面后,选择VM上面的用户看,右击,选择可移动设备

在这里插入图片描述
上图中是我自己的摄像头名称,小伙伴的可能不一样,然后再圈圈4中点击连接,我的是连接好的,所以显示断开连接,小伙伴们最开始应该是连接

二、安装相机校准功能包

1、安装命令如下,没有安装的就安装,安装过的会提示已经安装

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

在这里插入图片描述
如上所示,我的之前已经安装成功了!

三、启动ROS,进行摄像头的标定

1、启动ROS

roscore

在这里插入图片描述

2、新建一个终端,运行相机节点

1)、注意这里的topic和service和后面矫正包订阅的并不一样,所以运行驱动的时候要重新映射

rosrun uvc_camera uvc_camera_node image_raw:=/camera/imagraw set_camera_info:=/camera/set_camera_info

在这里插入图片描述
相机节点启动成功后,笔记本电脑上面的摄像头会亮着哦,记得观察吧!林君的笔记本是联想的,亮着的!
2)、打印相机信息

rostopic echo /camera_info

在这里插入图片描述
我们可以看到D、P、K、R都是空的!

3、准备棋盘

1)、例如自己的棋盘是8*6的棋盘,如下所示:
在这里插入图片描述
注意:不同长宽的棋盘,后面启动相机标定时候设置的参数也就不同

4、进行摄像头校正

1、输入如下命令进行摄像头的校正

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

2、将棋盘放入摄像区域,校正成功如下所示:在这里插入图片描述#### 3、保持校准1到5分钟左右,便会出现校准的成功的标志,如下所示:


在这里插入图片描述

4、校准过程大约进行了1分钟左右,上面的CALIBRATE按钮会被激活,点击这个按钮后会进行实际的校准计算,这大约需要半分钟,计算成功后的界面所下所示,所有按钮都被激活:

在这里插入图片描述

5、点击SAVE按钮保存校准信息,这时候,在左边的终端会出现存储的地址信息:/tmp/calibrationdata.tar.gz

在这里插入图片描述

6、进入 /tmp文件,解压calibrationdata.tar.gz文件,查询图像文件和校准参数

1)、进入 /tmp文件夹

cd /tmp

在这里插入图片描述
2)、解压calibrationdata.tar.gz文件

tar -xvzf calibrationdata.tar.gz

在这里插入图片描述
打开其中一张图片查看:

xdg-open left-0010.png

在这里插入图片描述
3)、上图可以看到我们的图像文件有很多png格式的图片,这些就是我们图像文件,最下面就是我们的校准参数文件:
在这里插入图片描述
4)、将ost.txt文件改名为ost.ini

mv ost.txt ost.ini

5)、使用camera_calibration_parsers功能包的convert节点创建相机参数文件(camera.yaml)

rosrun camera_calibration_parsers convert  ost.ini camera.yaml

在这里插入图片描述
6)、将camera.yaml其保存在~/.ros/ camera_info/目录中,则ROS中使用的相机相关功能包会引用此信息

  • 在~/.ros/ 下创建== camera_info==目录
mkdir ~/.ros/camera_info
  • camera.yaml其保存在~/.ros/ camera_info/目录中
mv camera.yaml ~/.ros/camera_info/

在这里插入图片描述
7)、再次运行uvc_camera_node相机节点,如下所示:
在这里插入图片描述
这次没有出现关于校准文件的警告,对比之前:
在这里插入图片描述
8)、查看==/camera_info==话题,则可以看到D、K、R和P参数已被填充:

rostopic echo /camera_info

在这里插入图片描述
对比之前==/camera_info==的话题:
在这里插入图片描述
到这里,本次实验就结束啦,希望本次实验可以帮助小伙伴们更过的了解ROS的摄像头的应用哦!
以上就是本次博客的全部内容,有帮助的小伙伴记得点赞、关注哦!遇到问题的小伙伴评论区留言哦,林君学长耐心给大家解答,这个学长不太冷!
_陈一月的又一天编程岁月^ _ ^_