遨博协作机器人ROS开发 - Intel RealSense深度相机ROS驱动

2023-05-16

目录

一、简介

二、环境版本

三、学习目标

四、知识储备

五、任务实施

六、任务拓展

七、课堂小结

八、课后练习


一、简介

大家好,欢迎关注遨博学院带来的系列技术分享文章(协作机器人ROS开发),在前面课程中我们讲解了MoveIt!机械臂编程相关知识,接下来我们来学习机器感知与机械臂控制相关课程。今天我们学习“Intel RealSense深度相机ROS驱动”。

Intel RealSense深度相机ROS驱动

二、环境版本

  • 主机系统版本:Windwos10 64位
  • 处理器型号:Intel-i7
  • 虚拟机版本:VMware Workstation 16 Pro
  • 虚拟机系统:Ubuntu 18.04.6 LTS
  • ROS版本:Melodic

三、学习目标

四、知识储备

下面开始介绍本节内容的知识点:

首先了解深度相机的分类及工作原理。

深度相机根据其工作原理可以分为以下三种:结构光、双目立体测距、时间飞行法(TOF)。

 本微课使用的深度相机为Intel RealSense D415,下面了解下其硬件构成及工作原理。D415是一款 USB3.0 Type-C接口供电的深度相机,由一对深度传感器、RGB传感器和红外投影仪组成。产品参数如表所示。

测距原理如图所示。

五、任务实施

任务实施包括以下内容。接下来分别进行讲解与演示。

 在ROS环境下使用D415相机,首先需要安装部署librealsense SDK,步骤如下。

 部署完librealsense SDK后,在Linux系统终端界面执行如下命令,可启动RealSense Viewer相机可视化调试软件。

 相机连接成功后,点击【Info】按钮查看Firmware Version版本是否过低。更新操作步骤如下。

 更新成功后确保相机重连成功,将左侧【Stereo Module】和【RGB Camera】选择“on”状态,右侧会显示深度图像和RGB图像画面。鼠标移动到深度图像位置左下方画面会显示实时测量的深度距离。

 接下来进行RealSense ROS功能包编译。

 编译完成后可参考官方文档学习功能包各节点、主题和参数的含义。

 使用RealSense功能包启动相机节点。

 

六、任务拓展

尝试使用深度相机ROS驱动功能包编写ROS程序实现彩色图像的获取与显示。

Python示例程序如下。

七、课堂小结

下面我们进行课堂小结:

1.Intel RealSense深度相机采用USB进行连接,并且可以自己输出相机内参,所以不需要再对其进行内参标定。

2.若更换或延长深度相机数据线,需确保其为USB3.0高速线缆且连接至USB3.0接口使用,否则会出现获取不到彩色或深度图像的问题。

八、课后练习

尝试在遨博学院ROS虚拟机环境下完成Intel RealSense深度相机ROS驱动的编译与测试。

 在接下来的ROS课程中,我们会讲解麦克风阵列语音模块ROS驱动开发,欢迎持续关注。

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

