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

本文讲述了在Ubuntu18.04上使用USB摄像头KS2A418遇到VIDIOC_G_FMT错误22的问题,通过测试设备号、调整相机参数和修改launch文件中的设置,提供了详细的解决步骤。

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

在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摄像头运行图片

要在Ubuntu 18.04上配置px4_ros_gazebo仿真环境并确保与ROS Melodic Morenia和Gazebo 9.0的兼容性,你需要特别注意软件版本的匹配。首先,确认你的Ubuntu版本是18.04 Bionic Beaver,这是因为Ubuntu 18.04预装的ROS版本是Melodic Morenia,而Gazebo的版本是9.0,这两者是相互兼容的。 参考资源链接:[Ubuntu 18详细教程:配置px4_ros_gazebo仿真环境(Melodic & Gazebo 9.0)](https://wenku.csdn.net/doc/64531db1ea0840391e76e64e?spm=1055.2569.3001.10343) 接下来,你需要使用官方提供的`ubuntu_sim_common_deps.sh`脚本来安装px4工具链。这个脚本可以为px4的开发环境设置依赖和工具,但不会自动安装Gazebo,以避免与系统中已有的ROS Melodic Morenia中的Gazebo 9.0版本冲突。执行以下步骤来使用脚本: 1. 打开终端并创建一个名为`ubuntu_sim_common_deps.sh`的新文件。 2. 使用文本编辑器打开该文件,并将官方脚本的内容复制进去。 3. 保存文件并赋予其执行权限,使用命令`chmod +x ubuntu_sim_common_deps.sh`。 4. 运行脚本,输入`./ubuntu_sim_common_deps.sh`来执行安装过程。 脚本将安装通用依赖和工具,包括Ninja构建系统等,而不会干扰现有的ROS和Gazebo版本。完成px4_toolchain安装后,你可以继续配置ROS Melodic和Gazebo 9.0环境,进行无人机仿真和开发工作。 这份教程《Ubuntu 18详细教程:配置px4_ros_gazebo仿真环境(Melodic & Gazebo 9.0)》会提供详细的步骤和最佳实践,帮助你在Ubuntu 18.04系统上成功搭建仿真环境,确保所有组件之间的兼容性。 参考资源链接:[Ubuntu 18详细教程:配置px4_ros_gazebo仿真环境(Melodic & Gazebo 9.0)](https://wenku.csdn.net/doc/64531db1ea0840391e76e64e?spm=1055.2569.3001.10343)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值