Giter VIP home page Giter VIP logo

minisam's Introduction

miniSAM

Website: https://minisam.readthedocs.io/


miniSAM is an open-source C++/Python framework for solving factor graph based least squares problems. The APIs and implementation of miniSAM are heavily inspired and influenced by GTSAM, a famous factor graph framework, but miniSAM is a much more lightweight framework with

  • Full Python/NumPy API, which enables more agile development and easy binding with existing Python projects, and
  • A wide list of sparse linear solvers, including CUDA enabled sparse linear solvers.

miniSAM is developed by Jing Dong and Zhaoyang Lv. This work was initially started as final project of Math 6644 back to 2017, and mostly finished part-time when both authors were PhD students at College of Computing, Georgia Institute of Technology.

Mandatory Prerequisites

  • CMake 3.4+ (Ubuntu: sudo apt-get install cmake), compilation configuration tool.
  • Eigen 3.3.0+ (Ubuntu: sudo apt-get install libeigen3-dev), a C++ template library for linear algebra.

Optional Dependencies

  • Sophus, a C++ implementation of Lie Groups using Eigen. miniSAM uses Sophus for all SLAM/multi-view geometry functionalities.
  • Python 2.7/3.4+ to use miniSAM Python package.
  • SuiteSparse (Ubuntu: sudo apt-get install libsuitesparse-dev), a suite of sparse matrix algorithms. miniSAM has option to use CHOLMOD and SPQR sparse linear solvers.
  • CUDA 9.0+. miniSAM has option to use cuSOLVER Cholesky sparse linear solver.

Get Started

Please refer to https://minisam.readthedocs.io/install.html for more details.

To get and compile the library (on Ubuntu Linux):

$ git clone --recurse-submodules https://github.com/dongjing3309/minisam.git
$ mkdir build
$ cd build
$ cmake ..
$ make
$ make check  # optional, run unit tests

Tested Compatibility

The miniSAM library is designed to be cross-platform, should be compatible with any modern compiler which supports C++11. It has been tested on Ubuntu Linux and Windows for now.

  • Ubuntu: GCC 5.4+, Clang 3.8+
  • Windows: Visual C++ 2015.3+

Questions & Bug Reporting

Please use Github issue tracker for general questions and reporting bugs, before submitting an issue please have a look of this page.

Citing

If you use miniSAM in an academic context, please cite following publications:

@article{Dong19ppniv,
  author    = {Jing Dong and Zhaoyang Lv},
  title     = {mini{SAM}: A Flexible Factor Graph Non-linear Least Squares Optimization Framework},
  journal   = {CoRR},
  volume    = {abs/1909.00903},
  year      = {2019},
  url       = {http://arxiv.org/abs/1909.00903}
}

License

miniSAM is released under the BSD license, reproduced in the file LICENSE in this directory. Note that the linked sparse linear solvers have different licenses, see this page for details

minisam's People

Contributors

dongjing3309 avatar edwinem avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.