All Projects → dongjing3309 → Minisam

dongjing3309 / Minisam

Licence: bsd-3-clause
A general and flexible factor graph non-linear least square optimization framework

Projects that are alternatives of or similar to Minisam

Awesome Robotics Libraries
😎 A curated list of robotics libraries and software
Stars: ✭ 1,159 (+371.14%)
Mutual labels:  robotics, slam, optimization
Teaser Plusplus
A fast and robust point cloud registration library
Stars: ✭ 607 (+146.75%)
Mutual labels:  robotics, slam, optimization
Door Slam
Distributed, Online, and Outlier Resilient SLAM for Robotic Teams
Stars: ✭ 107 (-56.5%)
Mutual labels:  robotics, slam
Awesome Robotic Tooling
Tooling for professional robotic development in C++ and Python with a touch of ROS, autonomous driving and aerospace.
Stars: ✭ 1,876 (+662.6%)
Mutual labels:  robotics, slam
Cleanit
Open-source Autonomy Software in Rust-lang with gRPC for the Roomba series robot vacuum cleaners. Under development.
Stars: ✭ 125 (-49.19%)
Mutual labels:  robotics, slam
Evo
Python package for the evaluation of odometry and SLAM
Stars: ✭ 1,373 (+458.13%)
Mutual labels:  robotics, slam
Rtabmap
RTAB-Map library and standalone application
Stars: ✭ 1,376 (+459.35%)
Mutual labels:  robotics, slam
Se2clam
SE(2)-Constrained Localization and Mapping by Fusing Odometry and Vision (IEEE Transactions on Cybernetics 2019)
Stars: ✭ 116 (-52.85%)
Mutual labels:  robotics, slam
Safeopt
Safe Bayesian Optimization
Stars: ✭ 90 (-63.41%)
Mutual labels:  robotics, optimization
Rl Baselines3 Zoo
A collection of pre-trained RL agents using Stable Baselines3, training and hyperparameter optimization included.
Stars: ✭ 161 (-34.55%)
Mutual labels:  robotics, optimization
Pythonrobotics
Python sample codes for robotics algorithms.
Stars: ✭ 13,934 (+5564.23%)
Mutual labels:  robotics, slam
Flame
FLaME: Fast Lightweight Mesh Estimation
Stars: ✭ 164 (-33.33%)
Mutual labels:  robotics, slam
Iros2018 Slam Papers
IROS2018 SLAM papers (ref from PaoPaoRobot)
Stars: ✭ 224 (-8.94%)
Mutual labels:  robotics, slam
Caesar.jl
Robot toolkit: Towards non-parametric and parametric navigation solutions
Stars: ✭ 98 (-60.16%)
Mutual labels:  robotics, slam
Grl
Robotics tools in C++11. Implements soft real time arm drivers for Kuka LBR iiwa plus V-REP, ROS, Constrained Optimization based planning, Hand Eye Calibration and Inverse Kinematics integration.
Stars: ✭ 105 (-57.32%)
Mutual labels:  robotics, optimization
Ssl slam2
SSL_SLAM2: Lightweight 3-D Localization and Mapping for Solid-State LiDAR (mapping and localization separated) ICRA 2021
Stars: ✭ 96 (-60.98%)
Mutual labels:  robotics, slam
M Loam
Robust Odometry and Mapping for Multi-LiDAR Systems with Online Extrinsic Calibration
Stars: ✭ 114 (-53.66%)
Mutual labels:  robotics, slam
Iros2019 Paper List
IROS2019 paper list from PaopaoRobot
Stars: ✭ 214 (-13.01%)
Mutual labels:  robotics, slam
Mrpt
⚡️ The Mobile Robot Programming Toolkit (MRPT)
Stars: ✭ 1,190 (+383.74%)
Mutual labels:  robotics, slam
Ssl slam
SSL_SLAM: Lightweight 3-D Localization and Mapping for Solid-State LiDAR IEEE RA-L 2021
Stars: ✭ 144 (-41.46%)
Mutual labels:  robotics, slam

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].