Realsense相机驱动安装及其ROS通讯配置——机器人抓取系统基础系列(四)
文章目录
- 概要
- 1 Realsense相机驱动安装
- Method1: 使用Intel服务器预编译包
- Method2: 使用ROS服务器预编译包
- Method3: 使用SDK源代码
- 方法对比总结
- 2 Realsense-ROS通讯配置与使用
- 2.1 Realsense-ROS包安装
- 2.2 ROS节点启动
- 小结
- Reference
概要
本文首先阐述了Realsense相机驱动安装的三种方法,并介绍其不同点;进一步地,介绍了其与ROS通讯包的安装及使用方法。
如果要使用ROS通讯,强烈建议读完全文再安装,因为驱动包和通讯包的版本要匹配。
1 Realsense相机驱动安装
Method1: 使用Intel服务器预编译包
安装教程见文末参考网站[2],主要使用sudo apt-get install
指令安装,这种安装方式的主要特点如下:
- 适用用户:适用于大多数 Linux 用户,特别是 Jetson 用户应遵循特定的 Jetson 安装指南。
- 特点:
1)快速安装,
2)无需编译。
3)包含图形工具和示例。 需要安装额外的开发包(librealsense2-dev 和 librealsense2-dkms)以进行开发。 - 优点:简单快捷,适合一般开发者和用户。
- 缺点:可能不包含最新的开发特性或修复。
Method2: 使用ROS服务器预编译包
这种方式直接安装适配ROS的驱动,代码如下:
sudo apt install ros-<ROS_DISTRO>-librealsense2*
- 适用用户:适用于使用 ROS 的开发者,特别是那些不需要图形界面工具的用户。
- 特点:
1)专注于 ROS 集成,不包含图形工具和示例。
2)需要配置 Ubuntu 仓库。
3)使用特定的 ROS 发行版命令安装(如 ros-humble-librealsense2*)。 - 优点:适合 ROS 项目,可以与 ROS 其他包和工具链无缝集成。
- 缺点:不支持所有 ROS 发行版(如 Foxy EOL)。
Method3: 使用SDK源代码
安装教程见文末参考网站[3],使用源代码的安装方式相对步骤较多,但优点也十分明显:
- 适用用户:高级用户、开发者或需要最新特性和修复的用户。
- 特点:
1)需要编译,可能需要更多的系统配置。
2)允许最大的灵活性和定制性。
3)可以获取最新的开发特性和修复。 - 优点:包含所有最新的特性和修复,适合需要定制或最新功能的项目。
- 缺点:安装过程更复杂,需要更多的时间和专业知识。
方法对比总结
图形工具的角度:
其中Method1和Method3提供了图形工具,图形界面工具为用户提供了一种直观的方式来操作和理解 RealSense相机的功能,而不需要直接编写代码或使用命令行界面。
图形界面的运行指令为realsense-viewer
,在本文也可以用来检查驱动是否安装成功,运行后如下图所示:
版本的可控性:
提示:如果要使用后续的realsense-ros通讯包,则需要保证librealsense包和realsense-ros包的版本要适配,适配查询参考网站[4],在查得适配的版本号之后,在网站[4]和[1]可分别下载适配的realsense-ros包和librealsense包
如果搭建的系统需要基于ROS通讯,推荐使用源代码安装的方式Method3,这种方式不仅提供realsence相机的图形界面工具,还能够控制安装的librealsense版本号。Method1安装的librealsense版本是默认的版本,版本号不可控,而且最新版的librealsense可能找不到匹配的realsense-ros通讯包。
相反如果用户后续不需要使用ROS,比如直接使用librelasense的Python接口,那么推荐Method1的方式。
2 Realsense-ROS通讯配置与使用
2.1 Realsense-ROS包安装
在使用上述Method3安装完librealsense之后,再按照上述红色提示部分,安装与librealsense版本匹配的realsense-ros包。
以ROS2为例,其步骤如下 [5]:
1)创建一个 ROS2 工作空间
mkdir -p ~/ros2_ws/src # 创建工作空间的 src 文件夹
cd ~/ros2_ws/src # 进入 src 文件夹
2)将下载到的对应版本的realsense-ros包放置到 ~/ros2_ws/src/
文件夹中,并返回工作空间
# 下载到的realsense-ros包的移动可以手动也可以用如下mv指令移动:
# mv 源文件路径 目标文件路径 # 如果是压缩包,需要先解压
cd ~/ros2_ws # 返回工作空间的根目录
3)安装依赖项
sudo apt-get install python3-rosdep -y # 安装 rosdep
sudo rosdep init # 初始化 rosdep
rosdep update # 更新 rosdep
rosdep install -i --from-path src --rosdistro $ROS_DISTRO --skip-keys=librealsense2 -y # 安装工作空间的依赖项
4)构建工作空间
colcon build # 使用 colcon 构建工作空间
5)配置环境
ROS_DISTRO=<YOUR_SYSTEM_ROS_DISTRO> # 设置你的 ROS 发行版,如:iron, humble, foxy
source /opt/ros/$ROS_DISTRO/setup.bash # 源 ROS 发行版的设置脚本
cd ~/ros2_ws # 返回工作空间的根目录
. install/local_setup.bash # 源本地设置脚本以配置环境
注意:替换 <YOUR_SYSTEM_ROS_DISTRO>
为你的系统使用的 ROS 发行版名称。
以上是针对ROS2的配置方式,针对ROS1的配置方式参考网站[6]。
2.2 ROS节点启动
下面指令分别使用了ROS2的node和launch文件启动realsense-ros [5]。
直接运行节点
ros2 run realsense2_camera realsense2_camera_node
# or, with parameters, for example - temporal and spatial filters are enabled:
ros2 run realsense2_camera realsense2_camera_node --ros-args -p enable_color:=false -p spatial_filter.enable:=true -p temporal_filter.enable:=true
或者直接运行launch文件
ros2 launch realsense2_camera rs_launch.py
ros2 launch realsense2_camera rs_launch.py depth_module.depth_profile:=1280x720x30 pointcloud.enable:=true
以上是针对ROS2的启动方式,针对ROS1的启动方式参考网站[6]。
小结
本文首先介绍了realsense相机的驱动的三种安装方法及其特点,并在此基础上,介绍了realsense-ROS通讯包的安装和使用,供相关人员参考。主要参考官方网站如下所示。
Reference
[1] Realsense SDK源代码下载网站:https://github.com/IntelRealSense/librealsense/releases
[2] Realsense驱动安装Method1:https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md
[3] Realsense驱动安装Method3:https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md
[4] Realsense-ROS通讯包查询下载网站:https://github.com/IntelRealSense/realsense-ros/releases?page=2
[5] Realsense-ROS2通讯包安装教程:https://github.com/IntelRealSense/realsense-ros
[6] Realsense-ROS1通讯包安装教程:https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy
相关文章:

