# iscloam
**Repository Path**: torchm/iscloam
## Basic Information
- **Project Name**: iscloam
- **Description**: Intensity Scan Context based full SLAM implementation for autonomous driving. ICRA 2020
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-03-30
- **Last Updated**: 2021-06-24
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 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](http://wanghan.pro), Nanyang Technological University, Singapore
For front-end only odometry, you may visit [FLOAM (fast lidar odometry and mapping)](https://github.com/wh200720041/floam)
## 1. Evaluation
### 1.1. Demo
Watch our demo at [Video Link](https://youtu.be/Kfi6CFK4Ke4)
### 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](http://wiki.ros.org/ROS/Installation)
### 2.2. **Ceres Solver**
Follow [Ceres Installation](http://ceres-solver.org/installation.html).
### 2.3. **PCL**
Follow [PCL Installation](http://www.pointclouds.org/downloads/linux.html).
### 2.3. **GTSAM**
Follow [GTSAM Installation](https://gtsam.org/get_started/).
### 2.3. **OPENCV**
Follow [OPENCV Installation](https://opencv.org/releases/).
### 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](https://drive.google.com/open?id=18ilF7GZDg2tmT6sD5pd1RjqO0XJLn9Mv) or [KITTI sequence 07](https://drive.google.com/open?id=1VpoKm7f4es4ISQ-psp4CV3iylcA4eu0-)
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](https://github.com/ethz-asl/kitti_to_rosbag) or [kitti2bag](https://github.com/tomas789/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](https://github.com/HKUST-Aerial-Robotics/A-LOAM) and LOAM(J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time) and [LOAM_NOTED](https://github.com/cuitaixiang/LOAM_NOTED).