BALM
BALM copied to clipboard
An efficient and consistent bundle adjustment for lidar mapping
BALM
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.
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 https://github.com/hku-mars/BALM.git
cd ../
catkin_make
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