kinggreat24 / dv-loam

Other
63 stars 10 forks source link

DV-LOAM

1. Building dv-loam

we propose a direct vision LiDAR fusion SLAM framework that consists of three modules. Firstly, a two-staged direct visual odometry module, which consists of a frame-to-frame tracking step, and an improved sliding window based thinning step, is proposed to estimate the accurate pose of the camera while maintaining efficiency. Secondly, every time a keyframe is generated, a dynamic objects considered LiDAR mapping module is utilized to refine the pose of the keyframe to obtain higher positioning accuracy and better robustness. Finally, a Parallel Global and Local Search Loop Closure Detection (PGLS-LCD) module that combines visual Bag of Words (BoW) and LiDAR-Iris feature is applied for place recognition to correct the accumulated drift and maintain a globally consistent map.

img

img2. Building dv-loam

We have tested the library in Ubuntu 16.04 with ROS Kinetic and Ubuntu 18.04 with ROS Melodic. A powerful computer (e.g. i7) will ensure real-time performance and provide more stable and accurate results. A C++11 compiler is needed.

Getting the code

Clone the repository into your catkin workspace:

git clone https://github.com/kinggreat24/dv-loam.git

cd ~/<ros_ws>/dv-loam

## build DBoW2
cd Thirdpary/DBoW2
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

## build fast_gicp
cd Thirdpary/fast_gicp
mkdir build 
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

## build Lidariris
cd Thirdpary/LidarIris
mkdir build 
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

## build linefit_ground_segmentation
mkdir build 
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

## build g2o
mkdir build 
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

## build vikit_common
mkdir build 
cmake -DCMAKE_BUILD_TYPE=Release ..
make -j4

### build dv-loam
cd <ros_ws>
catkin_make -j4

required libs

1. ROS

This ROS node requires catkin_make_isolated or catkin build to build. This package depends on a number of other ROS packages which ship with the default installation of ROS. If they are not installed use rosdep to install them. In your catkin folder run

sudo rosdep init
rosdep update
rosdep install --from-paths src --ignore-src -r -y

to install all dependencies for all packages. If you already initialized rosdep you get a warning which you can ignore.

2.Eigen3

Required by g2o. Download and install instructions can be found here. Otherwise Eigen can be installed as a binary with:

sudo apt install libeigen3-dev

Required at least Eigen 3.1.0.

3.PCL-1.7

Download and install instructions can be found here.

4.vikit-common

Used for camera models. Download and install instructions can be found here.

5.Sophus

Required by vikit-common, we use the non-template, Download and install instructions can be found here .

6.fast-gicp

The package is used to refine the relative transform of loop pairs.

7.fadeRelease_v1.82

3. Run examples

## run kitti
roslaunch d2vl_slam d2vl_slam_kitti.launch sequence:=05

4. To do list (in order)

5. Acknowledgments

Thanks for