DR-SLAM is a drift rejection SLAM method for indoor scenarios. It uses multiple feature primitives and geometric information (parallel or perpendicular) restraint in man-made environments. Under some satisfy Manhattan world assumption scene, such as corridors, we can get absolutely and drift-free rotation estimation using a Gaussian sphere. By fully utilizing drift-free rotation estimation under Manhattan world assumption and the local stability of purely track restricted by point, line, and plane features, our drift rejection SLAM method becomes more accurate and robust.
updated on 1.5.2022: Add octomap for navigation and Vanishing point with geometry restrain in 2d image
updated on 2.20.2022: Add Object detection
updated on 3.17.2022 Add Map Relocalization
1.1 Ubuntu and ROS Ubuntu 18.04. ROS Melodic.
1.2 Pangolin
we use Pangolin for visualization and user interface. Download and install instructions can be found at: https://github.com/stevenlovegrove/Pangolin.
1.3 OpenCV
We use OpenCV to manipulate images and features. Dowload and install instructions can be found at: http://opencv.org. Required at leat 2.4.3. Tested with OpenCV 3.4.4.
1.4 Eigen3
Required by g2o (see below). Download and install instructions can be found at: http://eigen.tuxfamily.org. Required at least 3.1.0. Tested with Eigen 3.3.7.
1.5 DBoW2 and g2o (Included in Thirdparty folder)
We use modified versions of the DBoW2 library to perform place recognition and g2o library to perform non-linear optimizations. Both modified libraries (which are BSD) are included in the Thirdparty folder.
1.6 Ocotmap
We use octomap to generation navigation map. Download and install instructions can be found at :https://github.com/OctoMap/octomap.
1.7 YOLOX
We merge YOLOX into our system for object detection. Download and install instructions can be found at: https://github.com/Megvii-BaseDetection/YOLOX. (cuda 10.2, cudnn 8.2.1.32, TensorRT 7.2.1.6)
Clone the repository and catkin_make:
cd ~/catkin_dr/src
git clone https://github.com/WangWen-Believer/DR-SLAM.git
cd DR-SLAM && ./build.sh
cd ../../
catkin_make -j4
source ~/catkin_ws/devel/setup.bash
-
Download a sequence from http://vision.in.tum.de/data/datasets/rgbd-dataset/download and uncompress it.
-
Execute the following command. Change
PATH_TO_SEQUENCE_FOLDER
to the uncompressed sequence folder../Examples/RGB-D/DR_SLAM Vocabulary/ORBvoc.txt Examples/RGB-D/ICL.yaml PATH_TO_SEQUENCE_FOLDER PATH_TO_SEQUENCE_FOLDER/ASSOCIATIONS_FILE
-
Download a sequence from http://vision.in.tum.de/data/datasets/rgbd-dataset/download and uncompress it.
-
Associate RGB images and depth images using the python script associate.py.
python associate.py PATH_TO_SEQUENCE/rgb.txt PATH_TO_SEQUENCE/depth.txt > associations.txt
-
Execute the following command. Change
TUMX.yaml
to TUM1.yaml,TUM2.yaml or TUM3.yaml for freiburg1, freiburg2 and freiburg3 sequences respectively. ChangePATH_TO_SEQUENCE_FOLDER
to the uncompressed sequence folder../Examples/RGB-D/DR_SLAM Vocabulary/ORBvoc.txt Examples/RGB-D/TUMX.yaml PATH_TO_SEQUENCE_FOLDER ASSOCIATIONS_FILE
Record our datasets in office and corridor environments by using RealSense D435i.
- office
- corridor
Topics:
- /camera/aligned_depth_to_color/image_raw
- /camera/color/image_raw
- /camera/imu
roslaunch DRSLAM realsense_Planar.launch
The source code is released under GPLv3 license.
We are still working on improving the code reliability. For any technical issues, please contact us.