ROS中使用RealSense-D435

news2025/7/9 5:36:38

文章目录

    • 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 cv2
 
if __name__ == "__main__":
    # Configure depth and color streams
    pipeline = 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 streaming
    pipeline.start(config)
    try:
        while True:
            # Wait for a coherent pair of frames: depth and color
            frames = 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 arrays
 
            depth_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 horizontally
            images = np.hstack((color_image, depth_colormap))
            # Show images
            cv2.namedWindow('RealSense', cv2.WINDOW_AUTOSIZE)
            cv2.imshow('RealSense', images)
            key = cv2.waitKey(1)
            # Press esc or 'q' to close the image window
            if key & 0xFF == ord('q') or key == 27:
                cv2.destroyAllWindows()
                break
    finally:
        # Stop streaming
        pipeline.stop()

image-20230729192950314

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/809294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL中IN的取值范围较大时会导致索引失效

一:分析MySQL In查询为什么所有不生效 结论:IN肯定会走索引,但是当IN的取值范围较大时会导致索引失效,走全表扫描 navicat可视化工具使用explain函数查看sql执行信息 1.1 场景1:当IN中的取值只有一个主键时 我们只需要…

怎么在线制作证件?教你一键生成证件照

无论是申请身份证、护照、驾照还是学生证,都需要一张清晰、规范的证件照。但是,为了拍摄一张完美的证件照,需要付出不少时间和精力。而现在,我们可以使用压缩图网站提供的证件照制作工具,轻松制作出一张清晰、规范的证…

力扣刷题记录---利用python实现链表的基本操作

文章目录 前言一、利用python实现链表的基本操作1.节点的定义使用类实现:1.链表的定义使用类实现:3.判断是否为空函数实现:4.链表长度函数实现:5.遍历链表函数实现:6.头插法函数实现:7.尾插法函数实现&…

手把手一起上传本地项目至Gitee仓库

1、Gitee新建仓库 创建自己的Gitee账号,新建仓库,如图所示: 根据自己的项目情况,填写仓库信息,如图所示: 仓库创建完成,如图所示: 2、下载Git 下载地址可用链接: https://registry…

xxl-Job分布式任务调度

1.概述 1.1 什么是任务调度 我们可以先思考一下业务场景的解决方案: 某电商系统需要在每天上午10点,下午3点,晚上8点发放一批优惠券。某银行系统需要在信用卡到期还款日的前三天进行短信提醒。某财务系统需要在每天凌晨0:10结算前一天的财…

流数据湖平台Apache Paimon(一)概述

文章目录 第1章 概述1.1 简介1.2 核心特性1.3 基本概念1.3.1 Snapshot1.3.2 Partition1.3.3 Bucket1.3.4 Consistency Guarantees一致性保证 1.4 文件布局1.4.1 Snapshot Files1.4.2 Manifest Files1.4.3 Data Files1.4.4 LSM Trees 第1章 概述 1.1 简介 Flink 社区希望能够将…

新材料技术的优势

目录 1.什么是新材料技术 2.新材料技术给人类带来了哪些便利 3.新材料技术未来的发展趋势 1.什么是新材料技术 新材料技术指的是通过科学和工程技术的手段开发和应用全新的材料,以满足特定的需求和应用。新材料技术是材料科学和工程领域的重要研究方向&#xff0…

【Java】使用JDBC操作MySQL 8

文章目录 1. JDBC概述2. JDBC快速入门2.1 下载驱动jar包2.2 数据准备2.3 创建工程2.4 编写代码 3. JDBC API详解3.1 DriverManager3.2 Connection3.2.1 获取执行SQL对象3.2.1 管理事务 3.3 Statement3.3.1 执行DML语句3.3.2 执行DDL语句 3.4 ResultSet3.4.1 ResultSet对象方法3…

解读 Zebec Protocol 发布的最新路线图,向 Web2 世界跨越的野望

