确保usb或者typec摄像头插在主机上,我这里是typec摄像头,使用了一个usb-typec转接头。
windows在设备管理器中查看是否存在端口,如果没有,可以使用下面的软件进行尝试。
链接:https://pan.baidu.com/s/1hxp3m68W6NjY-3D7q8rGnA
提取码:659t
下载好打开就可以看到摄像头图像,记得打开摄像头盖子;
ubantu虚拟机的话在左上角:虚拟机–>可移动设备中连接摄像头设备,否则会报错
Cannot identify ‘/dev/video0’: 2, No such file or directory
在命令行输入sudo apt install ros-kinetic-usb-cam,注意更换自己的ros版本(这里示例为kinetic),ros版本查看,之后再参考这篇文章。下载安装并且使用usb cam包,另外,在编译的时候会遇见下面的错误
- Checking for module 'libv4l2'
-- No package 'libv4l2' found
用以下命令安装
sudo apt-get install libv4l-dev
另外还可能遇到[ WARN] [1683776373.276199899]: Camera calibration file /home/imu1/.ros/camera_info/head_camera.yaml not found.问题,其实这个只是warning,并不碍事,但是没有出现图像,是因为launch文件错误,将cam_usb-test.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="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>
最终效果展示