Code Monkey home page Code Monkey logo

dv-loam's Introduction

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)

  • Add PGLS-LCD module
  • Incorporating our previous work: a geometry-based multi-motion segmentation approach(DymSLAM: 4D Dynamic Scene Reconstruction Based on Geometrical Motion Segmentation) to DV-LOAM, thus eliminating the effect of moving objects and obtaining a static point cloud map.

5. Acknowledgments

Thanks for

dv-loam's People

Contributors

kinggreat24 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.