近期,流支付协议 Zebec Protocol 发布了最新的路线图,揭示了生态在未来一年的全新发展规划。目前, Zebec Protocol 生态打造了一套全新的产品矩阵,包括模块化 Layer3 链 Nautilus Chain 、流支付应用 Zebec APP 以及薪酬管理协议 …

小红书怎么推广 方法经验总结

大家好,我是网媒智星,今天跟大家分享一下小红书怎么推广,总结一些方法经验。 小红书上的引流变现逻辑包括以下步骤: 选题—封面标题—内容评论—钩子—私域—成交—裂变 如果你希望在小红书上进行正确、安全的引流,…

Virtualbox虚拟机中Ubuntu忘记密码

1、首先重新启动Ubuntu系统,鼠标快速点一下Virtualbox虚拟机窗口获取焦点,然后按住shift键,以调出grub启动菜单。 2、根据提示按下键盘E键进入编辑模式,向下移动光标,将如下"ro quiet splash $vt_handoff"部…

Java开发环境以及项目搭建案例汇总

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl 友情提示 1、 假若你的设备已有可用的Java开发基础环境,则无需重新搭建 2、 假若你需重新搭建Java开发,请务必彻底卸载之前的环境 3、 请尽量保证与…

Reinforcement Learning with Code 【Code 1. Tabular Q-learning】

Reinforcement Learning with Code 【Code 1. Tabular Q-learning】 This note records how the author begin to learn RL. Both theoretical understanding and code practice are presented. Many material are referenced such as ZhaoShiyu’s Mathematical Foundation o…

WIZnet W5100S-EVB-Pico 静态IP配置教程(二)

W5100S是一个硬连线TCP/IP封装以太网控制器W5100S支持间接并行总线和高速SPI接口2种方式与主机进行通信。其内部还集成了以太网数据链路层(MAC)和10Base -T/100Base -T 以太网物理层(PHY),支持自动协商(10/…

记录vue的一些踩坑日记

记录vue的一些踩坑日记 安装Jq npm install jquery --save vue列表跳转到详情页,再返回列表的时候不刷新页面并且保持原位置不变; 解决:使用keepAlive 在需要被缓存的页面的路由中添加:keepAlive: true, {path: /viewExamine,nam…

Docker安装 Mysql 8.x 版本

文章目录 Docker安装 Mysql 8.0.22Mysql 创建账号并授权Mysql 数据迁移同版本数据迁移跨版本数据迁移 Mysql 5.x 版本与 Mysql 8.x版本是两个大版本,这里演示安装Mysql 8.x版本 Docker安装 Mysql 8.0.22 # 下载mysql $ docker pull mysql 默认安装最新…

SolidWorks(1)

打开solidworks,选择零件选择草图、绘制草图选择上视基准面 最后完成草图 选择拉伸切除 最终成品 鼠标按住中键,进行旋转

优思学院:六西格玛的10大概念和特点

六西格玛是一种管理方法,致力于提高组织的运营效率和质量水平。它起源于20世纪80年代的美国,随后在全球范围内得到广泛应用。今天我们将探讨六西格玛的十大概念和特点,帮助您了解如何将这一管理方法应用于您的业务中。 1. 什么是六西格玛&am…

【前端知识】React 基础巩固(三十七)——自定义connect高阶组件

React 基础巩固(三十七)——自定义connect高阶组件 一、手撸一个自定义connect高阶组件 import { PureComponent } from "react"; import store from "../store";/*** connect的参数:* 参数一: 函数* 参数二: 函数* 返…

TiProxy 尝鲜

说明 最近发现 tidb 有个 GitHub - pingcap/TiProxy 仓库,抱着好奇的心态想试试这个组件的使用效果。于是按照文档的介绍在本地环境使用tiup做了一些实验,现在将实验过程和实验结果分享给大家。 TiProxy介绍 官方README介绍的已经很清楚了,…