小强ROS机器人教程(21)_获取usb摄像头30fps的1080p图像流及120fps的VGA分辨率图像流

小强主页

小车默认开机启动的usb摄像头节点,发布的是30fps的VGA(640*480)分辨率的图像流,可以满足大部分的视觉任务要求。usb摄像头硬件实际可以输出120fps的VGA图像流和高达30fps的1080p图像流,本文将介绍获取这两种规格图像的办法。

1.升级usb_cam节点源代码

由于usb2.0带宽问题,输出120fps的VGA视频和30fps的1080p视频,需要采用mjpeg格式。小车自带的usb摄像头ROS驱动包usb_cam,它不能以mjpeg方式读取小车usb摄像头,因此我们需要先升级usb_cam。升级办法请参考这篇帖子:http://community.bwbot.org/topic/144/解决ROS的usb_cam节点无法正常读取mjpeg格式摄像头的方法

2.测试120fps的VGA视频输出

首先关闭小车的开机启动任务

sudo service startup stop

修改usb_cam包中的ov2610mjpg.launch文件内容为下文所示

<launch>
  <node name="camera_node" pkg="usb_cam" type="usb_cam_node">
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="framerate" value="120" />  
    <param name="pixel_format" value="mjpeg" />
    <param name="camera_frame_id" value="ov2610" />
    <param name="io_method" value="mmap"/>
  </node>
</launch>

启动上述launch文件

roslaunch usb_cam ov2610mjpg.launch

新开一个窗口打印发布的图像topic帧率

rostopic hz /camera_node/image_raw

正常会出现类似下图的输出

subscribed to [/camera_node/image_raw]
average rate: 99.497
    min: 0.004s max: 0.016s std dev: 0.00246s window: 98
average rate: 99.324
    min: 0.004s max: 0.016s std dev: 0.00240s window: 198
average rate: 99.385
    min: 0.004s max: 0.016s std dev: 0.00236s window: 297
average rate: 99.247
    min: 0.004s max: 0.016s std dev: 0.00236s window: 396
average rate: 99.302
    min: 0.004s max: 0.016s std dev: 0.00232s window: 495
average rate: 99.296
    min: 0.004s max: 0.016s std dev: 0.00231s window: 595
average rate: 99.249
    min: 0.004s max: 0.016s std dev: 0.00230s window: 694

上文输出显示摄像头帧率大概是99fps,并没有达到120fps,这是因为环境光照的影响,如果环境光照亮度充足时是可以达到120帧的。

2.测试30fps的1080p视频输出

首先关闭小车的开机启动任务

sudo service startup stop 修改usb_cam包中的ov2610mjpg.launch文件内容为下文所示

<launch>
  <node name="camera_node" pkg="usb_cam" type="usb_cam_node">
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="1920" />
    <param name="image_height" value="1080" />
    <param name="framerate" value="30" />  
    <param name="pixel_format" value="mjpeg" />
    <param name="camera_frame_id" value="ov2610" />
    <param name="io_method" value="mmap"/>
  </node>
</launch>

启动上述launch文件

roslaunch usb_cam ov2610mjpg.launch

新开一个窗口打印发布的图像topic帧率

rostopic hz /camera_node/image_raw

正常会出现类似下图的输出

xiaoqiang@xiaoqiang-desktop:~$ rostopic hz /camera_node/image_raw
subscribed to [/camera_node/image_raw]
average rate: 29.986
    min: 0.028s max: 0.039s std dev: 0.00318s window: 30
average rate: 29.917
    min: 0.028s max: 0.039s std dev: 0.00296s window: 59
average rate: 29.912
    min: 0.028s max: 0.039s std dev: 0.00292s window: 89
average rate: 29.853
    min: 0.027s max: 0.042s std dev: 0.00308s window: 119
average rate: 29.874
    min: 0.027s max: 0.042s std dev: 0.00283s window: 149
average rate: 29.839
    min: 0.027s max: 0.042s std dev: 0.00282s window: 179
^Caverage rate: 29.849
    min: 0.027s max: 0.042s std dev: 0.00282s window: 202

小强主页 返回目录

results matching ""

    No results matching ""