Ubuntu18.04上使用USB摄像头,出现VIDIOC_G_FMT error 22, Invalid argument这个错误

个人经验,每个人情况可能不同,仅供参考。

在Ubuntu18.04上使用USB摄像头(KS2A418)(驱动安装过程就不详说了,教程很多)。
首先用下面网站测试摄像头是没问题的,

https://webcamtests.com/

然后用下面的命令

roslaunch usb_cam usb_cam-test.launch

运行时出现VIDIOC_G_FMT error 22, Invalid argument这个错误,研究后发现是launch文件中的相机参数设置错误,launch文件如下。

<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="pixel_format" value="yuyv" />
    <!--<param name="color_format" value="yuyv" />--> 
    <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>

解决方法:
1.用下面命令查看接入的USB摄像头的设备号,如下图,可能有两个,然后更改<param name="video_device" value="/dev/video0" /> 中的 value,两个需要都试一试,我的是/dev/video0可用 。

ls /dev/video*

摄像头设备号

2.用下面命令查看相机参数,这里用哪个video*是根据第一步确定

v4l2-ctl -d /dev/video0 --list-formats-ext

然后根据查到的参数,将<param name="pixel_format" value="yuyv" />中的 value改为mjepg、yuyv、uyvy中的一个。
3.注释掉<param name="color_format" value="yuyv" />,即<!--<param name="color_format" value="yuyv" />-->
4.运行roslaunch即可。
USB摄像头运行图片

  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值