ROS usb-cam无法打开USB摄像头

usb-cam是一个用来打开摄像头并输出图像话题的ros package,可以自己建立工作空间git clone项目自己编译,也可以直接用sudo apt install ros-melodic-usb-cam安装,这时这个ros包安装在/opt/ros的ros默认路径下,不需要再添加环境路径。

我遇到的问题是

roslaunch usb_cam usb_cam-test.launch  

相机的灯只是闪了一下,然后报错,没法显示图像

这多半是因为usb_cam-test.launch文件的参数设置不对

<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video2" /> <!--usb cam is vedio2, laptop default camera is vedio0-->
    <param name="image_width" value="1280" />   <!--resolution has to be correct-->
    <param name="image_height" value="720" />  <!--my camera type is USBFHD08S, 1920*1080 or 1280*720 or 640*360, smaller resolution gains larger fps-->
    <param name="pixel_format" value="mjpeg" />  <!--my camera type is USBFHD08S which is mjpeg-->
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>

首先,如果要用usb摄像头而非笔记本自带摄像头,应该把video_device设置成/dev/vedio2

关键:分辨率(image_width、image_height)和像素格式(pixel_format)要设置正确!否则会出现上文摄像头只闪一下的情况

那么怎么知道自己的摄像头的分辨率和像素格式呢?当然是去查啊

我这里用的摄像头的电路板上写了它的型号是USBFHD08S,百度一下它的参数如下

可见像素格式是mjpeg,分辨率有三种都可以。

修改好这些参数后,再启动usb_cam-test.launch就没问题了!

猜你喜欢

转载自blog.csdn.net/benchuspx/article/details/108765979
今日推荐