VMware虚拟机中ubuntu使用记录(5)—— 如何在ubuntu中安装USB相机ros驱动并获取usb摄像头数据

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

文章目录

  • 一、ROS下USB相机驱动
    • 1.准备工作
      • (1) 下载驱动
      • (2) 创建ROS工作空间
    • 2. 安装usb_cam驱动
      • (1) 安装usb_cam驱动包
      • (2) 编译代码
    • 3. 修改usb_cam驱动的配置文件
      • (1) 查看USB摄像头设备号
      • (2) 修改launch文件
      • (3) 编译usb_cam相机驱动
    • 4. 启动相机节点
      • (1) 启动ROS master
      • (2) 启动相机节点


一、ROS下USB相机驱动

在VMware虚拟机中安装USB相机的驱动并读取USB相机的图像数据,第一步先设置虚拟机能够正常的调用本机电脑的USB设备的接口,具体的设置操作可以参考下面这篇博客:
VMware虚拟机中ubuntu使用记录(4)—— 如何在VMware虚拟机中调用本机电脑的摄像头

1.准备工作

(1) 下载驱动

ROS版本USB摄像头驱动(建议从ROS官网给出的USB驱动源码包进行编译安装)

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

(2) 创建ROS工作空间

1)创建工作空间,终端输入:

roscore
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace

2)编译工作空间

cd ~/catkin_ws/
catkin_make

3)使得工作空间的环境变量生效

source devel/setup.bash

4)使得环境变量在所有的终端中都有效(将路径添加进.bashrc文件中):

按个人的喜好,此步骤不是必选项,执行这段代码之后,意味着电脑开机就自动生效该工作空间的ROS环境

echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc

5)保存.bashrc文件,查看添加的环境变量是否生效:

source ~/.bashrc

6)查看添加的环境变量是否生效,创建一个新终端,输入

echo $ROS_PACKAGE_PATH

回车之后会显示如下语句,如果打印的路径中包含当前工作空间的路径,则环境变量设置成功,整个操作页面如下图所示:

在这里插入图片描述
在这里插入图片描述

2. 安装usb_cam驱动

(1) 安装usb_cam驱动包

在catkin_ws/src目录下,下载驱动包:

https://github.com/ros-drivers/usb_cam

(2) 编译代码

切换至catkin_ws的目录下:

cd ..

编译工作空间:

catkin_make

等待编译完成即可,一般不会出现什么报错。

3. 修改usb_cam驱动的配置文件

(1) 查看USB摄像头设备号

把usb相机拔插前后哪个设备号发生变化,打开终端:

ls /dev/video*

注意:如果查看设备号出现报错:ls:无法访问‘/dev/video*‘: 没有那个文件或目录,具体的原因分析和解决可以参考我下面这篇博客:

拔插usb设备,重复输入查看设备号的指令,页面如下:

在这里插入图片描述

(2) 修改launch文件

查看usb_cam内部结构,在src/usb_cam目录下打开并编辑launch文件“

在这里插入图片描述

(3) 编译usb_cam相机驱动

1)切换至/catkin_ws目录工作空间,

 终端输入: catkin_make

编译成功如下:(建立相机节点:usb_cam_node)

在这里插入图片描述
2) 使得工作空间的环境变量生效:

 source devel/setup.bash  
 echo "source ~/catkin_ws/devel/setup.sh" >> ~/.bashrc          //永久生效环境

4. 启动相机节点

(1) 启动ROS master

  CTRL+ALT+T打开终端1:roscore

(2) 启动相机节点

在/catkin_ws目录下打开终端2:

 source devel/setup.bash                 //生效环境过环境后,可跳过此步
 roslaunch usb_cam usb_cam-test.launch   //启动相机

启动节点后,弹出一小窗,效果如下:

在这里插入图片描述

如果相机启动时出现如下警告:

在这里插入图片描述

