/hyperion

Symbolic Continuous-Time Gaussian Belief Propagation Framework with Ceres Interoperability

Primary LanguageC++BSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause



A high-performance Continuous-Time Gaussian Belief Propagation (CT-GBP) framework with fully automated symbolic factor generation and seamless Ceres interoperability targeting distributed SLAM operations!

Report Issues or Request Features




About

Hyperion is a novel, modular, distributed, high-performance optimization framework targeting both discrete- and continuous-time SLAM (Simultaneous Localization and Mapping) applications. It stands out by offering the first open-source C++ implementation of a Gaussian-Belief-Propagation-based Non-Linear Least Squares solver, which, in turn, offers native support for decentralized, stochastic inference on factor graphs. In addition, Hyperion also extends SymForce to automate the generation of high-performance implementations for spline-related residuals from symbolic, high-level expressions. This results in the fastest, Ceres-interoperable B- and Z-Spline implementations, achieving speedups of up to 110x over previous state-of-the-art methods. Links to Paper, Poster, and Video.

Citation

Hyperion was presented at the European Conference on Computer Vision 2024 (ECCV 2024). Until the final version of record becomes available, please cite its archived version as follows:

@misc{Hug:etal:arXiv2024,
      title={{Hyperion -- A fast, versatile symbolic Gaussian Belief Propagation framework for Continuous-Time SLAM}}, 
      author={David Hug and Ignacio Alzugaray and Margarita Chli},
      year={2024},
      eprint={2407.07074},
      archivePrefix={arXiv},
      primaryClass={cs.RO},
      url={https://arxiv.org/abs/2407.07074}, 
}

Setup and Documentation

Additional documentation for installing and using Hyperion will be available soon. The framework comprises two main modules: a Python-based symbolic code generation module and an optimization module for performing inference on general factor graphs. Currently, three executables are provided: one for demonstrating how to set up a minimization problem in Hyperion, and two others for running tests and benchmarks. Hyperion's API closely mirrors that of Ceres, offering familiarity for users of that library. Additionally, a sample benchmark run is included for reference, detailing the metrics reported in the paper.





Contact

Admin - David Hug, Leonhardstrasse 21, 8092 Zürich, ETH Zürich, Switzerland

License

Hyperion is distributed under the BSD-3-Clause License