Install ROS
Build this package in a catkin workspace
mkdir -p catkin_ws/src
cd catkin_ws
catkin init
catkin config -DCMAKE_BUILD_TYPE=Release -DGTSAM_TANGENT_PREINTEGRATION=OFF -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF -DOPENGV_BUILD_WITH_MARCH_NATIVE=OFF -DBUILD_TEASER_FPFH=ON
cd src
git clone [email protected]:NeBula-Autonomy/LAMP.git localizer_lamp
git clone [email protected]:NeBula-Autonomy/common_nebula_slam.git
wstool init
wstool merge localizer_lamp/install/lamp_ssh.rosinstall
wstool up
catkin build lamp
The rosinstall file should take care of most of the dependencies such as GTSAM and Eigen. For the loop closure prioritization module, we also need to install some Python dependencies. This package uses python2.
torch>=1.4.0
torch-scatter==1.4.0
torch-sparse==0.4.4
torch-cluster==1.4.5
torch-spline-conv==1.1.1
torch-geometric==1.3.2
torchvision
Alternatively, run
python2 -m pip install -r requirements.txt
Note that we are using the develop branch of GTSAM, which is constantly being updated.
The last tested commit of GTSAM is 99c01c4dba6443d923a28b9617b12fee06394688
for your reference.
To run a multi-robot example with our released subterranean multi-robot dataset, first download the dataset, then start the LAMP base-station process:
roslaunch lamp turn_on_lamp_base.launch robot_namespace:=base1
then play the rosbag:
rosbag play <path-to-data>/*.bag -r1 --clock clock:=/clock --wait-for-subscribers
and to visualize the map, launch rviz:
rviz -d $(rospack find lamp)/rviz/lamp_base.rviz
To compile and run unit tests:
roscore & catkin build run_tests
To view the results of a package:
catkin_test_results build/<package_name>
Results for unit tests of packages are stored in the build/<package_name>/test_results folder.