遨博协作机器人ROS开发 - Intel RealSense深度相机ROS驱动 的相关文章

  • 关于超线程中 L1 缓存的自适应模式

    我是一名学生 最近正在研究超线程 我对 L1 数据缓存上下文模式这个功能有点困惑 In the 架构优化手册 http www intel com content www us en architecture and technology
  • 如何减轻 Intel jcc 勘误表对 gcc 的影响?

    如果我有一个芯片受英特尔 jcc 勘误表 https stackoverflow com questions 61016077 32 byte aligned routine does not fit the uops cache 6101
  • 在 ROS - Python 中使用来自多个主题的数据

    我能够显示来自两个主题的数据 但无法在 ROS 中实时使用和计算这两个主题的数据 用 Python 代码编写 您有想法存储这些数据并实时计算吗 谢谢 usr bin env python import rospy import string
  • lldb 可以与 fortran 一起使用吗?

    我正在尝试对 Fortran 程序设置断点lldb在 Mac OS 10 12 5 系统上 我有 program badcall integer a b a 2 b 3 write a b end I have to 使用英特尔编译器进行编
  • Intel 64架构中CALLF(Far Call)可以有64位地址内存操作数吗?

    在 Intel 32 位架构中 我可以使用 ModR M 字节调用 32 位地址位置 根据英特尔手册 我需要 2 010B 用于操作码扩展 00B 用于 Mod 101B 允许我拥有 32 位位移 如果我想在 64 位架构中进行远调用 以便
  • 如何使用 PyQT5 连接和分离外部应用程序或对接外部应用程序?

    我正在使用 ROS 为多机器人系统开发 GUI 但我对界面中最不想做的事情感到困惑 在我的应用程序中嵌入 RVIZ GMAPPING 或其他屏幕 我已经在界面中放置了一个终端 但我无法解决如何向我的应用程序添加外部应用程序窗口的问题 我知道
  • 在 Skylake 中使用 MSR 正确禁用硬件预取

    我正在尝试禁用我的机器上的硬件预取 CPU系列 6 型号 78 型号名称 Intel R Core TM i5 6200U CPU 2 30GHz 我已经检查过 gcc march native Q help target grep Mar
  • 如何完全关闭 TBB 代码中的线程

    注意 这不是重复的这个问题 https stackoverflow com questions 3786408 number of threads used by intel tbb 给定一个与 TBB 并行的复杂软件 我如何完全关闭线程
  • 将8个16位SSE寄存器转换为8位数据

    假设我有一个包含 16 位数据的 SSE 数组 1 2 3 4 5 6 7 8 现在我需要通过在前 8 个字节中仅存储 16 位数据的低字节来将此 SSE 数组转换为 8 位数据 如下所示 1 2 3 4 5 6 7 8 0 0 0 0 0
  • ROS 问题:libQt5Core.so.5:无法打开共享对象文件:没有这样的文件或目录

    当我跑步时 rosrun turtlesim turtlesim node 在 Ubuntu 上 我收到以下消息 opt ros noetic lib turtlesim turtlesim node 加载共享库时出错 libQt5Core
  • 现在 x86 上有多少指令? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在尝试
  • x86_64:IMUL 比 2x SHL + 2x ADD 更快吗?

    当查看 Visual Studio 2015U2 生成的程序集时 O2 发布 模式我看到这段 手工优化 的 C 代码被翻译回乘法 int64 t calc int64 t a return a lt lt 6 a lt lt 16 a 集会
  • Intel x86 与 AMD x86 CPU 上的访问性能不一致

    我已经实现了一个带有结构内存布局数组的简单线性探测哈希图 该结构包含键 值和指示条目是否有效的标志 默认情况下 该结构体由编译器填充 因为键和值是 64 位整数 但该条目仅占用 8 个布尔值 因此 我也尝试以未对齐访问为代价来打包结构 由于
  • Haswell 微架构在性能中没有停滞周期后端

    我在 Haswell CPU Intel Core i7 4790 上安装了 perf 但 性能列表 不包括 stalled cycles frontend 或 stalled cycles backend 我检查了http www int
  • 混洗两个 __m128i 的 64 位部分的最佳方法

    我有两个 m128is a and b 我想进行洗牌 以便高 64 位a落在低 64 位dst和低 64 位b落在上64dst i e dst 0 63 a 64 127 dst 64 127 b 0 63 相当于 m128i dst mm
  • OpenCL 在调用 clGetPlatformIDs 时崩溃

    我是 OpenCL 新手 在配备 Intel R HD Graphics 4000 运行 Windows 7 的 Core i5 计算机上工作 我安装了支持 OpenCL 的最新 Intel 驱动程序 GpuCapsViewer 确认我有
  • 英特尔 SGX 开发者许可和开源软件

    是否可以获得许可的开发人员证书 用于在生产模式下签署经过安全审查 社区开发的开源 SGX 软件二进制文件 并将其发布到 apt 或 rpm 等开源存储库上 我刚刚询问了Intel SGX团队 他们说只有经过验证的供应商才能获得证书并在生产模
  • ROS中spin和rate.sleep的区别

    我是 ROS 新手 正在尝试了解这个强大的工具 我很困惑spin and rate sleep功能 谁能帮助我了解这两个功能之间的区别以及何时使用每个功能 ros spin and ros spinOnce 负责处理通信事件 例如到达的消息
  • 英特尔的最后分支记录功能是英特尔处理器独有的吗?

    最后分支记录是指存储与最近执行的分支相关的源地址和目标地址的寄存器对 MSR 的集合 它们受英特尔酷睿 2 英特尔至强和英特尔凌动处理器系列的支持 http css csail mit edu 6 858 2012 readings ia3
  • Core i3/5/7 CPU 是否提供测量 IPC 的机制?

    至少 过去十年中的所有英特尔 CPU 都包含一组对各种事件进行计数的性能监视器 最新的 Intel CPU Core i3 i5 和 i7 又名 Nehalem 是否提供了计算每时钟指令 IPC 的机制 如果有 它们是如何使用的 如果可能的

