首先你要你确保你的相机驱动已经安装好,环境配置可以看我的另一篇文章:https://blog.csdn.net/weixin_46195203/article/details/119205851

**第一步:**新建一个文件 informationread(此处建议文件名为:informationread,这样就不用单独修改Makelist中的信息了)
**第二步:**在 informationread文件夹下新建两个文件分别为build 和 src 还有一个CMakeLists.txt文件
**第三步:**在CMakeLists.txt文件中复制一下代码

cmake_minimum_required(VERSION 3.1.0)project(alldata)set( CMAKE_CXX_COMPILER "g++" )
set( CMAKE_BUILD_TYPE "Release" )
set( CMAKE_CXX_FLAGS "-std=c++11 -O3" )
# Enable C++11
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED TRUE)FIND_PACKAGE(OpenCV REQUIRED)
FIND_PACKAGE(realsense2 REQUIRED)include_directories( ${OpenCV_INCLUDE_DIRS} )
include_directories( ${realsense2_INCLUDE_DIRS})
add_executable(informationread src/GetAlldata.cpp)target_link_libraries(informationread ${OpenCV_LIBS} ${realsense2_LIBRARY})

**第四步:**将以下代码复制到一个.cpp文件 放到src文件中(此处建议cpp文件名为:GetAlldata.cpp,这样就不用单独修改Makelist中的信息了)

#include <librealsense2/rs.hpp>// include OpenCV header file
#include <opencv2/opencv.hpp>using namespace std;
using namespace cv;#define width 640
#define height 480
#define fps 30int main(int argc, char** argv) try
{// judge whether devices is exist or not rs2::context ctx;auto list = ctx.query_devices(); // Get a snapshot of currently connected devicesif (list.size() == 0) throw std::runtime_error("No device detected. Is it plugged in?");rs2::device dev = list.front();//rs2::frameset frames;//Contruct a pipeline which abstracts the devicers2::pipeline pipe;//建立一个通讯管道//https://baike.so.com/doc/1559953-1649001.html pipeline的解释//Create a configuration for configuring the pipeline with a non default profilers2::config cfg;//Add desired streams to configurationcfg.enable_stream(RS2_STREAM_COLOR, width, height, RS2_FORMAT_BGR8, fps);//彩色图像cfg.enable_stream(RS2_STREAM_DEPTH, width, height, RS2_FORMAT_Z16,fps);//深度图像cfg.enable_stream(RS2_STREAM_INFRARED, 1, width, height, RS2_FORMAT_Y8, fps);//红外图像1cfg.enable_stream(RS2_STREAM_INFRARED, 2, width, height, RS2_FORMAT_Y8, fps);//红外图像2//若想获得imu数据将一下两行代码取消注释,并修改imu的赋值//cfg.enable_stream(RS2_STREAM_ACCEL, RS2_FORMAT_MOTION_XYZ32F);//陀螺仪//cfg.enable_stream(RS2_STREAM_GYRO, RS2_FORMAT_MOTION_XYZ32F);//陀螺仪int imu = 0;//若想获取imu数据,此处设置为1// get depth scale // float depth_scale = get_depth_scale(profile.get_device());// start stream pipe.start(cfg);//指示管道使用所请求的配置启动流while(1){frames = pipe.wait_for_frames();//等待全部配置的流生成框架// Align to depth rs2::align align_to_depth(RS2_STREAM_DEPTH);frames = align_to_depth.process(frames);// Get imu dataif(imu){if (rs2::motion_frame accel_frame = frames.first_or_default(RS2_STREAM_ACCEL)){rs2_vector accel_sample = accel_frame.get_motion_data();std::cout << "Accel:" << accel_sample.x << ", " << accel_sample.y << ", " << accel_sample.z << std::endl;}if (rs2::motion_frame gyro_frame = frames.first_or_default(RS2_STREAM_GYRO)){rs2_vector gyro_sample = gyro_frame.get_motion_data();std::cout << "Gyro:" << gyro_sample.x << ", " << gyro_sample.y << ", " << gyro_sample.z << std::endl;}}//Get each framers2::frame color_frame = frames.get_color_frame();rs2::frame depth_frame = frames.get_depth_frame();rs2::video_frame ir_frame_left = frames.get_infrared_frame(1);rs2::video_frame ir_frame_right = frames.get_infrared_frame(2);// Creating OpenCV Matrix from a color imageMat color(Size(width, height), CV_8UC3, (void*)color_frame.get_data(), Mat::AUTO_STEP);Mat pic_right(Size(width,height), CV_8UC1, (void*)ir_frame_right.get_data());Mat pic_left(Size(width,height), CV_8UC1, (void*)ir_frame_left.get_data());Mat pic_depth(Size(width,height), CV_16U, (void*)depth_frame.get_data(), Mat::AUTO_STEP);// Display in a GUInamedWindow("Display Image", WINDOW_AUTOSIZE );imshow("Display Image", color);waitKey(1);imshow("Display depth", pic_depth*15);waitKey(1);imshow("Display pic_left", pic_left);waitKey(1);imshow("Display pic_right",pic_right);waitKey(1);}return 0;
}// error
catch (const rs2::error & e)
{std::cerr << "RealSense error calling " << e.get_failed_function() << "(" << e.get_failed_args() << "):\n    " << e.what() << std::endl;return EXIT_FAILURE;
}
catch (const std::exception& e)
{std::cerr << e.what() << std::endl;return EXIT_FAILURE;
}

