Skip to content
Go to file

Latest commit


Git stats


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


Bundle adjustment for lidar mapping

BALM is a basic and simple system to use bundle adjustment (BA) in lidar mapping. It uses an local BA and temporal sliding window to work in real-time. The code is simple with detailed notes and we do not add too many functions which may confuse you when reading the BALM. We will add motion blur, key frame and loop closure to make it a complete SLAM system in next version. The BALM is also a useful tool for multiple lidar calibration and SLAM. More experiment details can be found in the video.

In the development of our package, we reference to [A-LOAM](, [Livox_mapping](, and [LeGO-LOAM]( for source code or datasets.

Our related paper: our related paper is available on Arxiv:

BALM: Bundle Adjustment for Lidar Mapping

1. Prerequisites

1.1 Ubuntu and ROS

Ubuntu 64-bit 16.04. ROS Installation (Kinetic recommended)

1.2 PCL, OpenCV and Eigen

Follow PCL Installation (1.7 recommended). Follow Eigen Installation (3.3.7 recommended). Follow OpenCV Installation (3.3.1 recommanded).

1.3 Livox Ros Driver

Follow livox_ros_driver Installation

2. Build

Clone the repository and catkin_make:

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

3. Run the package

3.1 Livox Horizon

Download 2020_parking_lot and then

    roslaunch balm balm_horizon_outdoor.launch 
    rosbag play YOUR_DOWNLOADED.bag

3.2 Livox Mid-40

Download hall_example and then

    roslaunch balm balm_mid40.launch
    rosbag play YOUR_DOWNLOADED.bag

3.3 VLP-16

Download same_postion (provided by LeGO-LOAM, you can also download by same_position) and then

    roslaunch balm balm_velo16.launch
    rosbag play YOUR_DOWNLOADED.bag

3.4 LOAM as front-end

We also provide a version which uses LOAM as front-end and BALM as back-end like the figure 2 in the paper. Download stairs and then

    roslaunch balm balm_loam_horizon_indoor.launch
    rosbag play YOUR_DOWNLOADED.bag

4 Acknowledements

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

5 Appendix

Simplify covariance matrix


No description, website, or topics provided.



No releases published


No packages published