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

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图形界面工具

版本的可控性

提示:如果要使用后续的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


http://www.kler.cn/a/501750.html

相关文章:

  • Windows安装ES单机版设置密码
  • 微信小程序中 隐藏scroll-view 滚动条 网页中隐藏滚动条
  • 计算机网络 (36)TCP可靠传输的实现
  • pyqt鸟瞰
  • 忘记了PDF文件的密码,怎么办?
  • Web开发中页面出现乱码的解决(Java Web学习笔记:需在编译时用 -encoding utf-8)
  • 【PyQt】如何在mainwindow中添加菜单栏
  • mac安装java17
  • GitLab CI/CD使用runner实现自动化部署前端Vue2 后端.Net 7 Zr.Admin项目
  • ASP.NET Core - 自定义中间件
  • (10)Ajax
  • Spring 核心指南(上):IoC 容器与配置方式详解
  • bert微调下游任务-情感分析
  • WRF模式与Python融合技术在多领域中的应用及精美绘图;Python助力WRF自动化运行、WRF模式前后处理等
  • 达梦8-DMSQL程序设计学习笔记1-DMSQL程序简介
  • ASP.NET Core 中,Cookie 认证在集群环境下的应用
  • c# 和python封装起保停
  • 功能篇:mybatis中实现缓存
  • JSON头文件调用
  • Fastapi0.115.6之Tortoise ORM0.23.0基本增删改查大全【亲测可用,仅供参考】
  • AIDD-人工智能药物设计-通过组合生物合成产生新的类似物的抗真菌费尔南型三萜多聚类素的生物合成表征
  • AI多模态论文解读:LLaVA-CoT:让视觉语言模型逐步推理
  • uni-app持久化登录简单实现
  • 八、系统托盘与配置面板
  • springmvc前端传参,后端接收
  • StarRocks Awards 2024 年度贡献人物