随机推荐

  • 复杂数据类型——数组

    复杂数据类型是C语言基础的重点 1 数组 xff1a 存储一组数据 2 特点 xff1a 只能存放一种类型的数据 如int类型 xff0c float类型的数据 数组的元素个数只可以放常量 int ages 5 61 1 2 3 格式 xf
  • OC语言——基本语法和思想

    今天学习了OC语言基础语法 1 oc语言完全兼容C语言 xff0c 后缀为 m类型 被广泛应运与开发苹果mac os x平台和ios开发平台 2 oc语言关键字基本上以 64 开头 xff0c oc字符串也是以 64 开头 3 基本类型新加
  • OC语言——三大特性-继承与多态

    继承是oc中比较常见的 1 继承 xff1a 就是当两个类拥有相同的属性和方法时 xff0c 就可以将相同的东西抽取到一个父类中 子类可以拥有父类中所有的成员变量和方法 2 继承的好处 xff1a 可以抽取重复代码 xff0c 节省时间 建
  • OC语言——点语法和成员变量的4种作用域及property和synthesize的使用

    点语法 xff1a 点语法的本质还是方法调用 Person p 61 Person new 点语法的本质还是方法调用 p age 61 10 p setAge 10 一 点语法注意点 xff1a 64 implementation Pers
  • OC语言——构造方法和分类的使用

    一 构造方法 1调用 43 alloc分配存储空间 Person p 61 Person alloc 2初始化 init Person p1 61 p init 可以整合为一句 Person p2 61 Person alloc init
  • 使用CSDN-markdown

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来 xff0c 用它写博客 xff0c 将会带来全新的体验哦 xff1a Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传
  • C++ 遇到问题汇总及解决方案

    1 多个文件包含main函数 xff0c 运行时报错 xff08 1 xff09 错误信息 LNK1169 找到一个或多个多重定义的符号 xff0c 如下图所示 xff1a xff08 2 xff09 原因 多个文件中都包含main函数 x
  • 【笔试&面试】关于动态链接库

    动态链接库英文为DLL xff0c 是Dynamic Link Library 的缩写形式 xff0c DLL 是一个包含可由多个程序同时使用的代码和数据的库 xff0c DLL 不是可执行文件 动态链接提供了一种方法 xff0c 使进程可
  • 遨博协作机器人ROS开发 - MoveGroup Python接口编程

    目录 一 简介 二 环境版本 三 学习目标 四 知识储备 五 任务实施 六 任务拓展 七 课堂小结 八 课后练习 一 简介 大家好 xff0c 欢迎关注遨博学院带来的系列技术分享文章 xff08 协作机器人ROS开发 xff09 xff0c
  • 【CNN】ZFNet——让卷积神经网络不再是一个黑盒模型。

    前言 ZFNet在2013年 ILSVRC 图像分类竞赛获得冠军 xff0c 错误率11 19 xff0c 比2012年的AlexNet降低了5 xff0c ZFNet是由 Matthew D Zeiler 和 Rob Fergus 在 A
  • RealsenseD415/D435深度相机常用资料汇总

    Intel的RealsenseD400系列是2018年初推出的新款深度相机 xff0c 包括RealsenseD415和D435系列 xff0c 这两款相机具有小巧的外形 xff0c 适用于近距离深度图像采集 xff0c 具有较高的图像分辨
  • Gazebo环境下使用turtlebot建立环境octomap地图

    octomap是一种空间概率地图 xff0c 可以使用方格来表示周围的环境 xff0c 就像 我的世界 游戏里表示的那样 xff0c 优点是地图计算速度快 xff0c 内存占用少 xff0c 可以调整地图的分辨率等等 xff0c 与平面二维
  • cache、buffer、flash的区别

    cache xff08 缓存 xff09 buffer xff08 缓冲 xff09 flash xff08 闪存 xff09 这三个存储区翻译成中文后 xff0c 很容易使初学者分不清3者的区别 xff0c 猛然一听这三者好像都有存储很快
  • Linux systemd启动流程

    以Ubuntu 18 04 2 LTS为例 xff0c 列出Systemd启动target中涉及单元 Unit default target 61 graphical target by default graphical target R
  • 封装制作的一些注意事项

    1 插件封装 xff0c 有些固定用的非金属化孔 xff0c 需要额外加禁布线区 xff0c 直径比钻孔大12mil以上 xff0c 禁布线区加在Package Keepout层 xff1b 2 金属化孔的阻焊层 xff0c 直径要比焊盘大
  • 虚函数表的实现细节

    1 虚函数 虚表是怎么实现的 xff1f 虚表存放在哪里 xff1f 虚表中的数据是在什么时候确定的 xff1f 对象中的虚表指针又在什么时候赋值的 xff1f 我们很难通过 C 43 43 语言本身来找到答案 C 43 43 标准给编译器
  • 三种工厂模式区别总结

    工厂模式分为三种 xff1a 简单工厂 工厂模式和抽象工厂模式 三者之间存在哪些异同呢 xff1f 先分别看看各个模式的特点 一 简单工厂模式 xff1a 实现了算法和界面的分离 xff0c 也就是将业务逻辑和界面逻辑分开了 xff0c 降
  • 快速排序 改进快排的方法

    快速排序法事应用最广泛的排序算法之一 xff0c 最佳情况下时间复杂度是 O nlogn 但是 最坏情况下可能达到 O n 2 说明快速排序达到最坏情况的原因 并提出改善方案并实现 之 答 xff1a 改进方案 xff1a 改进选取枢轴的方
  • linux select函数详解

    在 Linux 中 xff0c 我们可以使用 select 函数实现 I O 端口的复用 xff0c 传递给 select 函数的参数会告诉内核 xff1a 我们所关心的文件描述符 对每个描述符 xff0c 我们所关心的状态 我们是要想从一
  • 遨博协作机器人ROS开发 - Intel RealSense深度相机ROS驱动

    目录 一 简介 二 环境版本 三 学习目标 四 知识储备 五 任务实施 六 任务拓展 七 课堂小结 八 课后练习 一 简介 大家好 xff0c 欢迎关注遨博学院带来的系列技术分享文章 xff08 协作机器人ROS开发 xff09 xff0c