Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置

2023-05-16

最近因为学习开发需要,要开始接触一些视觉相关的内容,拿到了一个Inter 的D435i深度相机,记录一下在Ubuntu18环境下配置SDK 包的历程

目录

  • 写在开头
    • 最新的SDK 支持ROS2 Wrapper
    • ROS1 Wrapper支持较老版本的SDK
  • Intel官网的安装文档
    • 安装须知(来自官网)
    • SDK安装(拔掉相机进行)
    • SDK编译
    • 相机试运行
  • 安装ROS Wrapper

写在开头

注意
Intel官方最新版的librealsense版本与ROS1的ROS Wrapper是 版本不一致的,且ROS Wrapper支持的是较低版本的SDK ,具体可以去网站查看

最新的SDK 支持ROS2 Wrapper

如果完全按照后文从git仓库克隆的方法安装的话,一般安装的都是最新版的librealsense以及ROS2 Wrapper,两者一般情况下是相互匹配的。如果是手动安装或是从其他地方离线获取了库文件,就可能存在版本不匹配的问题,查看librealsense的版本方法如下:
librealsense/目录下,打开package.xml文件,第十行左右有版本描述<version>2.51.1</version>
在这里插入图片描述

以该版本为例,其支持的SDK 为v2.51.1,与ROS2 Wrapper 4.51.1相匹配

ROS1 Wrapper支持较老版本的SDK

在这里插入图片描述
因此如果使用的是ROS1环境,建议手动下载sdk包,以及支持Ros1与librealsense v2.50.0的ROS Wrapper,后文的克隆仓库步骤就可以跳过了。

Intel官网的安装文档

文档链接

安装须知(来自官网)

  • D435i is supported on Linux, Windows 10. Requires FW 5.11.6.250+.

SDK安装(拔掉相机进行)

  • 更新Linux内核:
    sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

  • 克隆远端仓库git clone https://github.com/IntelRealSense/librealsense.git

  • 安装依赖sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev

  • 在克隆的本地仓库路径下,cd librealsense\

  • 运行许可脚本./scripts/setup_udev_rules.sh

  • 下载并编译内核模块./scripts/patch-realsense-ubuntu-lts.sh

  • 注意,这一步的代码运行时间会很长,要耐心等待remote :Counting objects运行完毕,约有1.5Gb的内容要获取与下载:在这里插入图片描述

  • 安装结束:

  • 在这里插入图片描述

  • 安装硬件基础包:

    • cd ./scripts/
    • ./patch-arch.sh

SDK编译

  • 在librealsense根目录下创建build文件夹:mkdir build && cd build
  • 使用cmake ..预编译,有以下三种具体方式
    • cmake ..:默认构建设置为在Debug模式下生成核心共享对象和单元测试二进制文件。使用-DCMAKE_BUILD_TYPE=Release进行优化构建。
    • cmake ../ -DBUILD_EXAMPLES=true:同时编译demos和tutorials ——我使用这个
    • cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=false:针对没有OpenGL 或X11的系统
  • 清除安装,生成项目,安装至系统:sudo make uninstall && make clean && make && sudo make install
    • 注意,这一步如果因为网络原因无法连接到‘libcurl’,可以去github手动下载,然后修改/librealsense/CMake目录下的external_libcurl.cmake文件,注释掉20行左右的GIT_REPOSITORY "https://github.com/curl/curl.git"
    • 下载 后的文件夹改名为libcurl存放于目录/librealsense/build/third-party
    • 如果出现报错:gcc: internal compiler error,可能是因为设备没有足够的运行内存,可以尝试关掉一些正在运行的app再次make一下,确保RAM大于2GB(虚拟机注意)

相机试运行

进入文件目录build/examples/capture根目录下,插上相机,运行./rs-capture此时理论上会出现相机捕捉到的图像和深度图,而我在第一次运行时没有显示图像,并出现报错:

RealSense error calling rs2_pipeline_wait_for_frames(pipe:0x557831ce1260):
    Frame didn't arrive within 15000

说明通过py文件并没有正常启动摄像头,相关问题可查看:

https://github.com/IntelRealSense/librealsense/issues/2639
细细研究了一波他们的讨论后,认为应该是usb连接线以及电脑插口的问题,在命令行输入realsense-viewer,发现相机已经被电脑读取到,只是USB 端口是2.1
在这里插入图片描述
解决办法就是更换线材或是尝试升级固件,升级固件可参考realsense升级固件Firmware
再次尝试./rs-capture,即可正常显示:在这里插入图片描述

安装ROS Wrapper

