且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

在ROS中实现多Realscene D455数据的读取并发布

更新时间:2022-08-13 12:08:44

简介


D455作为新一代的英特尔RealSense深度摄像头,网上的资料很少,同时除了官方的资料以外,我们很难找到相关的ROS相关的文档。同时由于D455支持的是realsense SDK2.0。所以SDK1.0的数据也不适用。本文档主要提供了一套完整的Ubuntu 18.04 + Realsense D455 + ROS melodic 的代码。


在ROS中实现多Realscene D455数据的读取并发布


详细步骤


1.环境依赖


依赖环境

版本号

ROS

melodic

Opencv

3.2.0

C++

11+


2.树形图


src
├── CMakeLists.txt 
├── real_sense_multi
│   ├── CMakeLists.txt
│   ├── include
│   ├── launch
│   │   └── realsense_multi_cam.launch #launch 启动文件
│   ├── package.xml
│   └── src
│       └── realsense_multi_cam.cpp


CMakeLists.txt


cmake_minimum_required(VERSION 3.0.2)
project(real_sense_multi)
## Compile as C++11, supported in ROS Kinetic and newer
# add_compile_options(-std=c++11)
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g ")
set (CMAKE_VERBOSE_MAKEFILE ON)
set(OpenCV_DIR /usr/local/share/OpenCV)
## Find catkin macros and libraries
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
## is used, also find other catkin packages
find_package(OpenCV REQUIRED)
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  cv_bridge
  image_transport
  sensor_msgs
)
catkin_package(
#  INCLUDE_DIRS include
#  LIBRARIES real_sense_multi
CATKIN_DEPENDS 
roscpp 
rospy 
std_msgs   
cv_bridge
image_transport
sensor_msgs
#  DEPENDS system_lib
)
if(CMAKE_COMPILER_IS_GNUCC)
    ADD_DEFINITIONS ( -std=c++11 )
endif(CMAKE_COMPILER_IS_GNUCC)
## Your package locations should be listed before other locations
include_directories(
  include
  ${catkin_INCLUDE_DIRS}
  ${OpenCV_INCLUDE_DIRS}
  /opt/ros/melodic/include
)
link_directories(/opt/ros/melodic/lib)
add_executable(realsense_multi_cam_node src/realsense_multi_cam.cpp)
target_link_libraries(realsense_multi_cam_node ${catkin_LIBRARIES} ${OpenCV_