Code Monkey home page Code Monkey logo

iscloam's Introduction

ISCLOAM

Intensity Scan Context based Full SLAM Implementation (ISC-LOAM)

This work is 3D lidar based Simultaneous Localization And Mapping (SLAM), including both front-end and back-end SLAM, at 20Hz.

Author: Wang Han, Nanyang Technological University, Singapore

For front-end only odometry, you may visit FLOAM (fast lidar odometry and mapping)

1. Evaluation

1.1. Demo

Watch our demo at Video Link

1.2. Mapping Example

1.3. Localization Example

1.4. Ground Truth Comparison

Green: ISCLOAM Red: Ground Truth

                  KITTI sequence 00                                  KITTI sequence 05

1.5. Localization error

Platform: Intel® Core™ i7-8700 CPU @ 3.20GHz

Average translation error : 1.08%

Average rotation error : 0.000073

1.6. Comparison

Dataset ISCLOAM FLOAM
KITTI sequence 00 0.24% 0.51%
KITTI sequence 05 0.22% 0.93%

2. Prerequisites

2.1 Ubuntu and ROS

Ubuntu 64-bit 18.04.

ROS Melodic. ROS Installation

2.2. Ceres Solver

Follow Ceres Installation.

2.3. PCL

Follow PCL Installation.

2.3. GTSAM

Follow GTSAM Installation.

2.3. OPENCV

Follow OPENCV Installation.

2.4. Trajectory visualization

For visualization purpose, this package uses hector trajectory sever, you may install the package by

sudo apt-get install ros-melodic-hector-trajectory-server

Alternatively, you may remove the hector trajectory server node if trajectory visualization is not needed

3. Build

3.1 Clone repository:

cd ~/catkin_ws/src
git clone https://github.com/wh200720041/iscloam.git
cd ..
catkin_make -j1
source ~/catkin_ws/devel/setup.bash

3.2 Download test rosbag

Download KITTI sequence 05 or KITTI sequence 07

Unzip compressed file 2011_09_30_0018.zip. If your system does not have unzip. please install unzip by

sudo apt-get install unzip 

This may take a few minutes to unzip the file, by default the file location should be /home/user/Downloads/2011_09_30_0018.bag

cd ~/Downloads
unzip ~/Downloads/2011_09_30_0018.zip

3.3 Launch ROS

roslaunch iscloam iscloam.launch

3.4 Mapping Node

if you would like to generate the map of environment at the same time, you can run

roslaunch iscloam iscloam_mapping.launch

Note that the global map can be very large, so it may takes a while to perform global optimization, some lag is expected between trajectory and map since they are running in separate thread. More CPU usage will happen when loop closure is identified.

4. Test other sequence

To generate rosbag file of kitti dataset, you may use the tools provided by kitti_to_rosbag or kitti2bag

5. Other Velodyne sensor

You may use iscloam_velodyne.launch for your own velodyne sensor, such as Velodyne VLP-16.

6. Citation

If you use this work for your research, please cite

@article{wang2020intensity,
  title={Intensity Scan Context: Coding Intensity and Geometry Relations for Loop Closure Detection},
  author={Wang, Han and Wang, Chen and Xie, Lihua},
  journal={arXiv preprint arXiv:2003.05656},
  year={2020}
}

7.Acknowledgements

Thanks for A-LOAM and LOAM(J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time) and LOAM_NOTED.

iscloam's People

Contributors

wh200720041 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.