当前位置: 首页 > news >正文

【Ubuntu】虚拟机安装USB摄像头ROS驱动 usb_cam(最新方法)

写在前面:
🌟 欢迎光临 清流君 的博客小天地,这里是我分享技术与心得的温馨角落。📝
个人主页:清流君_CSDN博客,期待与您一同探索 移动机器人 领域的无限可能。

🔍 本文系 清流君 原创之作,荣幸在CSDN首发🐒
若您觉得内容有价值,还请评论告知一声,以便更多人受益。
转载请注明出处,尊重原创,从我做起。

👍 点赞、评论、收藏,三连走一波,让我们一起养成好习惯😜
在这里,您将收获的不只是技术干货,还有思维的火花

📚 系列专栏:【Linux】系列,带您深入浅出,领略控制之美。🖊
愿我的分享能为您带来启迪,如有不足,敬请指正,让我们共同学习,交流进步!

🎭 人生如戏,我们并非能选择舞台和剧本,但我们可以选择如何演绎 🌟
感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行~~~


文章目录

  • 引言
  • 一、源码安装方法
    • 1.1 下载摄像头驱动usb_cam
    • 1.2 查找FFmpeg库路径
    • 1.3 添加FFmpeg库路径到CMakeLists.txt
    • 1.4 编译usb_cam包
    • 1.5 修改usb_cam驱动配置
    • 1.6 修改launch文件
  • 二、软件包安装方法
    • 2.1 安装ROS Melodic版本的usb_cam
    • 2.2 安装相机标定功能包
    • 2.3 安装UVC相机功能包
    • 2.4 启动摄像头节点
    • 2.5 处理摄像头连接问题
    • 2.6 相机启动警告处理
    • 2.7 相机标定方法
    • 2.8 查看相机话题和数据
  • 三、总结
  • 参考资料


引言

  usb_cam是针对USB摄像头的ROS驱动包,简单来说就是得有这个功能包,才能在ROS中把摄像头打开。但是官网给出的目前最新版 usb_cam 已不再支持 ROS1,因此若想在 ubuntu18.04 上安装摄像头驱动 usb_cam,则需修改配置文件, 本篇博客介绍具体操作。

  本篇博客提供两种安装方法:源码安装方法、软件包安装方法。


一、源码安装方法

1.1 下载摄像头驱动usb_cam

  下载usb_cam文件见本博客置顶的资源。

  参考以下方法,将下载到主机的驱动文件发送到虚拟机Ubuntu中:

  windows主机和ubuntu互传文件的4种方法

  虚拟机共享文件位置 /mnt/hgfs/Share

  从官网下载的usb_cam切换到支持ROS1的master分支。

git clone https://github.com/ros-drivers/usb_cam.git
cd usb_cam
git checkout master

  编译usb_cam会报错,提示链接不到FFmpeg相关的库文件

  因此通过添加FFmpeg库路径到LD_LIBRARY_PATH来解决这些错误。

1.2 查找FFmpeg库路径

  查找编译所需的文件位置

locate libavcodec.so

在这里插入图片描述

  编辑~/.bashrc文件:打开终端,输入

sudo nano ~/.bashrc

  在.bashrc文件末尾添加如下内容

export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH

  保存并关闭文件,然后执行以下命令来使更改立即生效:

source ~/.bashrc

1.3 添加FFmpeg库路径到CMakeLists.txt

  CMakeLists.txt文件中的内容如下:

cmake_minimum_required(VERSION 3.5)
project(test_ffmpeg)set(CMAKE_LIBRARY_PATH "/usr/lib/x86_64-linux-gnu")find_package(PkgConfig REQUIRED)
pkg_check_modules(AVCODEC REQUIRED libavcodec)
pkg_check_modules(AVUTIL REQUIRED libavutil)
pkg_check_modules(AVFORMAT REQUIRED libavformat)
pkg_check_modules(SWSCALE REQUIRED libswscale)add_executable(test_ffmpeg test_ffmpeg.cpp)target_link_libraries(test_ffmpeg${AVCODEC_LIBRARIES}${AVUTIL_LIBRARIES}${AVFORMAT_LIBRARIES}${SWSCALE_LIBRARIES}
)

  测试文件编译通过。

  因此,在usb_cam文件夹下的CMakeLists.txt添加如下内容:

