RealSenseD435i (一):Ubuntu18.04 下的安装、使用和bag录制 ,且解决 undefined symbol 问题(最简单的方法)

注意

realsense-ros 要和 librealsense 版本匹配,realsense-ros 2.2.11 对应的 Realsense SDK 为 librealsense 2.31 .0,否则后面会出现让人崩溃的问题。

  • 其中 realsense-ros 的下载如下:

https://download.csdn.net/download/hltt3838/36063617

删除之前安装的RealSense库文件,使用下列的命令:

dpkg -l    // 查看所有安装的软件;

sudo apt-get remove ros-melodic-librealsense2      // 相信对于重复安装会有用的;

一、安装环境说明

  • LInux系统
  • 系统版本:Ubuntu 18.04
  • ROS版本:Melodic
  • 摄像头:    Intel Realsense D435i

二、RealSense SDK安装

2.0 更新系统

// 打开终端 0
sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

2.1 下载SDK

新打开一个终端1,输入以下命令:

1、git 下载

  • mkdir -p librealsense_install
  • cd librealsense_install/
  • git clone -b v2.31.0 https://github.com/IntelRealSense/librealsense.git

2、手动下载

 

3、cd librealsense_install      

说明:

个人用的是手动安装,最好开个手机流量

2.2 安装相关依赖(拔掉相机

打开新的端口,分别输入以下命令完成相关依赖的安装:

  • sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev
  • sudo apt-get install libglfw3-dev

2.3 进行编译与安装

在执行以下命令实现编译与安装

  • cd librealsense_install/librealsense
  • mkdir build
  • cd build
  • cmake ../ -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=true   // 开流量
  • sudo make uninstall
  • make clean && make -j8
  • sudo make install

三、测试安装是否成功

在终端中输入以下命令验证相机驱动是否安装成功

  • cd librealsense_install/librealsense/build/examples/capture
  • ./rs-capture

或者新打开终端

realsense-viewer

// realsense-viewer 后看到SDK的版本不是2.31 .0;

 注意:

可能会没有下面图像,出现错误的原因是,由于RealSense D435i是RGBD相机,也就是颜色与深度相机,其数据量大,需要使用USB3.0的接口才能承受大数据流的传输,如果您使用的是USB2.0接口,则会出现上述问题。

安装成功则可以看到输入命令后打开一个窗口,窗口中显示相机拍摄到的画面如下图所示。

四、RealSense-ROS安装

我已经新建了ROS工作空间,可以直接在工作空间的src目录下克隆相关功能包,然后进行编译,具体命令参考下方:

 1、已建好工作空间

  • cd Realsense_D435i/src
  • git clone -b 2.2.11 https://github.com/IntelRealSense/realsense-ros.git
  • git clone https://github.com/pal-robotics/ddynamic_reconfigure.git

/快速下载链接:https://download.csdn.net/download/AnChenliang_1002/13085304

完成上述步骤后,使用以下命令进行测试:

  • cd Realsense_D435i  
  • catkin_make
  • source devel/setup.bash
  • roslaunch realsense2_camera  mytest.launch  // mytest.launch 是自己写的,原因是用配套的程序发现IMU频率很高,运行VINS-mono有问题

打开新的终端:

(1)查看节点

rostopic list

hltt3838@hltt3838-G3-3579:~$ rostopic list

  • /camera/accel/imu_info
  • /camera/accel/sample
  • /camera/color/camera_info
  • /camera/color/image_raw
  • /camera/depth/camera_info
  • /camera/depth/image_rect_raw
  • /camera/extrinsics/depth_to_color
  • /camera/extrinsics/depth_to_infra1
  • /camera/extrinsics/depth_to_infra2
  • /camera/gyro/imu_info
  • /camera/gyro/sample
  • /camera/infra1/camera_info
  • /camera/infra1/image_rect_raw
  • /camera/infra2/camera_info
  • /camera/infra2/image_rect_raw
  • /camera/motion_module/parameter_descriptions
  • /camera/motion_module/parameter_updates
  • /camera/realsense2_camera_manager/bond
  • /camera/rgb_camera/parameter_descriptions
  • /camera/rgb_camera/parameter_updates
  • /camera/stereo_module/parameter_descriptions
  • /camera/stereo_module/parameter_updates
  • /diagnostics
  • /rosout
  • /rosout_agg
  • /tf_static

// 比如记录IMU的数据bag

rosbag record /camera/accel/imu_info -O imu.bag

(2)rviz查看結果

rviz

此时并不能看到什么结果.
左上角 Displays 中 Fixed Frame 选项中,下拉菜单选择 camera_link
这是主要到Global Status变成了绿色
点击该框中的Add -> 上方点击 By topic -> /depth_registered 下的 /points 下的/PointCloud2
 

 点击该框中的 Add -> 上方点击 By topic -> /color 下的 /image_raw 下的image

五、数据记录与播放

说明:运行上面的 roslaunch realsense2_camera demo_pointcloud.launch 指令时,便可以进行下面bag的录制

  • rosbag record -a   #录制所有topic到bag文件,注意-终端的地址就是bag包存放的地址,bag的名字是时间;
  • 比如记录IMU的数据bag

    rosbag record /camera/accel/imu_info -O imu.bag

         变成了 rosbag record /camera/imu -O imu.bag     // 因为修改了realsense2_camera的程序

  • rosbag record /camera/imu /camera/color/image_raw -o Cam-imu.bag   // 录制两个话题的bag包
  • rosbag play xxx.bag        #播放bag文件
  • rosbag info xxx.bag         #查看bag文件

   注意:rosbag play bag 的同时,也可以提取bag包发布的特定topic,保存成txt或者csv文件,如下所示:

  • rostopic echo /camera/imu  > imu.txt

六、出现的问题和解决的办法

问题1,运行下面命令时出现问题:

  • cmake ../ -DBUILD_EXAMPLES=true

解决办法:

访问以下链接(该链接在终端中提及),下载L5XX_FW_Image-1.4.1.2.bin,  并将其更新至librealsense/build/commom/fw目录中

realsense-hw-public.s3.amazonaws.com/Releases/L5xx/FW/L5XX_FW_Image-1.4.1.2.bin

更新文件后再次执行以下命令,问题解决,最终显示如图所示的结果

  • cmake ../ -DBUILD_EXAMPLES=true

问题2,运行 roslaunch realsense2_camera  rs_camera.launch 命令时出现问题:

 解决办法- 不要看别人的,别人的特别的麻烦,而且误导你

在     Realsense_D435i/realsense-ros/realsense2_camera文件下的CMakelists 中添加:

find_package(OpenCV 3 REQUIRED opencv_core opencv_imgcodecs opencv_imgproc opencv_highgui)

或添加上opencv_calib3d opencv_videoio

 

参考博客

版本对应的博客

Ubuntu 16.04 + Realsense D435i + ROS 环境配置 - Hongkai_Ding - 博客园

  OpenCV 程序编译出错 '_ZN2cv6imreadERKNS_6StringEi'_suzhou7915的博客-CSDN博客在ROS下Intel RealSense D435i 驱动的安装,避免踩坑,避免缺少imu话题等各种问题(适用于D400系列、SR300和T265跟踪模块等)_AnChenliang_1002的博客-CSDN博客

 

おすすめ

転載: blog.csdn.net/hltt3838/article/details/120691764