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](https://github.com/HKUST-Aerial-Robotics/A-LOAM), [Livox_mapping](https://github.com/Livox-SDK/livox_mapping), and [LeGO-LOAM](https://github.com/RobustFieldAutonomyLab/LeGO-LOAM) for source code or datasets.Our related paper: our related paper is available on Arxiv:
BALM: Bundle Adjustment for Lidar Mapping
Ubuntu 64-bit 16.04. ROS Installation (Kinetic recommended)
Follow PCL Installation (1.7 recommended). Follow Eigen Installation (3.3.7 recommended). Follow OpenCV Installation (3.3.1 recommanded).
Follow livox_ros_driver Installation
Clone the repository and catkin_make:
cd ~/catkin_ws/src
git clone https://github.com/hku-mars/BALM.git
cd ../
catkin_make
source ~/catkin_ws/devel/setup.bash
Download 2020_parking_lot and then
roslaunch balm balm_horizon_outdoor.launch
rosbag play YOUR_DOWNLOADED.bag
Download hall_example and then
roslaunch balm balm_mid40.launch
rosbag play YOUR_DOWNLOADED.bag
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
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
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.
Simplify covariance matrix