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

ROS中使用RealSense-D435

文章目录

    • D435简介
    • RealSense的SDK2.0安装
      • 方法1:直接利用安装源安装
        • 注册服务器公匙
        • 将服务器添加到存储库列表
        • 安装库
      • 方法2:利用源码安装
        • GitHub下载librealsense
        • 安装编译依赖
        • 运行脚本
        • cmake编译
      • 软件显示
    • ROS接口安装
      • 启动节点
      • 查看话题
      • rviz显示点云
    • Python接口安装

D435简介

image-20230728200550446

Intel RealSense D435是Intel推出的一款结合RGB和深度摄像的立体视觉摄像头,具有以下主要特点:

  1. 使用双摄像头和红外投射器实现立体视觉采集。

  2. 提供频率可达90Hz的VGA分辨率(640x480)深度图像。

  3. 具有2个720p RGB摄像头,提供1920x1080分辨率彩色视频流。

  4. 使用全局快门同步RGB图像和深度图像。

  5. 内置6轴IMU运动跟踪模块。

  6. 支持近距离检测,最小检测距离约0.25米。

  7. 提供硬件级图像流同步和时间戳。

  8. 支持USB 3.0接口传输高速率图像流。

  9. 提供SDK开发包,兼容ROS、OpenCV等主流框架。

  10. 小巧轻便的模块化设计。

D435采用了活体立体视觉技术,具有准确、高帧率的深度映射能力,可广泛应用于机器人定位与导航、物体识别、人机交互等计算机视觉任务中。

RealSense的SDK2.0安装

方法1:直接利用安装源安装

注册服务器公匙

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

将服务器添加到存储库列表

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

安装库

基础

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

可选

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

不过这个方法只能下在最新版本,由于ros2的适配,该版本的realsense-ros对ros2匹配,因此在下载时建议使用方法2下载

方法2:利用源码安装

GitHub下载librealsense

image-20230729172838240

这里以v2.50.0版本为例

安装编译依赖

sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev bison flex
sudo apt-get install libglfw3-dev libgl1-mesa-dev libglu1-mesa-dev libelf-dev elfutils

运行脚本

cd librealsense-2.50.0/
./scripts/setup_udev_rules.sh

cmake编译

mkdir build
cd build
cmake ../ -DBUILD_EXAMPLES=true
make -j8 #j8的意思是根据自己处理器内核数量来加快编译
sudo make install

重新连接 Intel Realsense 深度摄像机并运行: realsense-viewer 以验证安装

软件显示

连接d435与电脑

realsense-viewer 

image-20230729190530066

左侧的Stereo Module可以开启深度图显示,RGB Module可以显示RGB影像

ROS接口安装

由于ros1的维护,直接安装会以最新版本下载,其适配ros2,导致编译失败,所以在安装时要选择与之ros相对应的tag

以ros noetic为例

安装realsense-ros: https://gitcode.net/mirrors/intelrealsense/realsense-ros?utm_source=csdn_github_accelerator

安装ddynamic_reconfigure:https://gitcode.net/mirrors/pal-robotics/ddynamic_reconfigure?utm_source=csdn_github_accelerator

下载其压缩包,然后解压缩到~/catkin_ws/src目录下

编译

catkin_make

启动节点

roslaunch realsense2_camera rs_camera.launch

image-20230729191329877

出现RealSense Node Is Up!证明节点启动成功

查看话题

rostopic list

image-20230729191513483

rqt_image_view

image-20230729191627233

rviz显示点云

roslaunch realsense2_camera demo_pointcloud.launch 

image-20230729192410943

Python接口安装

