D435i跑通ORB-SLAM2

 

摘自:https://blog.csdn.net/qq_36898914/article/details/88780649

D435i跑通ORB-SLAM2

junjun_robotic 2019-03-24 22:09:35 2228 收藏 12

分类专栏: slam 文章标签: SLAM D4355i ORB-slam2

版权

这篇文章主要记录我的实现过程。根据官方安装文档,并参考以下两篇博客,可以比较顺利的实现:

Realsense D435i 在ubuntu上安装SDK与ROS Wrapper 运行ORB-SLAM2、RTAB和VINS-Mono

使用Realsense D435相机在ROS Kinetic中跑通ORB-SLAM2

感谢他们的细致整理与无私奉献。 建议读者参考官方文档(文中附),并结合上两篇博客学习实践。


  •  系统:Ubuntu16.04
  • 内核:4.15.0-46-generic
  • ROS 版本:Kinetic
  • D435i (D435上集成了IMU  网上说是6DOF  博世BMI055?)  SDK:librealsense 2.19.1
  • usb3.0 

一.安装Realsense SDK

            1.安装内核驱动包:参考官方文档https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md

安装完毕后,运行  realsense-viewer ,点击左侧按钮,显示on.即可显示如上图像:

2.安装依赖:参考官方文档https://github.com/IntelRealSense/librealsense/blob/master/doc/installation.md

官方文档平行介绍了多种linux版本的安装方式,让英语语感差的人容易混淆。针对我上述系统配置,安装命令整理如下:

 sudo apt-get update && sudo apt-get upgrade && sudo apt-get dist-upgrade

Download/Clone librealsense github repository:
Navigate to librealsense root directory to run the following scripts.
Unplug any connected Intel RealSense camera.

cmake 3.8+ 以上

 
  1. sudo apt-get install git libssl-dev libusb-1.0-0-dev pkg-config libgtk-3-dev

  2. sudo apt-get install libglfw3-dev

  3. sudo cp config/99-realsense-libusb.rules /etc/udev/rules.d/

  4. sudo udevadm control --reload-rules && udevadm trigger

  5. ./scripts/patch-realsense-ubuntu-lts.sh

  6. echo 'hid_sensor_custom' | sudo tee -a /etc/modules

 运行 ./scripts/patch-realsense-ubuntu-lts.sh 时出现这个错误could not insert 'videodev': Required key not available #3354

按上述网页解决以后,

  • Navigate to librealsense root directory and run: mkdir build && cd build

  • Run CMake:

    • cmake ../ - The default build is set to produce the core shared object and unit-tests binaries in Debug mode. Use -DCMAKE_BUILD_TYPE=Release to build with optimizations.
    • cmake ../ -DBUILD_EXAMPLES=true - Builds librealsense along with the demos and tutorials
    • cmake ../ -DBUILD_EXAMPLES=true -DBUILD_GRAPHICAL_EXAMPLES=false - For systems without OpenGL or X11 build only textual examples 
  • Recompile and install librealsense binaries:
    sudo make uninstall && make clean && make && sudo make install

至此,SDK安装完毕。

二.ORB-SLAM2编译,参考官方文档 官方安装文档

问题1:运行

./build.sh

出现错误(具体忘记了)。办法:将build.sh 文档打开,将make -j 修改为 make -j4 成功运行。

问题2:运行 ./build_ros.sh,编译出现问题。

办法:打开~/ORB_SLAM2/Examples/ROS/ORB_SLAM2  下的CMakeLists.txt.加入-lboost_system,如下:

set(LIBS
${OpenCV_LIBS}
${EIGEN3_LIBS}
${Pangolin_LIBRARIES}
${PROJECT_SOURCE_DIR}/../../../Thirdparty/DBoW2/lib/libDBoW2.so
${PROJECT_SOURCE_DIR}/../../../Thirdparty/g2o/lib/libg2o.so
${PROJECT_SOURCE_DIR}/../../../lib/libORB_SLAM2.so
-lboost_system
)
RGBD TUM数据集测试:在ORB-SLAM2目录下,运行

./Examples/RGB-D/rgbd_tum Vocabulary/ORBvoc.txt Examples/RGB-D/TUM2.yaml ~/tum_dataset/rgbd_dataset_freiburg2_large_with_loop ~/tum_dataset/rgbd_dataset_freiburg2_large_with_loop/associate.txt

Caption

 

三.ROS-wraper安装

参考官方文档:ros-wraper 安装

注意安装后这样操作:

检验是否能在ros使用realsense相机:

   需要安装 rgbd_launch 。执行如下命令:
    sudo apt-get install ros-kinetic-rgbd-launch   //不安装这个  打开终端执行下个命令时,找不到rs_rgbd.launch文件,不知到为啥
    roslaunch realsense2_camera rs_rgbd.launch
    再打开一个终端,输入rviz
    此时并不能看到什么结果
    左上角 Displays 中 Fixed Frame 选项中,下拉菜单选择 camera_link  
    这是主要到Global Status变成了绿色
    点击该框中的Add -> 上方点击 By topic -> /depth_registered 下的 /points 下的/PointCloud2
    点击该框中的Add -> 上方点击 By topic -> /color 下的 /image_raw 下的image
---------------------  
引自:Carminljm  https://blog.csdn.net/Carminljm/article/details/86353775


测试效果:

四. D435i 跑orb-slam2

1.首先应修改相机内参信息。

roslaunch realsense2_camera rs_rgbd.launch

rostopic echo /camera/color/camera_info

这里只是测试,故可以使用Asus.yaml中的参数。

运行rs_rgbd.launch 后,运行  rostopic list 发布的信息如下:

  摄像头节点发布的rgbd图和深度图话题名与ORB-SLAM2的订阅RGB图和深度图话题名不同,修改如下:在~/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src 文件夹下,打开ros_rgbd.cc文档,按如下修改:

 
  1. // message_filters::Subscriber rgb_sub(nh, "/camera/rgb/image_raw", 1);

  2. message_filters::Subscriber rgb_sub(nh, "/camera/color/image_raw", 1);

  3. // message_filters::Subscriber depth_sub(nh, "camera/depth_registered/image_raw", 1);

  4. message_filters::Subscriber depth_sub(nh, "/camera/aligned_depth_to_color/image_raw", 1);

最后在ORB_SLAM2工作目录下,运行

rosrun ORB_SLAM2 RGBD Vocabulary/ORBvoc.txt Examples/RGB-D/TUM1.yaml

运行成功!

 

你可能感兴趣的:(无人机-SLAM-D435i,无人机-自己实现VIO)