Realsense相机驱动安装及其ROS通讯配置——机器人抓取系统基础系列(四)
文章目录 概要1 Realsense相机驱动安装Method1: 使用Intel服务器预编译包Method2: 使用ROS服务器预编译包Method3: 使用SDK源代码方法对比总结 2 Realsense-ROS通讯配置与使用2.1 Realsense-ROS包安装2.2 ROS节点启动 小结Reference 概要 本文首先阐述了Realsense相机驱动安装…...

linux安装nvm
下载命令 wget https://github.com/nvm-sh/nvm/archive/refs/tags/v0.39.1.tar.gz当前盘打开终端后的nvm文件夹中 mkdir -p /nvm/.nvm如果树根不够就用加sudo 解压文件 tar xvf v0.39.1.tar.gz输入pwd 确定当前文件完成路径 在当前文件中写入。bashrc文件及代码回车进入编辑…...

图论1-问题 C: 算法7-6:图的遍历——广度优先搜索
题目描述 广度优先搜索遍历类似于树的按层次遍历的过程。其过程为:假设从图中的某顶点v出发,在访问了v之后依次访问v的各个未曾被访问过的邻接点,然后分别从这些邻接点出发依次访问它们的邻接点,并使“先被访问的顶点的邻接点”先…...

基于 STM32 的多功能时间管理器项目
引言 在快节奏的生活中,时间管理显得尤为重要。本项目旨在通过 STM32 开发一个多功能时间管理器,功能包括计时器、闹钟和日历。用户可以方便地设置不同的提醒和计时任务,以更好地管理日常生活和工作。 项目名称 多功能时间管理器 环境准备 …...

Java工程结构:二方库依赖规约
文章目录 I jar 包分类一方库:二方库:三方库:II 专有名词GAV(GroupId、ArtifactId、Version):Maven 坐标III GAV 规则GroupId 格式ArtifactId 格式二方库版本号命名方式:主版本号.次版本号.修订号I jar 包分类 一方库: 本工程内部子项目模块依赖的库(jar 包)。 二…...
Django自带admin管理系统使用
1、admin路径地址 localhost:8000/admin 2、使用命令行创建超级管理员 python manage.py createsuperuser 之后按照提示一步一步往下走就好了。 3、修改管理员密码 python manage.py changepassword admin admin是超级管理员的账号 4、后台管理系统注册模型,…...