官网教程
本部分一定要在前一步相机驱动安装好后进行

  • 创建工作空间mkdir -p ~/Vision_ws/src
  • 进入工作空间cd ~/Vision_ws/src
  • 克隆仓库代码(在src目录下):
    • git clone https://github.com/IntelRealSense/realsense-ros
    • cd realsense-ros/
    • git checkout `git tag | sort -V | grep -P "^2.\d+\.\d+" | tail -1
    • cd ..
    • git clone https://github.com/pal-robotics/ddynamic_reconfigure.git
  • 编译工作空间
    • 定义workspace:catkin_init_workspace(src中)
    • cd ..
    • catkin_make clean
    • catkin_make -DCATKIN_ENABLE_TESTING=False -DCMAKE_BUILD_TYPE=Release
    • catkin_make install
  • 定义环境变量:
    • bash终端:
      • echo "source ~/Vision_ws/devel/setup.bash" >> ~/.bashrc
      • source ~/.bashrc
    • zsh终端:
      • echo "source ~/Vision_ws/devel/setup.zsh" >> ~/.zshrc
      • source ~/.zshrc
  • 在ROS中测试相机节点roslaunch realsense2_camera rs_camera.launch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置 的相关文章

  • 企业MPLS专线的价格及计费方式——微云专线

    企业MPLS专线的费用 MPLS最大技术特色为可以指定资料包传送的先后顺序 xff0c 提供优质增值服务 xff0c 如 xff1a 差别服务 Diff serv 服务级别 CoS 和服务质量 QoS 等 因为MPLS整合了第三层路由和第二
  • 网络专线MPLS配置原理

    MPLS最早的意思是让中间设备只是查找一个表 xff0c 这样就可以相对更快地工作 xff0c 随着CPU运算能力的不断提高 xff0c 包的交换方式从原始到传统 一次路由多次交换 xff0c 最后再到快速的CEF数据交换方式 xff0c
  • 什么是BGP,BGP的优点有哪些?-Vecloud

    什么是BGP 边界网关协议 BGP 是运行于 TCP 上的一种自治系统 AS 的路由协议 xff0c 是唯一能够妥善处理不相关路由域间的多路连接的协议 通俗点讲 中国电信 中国联通 中国移动和一些拥有AS自治域的大型民营IDC运营商就可以通
  • 从linux接入到windows远程桌面

    Windows 提供了一种远程桌面系统 xff0c 可使用户远程登录进行系统管理或作为终端服务器运行各种应用软件 要连接Windows远程桌面 xff0c 需在Windows客户端安装 相应的软件 xff08 tsclient xff09
  • ssh命令使用总结

    前言 为了安全起见 xff0c 公司服务器只给开放了一个ssh端口其他服务器通过跳板机登录 xff0c 这样难免会造成一些不便 xff0c 但是ssh总体还比较强大 xff0c 可以通过配置 xff0c 方便容易的进行登录 也可以通过端口转
  • **matlab subs函数**

    matlab subs函数 matlab中subs 是符号计算函数 xff0c 表示将符号表达式中的某些符号变量替换为指定的新的变量 xff0c 常用调用方式为 xff1a subs S OLD NEW 表示将符号表达式S中的符号变量OLD
  • Python爬虫库推荐,建议收藏留用

    很多人学Python xff0c 都是从爬虫开始的 xff0c 毕竟网上类似的资源很丰富 xff0c 开源项目也非常多 Python学习网络爬虫主要分3个大的版块 xff1a 抓取 xff0c 分析 xff0c 存储 当我们在浏览器中输入一
  • 【深度学习】:Faster RCNN论文详解

    Faster RCNN详解 Faster RCNN 是在Fast RCNN的基础上 xff0c 进一步改进 xff0c 解决select search 算法选择候选框速度太慢的问题 Faster R CNN Towards Real Tim
  • 优化命令之taskset——查询或设置进程绑定CPU

    目录 一 xff1a taskset概述 二 xff1a 安装taskset工具 2 1taskset语法 2 2taskset用法 2 2 1指定PID为8528的进程在CPU1上运行 2 2 2更改具体某一进程 xff08 或 线程 x
  • Kubernetes:(十八)flannel网络

    目录 一 xff1a 什么是Flannel 1 1 Flannel实现原理 1 2 数据转发流程 二 xff1a Flannel网络概述 2 1 Vxlan 模式 2 1 1 通信流程 2 1 2 部署 2 1 3 相关配置 2 1 4 卸
  • 串口调试工具 O-ComTool V1.1.3

    新版本 O ComTool V2 0 0点击访问 写在之前 由于本人从事嵌入式工作 xff08 物联网方向 xff09 xff0c 经常需要和串口打交道 xff0c 面对各种规约 协议 xff0c 调试实在麻烦 xff0c 于是本人根据同事
  • 关于VSCODE的插件 一

    官方API文档 1 要学好TypeScript 官方教程 1 1TypeScript是一门弱类型语言 强类型和弱类型主要是站在变量类型处理的角度进行分类的 这些概念未经过严格定义 xff0c 它们并不是属于语言本身固有的属性 xff0c 而
  • Keil_debug

    提示 xff1a 文章写完后 xff0c 目录可以自动生成 xff0c 如何生成可参考右边的帮助文档 目录 前言 一 使用步骤 1 引入库 2 读入数据 总结 前言 程序员的工作中调试 debug xff0c 修bug xff0c 改bug
  • 前端基础知识梳理——html中的长度单位与颜色RGB值

    前言 我们在编写前端业务的时候很定会使用到长度单位 xff0c 这对于我们构建前端元素 xff0c 布局 xff0c 定位是很重要的 就像我们在盖房子的时候 xff0c 需要使用标尺线精确的测量 xff0c 也要使用颜色用于装饰页面 在ht
  • 【Hadoop】熟悉常用的HBase操作(Java实现)

    一 实验平台 操作系统 xff1a Linux deepin Hadoop版本 xff1a 2 7 7 HBase版本 xff1a 1 2 6 Java IDE xff1a Eclipse 二 实验内容 1 使用 Hadoop提供的Java
  • Hadoop权威指南:知识梳理(一)

    第一章 xff1a 初识Hadoop MapReduce三大设计目标 xff1a 为只需要短短几分钟或几个小时就可以完成的作业提供服务运行于同一个内部有高速网络连接的数据中心内数据中心内的计算器都是可靠的 专门的硬件 提供Hadoop支持的
  • tasksel —– ubuntu里面方便安装服务的软件

    用这个软件可以方便安装dns server lamp kubuntu desktop ubuntu desktop xubuntu之类的软件包 这个软件在ubuntu server里是预装的 xff0c 而在桌面版里是不预装的 xff0c
  • 信号量能被 FixedThreadPool 替代吗?

    Semaphore 信号量 从图中可以看出 xff0c 信号量的一个最主要的作用就是 xff0c 来控制那些需要限制并发访问量的资源 具体来讲 xff0c 信号量会维护 许可证 的计数 xff0c 而线程去访问共享资源前 xff0c 必须先
  • 带参数的宏定义(宏函数)

    宏函数没有普通函数压栈 跳转 返回等的开销 xff0c 可以提高程序的效率 宏的名字中不能有空格 xff1b 用括号括住每一个参数 xff0c 并括住宏的整体定义 xff1b 用大写字母表示宏的函数名 define SUM xff08 a
  • OVN&OVS代码下载、编译安装以及运行步骤

    1 代码下载 新建代码目录 home code 下载ovs代码 xff1a git clone b branch 2 15 https github com openvswitch ovs git 下载ovn代码 xff1a git clo

随机推荐

  • CMMI过程改进反例

    xfeff xfeff 最近一直在看 CMMI 的资料 xff0c 越看觉得越有意思 xff0c 今天看到过程改进的时候 xff0c 突然想起来之前所在的公司发生的过程改进相关的事儿来 公司通过 CMMI3 级认证之后 xff0c PMO
  • hadoop 超详细入门wordcount

    概述 今天博客收到了第一条评论 xff0c 感觉很赞哦 xff0c 最近一直在学习hadoop xff0c 主要是结合 实战Hadop xff1a 开启通向云计算的捷径 刘鹏 xff0c 然后apache官网的doc xff08 还是要以官
  • NOIP2018集训总结

    由于语文水平有限 xff0c 精美的桥段 xff0c 跌宕起伏的情节是不可能的了 xff0c 也许看起来会很智障 初赛 前排沙发祝贺墙根火 这次初赛主要在 读程序填空 上失分较多 先找几个不是原因的原因 xff1a 考前那晚宿舍里人巨吵考前
  • Hadoop大数据入门到实战(第四节) - HDFS文件系统(使用)

    这一小节我们来学习 xff1a 1 HDFS的设计 xff0c 2 HDFS常用命令 HDFS的设计 分布式文件系统 客户 xff1a 帮我保存一下这几天的数据 程序猿 xff1a 好嘞 xff0c 有多大呢 xff1f 客户 xff1a
  • HashMap什么时候重写hashcode和equals方法,为什么需要重写

    转载自 xff1a http bdcwl blog 163 com blog static 765222652009112744733937 HashSet内部是通过HashMap实现 只有使用排序的时候才使用TreeMap 否知使用Has
  • 运维如何解决终端部门投诉

    东部某省会城市的联通分公司 xff0c 内部业务系统都运行在VMware为基础的虚拟化环境中 xff0c 但联通的网络运维部在运维时却遇到了很多难题 由于V center的operation manager等云管产品只能监控到虚拟化网络的基
  • Latex并排显示两张图片

    begin figure htbp begin minipage t 0 5 linewidth centering includegraphics width 61 textwidth figures karate graph pdf c
  • HashMap原理深入理解

    hashing 哈希法 的概念 散列法 xff08 Hashing xff09 是一种将字符组成的字符串转换为固定长度 xff08 一般是更短长度 xff09 的数值或索引值的方法 xff0c 称为散列法 xff0c 也叫哈希法 由于通过更
  • ROS2通过话题的发布与订阅进行串口通信

    目录 步骤新建一个cpp header的包进入include xff0c 新建头文件minimal publisher hpp进入src目录 xff0c 新建文件minimal publisher cpp进入src目录 xff0c 新建文件
  • 【增大C盘内存——拓展卷】C盘与未分配空间之间有恢复分区的解决方法——安装diskgenius

    目录 1 简述 2 diskgenius的使用 1 简述 C盘内存告急 xff0c 一般方法是删除 移动 xff0c 还有一类就是拓展C盘的大小 通常来说 xff0c 电脑或笔记本刚买来的时候 xff0c 硬盘分区都是出厂时早就被先划分好的
  • 【使用ubuntu时电脑很卡,连切换个页面都要等好一会儿】

    之前用ubuntu我都是看运气的 xff0c 一打开运行内存必定到达92 左右 xff0c 有时候很卡很卡 xff0c 做个作业花了大半天 xff0c 只有偶尔莫名的顺畅 直至昨天 xff0c 我发现了一个地方 xff0c 将它改过来就好多
  • 使用宝塔部署JavaWeb前后端项目到服务器

    1 我使用的是腾讯云的轻量应用服务器 xff0c 在安装系统的时候可以选择使用宝塔Linux面板 2 安装了宝塔面板以后 xff0c 可以在应用管理中看到宝塔面板的登陆地址 在登录之前需要在用户名和密码那一栏登录 xff0c 来获取宝塔的用
  • VMware USB Arbitration Service无法启动的解决方案

    原文地址 xff1a VMware USB Arbitration Service无法启动的解决方案 作者 xff1a 尔心眼坏坏 问题描述 xff1a 常用VMware虚拟机的朋友们有时应该遇到这种情况 xff0c 就是装完VMware
  • VMware安装linux虚拟机(完整版)

    vmware的安装 去官网进行下载虚拟机 虚拟机下载地址 xff1a VMware16下载 vmware workstation pro 16官方版下载 虚拟机 华军软件园 第一步 打开安装包 第二步 选择稍后安装 是最快的方式 第三步 看
  • AWK中BEGIN和END的使用理解

    awk中begin和end的使用 awk使用 语法 awk 39 script 39 filenames awk使用语法中的script又由多个pattern 43 action组成 单个 pattern actions 应用不通的patt
  • 教你彻底搞懂Cocos Creator Tween

    Cocos 使用了Tween来代替原来的Action系统 今天来给大家讲解Tween如何使用 帮助大家掌握Tween的使用 xff0c 并且对Tween有一个更深入的了解 这里有个cocos creator学习交流点击可以直接进入 1 Tw
  • Hexo的常用指令合集

    Hexo xff1a 一个基于Node js的静态网页生成器 xff0c 常将它与Github Page搭配使用 xff0c 创建个人博客网站 hexo有许多主题 xff0c 其实最火爆的是NexT Matery等 xff0c 复制关键词到
  • (Demo3D 学习笔记)案例2:飞板传输货物,并按指定货位上架

    1 模型描述 通过红色飞板 xff0c 将输送机处的货物逐个传送到货架指定货位 xff0c 货位由货位表指定 2 模型布局 3 解决方案 3 1 载荷发生器 首先给载荷发生器创建自定义属性Loc xff0c 类型为表 在载荷发生器的属性窗口
  • (Demo3D 学习笔记)案例1:自创组件,可以一键自动连接场景中的其他相关组件

    1 模型描述 在场景中自创一个组件 xff0c 通过该组件 xff0c 可以一键自动连接场景中的各相关组件 2 模型布局 首先将自定义组件 xff08 绿色 xff09 分别连接输送机 xff08 左 xff09 xff0c 叉车 xff0
  • Ubuntu18.04安装配置使用Intel RealSense D435i深度相机以及在ROS环境下配置

    最近因为学习开发需要 xff0c 要开始接触一些视觉相关的内容 xff0c 拿到了一个Inter 的D435i深度相机 xff0c 记录一下在Ubuntu18环境下配置SDK 包的历程 目录 写在开头最新的SDK 支持ROS2 Wrappe