Home

Awesome

B(erkeley) L(ocalization) A(nd) M(apping)!

alt text

BLAM! is an open-source software package for LiDAR-based real-time 3D localization and mapping. BLAM! is developed by Erik Nelson from the Berkeley AI Research Laboratory (BAIR). See https://youtu.be/08GTGfNneCI for a video example.

Build Instructions

This repository contains two ROS workspaces (one internal, one external). The build process is proctored by the update script. To build, first make sure that you do not have any other ROS workspaces in your ROS_PACKAGE_PATH, then clone the repository and from the top directory execute

./update

Run Instructions

BLAM! is written in C++ with some Python interface elements, wrapped by Robot Operating System (ROS). Input LiDAR data should be provided to the /velodyne_points topic using message type sensor_msgs::PointCloud2.

To run in online mode (e.g. by replaying a bag file from another terminal or using a real-time sensor stream), use

roslaunch blam_example test_online.launch

To run in offline mode, i.e. by loading a bagfile and processing its data as fast as possible, set the bagfile name and scan topic in blam_example/launch/test_offline.launch, and use

roslaunch blam_example test_offline.launch

An example .rviz configuration file is provided under blam_example/rviz/lidar_slam.rviz.

Dependencies

BLAM! relies on system installations of the following packages:

GTSAM in particular should be installed from source using the latest version of the develop branch from https://bitbucket.org/gtborg/gtsam. GTSAM relies on Boost, an incorrect version of which will interfere with some of ROS' packages if ROS is not upgraded to at least Indigo. ROS Indigo, in turn, relies on Ubuntu 14.04.