pip install pyrealsense2
import pyrealsense2 as rs
import numpy as np
import cv2if __name__ == "__main__":# Configure depth and color streamspipeline = rs.pipeline()config = rs.config()config.enable_stream(rs.stream.depth, 640, 480, rs.format.z16, 30)config.enable_stream(rs.stream.color, 640, 480, rs.format.bgr8, 30)# Start streamingpipeline.start(config)try:while True:# Wait for a coherent pair of frames: depth and colorframes = pipeline.wait_for_frames()depth_frame = frames.get_depth_frame()color_frame = frames.get_color_frame()if not depth_frame or not color_frame:continue# Convert images to numpy arraysdepth_image = np.asanyarray(depth_frame.get_data())color_image = np.asanyarray(color_frame.get_data())# Apply colormap on depth image (image must be converted to 8-bit per pixel first)depth_colormap = cv2.applyColorMap(cv2.convertScaleAbs(depth_image, alpha=0.03), cv2.COLORMAP_JET)# Stack both images horizontallyimages = np.hstack((color_image, depth_colormap))# Show imagescv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)cv2.imshow('RealSense', images)key = cv2.waitKey(1)# Press esc or 'q' to close the image windowif key & 0xFF == ord('q') or key == 27:cv2.destroyAllWindows()breakfinally:# Stop streamingpipeline.stop()

image-20230729192950314

相关文章:

ROS中使用RealSense-D435

文章目录 D435简介RealSense的SDK2.0安装方法1:直接利用安装源安装注册服务器公匙将服务器添加到存储库列表安装库 方法2:利用源码安装GitHub下载librealsense安装编译依赖运行脚本cmake编译 软件显示 ROS接口安装启动节点查看话题rviz显示点云 Python接…...

nlp系列(6)文本实体识别(Bi-LSTM+CRF)pytorch

