Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wh200720041/iscloam
Intensity Scan Context based full SLAM implementation for autonomous driving. ICRA 2020
https://github.com/wh200720041/iscloam
aloam autonomous-driving loam localization slam
Last synced: 3 days ago
JSON representation
Intensity Scan Context based full SLAM implementation for autonomous driving. ICRA 2020
- Host: GitHub
- URL: https://github.com/wh200720041/iscloam
- Owner: wh200720041
- License: other
- Created: 2020-04-30T12:45:59.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-03-24T07:47:49.000Z (11 months ago)
- Last Synced: 2025-02-01T03:14:17.910Z (10 days ago)
- Topics: aloam, autonomous-driving, loam, localization, slam
- Language: C++
- Homepage:
- Size: 55.8 MB
- Stars: 587
- Watchers: 23
- Forks: 134
- Open Issues: 16
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- Awesome-SLAM - ISCLOAM
README
# ISCLOAM
## Intensity Scan Context based Full SLAM Implementation (ISC-LOAM)This work is an implementation of paper "Intensity Scan Context: Coding Intensity and Geometry Relations for Loop Closure Detection" in IEEE International Conference on Robotics and Automation 2020 (ICRA) [paper](https://arxiv.org/pdf/2003.05656.pdf)
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 20.04.ROS Noetic. [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-noetic-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/file/d/1eyO0Io3lX2z-yYsfGHawMKZa5Z0uYJ0W/view?usp=sharing) (10GB) or [KITTI sequence 07](https://drive.google.com/file/d/1_qUfwUw88rEKitUpt1kjswv7Cv4GPs0b/view?usp=sharing) (4GB)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, you may want to cite the paper below, your citation will be appreciated
```
@inproceedings{wang2020intensity,
author={H. {Wang} and C. {Wang} and L. {Xie}},
booktitle={2020 IEEE International Conference on Robotics and Automation (ICRA)},
title={Intensity Scan Context: Coding Intensity and Geometry Relations for Loop Closure Detection},
year={2020},
volume={},
number={},
pages={2095-2101},
doi={10.1109/ICRA40945.2020.9196764}
}
```## 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).