Skip to main content

Georgia Tech Smoothing And Mapping library

Project description

README - Georgia Tech Smoothing and Mapping Library

Important Note

As of Dec 2021, the develop branch is officially in "Pre 4.2" mode. A great new feature we will be adding in 4.2 is hybrid inference a la DCSLAM (Kevin Doherty et al) and we envision several API-breaking changes will happen in the discrete folder.

In addition, features deprecated in 4.1 will be removed. Please use the last 4.1.1 release if you need those features. However, most (not all, unfortunately) are easily converted and can be tracked down (in 4.1.1) by disabling the cmake flag GTSAM_ALLOW_DEPRECATED_SINCE_V42.

What is GTSAM?

GTSAM is a C++ library that implements smoothing and mapping (SAM) in robotics and vision, using Factor Graphs and Bayes Networks as the underlying computing paradigm rather than sparse matrices.

The current support matrix is:

Platform Compiler Build Status
Ubuntu 18.04 gcc/clang Linux CI
macOS clang macOS CI
Windows MSVC Windows CI

On top of the C++ library, GTSAM includes wrappers for MATLAB & Python.

Quickstart

In the root library folder execute:

#!bash
$ mkdir build
$ cd build
$ cmake ..
$ make check (optional, runs unit tests)
$ make install

Prerequisites:

  • Boost >= 1.65 (Ubuntu: sudo apt-get install libboost-all-dev)
  • CMake >= 3.0 (Ubuntu: sudo apt-get install cmake)
  • A modern compiler, i.e., at least gcc 4.7.3 on Linux.

Optional prerequisites - used automatically if findable by CMake:

GTSAM 4 Compatibility

GTSAM 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.

GTSAM 4 also deprecated some legacy functionality and wrongly named methods. If you are on a 4.0.X release, you can define the flag GTSAM_ALLOW_DEPRECATED_SINCE_V4 to use the deprecated methods.

GTSAM 4.1 added a new pybind wrapper, and removed the deprecated functionality. There is a flag GTSAM_ALLOW_DEPRECATED_SINCE_V42 for newly deprecated methods since the 4.1 release, which is on by default, allowing anyone to just pull version 4.1 and compile.

Wrappers

We provide support for MATLAB and Python wrappers for GTSAM. Please refer to the linked documents for more details.

The Preintegrated IMU Factor

GTSAM includes a state of the art IMU handling scheme based on

  • 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]

Our implementation improves on this using integration on the manifold, as detailed in

  • 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]
  • 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]

If you are using the factor in academic work, please cite the publications above.

In GTSAM 4 a new and more efficient implementation, based on integrating on the NavState tangent space and detailed in this document, is enabled by default. To switch to the RSS 2015 version, set the flag GTSAM_TANGENT_PREINTEGRATION to OFF.

Additional Information

There is a GTSAM users Google group for general discussion.

Read about important GTSAM-Concepts here. A primer on GTSAM Expressions, which support (superfast) automatic differentiation, can be found on the GTSAM wiki on BitBucket.

See the INSTALL file for more detailed installation instructions.

GTSAM is open source under the BSD license, see the LICENSE and LICENSE.BSD files.

Please see the examples/ directory and the USAGE file for examples on how to use GTSAM.

GTSAM was developed in the lab of Frank Dellaert at the Georgia Institute of Technology, with the help of many contributors over the years, see THANKS.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

gtsam-4.2a1-cp39-cp39-manylinux2014_x86_64.whl (20.3 MB view details)

Uploaded CPython 3.9

gtsam-4.2a1-cp39-cp39-macosx_11_0_x86_64.whl (20.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ x86-64

gtsam-4.2a1-cp38-cp38-manylinux2014_x86_64.whl (20.3 MB view details)

Uploaded CPython 3.8

gtsam-4.2a1-cp38-cp38-macosx_11_0_x86_64.whl (20.3 MB view details)

Uploaded CPython 3.8macOS 11.0+ x86-64

gtsam-4.2a1-cp37-cp37m-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.7m

gtsam-4.2a1-cp36-cp36m-manylinux2014_x86_64.whl (20.5 MB view details)

Uploaded CPython 3.6m

File details

Details for the file gtsam-4.2a1-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

  • Download URL: gtsam-4.2a1-cp39-cp39-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 20.3 MB
  • Tags: CPython 3.9
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.26.0 setuptools/59.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for gtsam-4.2a1-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6e692cd697c5b6c810940e96395e83911071621800ff5f1435d1c58d0b21c74d
MD5 1f37239a0bc1b4bcffd3a7ede1fef2b1
BLAKE2b-256 ae22186a9b4f3e195e38a8b2eebe1ccdf60bcb21e0896ac726cdb7b00066d5ba

See more details on using hashes here.

File details

Details for the file gtsam-4.2a1-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: gtsam-4.2a1-cp39-cp39-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 20.3 MB
  • Tags: CPython 3.9, macOS 11.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.26.0 setuptools/59.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for gtsam-4.2a1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ec394014103998a00d45988abed6840ced6351e5c3f0a9d3ce250022c6c82d5b
MD5 e97f3924d458d7d46331eec7276431d1
BLAKE2b-256 b691b710591cbce1201e3e44ae811f0666f7587ca9f6616c25ca82b595e08640

See more details on using hashes here.

File details

Details for the file gtsam-4.2a1-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: gtsam-4.2a1-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 20.3 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.26.0 setuptools/59.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for gtsam-4.2a1-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c34a72c88f342737b9897d2ffdebb4fdaaa83dfb004a77772816157731b89d47
MD5 09b71c4b7ec137d277a20ec82195bd3a
BLAKE2b-256 8616f2536a4737a12fce433d51ef91f795da678a3fc505938e61f60811bc34b1

See more details on using hashes here.

File details

Details for the file gtsam-4.2a1-cp38-cp38-macosx_11_0_x86_64.whl.

File metadata

  • Download URL: gtsam-4.2a1-cp38-cp38-macosx_11_0_x86_64.whl
  • Upload date:
  • Size: 20.3 MB
  • Tags: CPython 3.8, macOS 11.0+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.26.0 setuptools/59.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for gtsam-4.2a1-cp38-cp38-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 ba57a9da09bc2cef9495c139eb511dea15b30b3dd9b1f682c35b21688bcf2960
MD5 ea762b7213cf011cfff85668f10cbb01
BLAKE2b-256 6886048414dcd375915900c5be314604fc62ede49ec67bac6441b6cf1beab2c3

See more details on using hashes here.

File details

Details for the file gtsam-4.2a1-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: gtsam-4.2a1-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 20.5 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.26.0 setuptools/59.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for gtsam-4.2a1-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 47673947b35ea15f660d465f990d46dccb62d31230689f3ee124fb56db9b7d75
MD5 166d9c01393dfce7d9016d6a55645e10
BLAKE2b-256 35380910bed4f40da752f69b825c4b1f8531ee139fcd103fd4cb3954cbc144e0

See more details on using hashes here.

File details

Details for the file gtsam-4.2a1-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: gtsam-4.2a1-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 20.5 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.8.2 requests/2.26.0 setuptools/59.4.0 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.9.7

File hashes

Hashes for gtsam-4.2a1-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4508fc3e142acbd6fb6f0a9d80d55488d089e2b1718378fd62fb5920faac44d9
MD5 0fff19edee11ab55e074ff6a158a30f1
BLAKE2b-256 6a2b6ac7debba1226c5fc4e1199d96177a87975a9319770d9a9387bf28a9b874

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page