Linex Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置

2023-05-16

任务背景

在ROS环境中使用d435i,订阅图像和imu数据

任务概述

实现在ros中使用d435i主要有两步骤:1.安装d435i sdk,即librealsense; 2.安装realsense-ros驱动

具体步骤

d435i sdk安装与测试

安装d435i sdk有两种方式:1.apt安装; 2.源码编译安装(推荐)

1.apt 安装

a. 注册服务公共密钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE

b.添加服务至apt仓库

sudo add-apt-repository "deb https://librealsense.intel.com/Debian/apt-repo $(lsb_release -cs) main" -u

c.安装librealsense

sudo apt-get install librealsense2-dkms
sudo apt-get install librealsense2-utils

d.安装developer and debug 包

sudo apt-get install librealsense2-dev
sudo apt-get install librealsense2-dbg

2.源码安装(推荐)

a. 更新ubuntu distribution并安装依赖项

sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade
sudo apt-get install libudev-dev libgtk-3-dev libusb-1.0-0-dev pkg-config libglfw3-dev libssl-dev

b.克隆 librealsense 仓库

git clone https://github.com/IntelRealSense/librealsense.git

注:后边安装realsense-ros驱动包时,realsense-ros的github仓库里声称它们支持librealsense版本为v2.50.0, 但是笔者亲测最新版本也能支持,故在此未指定安装推荐版本

c.编译及安装

cd librealsense
sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && udevadm trigger
mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make -j8
sudo make install

d.测试安装是否成功

realsense-viewer 

注意启动后如显示无realsense硬件设备,如下图所示,需要插拔d435i usb口

 若sdk安装成功,相机正常工作,如下图所示。

 左上为rgb图像,右下为深度图,右上和左下分别为角加速度和线加速度示意。

  Realsense-ros 安装与测试

1.ROS系统安装

若计算机未安装ros机器人操作系统,则需要安装版本对应的ros1操作系统。

ubuntu 16.04 安装 ros kinetic / 18.04 安装 ros melodic / 20.04安装 ros noetic

各版本安装见Distributions - ROS Wiki ,点击对应的版本就能找到安装页面

2.Realsense-ros 安装

2.1 apt安装

sudo apt-get install ros-$ROS_DISTRO-realsense2-camera

$ROS_DISTRO须替换为系统安装的ros版本号(kinetic, melodic or noetic, etc)

2.2源码安装(推荐)

a.创建工作空间

cd
mkdir ros-realsense_ws && cd ros-realsense_ws
mkdir src && cd src

b.克隆源代码

https://github.com/IntelRealSense/realsense-ros.git
git checkout ros1-legacy

或者下载该仓库并解压到 ros-realsense_ws/src路径中。注意无论哪种方式都要切换或选择到ros1-legacy分支。

注意:GitHub - IntelRealSense/realsense-ros at ros1-legacy仓库描述说需要安装ddynamic_reconfigure,并提供了仓库地址。但笔者在实际实践中发现,若是在安装ros系统时选择了 ros-$ROS_DISTRO-desktop-full 包, 其中就已预装了ros-$ROS_DISTRO-dynamic-reconfigure 包,如果再编译安装ddynamic_reconfigure源码,则在后续启动realsense d435i时便会启动失败。因此这里推荐先搜索下计算机是否已经安装dynamic-reconfigure,如果没有就使用apt安装即可。

sudo apt search ros-$ROS_DISTRO-dynamic-reconfigure
sudo apt install ros-$ROS_DISTRO-dynamic-reconfigure ros-$ROS_DISTRO-dynamic-reconfigure-dbgsym

$ROS_DISTRO须替换为系统安装的ros版本号(kinetic, melodic or noetic, etc)

c.编译及source 工作空间

cd ..
catkin_make
source devel/setup.bash

d.启动测试

roslaunch realsense2_camera rs_camera.launch

在另一终端中输入:

rqt_image_view

便可查看rgb图和深度图。

也可运行:

roslaunch realsense2_camera demo_pointcloud.launch 

测试realsense d435i 对于感知环境的3D重建效果。

e.发布imu消息

在d步骤中默认启动测试rs_camera.launch或其他launch文件时,用rostopic list查看话题可以发现是没有d435i发布的imu话题 /camera/imu。 这是因为在ros-realsense 默认是不发布imu信息的。故而需要对launch文件内的参数对默认参数修改配置。

