ROS ros-kinetic-usb-cam安装报错汇总
今日笔者在安装并使用usb_cam的时候遇到了诸多问题,以下仅对笔者遇到的问题进行讨论
ROS usb_cam试错汇总
安装
方法一
首先是安装的过程,安装其实和网上大多数说的一样,先试试
sudo apt-get install ros-kinetic-usb-cam
- 如果 安装速度过慢,可考虑使用镜像源
- 安装的时候如果出现 无法获得锁 /var/lib/dpkg/lock-frontendopen (11: 资源暂时不可用或没有文件) 的问题可参考这篇文章
- 如果出现了 无法定位软件包的报错的话,很有可能是因为ROS版本没选对。即实际上ros-xxx-usb-cam中间的xxx是ROS版本参数,具体可能为kinetic/melodic/indigo等等,查看当前ROS版本方法参见这篇文章
安装完之后可按照以下代码运行测试文件
roslaunch usb_cam usb_cam-test.launch
.
方法二
直接github上copy一波
https://github.com/ros-drivers/usb_cam
后者详见这篇文章有教程
.
运行前准备
这一步非常重要,笔者就是在这里吃了大亏
- 检查摄像头是否连接到虚拟机(连接方法见后文 无法找到摄像头一栏)
- 用Linux自带的cheese试着打开摄像头(打开失败见后文 ‘foucus-auto’–令人迷惑的WARN一栏)
如果这都检查完了,那就愉快地阅读下去吧
.
运行
无法找到摄像头
遇到了几个错误,首先是 [ERROR] [1575905480.653251919]: Cannot identify ‘/dev/video0’: 2, No such file的错误,这往往是电脑的摄像头没有连接到虚拟机导致的。
按图索骥即可
.
select_timeout的debug
v4l2-ctl未安装–难以发觉的WARN
连接上摄像头之后,其仍可能出现 select_timeout的报错,此时就需要往上看几行,可能warning什么的会提示相应的报错信息
各位不妨看看笔者遇到的错误,按照以下思路寻找解决方案
从图中可以看到,其INFO里面先是说了找不到一个文件,然后WRAN里面出现了 v4l2-ctl:not found的信息,这其实是有个叫做v4l2-ctl的包未安装导致的,因此可按照上文提到的安装方法同样安装此包,而笔者直接用方法一就安装好了。
.
‘foucus-auto’–令人迷惑的WARN
接下来笔者遇到了这个问题
直接查那个WARN的意义是“无法对焦”,但是显然这不是导致ERROR的原因。经过一段时间的debug之后,其实是 usb3.0设置问题!
实际上笔者这时候才想起来用cheese看看能不能打开摄像头,结果发现是黑屏的。因此判断是虚拟机未实际读取到摄像头。
接下来只需要按图索骥即可
而进行完这一步之后,笔者终于成功地运行的usb_cam-test.launch!不知道看了之后对各位有无帮助呢?欢迎在下面留言!