Jmeter 简单使用、生成测试报告(一)
一、下载Jmter 去官网下载,我下载的是apache-jmeter-5.6.3.zip,解压后就能用。 二、安装java环境 JMeter是基于Java开发的,运行JMeter需要Java环境。 1.下载JDK、安装Jdk 2.配置java环境变量 3.验证安装是否成功(java -versio…...

手摸手实战前端项目CI CD
由于图片和格式解析问题,为了更好阅读体验可前往 阅读原文 CI/CD 是 持续集成(Continuous Integration) 和 持续交付/部署(Continuous Delivery/Continuous Deployment) 的缩写,是现代软件开发中的一种自动…...
【Elasticsearch】搜索类型介绍,以及使用SpringBoot实现,并展现给前端
Elasticsearch 提供了多种查询类型,每种查询类型适用于不同的搜索场景。以下是八种常见的 Elasticsearch 查询类型及其详细说明和示例。 1. Match Query 用途:用于全文搜索,会对输入的文本进行分词,并在索引中的字段中查找这些分…...
K8S中的Pod调度之亲和性调度
亲和性调度 亲和性调度是一种比硬性指定节点(使用 nodeName 或 nodeSelector)更灵活的调度策略,它允许定义一组规则,根据这些规则,调度器会尝试将 Pod 调度到最合适的节点上,但如果找不到完全匹配的节点&a…...
高等数学学习笔记 ☞ 不定积分的积分法
1. 第一换元积分法 1. 基础概念:形如的过程,称为第一换元积分法。 2. 核心思想:通过对被积函数的观察(把被积函数的形式与积分表的积分公式进行比较),把外部的部分项拿到的内部(求原函数), 然后进行拼凑,…...

【HTTP】详解
目录 HTTP 基本概念啥是HTTP,有什么用?一次HTTP请求的过程当你在浏览器中输入一个浏览器地址,它会发送什么 ?---(底层流程)HTTP的协议头请求头(对应客户端)一些请求头请求方法 响应头…...

cursor重构谷粒商城01——为何要重构谷粒商城
前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…...

如何在 ASP.NET Core 中实现速率限制?
在 ASP.NET Core 中实现速率限制(Rate Limiting)中间件可以帮助你控制客户端对 API 的请求频率,防止滥用和过载。速率限制通常用于保护服务器资源,确保服务的稳定性和可用性。 ASP.NET Core 本身并没有内置的速率限制中间件&…...

STM32-笔记43-低功耗
一、什么是低功耗? 低功耗是指通过优化设计和采用特定的技术手段,降低电子设备在运行过程中消耗的能量,从而延长电池寿命、提高性能和减少发热。低功耗设计主要从芯片设计和系统设计两个方面进行,旨在减少所有器件的功率损耗&am…...

Facebook 隐私风波:互联网时代数据安全警钟
在社交媒体飞速发展的今天,个人数据的隐私保护已成为全球关注的焦点。作为全球最大的社交平台之一,Facebook面临的隐私问题,尤其是数据泄露事件,频繁引发公众的广泛讨论。从用户信息被滥用到数据泄漏,Facebook的隐私挑…...

Java 中的 ZoneOffset
介绍 在我们的这个世界上因为地球是圆的,所以每个国家都会有自己特定的时区。 时区在我们对时间的使用上扮演了非常重要的角色。但又因为时区的存在,又给我们带来了很多的麻烦,比如北美地区使用的夏令时和中国统一使用东 8 区的时间等。 当…...
amis模板语法、数据映射与表达式
模板字符串 表达式中获取变量 可以支持在普通文本中,使用数据映射语法:${xxx} 获取数据域中变量的值 "Hello ${text}"渲染 html 使用数据映射语法:${xxx} 获取数据域中变量的值,并渲染 HTML "<h1>Hello<…...
频域增强通道注意力机制EFCAM模型详解及代码复现
背景与动机 在深度学习领域,如何有效处理时间序列数据一直是一个重要的研究方向。近年来, 频域分析技术 在时间序列处理中展现出了巨大潜力,特别是离散余弦变换(DCT)因其能够高效捕捉低频信息并避免高频噪声干扰而受到广泛关注。 FECAM模型的开发正是基于这一背景,旨在…...

GitLab 国际站中国大陆等地区停服,如何将数据快速迁移到云效
代码托管平台 GitLab 国际站(GitLab.com)近日发布公告,官宣即将停止对中国大陆、香港、澳门地区的用户账号提供服务,并提供 60 天过渡期自行迁移账户数据,超期未迁移的账号可能会被 GitLab 清除。这一重要决策引起了全…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...

使用分级同态加密防御梯度泄漏
抽象 联邦学习 (FL) 支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...

ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
Webpack性能优化:构建速度与体积优化策略
一、构建速度优化 1、升级Webpack和Node.js 优化效果:Webpack 4比Webpack 3构建时间降低60%-98%。原因: V8引擎优化(for of替代forEach、Map/Set替代Object)。默认使用更快的md4哈希算法。AST直接从Loa…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)
UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
微服务通信安全:深入解析mTLS的原理与实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、引言:微服务时代的通信安全挑战 随着云原生和微服务架构的普及,服务间的通信安全成为系统设计的核心议题。传统的单体架构中&…...