原因:
由于相机没有进行标定,所以出现警告
解决:
使用张正友相机标定法进行标定,
具体的标定流程可以参考我这篇博客的记录:VMware虚拟机中ubuntu使用记录(6)—— 如何标定单目相机的内参(张正友标定法)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity 性能优化之数据面板(Statistics)(一)

提示:仅供参考,有误之处,麻烦大佬指出,不胜感激! 文章目录 前言一、unity 统计数据面板(Statistics)1.Audio属性2.Graphics属性 二、什么是Draw Call?三、Unity3D stats也可以通过代…

分享一篇关于AGI的短文:苦涩的教训

学习强化学习之父、加拿大计算机科学家理查德萨顿( Richard S. Sutton )2019年的经典文章《The Bitter Lesson(苦涩的教训)》。 文章指出,过去70年来AI研究走过的最大弯路,就是过于重视人类既有经验和知识&…

Photoshop中图像编辑的基本操作

Photoshop中图像编辑的基本操作 Photoshop中调整图像窗口大小Photoshop中辅助工具的使用网格的使用标尺的使用注释工具的使用 Photoshop中置入嵌入式对象Photoshop中图像与画布的调整画布大小的修改画布的旋转图像尺寸的修改 Photoshop中撤销与还原采用快捷键进行撤销与还原采用…

Leetcode—422. 有效的单词方块【简单】Plus

2024每日刷题&#xff08;126&#xff09; Leetcode—422. 有效的单词方块 实现代码 class Solution { public:bool validWordSquare(vector<string>& words) {int row words.size();for(int i 0; i < row; i) {// 当前这一行的列数int col words[i].length(…

HTML_CSS学习:浮动

一、浮动简介 相关代码&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>浮动_简介</title><style>div{width: 600px;height: 400px;background-color: #1c80d9;}img{float:…

c++多线程基础

简介 c多线程基础需要掌握这三个标准库&#xff1a;std::thread, std::mutex, and std::async。 1. Hello, world #include <iostream> #include <thread>void hello() { std::cout << "Hello Concurrent World!\n"; }int main() {std::thread…

如何获得 FHE Circuit Privacy

参考文献&#xff1a; [AJL12] Asharov G, Jain A, Lpez-Alt A, et al. Multiparty computation with low communication, computation and interaction via threshold FHE[C]. EUROCRYPT 2012: 483-501[DS16] Ducas L, Stehl D. Sanitization of FHE Ciphertexts[C]. EUROCRY…

连接和使用vCenter Server嵌入式vPostgres数据库

vCenter Server 早期支持内嵌(embedded)和外部(external)数据库,内嵌数据库就是vPostgres,基于VMware Postgres数据库(PostgreSQL数据库),外部数据库用的多的是Oracle数据库和SQL Server数据库。因为早期使用内嵌的PostgreSQL数据库只能用于小型环境,比如仅支持几十台…

EPAI手绘建模APP颜色、贴图、材质、样式

⑦ 颜色选择页面 1) 颜色环选色。 图 65 颜色选择器-颜色环 2) RGB选色。 图 66 颜色选择器-RGB 3) HSL选色。 图 67 颜色选择器-HSL 4) 国风颜色库选色。 图 68 颜色选择器-国风 5) CSS颜色库选色。 图 69 颜色选择器-CSS 6) 历史颜色&#xff1a;保存最近使用的多个颜色&…

Python设计模式 - 单例模式

定义 单例模式是一种创建型设计模式&#xff0c; 其主要目的是确保一个类只有一个实例&#xff0c; 并提供一个全局访问点来访问该实例。 结构 应用场景 资源管理&#xff1a;当需要共享某个资源时&#xff0c;例如数据库连接、线程池、日志对象等&#xff0c;可以使用单例模…

电路板/硬件---器件