模型介绍 LSTM:长短期记忆网络(Long-short-term-memory),能够记住长句子的前后信息,解决了RNN的问题(时间间隔较大时,网络对前面的信息会遗忘,从而出现梯度消失问题,会形成长期依赖…...

zookeeper-3.7.1集群

1.下载&解压安装包apache-zookeeper-3.7.1-bin.tar.gz 解压到/app/ &改名zookeeper-3.7.1 [rootnode1 app]# tar -zxvf apache-zookeeper-3.7.1-bin.tar.gz -C /app/ [rootnode1 app]# mv apache-zookeeper-3.7.1-bin zookeeper-3.7.1 ---- 删除docs [rootnode1…...

ubuntu上安装firefox geckodriver 实现爬虫

缘由:当时在windows 上运行chrom 的时候 发现要找到 浏览器和 webdirver 相匹配的 版本比较麻烦,当时搞了大半天才找到并安装好。 这次在ubuntu上尝试用firefox 实现爬虫 文章分为三个部分: 环境搭建浏览器弹窗输入用户名,密码的…...

【Matlab】基于长短期记忆网络的时间序列预测(Excel可直接替换数据)

【Matlab】基于长短期记忆网络的时间序列预测(Excel可直接替换数据) 1.模型原理2.数学公式3.文件结构4.Excel数据5.分块代码6.完整代码7.运行结果1.模型原理 "基于长短期记忆网络(Long Short-Term Memory, LSTM)的时间序列预测"是一种使用LSTM神经网络来预测时间…...

[NLP]LLM高效微调(PEFT)--LoRA

LoRA 背景 神经网络包含很多全连接层,其借助于矩阵乘法得以实现,然而,很多全连接层的权重矩阵都是满秩的。当针对特定任务进行微调后,模型中权重矩阵其实具有很低的本征秩(intrinsic rank),因…...

vue3 vant上传图片

在 Vue 3 中使用 Vant 组件库进行图片上传,您可以使用 Vant 的 ImageUploader 组件。ImageUploader 是 Vant 提供的图片上传组件,可以方便地实现图片上传功能。 以下是一个简单的示例,演示如何在 Vue 3 中使用 Vant 的 ImageUploader 组件进行…...

深入理解linux内核--内存管理

RAM的某些部分永久分配给内核, 来存放内核代码及静态内核数据结构。 RAM的其余部分称为动态内存, 这不仅是进程所需的宝贵资源, 也是内核本身所需的宝贵资源。页框管理 Intel的Pentinum处理器可采用两种不同的页框大小: 4KB&…...

SpringBoot热部署的开启与关闭

1、 开启热部署 &#xff08;1&#xff09;导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId> </dependency>&#xff08;2&#xff09;设置 此时就搞定了。。。 2、…...

k8s集群部署(使用kubeadm部署工具进行快速部署,相关对应版本为docker20.10.0+k8s1.23.0+flannel)

1. 安装要求 在开始之前&#xff0c;部署Kubernetes集群机器需要满足以下几个条件&#xff1a; 一台或多台机器&#xff0c;操作系统 CentOS7.x-86_x64硬件配置&#xff1a;2GB或更多RAM&#xff0c;2个CPU或更多CPU&#xff0c;硬盘20GB或更多可以访问外网&#xff0c;需要拉…...

20230729 git github gitee

1.gitee与gitHub概念&#xff1f; Gitee&#xff08;码云&#xff09;是开源中国社区推出的代码托管协作开发平台&#xff0c;支持Git和SVN&#xff0c;提供免费的私有仓库托管。Gitee专为开发者提供稳定、高效、安全的云端软件开发协作平台&#xff0c;无论是个人、团队、或是…...

php建造者模式

一&#xff0c;建造者模式&#xff0c;也叫做生成器模式&#xff0c;是创建设计模式的一种&#xff0c;它能将一个复杂的对象的创建过程分离开来&#xff0c;使你能够分步骤的创建对象。建造者模式也允许你使用相同的建造代码创造出不同类型和形式的对象。 建造者模式一般包括四…...

linux---》用户操作/su和sudo/普通权限/特殊权限/解压压缩/软件管理,rpm和yum/源码安装nginx

用户操作 ####创建用户####1 创建sa和sutdents组 groupadd sa groupadd students # 2 用户可以属于多个组&#xff0c;只能属于一个主组&#xff0c;附加组可以有多个 G useradd -u 5001 -g students -G sa -c "注释" -s /bin/bash lqz666 # 3 设置密码 passwd lqz6…...

tinkerCAD案例:20. Simple Button 简单按钮和骰子

文章目录 tinkerCAD案例&#xff1a;20. Simple Button 简单按钮Make a Trick Die tinkerCAD案例&#xff1a;20. Simple Button 简单按钮 Project Overview: 项目概况&#xff1a; This is a series of fun beginner level lessons to hone your awesome Tinkercad skills a…...

Java - 为什么要用BigDecimal?

&#x1f914;️为什么要用BigDecimal&#xff1f; 当然是因为使用Double计算&#xff0c;在某些对精度要求很高的场景下会出现问题&#x1f480;不信你看⤵️ Test void test12() {// 丢失精度double result 0.2 0.1;System.out.println(result); // 输出结果为 0.300000000…...

mac 删除自带的ABC输入法保留一个搜狗输入法,搜狗配置一下可以减少很多的敲击键盘和鼠标点击次数

0. 背景 对于开发者来说&#xff0c;经常被中英文切换输入法所困扰&#xff0c;我这边有一个方法&#xff0c;删除mac默认的ABC输入法 仅仅保留搜狗一个输入法&#xff0c;配置一下搜狗输入&#xff1a;哪些指定为英文输入&#xff0c;哪些指定为中文输入&#xff08;符号也可…...

JiaYu说:如何做好IT类的技术面试?

IT类的技术面试 面试IT公司的小技巧IT技术面试常见的问题嵌入式技术面试嵌入式技术面试常见的问题嵌入式软件/硬件面试题 JiaYu归属嵌入式行业&#xff0c;所以这里只是以普通程序员的角度去分析技术面试的技巧 当然&#xff0c;也对嵌入式技术面试做了小总结&#xff0c;友友们…...

RL 实践(6)—— CartPole【REINFORCE with baseline A2C】

本文介绍 REINFORCE with baseline 和 A2C 这两个带 baseline 的策略梯度方法&#xff0c;并在 CartPole-V0 上验证它们和无 baseline 的原始方法 REINFORCE & Actor-Critic 的优势参考&#xff1a;《动手学强化学习》完整代码下载&#xff1a;7_[Gym] CartPole-V0 (REINFO…...

Python numpy库的应用、matplotlib绘图、opencv的应用

numpy import numpy as npl1 [1, 2, 3, 4, 5]# array():将列表同构成一个numpy的数组 l2 np.array(l1) print(type(l2)) print(l2) # ndim : 返回数组的轴数&#xff08;维度数&#xff09; # shape&#xff1a;返回数组的形状&#xff0c;用元组表示&#xff1b;元组的元素…...

SpringBoot 如何进行 统一异常处理

在Spring Boot中&#xff0c;可以通过自定义异常处理器来实现统一异常处理。异常处理器能够捕获应用程序中抛出的各种异常&#xff0c;并提供相应的错误处理和响应。 Spring Boot提供了ControllerAdvice注解&#xff0c;它可以将一个类标记为全局异常处理器。全局异常处理器能…...

Taurus多执行器对比实战:JMeter/Gatling/Locust统一压测方案

1. 为什么选Taurus做多执行器对比——不是为了炫技&#xff0c;而是为了少踩坑在性能测试领域&#xff0c;我见过太多团队卡在“选型”这一步&#xff1a;刚招来一个会写JMeter脚本的工程师&#xff0c;项目突然要压测WebSocket接口&#xff0c;发现JMeter原生支持弱、插件维护…...

别再用SonarQube凑数了!DeepSeek原生圈复杂度引擎的6大颠覆性能力(含GitHub私有部署密钥)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;DeepSeek圈复杂度分析的底层原理与范式革命 DeepSeek圈复杂度分析并非传统McCabe度量的简单复刻&#xff0c;而是基于控制流图&#xff08;CFG&#xff09;动态重构与语义感知路径裁剪的双重机制构建的新范式。…...

OmenSuperHub:基于WMI BIOS控制的高性能笔记本硬件管理方案

OmenSuperHub&#xff1a;基于WMI BIOS控制的高性能笔记本硬件管理方案 【免费下载链接】OmenSuperHub Control Omen laptop performance, fan speeds, and keyboard lighting, and unlock power limits. 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 在惠…...

2026这6款神级降AIGC平台大公开,一键让AIGC率直逼绝对安全线!

步入 2026 年&#xff0c;学术圈的风向早已不是从前的模样。曾经大家还在为查重率发愁&#xff0c;如今却陷入了更棘手的困境——如何在不破坏论文专业性的前提下&#xff0c;彻底消除 AI 痕迹&#xff1f;随着 AIGC 检测技术不断进化&#xff0c;高校对论文的审核标准也愈发严…...

USB数据隔离器DIY:物理切断数据线,防范充电攻击

1. 移动设备充电安全&#xff1a;一个被忽视的“物理后门”你可能每天都在做这件事&#xff1a;手机或平板电脑电量告急&#xff0c;随手拿起一根数据线&#xff0c;插在办公室的公共电脑、机场的充电站&#xff0c;甚至是朋友提供的充电宝上。这看起来再平常不过了&#xff0c…...

SMUDebugTool:AMD Ryzen处理器深度调试与性能调优完全指南

SMUDebugTool&#xff1a;AMD Ryzen处理器深度调试与性能调优完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

TorchEasyRec:阿里巴巴开源的推荐系统深度学习框架详解

第一部分&#xff1a;项目概览与核心功能 一、项目简介&#xff1a;什么是 TorchEasyRec&#xff1f; TorchEasyRec 是阿里巴巴 PAI 团队开发的基于 PyTorch 的推荐系统框架&#xff0c;专门用于构建生产级别的深度学习推荐模型。简单来说&#xff0c;它就是一个让你能够快速…...

终极指南:使用MuSiC单细胞反卷积工具解密组织细胞组成

终极指南&#xff1a;使用MuSiC单细胞反卷积工具解密组织细胞组成 【免费下载链接】MuSiC Multi-subject Single Cell Deconvolution 项目地址: https://gitcode.com/gh_mirrors/music2/MuSiC 还在为复杂的组织样本分析而困惑吗&#xff1f;想要从批量RNA测序数据中精确…...

ai开发者如何快速接入多模型api,taotoken五分钟搞定openai兼容调用

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 AI开发者如何快速接入多模型API&#xff0c;Taotoken五分钟搞定OpenAI兼容调用 对于AI开发者而言&#xff0c;快速验证不同大模型的…...

如何快速构建个人数字图书馆:番茄小说下载器终极指南

如何快速构建个人数字图书馆&#xff1a;番茄小说下载器终极指南 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 想要随时随地畅读番茄小说&#xff0c;却受限于网络连接&…...