# 添加内容
set(CMAKE_LIBRARY_PATH "/usr/lib/x86_64-linux-gnu")find_package(PkgConfig REQUIRED)
pkg_check_modules(AVCODEC REQUIRED libavcodec)
pkg_check_modules(AVUTIL REQUIRED libavutil)
pkg_check_modules(AVFORMAT REQUIRED libavformat)
pkg_check_modules(SWSCALE REQUIRED libswscale)# 添加内容
target_link_libraries(${PROJECT_NAME}_node${AVCODEC_LIBRARIES}${AVUTIL_LIBRARIES}${AVFORMAT_LIBRARIES}${SWSCALE_LIBRARIES}
)

1.4 编译usb_cam包

  再次编译。

catkin_make

  若编译出错,使用如下指令清理构建目录,并重新编译项目:

cd ~/catkin_ws
rm -rf build/ devel/
catkin_make

1.5 修改usb_cam驱动配置

  找到自己的USB摄像头所对应的端口。

ls /dev/video*

在这里插入图片描述
  我的是/dev/video0 /dev/video1

1.6 修改launch文件

  在src/usb_cam目录下打开并编辑launch文件。

在这里插入图片描述


二、软件包安装方法

  下面介绍一种使用软件包安装usb-cam的方法。

2.1 安装ROS Melodic版本的usb_cam

  首先打开终端,输入:

sudo apt-get install ros-melodic-usb-cam

  这里melodic应该根据自己Ubuntu系统进行灵活变换,例如我使用的Ubuntu18.04,那么我对应的就是melodic版本。

2.2 安装相机标定功能包

  安装ROS Melodic版本的相机标定功能包。

sudo apt-get install ros-melodic-camera-calibration

  相机标定是确定相机内部参数(如焦距、主点等)的过程,这对于处理从相机获得的图像数据非常重要。

2.3 安装UVC相机功能包

  安装ROS Melodic版本的UVC相机功能包。

sudo apt-get install ros-melodic-uvc-camera

  UVC(Universal Video Class)是一种USB摄像头的标准,这个功能包允许ROS与UVC兼容的USB摄像头通信。

2.4 启动摄像头节点

  驱动安装完成后,会自带一个launch文件,我们打开launch文件就可以打开摄像头。

  启动名为usb_cam的ROS节点,并运行一个名为usb_cam-test.launch的launch文件。

roslaunch usb_cam usb_cam-test.launch

  这个launch文件配置了如何使用USB摄像头获取图像,并包括其他相关参数设置。

2.5 处理摄像头连接问题

  此时,保证相机已经开机,并通过usb接口连接至电脑,若出现以下问题:

在这里插入图片描述
  说明没有检测到USB摄像头,重新插入摄像头

在这里插入图片描述

2.6 相机启动警告处理

  如果报错如下select timeout
在这里插入图片描述

  说明USB兼容性选择错了,需要关闭虚拟机进行更改,点击编辑虚拟机,打开 USB 控制器,将 USB 兼容性改为USB 3.1,点击确定,重新打开虚拟机,再次运行即可打开摄像头。

在这里插入图片描述
  出现以下画面,成功打开摄像头。
在这里插入图片描述

2.7 相机标定方法

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

在这里插入图片描述

  说明相机没有进行标定,所以出现警告。

  参考以下链接进行相机标定:

  【相机内参标定】—— 如何标定单目相机的内参(张正友标定法)

2.8 查看相机话题和数据

   查看相机发布的话题。

rostopic list

在这里插入图片描述

  查看相机获取的数据。

rostopic echo /camera_info

在这里插入图片描述

  安装完成!