电阻 电阻作用 电阻在电路中扮演着重要的角色&#xff0c;其作用包括&#xff1a; 限制电流&#xff1a;电阻通过阻碍电子流动的自由而限制电流。这是电阻最基本的功能之一。根据欧姆定律&#xff0c;电流与电阻成正比&#xff0c;电阻越大&#xff0c;通过电阻的电流就越小。…

OpenCV(六) —— Android 下的人脸识别

本篇我们来介绍在 Android 下如何实现人脸识别。 上一篇我们介绍了如何在 Windows 下通过 OpenCV 实现人脸识别&#xff0c;实际上&#xff0c;在 Android 下的实现的核心原理是非常相似的&#xff0c;因为 OpenCV 部分的代码改动不大&#xff0c;绝大部分代码可以直接移植到 …

Pytorch: nn.Embedding

文章目录 1. 本质2. 用Embedding产生一个10 x 5 的随机词典3. 用这个词典编码两个简单单词4. Embedding的词典是可以学习的5. 例子完整代码 1. 本质 P y t o r c h \mathrm{Pytorch} Pytorch 的 E m b e d d i n g \mathrm{Embedding} Embedding 模块是一个简单的查找表&#…

【多变量控制系统 Multivariable Control System】(3)系统的状态空间模型至转换方程模型(使用Python)【新加坡南洋理工大学】

一、转换式 二、系统的状态空间模型 由矩阵A, B, C, D给出&#xff1a; 三、由状态空间模型转化为转换方程模型 函数原型&#xff08;版权所有&#xff1a;scipy&#xff09;&#xff1a; def ss2tf(A, B, C, D, input0):r"""State-space to transfer functi…

【netty系列-03】深入理解NIO的基本原理和底层实现(详解)

Netty系列整体栏目 内容链接地址【一】深入理解网络通信基本原理和tcp/ip协议https://zhenghuisheng.blog.csdn.net/article/details/136359640【二】深入理解Socket本质和BIOhttps://zhenghuisheng.blog.csdn.net/article/details/136549478【三】深入理解NIO的基本原理和底层…

SpringCloud Alibaba Nacos简单应用(三)

文章目录 SpringCloud Alibaba Nacos创建Nacos 的服务消费者需求说明/图解创建member-service-nacos-consumer-80 并注册到NacosServer8848创建member-service-nacos-consumer-80修改pom.xml创建application.yml创建主启动类业务类测试 SpringCloud Alibaba Nacos 创建Nacos 的…

鸿蒙通用组件Image简介

鸿蒙通用组件Image简介 图片----Image图片支持三种引用方式设置图片宽高设置图片缩放模式设置图片占位图设置图片重复样式设置图片插值效果 图片----Image Image主要用于在应用中展示图片 Image($r(app.media.app_icon)).width(150) // 设置宽.height(150) // 设置高.objectF…

使用docker-compose编排lnmp(dockerfile)完成wordpress

文章目录 使用docker-compose编排lnmp&#xff08;dockerfile&#xff09;完成wordpress1、服务器环境2、Docker、Docker-Compose环境安装2.1 安装Docker环境2.2 安装Docker-Compose 3、nginx3.1 新建目录&#xff0c;上传安装包3.2 编辑Dockerfile脚本3.3 准备nginx.conf配置文…

redis集群-主从机连接过程

首先从机需要发送自身携带的replid和offset向主机请求连接 replid&#xff1a;replid是所有主机在启动时会生成的一个固定标识&#xff0c;它表示当前复制流的id&#xff0c;当从机第一次请求连接时&#xff0c;主机会将自己的replid发送给从机&#xff0c;从机在接下来的请求…

docker部署nginx并配置https

1.准备SSL证书&#xff1a; 生成私钥&#xff1a;运行以下命令生成一个私钥文件。 生成证书请求&#xff08;CSR&#xff09;&#xff1a;运行以下命令生成证书请求文件。 生成自签名证书&#xff1a;使用以下命令生成自签名证书。 openssl genrsa -out example.com.key 2048 …
最新文章