以在运行rs_camera.launch 是需要发布imu数据为例,首先要在realsense-ros包中的realsense2_camera/launch文件夹中找到rs_camera.launch并打开编辑。

将此launch文件中

<arg name="unite_imu_method"          default=""/>

修改为:

<arg name="unite_imu_method"          default="linear_interpolation"/>

并将:

<arg name="enable_gyro"         default="false"/>
<arg name="enable_accel"        default="false"/>

改为:

  <arg name="enable_gyro"         default="true"/>
  <arg name="enable_accel"        default="true"/>

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linex Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置 的相关文章

  • cout函数未定义问题和函数隐形类型转换

    cout函数未定义的一些问题 xff1a 看上面的图片 xff0c 有个朋友说 xff0c 按照上面using和修改了iostream为什么还是显示未定呢 xff1f 到底怎么办呢 xff1f 解决 xff1a include lt ios
  • C++ primer plus

    https github com lilinxiong cppPrimerPlus six https github com lilinxiong cppPrimerPlus six 最近在看C 43 43 primer plus这本书 x
  • ROS编译过程中的错误

    一 catkin make编译错误 xff08 1 xff09 Could not find a package configuration file provided by 34 gazebo ros control 34 with an
  • 算法导论学习笔记-2

    第二章 xff1a 函数的增长 2 1渐近记号 记号 定义 xff1a g n 61 f n 存在正常数c1 c2和n0 xff0c 使对所有n n0 xff0c 有0 c1 g n f n c2 g n xff1b 满足该定义 xff0c
  • C++理论复习之运算符重载

    C 43 43 运算符重载 重载操作符的一般格式 xff1a Type operator 43 Type A Type B 可重载与不可重载的操作符列表 操作符重载的注意事项 重载操作符必须有一个类类型的操作数 xff0c 不能重载内置类型
  • 计算机网络概述

    OSI参考模型 国际标准化组织 I S O 开发了开放式系统互联 O S I 参考模型 xff0c 以促进计算机系统的开放互联 开放式互联就是可在多个厂家的环境中支持互联 很少有产品是完全的O S I 模式 xff1b 相反 xff0c 其
  • PCL:如何自定义一个点云PointT类型

    1 xff0c 使用基础点云类型 include 34 pcl point types h 34 include 34 pcl impl instantiate hpp 34 include 34 foo h 34 include 34 i
  • IP地址

    ip地址的分类 A类地址 设计IPv4 A类地址的目的是支持巨型网络 xff0c 因为对规模巨大网络的需求很小 xff0c 因此开发了这种结构使主机地址数很大 xff0c 而严格限制可被定义为A类网络的数量 一个A类I P地址仅使用第一个8
  • 数据存储大端小端模式的理解

    Big Endian和Little Endian的定义如下 xff1a 1 Little Endian就是低位字节排放在内存的低地址端 xff0c 高位字节排放在内存的高地址端 2 Big Endian 就是高位字节排放在内存的低地址端 x
  • cocos2dx实例开发之经典坦克

    小时候红白机上玩的的经典90坦克 xff0c 看起来简单 xff0c 做起来其实有点复杂 xff0c 这里用原版素材还原了一个简版 预览 工程结构 游戏架构 包括场景 xff1a 欢迎界面 xff0c 主菜单游戏场景 步骤 菜单场景 对于图
  • 数值分析C++:统计(均值/方差/偏度/峰度),积分,微分,蒙特卡罗

    用C 43 43 实现几个简单的数值分析计算 xff0c 以便深入理解计算机在求解代数问题的过程 原理 以下主要针对普通实数 xff0c 以及一元代数 统计 算数平均值 几何平均值 方差 偏度 峰度 积分 求解定积分的一般数学描述式 但是由
  • python脚本编程:监控指定进程的cpu和内存使用率

    为了测试某个服务的稳定性 xff0c 通常需要在服务长时间运行的情况下 xff0c 监控其资源消耗情况 xff0c 比如cpu和内存使用 这里借助python的psutil这个包可以很方便的监控指定进程号 xff08 PID xff09 的
  • python脚本编程:实时监控日志文件

    用python可以很小巧轻便的实时监控日志文件增量刷新 xff0c 根据某些关键字进行匹配 xff0c 方便做运维异常告警 代码 span class token keyword import span time span class to
  • C++获取机器启动至今的时长和机器启动的时间戳

    根据当前时间戳与机器启动至今的时间长度相减 xff0c 可以精确计算出机器启动时刻的时间戳epochtime 代码 span class token macro property span class token directive key
  • pytorch基于RNN实现文本情感分析并用C++加载模型预测

    文本情感分析是机器学习自然语言处理NLP中常见的应用场景 xff0c 给定一段文本 xff0c 识别其中的情绪或态度 xff0c 对其进行分类并标签化 这个手段可以应用于书籍电影评价 用户对产品满意度调查 人机对话感情色彩提取和金融研报分析
  • pytorch使用matplotlib和tensorboard实现模型和训练的可视化

    pytorch构建和训练深度学习模型的过程中 xff0c 往往需要能够直观的观测到可视化的过程 xff0c 比如画出训练曲线等 对于简单的曲线绘制可以使用matplotlib库做出基本的图 xff0c 如果需要更加高级的可视化过程 xff0
  • Eigen库:常见错误(最坑的库,没有之一)

    1 3rdparty eigen eigen3 eigen src core assignevaluator h 833 error C2338 YOU MIXED MATRICES OF DIFFERENT SIZES Eigen Mat
  • win10 资源管理器打开FTP站点跳到IE

    原文链接 xff1a https zhidao baidu com question 549827901 html 我也遇到一样的问题 xff0c 参考很多网页 xff0c 最好终于解决了 xff0c 我不能保证一定解决你的问题 xff0c
  • C++11写的一个简洁的单例类型模版包装器

    单例是经常用到的设计模式实践 xff0c 对于全局使用的唯一资源事例一般都把类型封装成单例 xff0c 但是有时候觉得对于每个class都要改造一遍单例会觉得比较繁琐 xff0c 尤其是在预先不知道哪些类型会使用为单例的时候 为了应对这种情
  • C++获取对应进程的cpu和内存使用情况(支持linux和windows)

    运维监控程序中经常需要根据一个进程号pid去监控实时的cpu和内存占用 xff0c 以下整理了一个C 43 43 实现的简单例子 xff0c 并封装为方便跨平台调用的函数 代码 span class token macro property

