ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式

ORB_SLAM3的ROS接口和ORB_SLAM2一样,可能因为还是Beta版就没有重写吧连名字空间都是ORBSLAM2的, 没有加入imu的节点。

我写了两个ROS接口双目IMU和单目IMU,通过修改DBow2的源码将词典的加载方式改为二进制,加载词典的时候就速不用等待了。实现方法也不难,把时间戳在当前帧之前的IMU帧(包括时间戳相同的)以这样ORB_SLAM3::IMU::Point的形式,全部加入到这样vector<ORB_SLAM3::IMU::Point>的结构中,注意处理帧的先后顺序,IMU帧频率高有可能有几帧在图片之后才能到达。

代码地址:https://github.com/xiefei2929/ORB_SLAM3-ROS-Interface

ORBSLAM3 用ROS接口运行双目IMU和单目IMU模式

编译同ORB_SLAM3

2.1 配置Ros环境
$ mkdir -p ~/catkin_ws/src
$ cd ~/catkin_ws
$ catkin_make
在home目录找到隐藏文件.bashrc,在最下面添加
source /opt/ros/melodic/setup.bash
source ~/catkin_ws/devel/setup.bash

2.2 安装依赖
# 安装 g++
$ sudo apt-get install gcc g++   

# 安装 Pangolin  
$ sudo apt-get install libglew-dev   #安装Glew
$ sudo apt-get install cmake         #安装CMake
$ sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev  #安装Boost
$ sudo apt-get install libpython2.7-dev  #安装Python2'Python3
$ git clone https://github.com/stevenlovegrove/Pangolin.git
$ cd Pangolin
$ mkdir build
$ cd build
$ cmake -DCPP11_NO_BOOST=1 ..
$ make
$ sudo make

# 安装Opencv
$ sudo apt-get update
$ sudo apt-get install libopencv-dev

# 安装Eigen
$ sudo apt-get install libeigen3-dev

# 安装BLAS,LAPACK
$ sudo apt-get install libblas-dev
$ sudo apt-get install liblapack-dev

2.3# 编译ORB_SLAM3-ROS-Interface
$ cd catkin_ws/src
$ git clone https://github.com/xiefei2929/ORB_SLAM3-ROS-Interface.git
$ cd ORB_SLAM3-ROS-Interface
$ chmod +x build.sh
$ ./build.sh  #如果运行电脑卡死的话,请修改build.sh文件中所有的make -j为make
$ ./build_ros.sh

运行命令

单目IMU:   rosrun ORB_SLAM3 Mono_inertial /YOUR_PATH/ORBvoc.bin /YOUR_PATH/EuRoC.yaml

双目IMU:   rosrun ORB_SLAM3 Stereo_inertial /YOUR_PATH/ORBvoc.bin /YOUR_PATH/EuRoC.yaml