Skip to content
Switch branches/tags


Failed to load latest commit information.
Latest commit message
Commit time


Advanced implementation of LOAM

A-LOAM is an Advanced implementation of LOAM (J. Zhang and S. Singh. LOAM: Lidar Odometry and Mapping in Real-time), which uses Eigen and Ceres Solver to simplify code structure. This code is modified from LOAM and LOAM_NOTED. This code is clean and simple without complicated mathematical derivation and redundant operations. It is a good learning material for SLAM beginners.

Modifier: Tong Qin, Shaozu Cao

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu 64-bit 16.04 or 18.04. ROS Kinetic or Melodic. ROS Installation

1.2. Ceres Solver

Follow Ceres Installation.

1.3. PCL

Follow PCL Installation.

2. Build A-LOAM

Clone the repository and catkin_make:

    cd ~/catkin_ws/src
    git clone
    cd ../
    source ~/catkin_ws/devel/setup.bash

3. Velodyne VLP-16 Example

Download NSH indoor outdoor to YOUR_DATASET_FOLDER.

    roslaunch aloam_velodyne aloam_velodyne_VLP_16.launch
    rosbag play YOUR_DATASET_FOLDER/nsh_indoor_outdoor.bag

4. KITTI Example (Velodyne HDL-64)

Download KITTI Odometry dataset to YOUR_DATASET_FOLDER and set the dataset_folder and sequence_number parameters in kitti_helper.launch file. Note you also convert KITTI dataset to bag file for easy use by setting proper parameters in kitti_helper.launch.

    roslaunch aloam_velodyne aloam_velodyne_HDL_64.launch
    roslaunch aloam_velodyne kitti_helper.launch

5. Docker Support

To further facilitate the building process, we add docker in our code. Docker environment is like a sandbox, thus makes our code environment-independent. To run with docker, first make sure ros and docker are installed on your machine. Then add your account to docker group by sudo usermod -aG docker $YOUR_USER_NAME. Relaunch the terminal or logout and re-login if you get Permission denied error, type:

cd ~/catkin_ws/src/A-LOAM/docker
make build

The build process may take a while depends on your machine. After that, run ./ 16 or ./ 64 to launch A-LOAM, then you should be able to see the result.


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