随机推荐

  • 基于C++ spdlog日志库的完善封装

    spdlog是一个C 43 43 编写的极速日志打印库 xff0c 支持异步写日志以及多种模式和格式化选项 以下基于spdlog库封装了一个简单易用的功能类 xff0c 采用的是header only方式 xff0c 便于项目集成 代码 p
  • C++11写的线程安全STL库

    用C 43 43 写的程序 xff0c 如果用到了自带的标准模板库STL xff0c 在多线程访问的时候如果不加锁很容易造成segment fault导致程序崩溃coredump xff0c 也就是说C 43 43 标准的STL不是线程安全
  • 使用cmake构建C++ imgui上手项目(支持Windows,Mac,Linux)

    优秀的即时渲染C 43 43 GUI开发框架imgui xff08 https github com ocornut imgui xff09 在很多场合能发挥非常棒的作用 但是由于官方源码仓库一直没有提供基于cmake构建和创建新项目的工具
  • 使用cmake构建C++ workflow上手项目(支持Windows,Linux)

    开源的C 43 43 后端开发框架workflow xff08 https github com sogou workflow xff09 已经在成熟的互联网公司得到非常稳定广泛的应用 xff0c 它结合了网络 异步 计算多个后端常用场景
  • 使用cmake构建C++ live555流媒体服务上手项目(支持Windows,Linux)

    开源的流媒体视频和音频RTSP开发框架live555 xff08 http www live555 com xff09 对于学习和构建音视频流媒体或者直播服务是很方便的 官方的源码包对各平台编译单独列出了对应的makefile xff0c
  • C++20新特性

    目录 新增关键字 keywords conceptrequiresconstinitconstevalco awaitco returnco yieldchar8 t 新增标识符 Identifies importmodule 模块 Mod
  • pytorch导出模型并使用onnxruntime C++部署加载模型推理

    机器学习的框架众多 xff0c 为了方便复用和统一后端模型部署推理 xff0c 业界主流都在采用onnx格式的模型 xff0c 支持pytorch xff0c tensorflow xff0c mxnet多种AI框架 为了提高部署推理的性能
  • cocos2dx实例开发之飞机大战

    曾经 xff0c 微信里面可以玩一个打飞机的小游戏 xff0c 很有趣 xff0c 后来又没有了 xff0c 这里基于原版素材写了一个高仿微信打飞机的小游戏 预览 工程结构 环境 Mac os Mojavexcode 7 0cocos2dx
  • 调试leetcode代码:使用playground来调试

    leetcode在线编辑界面 在使用LeetCode时 xff0c 想要在本地上调试代码 xff0c 提供main函数的方法 xff1a 在线代码编辑功能 1 在红圈处选择你想要使用的语言 2 在黄圈处编写代码 3 在蓝圈处可选编辑测试案例
  • 蓝牙5/4.2/4.1/4.0数据吞吐率

    先给出结论 xff1a 蓝牙4 0 4 1的吞吐率 为0 305Mbps xff1b 蓝牙4 2的吞吐率 为0 803Mbps xff1b 蓝牙5的吞吐率 为1 434Mbps xff08 前提 xff1a 使用2Mbps调制速率 xff1
  • BLE 协议栈组成介绍

    框图 xff1a 1 协议由Host层和Controller层组成 xff1b 2 Controller层 xff1a PHY xff1a 基带物理层 xff0c 相关概念 xff1a 频段 调制 射频信道 发射功率 xff1b LL xf
  • ATT 的功能

    GATT Profile xff0c 通用属性配置 xff1a 类比位做煤球的模子 xff0c 每个SIG组织成员都可以向SIG提交这个 模子 xff0c 如果审核通过了 xff0c 那么这个模子就成为全世界通用的了 xff0c 不用管这个
  • FR8016HA & MS1791 & PHY6222 & TLSR8251 & YC1171 & HS6621 & BK3432 & N32WB031 对比介绍

    富苪坤 FR8016HA 巨微 MS1791 奉加微 PHY6222 泰凌微 TLSR8251 易兆微 YC1171 昂瑞微 HS6621 博通 BK3432 国民技术 N32WB031 芯片简介 FR8016HA 是一款面向 SOC xf
  • AD7606分析讲解

    一 ad7606数据手册分析 引脚配置和功能描述 ADC7606的典型工作特性 FFT xff08 快速傅里叶变换 xff09 http azaleasays com 2008 10 17 fft and digital signal pr
  • 什么是航位推算(Dead Reckoning )

    只有同时接收三到四个GPS GNSS卫星的信号才能实现精确的GPS GNSS定位 当仅依靠GPS GNSS定位时 xff0c 可能会出现位置精度降低或丢失的情况 例如 xff0c 当车辆在无法接收GPS GNSS信号的区域 xff08 隧道
  • STM32F103系列引脚定义-功能图

    器件功能和配置 xff08 STM32F103XX增强型 xff09 系统结构 管脚图
  • 如何用keil5打开keil4的工程

    参考网友的方法 xff1a 1 到http www2 keil com mdk5 legacy 官网下载keil4的支持包 2 正常流程安装所下载的安装包 xff1b 3 安装完成后 xff0c 用keil5打开工程 xff08 keil4
  • NMEA-0183 协议简介

    NMEA 0183 是美国国家海洋电子协会 xff08 National Marine Electronics Association xff09 为海用电子设备制定的标准格式 目前业已成了 GPS 北斗导航设备统一的 RTCM xff08
  • 串口通信校验方式(even,odd,space,mark)UART数据波形分析

    1 even 每个字节传送整个过程中bit为1的个数是偶数个 xff08 校验位调整个数 xff09 2 odd 每个字节穿送整个过程中bit为1的个数是奇数个 xff08 校验位调整个数 xff09 3 noparity没有校验位 4 s
  • Linex Ubuntu环境下 Intel Realsense D435I 驱动+ROS驱动安装配置

    任务背景 在ROS环境中使用d435i xff0c 订阅图像和imu数据 任务概述 实现在ros中使用d435i主要有两步骤 xff1a 1 安装d435i sdk xff0c 即librealsense xff1b 2 安装realsen