Ubuntu 18.04环境下
第一步: 安装,usb_cam功能包
$ sudo apt-get install ros-melodic-usb-cam
第二步:先打开新的终端,运行roscore
$ roscore
第三步:运行节点:
新版本的usb_cam包在launch文件夹下有自带的launch文件,名叫usb_cam-test.launch,我们可以直接cd到这个文件夹下运行它。
再打开新终端:
$ roslaunch usb_cam usb_cam-test.launch
可能出现问题一:
ERROR: cannot launch node of type [usb_cam/usb_cam_node]: usb_cam
ROS path [0]=/opt/ros/kinetic/share/ros
ROS path [1]=/opt/ros/kinetic/share
process[image_view-2]: started with pid [18047]
[ INFO] [1562227746.112279935]: Using transport "raw"
解决方法:
需要安装这个文件
$ sudo apt-get install ros-melodic-image-view
然后重新运行launch文件就可以正常弹出摄像头图像窗口
必要时更改,在usb_cam-test.launch文件中,默认用的video0,打开本地摄像头,改成video1,就可以打开外接摄像头此处使用USB摄像头,将默认的改为video1,一般是,自带摄像头为video0,以此排序,我的是legion,Y7000P无摄像头,故不需要更改.
可能出现问题二:
ROS使用usb_cam驱动摄像头出现select timeout再启动usb_cam-test.launch文件进行测试,结果出现:
[usb_cam-1] process has died [pid 5685, exit code 1, cmd /home/maihao/catkin_ws/devel/lib/usb_cam/usb_cam_node __name:=usb_cam __log:=/home/maihao/.ros/log/2c9c30e2-95bf-11e68a44-000c294ebb02/usb_cam-1.log].
log file: /home/maihao/.ros/log/2c9c30e2-95bf-11e6-8a44-000c294ebb02/usb_cam-1*.log
问题分析:
一般只是摄像头的USB接口不匹配,需要更改,方法一改变接口,将usb2.0和usb3.0口换一下,如果是虚拟机安装需要在,虚拟机设置那里修改USB适配.
选中虚拟机右键设置即可更改.
最后再次运行即可顺利实现,usb的调用.
举例如下
//以下是在非虚拟机的条件下使用
ROS 连接ZED相机,但是没有什么用??
修改对应的launch文件的参数 ,对应的文件cam-test.launch
/opt/ros/melodic/share/usb_cam/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="1280" />
<param name="image_height" value="720" />
<param name="pixel_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>
执行
roslaunch usb_cam usb_cam-test.launch
rqt_image_view
显示如下:
使用rqt_image_view显示如下
没啥用。。。。。。。。。。。。。。。
简要分析:双目相机的图像显示在同一图片下,
另外图像的信息:压缩深度图像传输-压缩需要单通道32位浮点或16位原始深度图像(输入格式为:rgb8)。
等原因使得上述现象。