代码中默认是D415 或者D435 这种不带imu的相机所以没有输出imu信息
如果你想要imu信息 按照指示进行小修改便可。

**第四步:**在build文件中打开命令窗口输入

cmake ..
make -j4
./informationread

到此便可以看到实时运行结果了

realsense D435 D435i D415深度相机在ros下获得RGB图、左右红外摄像图、深度图、IMU数据相关推荐

  1. Intel Realsense D435 python 从深度相机realsense生成pcl点云

    引用文章:python 从深度相机realsense生成pcl点云 从深度相机realsense生成pcl点云 一.通过realsense取得深度信息和彩色信息 二.获取坐标和色彩信息 三.通过pcl ...

  2. Ubuntu16.04 在ROS中配置RealSence D435 并标定深度相机与rplidar外参

    Ubuntu16.04系统,在ROS中配置RealSence D435 ,并标定其与rplidar的外参 主要目的是为rplidar标定深度相机外参,为机器人导航的过程提供障碍物识别的功能,因此需要知 ...

  3. ROS中使用Intel RealSense D455或L515深度相机

    目的 在ROS平台上,使用深度相机作为传感器设计自主避障机器人. 1 安装驱动 测试环境: 软件:Ubuntu 16.04.ROS Kinetic 硬件:Intel RealSense D455 或 ...

  4. IntelRealSense d415深度相机拍照制作数据集python脚本

    IntelRealSense d415深度相机拍照制作数据集python脚本 最近想做一个阴影数据集,手上d415相机像素好一点,就用来调用拍照啦. 上源码: import pyrealsense2 ...

  5. 深度相机介绍(TOF、RGB双目、结构光参数对比)

    一.深度相机的介绍 随着计算机视觉与人工智能技术的飞速发展,采用深度相机进行场景三维重建.目标检测.环境感知等应用越来越广泛,与传统的2D相机不同,深度相机可以通过拍摄空间来获得景深信息,从而获得目标 ...

  6. Intel Realsense D455 D435i D415 T265 3D实感硬件对比

    硬件参数对比   Realsense D455(2020) Realsense D435i(2018) Realsense D415(2018) Realsense T265(2019)   深度范围 ...

  7. 【深度相机系列五】深度相机分类:TOF、RGB双目、结构光比较

    说明:文中所举例的产品比较早,读者把重点放在学习原理上就好. 目前的深度相机根据其工作原理可以分为三种:TOF.RGB双目.结构光. 一.三种相机的参数对比 从分辨率.帧率.软件复杂度.功耗等方面来考 ...

  8. 深度相机分类:TOF、RGB双目、结构光 对比分析

    目前的深度相机根据其工作原理可以分为三种:TOF.RGB双目.结构光 一.RGB双目 RGB双目相机因为非常依赖纯图像特征匹配,所以在光照较暗或者过度曝光的情况下效果都非常差,另外如果被测场景本身缺乏 ...

  9. 奥比中光Orbbec Astra pro 深度相机在ROS Melodic的使用

    一.虚拟机中使用OPENNI显示相机图像 下载openni的linux安装包.下载地址 https://dl.orbbec3d.com/dist/openni2/OpenNI_2.3.0.66.zip ...

最新文章

  1. java基础知识总结,绝对经典
  2. jQuery选择器之可见性过滤选择器Demo
  3. Linux 进程(一) 进程概念和进程状态(僵尸进程、孤儿进程、守护进程)
  4. Notepad++远程连接Linux系统
  5. 「数据ETL」从数据民工到数据白领蜕变之旅(五)-使用dotNET脚本实现SSIS无限扩展...
  6. ssh(Spring+Spring mvc+hibernate)——DeptServiceImpl.java
  7. kill 进程_结束进程,查看后台进程
  8. 扩大博士研究生招生规模!
  9. Docker exec 命令执行出错, 显示 the input device is not aTTY 的解决办法
  10. 服务器购买和远程连接
  11. 自己动手构造编译系统:编译、汇编与链接2.1.4 语义分析
  12. IE7IE8不支持rgba的方法
  13. oracle数据库三大日志,Oracle 数据库日志和用户日志位置
  14. 链表在java中的应用_Java链表
  15. K650D安装黑苹果
  16. Fast-paced Multiplayer
  17. The harder I work, the luckier I get. - Samuel Goldwyn
  18. autoquad源码分析1
  19. 【Java笔记+踩坑】SpringBoot基础3——开发。热部署+配置高级+整合NoSQL/缓存/任务/邮件/监控
  20. 计算机考试行高怎么设置,Excel隔行调整行高的四种有效方法

热门文章

  1. 计算飞机跑道长度C语言,中国各个机场跑道长度
  2. react-intl-universal实现中英文语言切换(国际化)
  3. 记录一次Ubuntu18.04安装教程和解决安装NVIDIA显卡驱动出现黑屏问题
  4. linux django创建项目,linux创建Django项目和部署
  5. 科普:什么是零知识证明?与区块链的关系?
  6. 如何自学通过PMP考试
  7. xftp中压缩文件打不开或者打开文件内容不符的情况处理
  8. 6月27日服务器例行维护公告,6月27日周版本更新维护内容公告
  9. 2021年了产品还是没有曝光?巨象跨境指纹浏览器教你2021年SNS营销不再落后
  10. CodeForces 82A Double Cola