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

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

文章目录

  • 前言
  • 一、虚拟机调用本机摄像头
    • (1) 启动VMware USB 服务
    • (2) 连接本机摄像头
    • (3) 测试摄像头的连接
  • 二、安装usb驱动
  • 二、运行usb_cam.launch时出现select timeout的报错
    • 1.问题描述
    • 2.问题解决


前言

通过配置虚拟机调用本机摄像头,用户可以在虚拟机中直接使用摄像头设备,而不需要额外安装虚拟摄像头设备或者其他插件。这种方法极大地简化了虚拟机与物理设备的交互,使用户能够在虚拟环境中轻松实现视频采集和处理。具体配置步骤通常包括在虚拟机管理软件中(如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,如下图所示

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/846234.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vulhub中Nexus Repository Manager 3 未授权目录穿越漏洞(CVE-2024-4956)

Nexus Repository Manager 3 是一款软件仓库,可以用来存储和分发Maven、NuGET等软件源仓库。 其3.68.0及之前版本中,存在一处目录穿越漏洞。攻击者可以利用该漏洞读取服务器上任意文件。 环境启动后,访问http://your-ip:8081即可看到Nexus的…

web前端三大典型应用框架

以下是Web前端三大主流框架的作者、使用情况、典型客户。 框架名称 作者/主要开发者 使用情况 典型客户 Angular Google Angular是一个功能强大的前端框架,适用于开发大型和复杂的Web应用。它提供了一套完整的工具和生态系统,使得开发者可以高效地…

Java 虚拟机详解——Java虚拟机、垃圾回收、内存分配策略

文章目录 一、运行时数据区域程序计数器Java 虚拟机栈本地方法栈堆方法区运行时常量池直接内存 二、垃圾收集判断一个对象是否可被回收1. 引用计数算法2. 可达性分析算法3. 方法区的回收4. finalize() 引用类型1. 强引用2. 软引用3. 弱引用4. 虚引用 垃圾收集算法1. 标记 - 清除…

npm发布、更新、删除包

如何将自己开发的依赖包发布到npmjs上供别人使用?五个步骤搞定! 实现步骤: 创建自己的工具包项目,进行开发。注册npmjs账号。执行npm login在控制台登录,填写用户信息。执行npm publish发布包。更新及删除。 步骤一…

MongoDB~俩大特点管道聚合和数据压缩(snappy)

场景 在MySQL中,通常会涉及多个表的一些操作,MongoDB也类似,有时需要将多个文档甚至是多个集合汇总到一起计算分析(比如求和、取最大值)并返回计算后的结果,这个过程被称为 聚合操作 。 根据官方文档介绍&…

c++【提高】简单背包问题

时间限制 : 1 秒 内存限制 : 128 MB 有一个背包能装的重量 maxw (正整数,0≤maxw≤20000),同时有 n 件物品(1≤n≤100),每件物品有一个重量 w_i(正整数)和一个价值 p_i(正整数)。要求从这 n 件物品中任取若干件装入背包内,使背包的物品价值最大。 输入 第 1 行:背包最…

【Python Cookbook】S01E05 一键多值的字典

目录 问题解决方案讨论 问题 如果希望能够将一个键(key)映射到多个值(value)上,那么应该如何创建这个字典?(即所谓的一键多值字典 [multidict]) 解决方案 字典是一种关联容器&…

keepalived监控nginx进程

目录 1、说明 2、上传脚本 3、修改keepalived.conf 3.1 定义监控脚本 3.2 在实例中加入启用监控 4、keepalived.conf配置示例 1、说明 keepalived本身只是监控自身的进程是否挂掉,如果机器并没有挂机,只是nginx挂了,那么keepalived是不…

虚拟化软件(VMWare、VB)异常最后解决手段

Version V0.0:20240601 Ini 前言 这里描述的是常规的解决办法还是无法解决的严重问题,比如”虚拟化软件(VMWare、VB)“启动”虚拟机“、和”CPU硬件加速“开启不了等问题。 一、安装了加速器、游戏平台、模拟器的电脑 解决办法: 把这些…

把AI引入到低代码领域

前言 引入AI到低代码开发平台,如驰骋低代码,能够带来显著的利益和价值,具体体现在以下几个方面: 1. 提升开发效率 自动化设计:AI可以帮助设计者自动规划菜单体系,减少手动设计的时间和错误。快速表单设计…

【MySQL】聊聊order by 是如何排序的

CREATE TABLE t (id int(11) NOT NULL,city varchar(16) NOT NULL,name varchar(16) NOT NULL,age int(11) NOT NULL,addr varchar(128) DEFAULT NULL,PRIMARY KEY (id),KEY city (city) ) ENGINEInnoDB;构建一个表结构,以及数据。 本篇主要来分析下order by是如何进…

springboot游戏售卖商城网站-计算机毕业设计源码80257

摘 要 本论文主要论述了如何使用JAVA语言开发一个springboot 游戏售卖商城网站,本系统将严格按照软件开发流程进行各个阶段的工作,采用springbootvue.js相结合框架,采用B/S架构,面向对象编程思想进行项目开发。在引言中&#xff0…

Stable Diffusion安装记录II

文章目录 前言0 更改python路径(跳过)1 Torch is not able to use GPU1.1 确认显卡1.2 安装nvdia驱动 1.3 检查CUDA1.4更改启动脚本 2 依赖安装2.1 pip install报错2.2 git报错2.3 卡在installing requirements 3 启动咯~3.1 clip报错 4 成功运行4.1 遗留…

非全考研前后的学习历程

最近2年多的学习经历 记录从2021年下半年、到2024年中,共2年半时间的学习经历。 从2022年4月份开始,复习了大约8个月,2022年12月24日参加研究生统一入学考试。 政治:4本教材看了2遍,认为重要的和不太理解的知识点&a…

高级Web Lab2

高级Web Lab2 12 1 按照“Lab 2 基础学习文档”文档完成实验步骤 实验截图: 2 添加了Web3D场景选择按钮,可以选择目标课程或者学习房间。

ce编程语言:探索其深度与广度

ce编程语言:探索其深度与广度 ce编程语言,一个充满神秘与魅力的领域,吸引了无数编程爱好者的目光。然而,对于初学者来说,ce编程语言可能是一个充满困惑与挑战的迷宫。本文将带领你深入探索ce编程语言的四个方面、五个…

一款高性能的轻量级ORM数据映射框架——Chloe

Chloe 是一个轻量级的对象/关系映射 (ORM) 库。 查询接口类似于 LINQ。可以像 LINQ 一样查询数据并执行任何操作(联接查询 |群查询 |聚合查询 |插入 |批量更新 |批量删除 |分片)。 对应文档链接: https://github.com/shuxinqin/Chloe/wiki 适应数据库包括:SqlServer、M…

eNSP学习——连接RIP与OSPF网络、默认路由

目录 相关主要命令 实验一、连接RIP与OSPF网络 原理概述 实验目的 实验内容 实验拓扑 实验编址 实验步骤 1、基本配置 2、搭建RIP和OSPF网络 3、配置双向路由引入 4、手工配置引入时的开销值 实验二、使用OSPF、RIP发布默认路由 原理介绍 实验目的 实验内容 实…

LeetCode 算法:盛最多水的容器c++

原题链接🔗:盛最多水的容器 难度:中等⭐️⭐️ 题目 给定一个长度为 n 的整数数组 height 。有 n 条垂线,第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线,使得它们与 x 轴共同构成的容器可以…

Python编程练习小结

Python编程练习小结 变量是编程中的一个基本概念,用来存储数据。在 Python 中,变量的使用非常灵活,可以存储不同类型的数据,如整数、浮点数、字符串、列表、字典等。以下是 Python 中变量的一些基本用法和规则: 1. 变量的命名规则 变量名必须以字母或下划线 _ 开头,不能…