Advertisement

D435i跑通ORB-SLAM2

阅读量:

摘自:<>

D435i跑通ORB-SLAM2

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

分类专栏:Simultaneous Localization and Mapping 文章标签:SLAM D4355i ORB-slam2

版权

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

在Ubuntu系统中依次安装软件开发库(SDK)以及ROS封装层(ROS Wrapper),然后按照以下步骤依次运行ORB-SLAM2算法框架、基于特定特特特特的定位算法RTAB以及高精度定位算法VINS-Mono以上流程即可完成设置过程

通过Realsense D435摄像头在ROS Kinetic环境下成功实现了ORB-SLAM2算法的集成

感谢他们辛勤工作的努力与慷慨付出。 作为学习参考的权威资料,请读者务必仔细阅读官方文档中的相关内容(文中已做标注),同时建议深入理解相关知识时,请参考本人之前发表的两篇相关文章。


操作系统为 Ubuntu 16.x;
内核版本为 4.x.x;
ROS版本采用 Kinetic内核;
支持 IMU 配置的博世 BMI08x(约 6DOF)的 D+系列 SDK 使用 librealsense 框架运行于 Ubuntu 上的 D+平台;
USB接口采用USB 2.x标准;


一.安装Realsense SDK

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

安装完成后,请运行realsense-viewer并单击左侧按钮以进入工作状态。即可呈现上述图像。

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

Access the librealsense github repository by downloading or cloning its repository:
Access the librealsense root directory and execute the provided scripts.
Avoid connecting anyIntel RealSense cameras.

cmake 3.8+ 以上

复制代码

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

sudo apt-get install libglfw3-dev

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

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

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

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

在终端中执行 ./scripts/patch-realsense-ubuntu-lts.sh 时出现这个错误:无法插入 'videodev':缺少所需的键 #3354([https://github.com/IntelRealSense/librealsense/issues/3354](https://github.com/IntelRealSense/librealsense/issues/3354))。

按上述网页解决以后,

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

Run CMake:

  • cmake ../ - Configure the build to produce core shared objects and unit tests in debug mode.
  • cmake ../ -D... - Construct librealsense along with its demo and tutorial examples.
  • cmake ../ -D... --no-graphical-demos - Configure librealsense but not its graphical demo examples, targeting systems without OpenGL or X11.

Recompile and install the librealsense binary files:
sudo remove dependencies, clean up, build, and then install dependencies.

至此,SDK安装完毕。

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

问题1:运行

复制代码
    ./build.sh

未能明确指出错误原因。方法:启动build.sh文件后,请将make命令的参数从 -j 更改为 -j4 以确保成功运行。

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

办法:进入指定路径下的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数据集的实验性验证位于ORBSLAM2目录下,并将执行相应的操作。

复制代码
    ./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包并配置深度图像采集系统


测试效果:

四. 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文档,并执行相应代码更改。

复制代码

订阅器函数用于图像颜色订阅器的绑定。

message_filters::Subscriber<sensor_msgs::Image> rgb_sub(nh, "/cameras[color]/image_raw", 1);

= "subscriber for sensor messages of type Image", reading from camera feed camera/depth_registered/image_raw with parameter 1;

message_filters::subscriber<sensor_msgs::Image> depth_submitted_node(nh, "/camera/aligned_depth_to_color/image_raw_path", 1);

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

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

运行成功!

全部评论 (0)

还没有任何评论哟~