ROS交流群
ROS Group
产品服务
Product Service
开源代码库
Github
官网
Official website
技术交流
Technological exchanges
激光雷达
LIDAR
ROS教程
ROS Tourials
深度学习
Deep Learning
机器视觉
Computer Vision

小强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
    

    小强主页
    返回目录


Log in to reply