三、总结

  在Ubuntu18.04上安装USB摄像头驱动usb_cam的方法主要有两种:源码安装和软件包安装。

  • 源码安装方法
    需要从GitHub下载usb_cam源码,切换到支持ROS1的master分支,并通过添加FFmpeg库路径到LD_LIBRARY_PATH来解决编译错误。

  • 软件包安装方法
    通过使用sudo apt-get命令安装ROS Melodic版本的usb_cam、camera-calibration和uvc-camera功能包,然后运行usb_cam-test.launch文件来启动摄像头节点。

  安装完成后,可以通过rostopic list和rostopic echo命令查看摄像头发布的话题和获取的数据。

  总的来说,这两种方法都能在Ubuntu18.04上成功安装和使用usb_cam驱动,但在选择安装方法时,应根据自己的需求和环境进行选择。


参考资料

  1、windows主机和ubuntu互传文件的4种方法

  2、ubuntu利用usb_cam打开摄像头

  3、【相机内参标定】—— 如何标定单目相机的内参(张正友标定法)


后记:

🌟 感谢您耐心阅读这篇关于 虚拟机安装USB摄像头ROS驱动 usb_cam 的技术博客。 📚

🎯 如果您觉得这篇博客对您有所帮助,请不要吝啬您的点赞和评论 📢

🌟您的支持是我继续创作的动力。同时,别忘了收藏本篇博客,以便日后随时查阅。🚀

🚗 让我们一起期待更多的技术分享,共同探索移动机器人的无限可能!💡

🎭感谢您的支持与关注,让我们一起在知识的海洋中砥砺前行 🚀

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 机器学习--神经网络
  • 一文了解高速工业相机
  • 【Linux】—— muduo网络库的安装配置与使用
  • 【ansible】role流程实验
  • 硬件基础知识
  • 2024 屡发屡中的论文方向:时空预测!
  • Spring 事务与 MySQL 事务:深度解析与实战指南
  • 【mysql面试题】mysql复习之常见面试题(二)
  • 手把手教你实现大模型RAG系列教程- 01大模型应用技术介绍
  • 股指期权交易详细基础介绍
  • Mac 搭建仓颉语言开发环境(Cangjie SDK)
  • 【homebrew安装】踩坑爬坑教程
  • sql中拼接操作
  • 计算机三级网络技术总结(五)
  • 昂科烧录器支持Senasic琻捷电子的蓝牙低功耗芯片SNP746
  • 【腾讯Bugly干货分享】从0到1打造直播 App
  • ➹使用webpack配置多页面应用(MPA)
  • 4. 路由到控制器 - Laravel从零开始教程
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • flask接收请求并推入栈
  • Java超时控制的实现
  • PHP 小技巧
  • Rancher-k8s加速安装文档
  • React-flux杂记
  • Selenium实战教程系列(二)---元素定位
  • Theano - 导数
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 可能是历史上最全的CC0版权可以免费商用的图片网站
  • 利用jquery编写加法运算验证码
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 三分钟教你同步 Visual Studio Code 设置
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一个JAVA程序员成长之路分享
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • 专访Pony.ai 楼天城:自动驾驶已经走过了“从0到1”,“规模”是行业的分水岭| 自动驾驶这十年 ...
  • #includecmath
  • $(this) 和 this 关键字在 jQuery 中有何不同?
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (1)Nginx简介和安装教程
  • (1)虚拟机的安装与使用,linux系统安装
  • (2)STL算法之元素计数
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计高校学生选课系统
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (四)opengl函数加载和错误处理
  • (一)硬件制作--从零开始自制linux掌上电脑(F1C200S) <嵌入式项目>
  • (原创)boost.property_tree解析xml的帮助类以及中文解析问题的解决
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)【Hibernate总结系列】使用举例
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • .apk文件,IIS不支持下载解决
  • .Mobi域名介绍
  • .net core 6 使用注解自动注入实例,无需构造注入 autowrite4net