Bootstrap

【VMware虚拟机中ubuntu系列】—— 在虚拟机中使用本机摄像头的详细教程与常见问题分析及解决

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

通过配置虚拟机调用本机摄像头,用户可以在虚拟机中直接使用摄像头设备,而不需要额外安装虚拟摄像头设备或者其他插件。这种方法极大地简化了虚拟机与物理设备的交互,使用户能够在虚拟环境中轻松实现视频采集和处理。具体配置步骤通常包括在虚拟机管理软件中(如VMware、VirtualBox等)启用摄像头支持,并将物理摄像头设备映射到虚拟机中。此外,这种方法确保了数据的实时性和传输的稳定性,从而为用户提供了更为流畅和高效的操作体验。

一、虚拟机调用本机摄像头

VMware在默认情况下是没有打开主机摄像头的权限,故虚拟机中的可移动设备那栏,是没有任何关于摄像头接口的信息,如下图所示:

在这里插入图片描述

(1) 启动VMware USB 服务

具体的操作流程:
1.同时按住键盘Win+R打开运行框,
2.输入services.msc并回车,
3.在本机Windows系统中找到VMware USB Arbitration Service服务,将其设置为启动状态

设置的页面,如下图所示:

在这里插入图片描述

启动USB服务之后,以管理员的身份重新打开VMware

(2) 连接本机摄像头

1) 设置与虚拟机的连接
重启之后,虚拟机中的可移动设备一栏出现几个接口如下图所示,操作的步骤:
点击虚拟机(M)——可移动设备(D)——“找到摄像头”——断开与主机的连接,连接虚拟机

在这里插入图片描述

2)将虚拟机的连接接口设置成USB3.0:
点击虚拟机(M)——设置(S)——USB控制器——将USB改成USB3.0

在这里插入图片描述

3)查看是否连接成功
连接后虚拟机的Ubuntu右下角将出现摄像头图标,角标显示为绿色意味着已成功连接主机摄像头。如下图所示:

在这里插入图片描述

(3) 测试摄像头的连接

1)查看设备号

终端输入: ls /dev/video*

2)安装cheese

终端输入:sudo apt install cheese

完成安装后,

终端输入:cheese

即可调出本机的摄像头画面。

二、安装usb驱动

usb摄像头ros驱动的安装主要分为以下步骤:
(1) 下载usb_cam驱动,并创造ros工作空间

下载地址:https://github.com/ros-drivers/usb_cam

(2) 编译安装usb_cam驱动,在工作空间内使用catkin_make进行编译安装

(3) 修改usb_cam驱动的配置文件,将launch文件中的video_device参数值改成自己的设备号

(4) 启动摄像头节点

具体的操作过程可以参考我以下的博客:
【视觉传感器系列1】—— 如何在ubuntu中安装USB相机ros驱动并获取usb摄像头数据

二、运行usb_cam.launch时出现select timeout的报错

1.问题描述

报错的信息如下所示:

[ERROR] [1661421427.042574208]: select timeout
[usb_cam-1] process has died [pid 4965, exit code 1, cmd /home/chen/catkin_ ws/devel/tib/usb_cam/usb_cam_node_name:=usb_cam_log:=/home/chen/.ros/log/3cae771aname:=usb_cam245c-11ed-8ee0-000c29dacecf/usbcam1.log]
file:/home/chen/,ros/log/3cae771a-245c-11ed-8ee0-000c29dacecf/usb_cam1*.log

报错页面如下:

在这里插入图片描述

2.问题解决

原因:
usb接口不兼容导致。
解决:
对于虚拟机:先关机虚拟机里的系统,然后编辑该虚拟机设置,将USB接口改成3.0或3.1,再继续运行虚拟机即可。
具体操作步骤
点击虚拟机(M)——设置(S)——USB控制器——将USB改成USB3.0,如下图所示

在这里插入图片描述

;