{"id":13436091,"url":"https://github.com/borglab/gtsam","last_synced_at":"2025-05-08T23:35:06.537Z","repository":{"id":38708867,"uuid":"86362856","full_name":"borglab/gtsam","owner":"borglab","description":"GTSAM is a library of C++ classes that implement smoothing and mapping (SAM) in robotics and vision, using factor graphs and Bayes networks as the underlying computing paradigm rather than sparse matrices.","archived":false,"fork":false,"pushed_at":"2025-05-08T17:09:17.000Z","size":82205,"stargazers_count":2874,"open_issues_count":122,"forks_count":825,"subscribers_count":61,"default_branch":"develop","last_synced_at":"2025-05-08T22:29:22.565Z","etag":null,"topics":["estimation","perception","robotics","sensorfusion"],"latest_commit_sha":null,"homepage":"https://borglab.github.io/gtsam/","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/borglab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-03-27T17:12:06.000Z","updated_at":"2025-05-08T17:09:16.000Z","dependencies_parsed_at":"2024-01-17T02:16:45.158Z","dependency_job_id":"9c45df62-841e-4f53-bd91-dc729db81162","html_url":"https://github.com/borglab/gtsam","commit_stats":null,"previous_names":[],"tags_count":45,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgtsam","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgtsam/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgtsam/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/borglab%2Fgtsam/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/borglab","download_url":"https://codeload.github.com/borglab/gtsam/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253165696,"owners_count":21864460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["estimation","perception","robotics","sensorfusion"],"created_at":"2024-07-31T03:00:43.725Z","updated_at":"2025-05-08T23:35:06.513Z","avatar_url":"https://github.com/borglab.png","language":"C++","funding_links":[],"categories":["Library, Framework, SDK","[Libraries](#awesome-robotics-libraries)","8. Tutorials","C++","Jupyter Notebook","Softwares and Libraries","Libraries and Frameworks","🗺️ SLAM \u0026 Localization","Visual Odometry \u0026 SLAM"],"sub_categories":["ML \u0026 Vision","[SLAM](#awesome-robotics-libraries)","8.4 Optimization Techniques","Autopilots","SLAM Back-Ends \u0026 Factor Graphs"],"readme":"# GTSAM: Georgia Tech Smoothing and Mapping Library\n\n**Important Note**\n\n**As of January 2023, the `develop` branch is officially in \"Pre 4.3\" mode. We envision several API-breaking changes as we switch to C++17 and away from boost.**\n\nIn addition, features deprecated in 4.2 will be removed. Please use the stable [4.2 release](https://github.com/borglab/gtsam/releases/tag/4.2) if you need those features. However, most are easily converted and can be tracked down (in 4.2) by disabling the cmake flag `GTSAM_ALLOW_DEPRECATED_SINCE_V42`.\n\n## What is GTSAM?\n\nGTSAM is a C++ library that implements smoothing and\nmapping (SAM) in robotics and vision, using Factor Graphs and Bayes\nNetworks as the underlying computing paradigm rather than sparse\nmatrices.\n\nThe current support matrix is:\n\n|      Platform      | Compiler  |                                   Build Status                                   |\n| :----------------: | :-------: | :------------------------------------------------------------------------------: |\n| Ubuntu 22.04/24.04 | gcc/clang |   ![Linux CI](https://github.com/borglab/gtsam/workflows/Linux%20CI/badge.svg)   |\n|       macOS        |   clang   |   ![macOS CI](https://github.com/borglab/gtsam/workflows/macOS%20CI/badge.svg)   |\n|      Windows       |   MSVC    | ![Windows CI](https://github.com/borglab/gtsam/workflows/Windows%20CI/badge.svg) |\n\n\nOn top of the C++ library, GTSAM includes [wrappers for MATLAB \u0026 Python](#wrappers).\n\n\n## Quickstart\n\nIn the root library folder execute:\n\n```sh\n#!bash\nmkdir build\ncd build\ncmake ..\nmake check (optional, runs unit tests)\nmake install\n```\n\nPrerequisites:\n\n- [Boost](http://www.boost.org/users/download/) \u003e= 1.65 (Ubuntu: `sudo apt-get install libboost-all-dev`)\n- [CMake](http://www.cmake.org/cmake/resources/software.html) \u003e= 3.0 (Ubuntu: `sudo apt-get install cmake`)\n- A modern compiler, i.e., at least gcc 4.7.3 on Linux.\n\nOptional prerequisites - used automatically if findable by CMake:\n\n- [Intel Threaded Building Blocks (TBB)](http://www.threadingbuildingblocks.org/) (Ubuntu: `sudo apt-get install libtbb-dev`)\n- [Intel Math Kernel Library (MKL)](http://software.intel.com/en-us/intel-mkl) (Ubuntu: [installing using APT](https://software.intel.com/en-us/articles/installing-intel-free-libs-and-python-apt-repo))\n    - See [INSTALL.md](INSTALL.md) for more installation information\n    - Note that MKL may not provide a speedup in all cases. Make sure to benchmark your problem with and without MKL.\n\n## GTSAM 4 Compatibility\n\nGTSAM 4 introduces several new features, most notably Expressions and a Python toolbox. It also introduces traits, a C++ technique that allows optimizing with non-GTSAM types. That opens the door to retiring geometric types such as Point2 and Point3 to pure Eigen types, which we also do. A significant change which will not trigger a compile error is that zero-initializing of Point2 and Point3 is deprecated, so please be aware that this might render functions using their default constructor incorrect.\n\n## Wrappers\n\nWe provide support for [MATLAB](matlab/README.md) and [Python](python/README.md) wrappers for GTSAM. Please refer to the linked documents for more details.\n\n## Citation\n\nIf you are using GTSAM for academic work, please use the following citation:\n\n```bibtex\n@software{gtsam,\n  author       = {Frank Dellaert and GTSAM Contributors},\n  title        = {borglab/gtsam},\n  month        = May,\n  year         = 2022,\n  publisher    = {Georgia Tech Borg Lab},\n  version      = {4.2a8},\n  doi          = {10.5281/zenodo.5794541},\n  url          = {https://github.com/borglab/gtsam)}}\n}\n```\n\nTo cite the `Factor Graphs for Robot Perception` book, please use:\n```bibtex\n@book{factor_graphs_for_robot_perception,\n    author={Frank Dellaert and Michael Kaess},\n    year={2017},\n    title={Factor Graphs for Robot Perception},\n    publisher={Foundations and Trends in Robotics, Vol. 6},\n    url={http://www.cs.cmu.edu/~kaess/pub/Dellaert17fnt.pdf}\n}\n```\n\nIf you are using the IMU preintegration scheme, please cite:\n```bibtex\n@book{imu_preintegration,\n    author={Christian Forster and Luca Carlone and Frank Dellaert and Davide Scaramuzza},\n    title={IMU preintegration on Manifold for Efficient Visual-Inertial Maximum-a-Posteriori Estimation},\n    year={2015}\n}\n```\n\n\n## The Preintegrated IMU Factor\n\nGTSAM includes a state of the art IMU handling scheme based on\n\n- Todd Lupton and Salah Sukkarieh, _\"Visual-Inertial-Aided Navigation for High-Dynamic Motion in Built Environments Without Initial Conditions\"_, TRO, 28(1):61-76, 2012. [[link]](https://ieeexplore.ieee.org/document/6092505)\n\nOur implementation improves on this using integration on the manifold, as detailed in\n\n- Luca Carlone, Zsolt Kira, Chris Beall, Vadim Indelman, and Frank Dellaert, _\"Eliminating conditionally independent sets in factor graphs: a unifying perspective based on smart factors\"_, Int. Conf. on Robotics and Automation (ICRA), 2014. [[link]](https://ieeexplore.ieee.org/abstract/document/6907483)\n- Christian Forster, Luca Carlone, Frank Dellaert, and Davide Scaramuzza, _\"IMU Preintegration on Manifold for Efficient Visual-Inertial Maximum-a-Posteriori Estimation\"_, Robotics: Science and Systems (RSS), 2015. [[link]](http://www.roboticsproceedings.org/rss11/p06.pdf)\n\nIf you are using the factor in academic work, please cite the publications above.\n\nIn GTSAM 4 a new and more efficient implementation, based on integrating on the NavState tangent space and detailed in [this document](doc/ImuFactor.pdf), is enabled by default. To switch to the RSS 2015 version, set the flag `GTSAM_TANGENT_PREINTEGRATION` to OFF.\n\n\n## Additional Information\n\nThere is a [`GTSAM users Google group`](https://groups.google.com/forum/#!forum/gtsam-users) for general discussion.\n\nRead about important [`GTSAM-Concepts`](GTSAM-Concepts.md) here. A primer on GTSAM Expressions,\nwhich support (superfast) automatic differentiation,\ncan be found on the [GTSAM wiki on BitBucket](https://bitbucket.org/gtborg/gtsam/wiki/Home).\n\nSee the [`INSTALL`](INSTALL.md) file for more detailed installation instructions.\n\nGTSAM is open source under the BSD license, see the [`LICENSE`](LICENSE) and [`LICENSE.BSD`](LICENSE.BSD) files.\n\nPlease see the [`examples/`](examples) directory and the [`USAGE`](USAGE.md) file for examples on how to use GTSAM.\n\nGTSAM was developed in the lab of [Frank Dellaert](http://www.cc.gatech.edu/~dellaert) at the [Georgia Institute of Technology](http://www.gatech.edu), with the help of many contributors over the years, see [THANKS](THANKS.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborglab%2Fgtsam","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fborglab%2Fgtsam","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fborglab%2Fgtsam/lists"}