Enhancing LiDAR Odometry and Mapping with Pointcloud-based Loop Closures (16833 Project)

Usage

Set up

$ git clone https://github.com/bobbyshashin/16833-project.git
$ cd 16833-project/aloam_ws
$ catkin_make
$ source devel/setup.bash

Generate KITTI ros bags

Skip this if you already have kitti rosbags.

  1. Download KITTI Odometry dataset, we do not need grayscale and color, and orgnize it as following:
├── poses
│   ├── 00.txt
│   ├── ......
│   └── 10.txt
└── sequences
│   ├── 00
│   │   ├── velodyne
│   │   │   ├── 000000.bin
│   │   │   ├── ......
│   │   │   └── xxxxxx.bin
│   │   ├── calib.txt
│   │   └── times.txt
│   ├── ...
│   └── 21
  1. Modify line 5,6,7 in kitti_help.launch.
  2. Run kitti_helper to generate rosbags (after catkin_make, source)
roslaunch aloam_velodyne kitti_helper.launch

This will save kitti rosbags to your local.

Run the algorithm

  1. Launch LOAM and pose graph optimization node
$ roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch
  1. Launch loop closure detection node
$ cd src/A-LOAM/scripts/
$ python LCD.py
  1. Play KITTI rosbag.
$ rosbag play PATH/TO/KITTI_ROSBAG/SEQUENCE_NUMBER.bag

Acknowledgements

Thanks for Qin's LOAM implementation.