学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口

ROS摄像头驱动及数据接口

二维摄像头

我们平常用的最多的就是二维摄像头,大部分笔记本上都会自带一个2d的摄像头,这种摄像头的接口一般是USB接口,市面上看到的罗技摄像头、RGB摄像头等,它们的底层协议是一样的,我们可以用一个通用的驱动就可以把摄像头跑起来。

在ROS里面是有一个通用驱动的功能包,叫做:usb_cam

1、想要在ROS系统下驱动一个摄像头,需在终端输入如下指令安装功能包:

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

2、安装完成后运行一个驱动来打开摄像头:

 roslaunch usb_cam usb_cam-test.launch 

下面就是运行launch文件的内容,它做的事情就两件:
1、第一个node是启动了一个在usb_cam功能包下的usb_cam_node节点,
该节点的作用是驱动摄像头,配置摄像头的参数,驱动完成以后,通过话题将它发布出来
2、第二个节点是启动了一个在image_view功能包下的image_view节点, 这个是ROS提供的一个小的可视化界面的功能,就是执行launch文件之后看到的界面,启动之后它会订阅一个话题,并把话题中的图像渲染出来,就是我们看到的图像页面。

总的来说,该launch文件做的事情就是完成驱动和显示的两个功能

学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口_第1张图片

如果摄像头驱动成功的话,会有一个叫/usb_cam/image_raw/显示图像的界面出来
3、订阅你想要的话题

rqt_image_view

学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口_第2张图片

学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口_第3张图片
这里用1280×720分辨率的摄像头产生一帧图像的数据大小为2.7648MB,那一秒钟的视频有20~30帧的图像,那
在这一秒内产生的数据大小为60MB左右,如果机器人上的摄像头拍到的视频会传送给后端,如果图像靠WiFi来传输的话,会给宽带带来不小的压力。
所以,ROS提供了一种压缩图像的格式----CompressedImage格式学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口_第4张图片

三维摄像头

在ROS针对三维点云信息数据结构的定义如下
学习笔记(一)-古月ROS机器视觉开发入门 -ROS摄像头驱动及数据接口_第5张图片
点云单帧数据量也很大,如果使用分布式网络传输,需要考虑能否满足数据的传输要求,或者针对数据进行压缩。

你可能感兴趣的:(ROS)