Skip to content

rpl-cmu/rimesa-experiments

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Experiments for Robust Incremental Manifold Edge-based Separable ADMM (riMESA)

Journal Version License: MIT PrePrint Version Journal Version

This repository houses the code + infrastructure + scripts to run the experiments found in our 2026 TRO paper "riMESA: Consensus ADMM for Real-World Collaborative SLAM". The main repository containing our robust incremental C-SLAM algorithm can be found at rpl/rimesa. This repository serves to document the exact method by which experiments were run and provide example usage for the riMESA algorithm.

If you use this package please cite our paper as:

@article{mcgann_rimesa_2026, 
    title = {{riMESA}: Consensus {ADMM} for Real-World Collaborative {SLAM}},
    author = {D. McGann and M. Kaess},
    fullauthor = {Daniel McGann and Michael Kaess},
    journal = {IEEE Transactions on Robotics},
    year = 2026
    volume = {}, % Volume not yet available as of June 2026
    number = {}, % Number not yet available as of June 2026
    pages = {},  % Pages not yet available as of June 2026
}

Structure

This repository is broken down into three main components:

  • agent_interface/ - Defines a common interface to which all experimental methods adhere.
  • agents/ - Wrapper for riMESA to the agent interface and implementation for all prior works.
  • experiments/ - Houses code to run experiments, and houses scripts to generate data, and analyze/plot results.

Each of these modules has a README with additional information and documentation.

Run Experiments

This project provides a main entry point for running riMESA and prior works on datasets via the run-trial program (find in build/experiments/run-trial). More details can be found in the Experiments Module.

Prior works

This repository currently provides implementations multiple centralized baselines and distributed prior works. Descriptions of each can be found in the Prior Work Module.

Note that Distributed Loopy Belief Propagation (DLGBP) (an important comparison in our paper) is not included in this release. The original authors were kind to provide their internal implementation for which we do not have permission to release more widely and have omitted from this repo. We thank users for their understanding!

Dependencies

  • GTSAM - Github - Factor-graph library for SLAM (v4.2.0)
  • Boost - Boost.org- C++ Utilities (v1.71.0+)
  • nlohmann-json - Github - JSON library provides parsing/serializing of JSON. (v3.7.3+)
  • JRL - Github - SLAM dataset library for IO of datasets and results.(v1.1.1+)
  • riMESA - Github - Implementation of the riMESA algorithm. (v0.0.0)
  • KimeraRPGO - Github - Implementation of PCM algorithm.

Setup Instructions

The following instructions are designed to construct a local build of riMESA experiments with the proper versions of dependencies. We link the projects to each other using *_DIR and *_INCLUDE_DIR CMake variables to ensure we build everything against the correct version, and permit users to have other versions of GTSAM or JRL installed on their system.

  1. Install System Dependencies
  • nlohmann-json - sudo apt-get install nlohmann-json3-dev
    • Note this is the only system-wide dependency. All other dependencies are handled locally to allow users to have other versions of GTSAM etc. installed on their machine.
  1. Construct a workspace directory
  • cd /path/to/prefered/location
  • mkdir WORKSPACE
  • The following instructions will refer WORKSPACE as a path and users should insert the absolute path to their chosen workspace.
  1. Build GTSAM
  • cd WORKSPACE
  • git clone -b 4.2.0-imesa https://github.com/DanMcGann/gtsam.git
    • This version is GTSAM v4.2.0 with a few additional change that are detailed in the riMESA repository.
  • cd gtsam && mkdir build && cd build
  • cmake ..
  • make
  1. Build JRL
  • cd WORKSPACE
  • git clone -b v1.1.1 https://github.com/DanMcGann/jrl.git
  • cd jrl && mkdir build && cd build
  • cmake .. -DGTSAM_DIR=WORKSPACE/gtsam/build -DGTSAM_INCLUDE_DIR=WORKSPACE/gtsam/gtsam
  • make
  1. Build the riMESA Experiments
  • cd WORKSPACE
  • git clone -b v0.0.0 https://github.com/rpl-cmu/rimesa-experiments.git
  • cd rimesa-experiments && mkdir build && cd build
  • cmake .. -DGTSAM_DIR=WORKSPACE/gtsam/build -DGTSAM_INCLUDE_DIR=WORKSPACE/gtsam/gtsam -Djrl_DIR=WORKSPACE/jrl/build -Djrl_INCLUDE_DIR=WORKSPACE/jrl/include
  • make

Note: riMESA is included automatically via FetchContent.

Issues

If you encounter issues while using this project please file a bug report on github!

About

[TRO 2026] Experiment code for riMESA - a robust and incremental collaborative SLAM algorithm.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages