Go to file
Richard Roberts 4b8c17ec77 Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
CppUnitLite Swiched from isnan() check to isfinite() check for DOUBLES_EQUAL - also handles infinite case 2013-08-02 19:04:52 +00:00
cmake Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
doc gitinspector stats 2013-12-23 13:16:32 -05:00
examples Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
gtsam Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
gtsam_unstable Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
matlab MATLAB wrapping and Monocular VO example 2013-12-17 16:18:31 +00:00
package_scripts Parallel compilation flags in package scripts 2013-05-13 17:55:06 +00:00
tests Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
wrap Convert DOS line endings to UNIX 2014-01-09 16:39:27 -05:00
.cproject Particle factor scaffold 2013-12-19 17:14:40 +00:00
.gitignore Ignore Mac system files 2014-01-25 11:03:37 -05:00
.project Adding faster compilation options for distribution in CMake 2012-02-14 18:03:29 +00:00
CMakeLists.txt Changed target name to 'gtsam' instead of 'gtsam-shared' and 'gtsam-static'. Modified CMake options to only allow building either static or shared, but not both. Enabled GTSAM_BUILD_TYPE_POSTFIXES by default on all platforms. 2014-01-30 14:41:25 -05:00
LICENSE Upgraded to Eigen 3.1.2 and updated README and LICENSE files 2012-11-11 22:25:52 +00:00
LICENSE.BSD Renamed LICENSE to LICENSE.BSD 2014-01-04 13:59:43 -05:00
README Updated README file for TBB 2013-11-18 19:23:11 +00:00
README.md Renamed LICENSE to LICENSE.BSD 2014-01-04 13:59:43 -05:00
THANKS adding people 2010-10-21 14:00:49 +00:00
USAGE updating build docs and comments 2012-03-30 18:14:31 +00:00
gtsam.h new constructor, getBasis->basis, rotate and distance 2013-12-18 03:11:58 +00:00
gtsam_extra.cmake.in Some cleanup in compiling wrappers 2013-12-12 18:37:27 +00:00
makestats.sh Command line for generating svn stats, needs statsvn from statsvn.org 2012-06-11 14:31:32 +00:00
matlab.h removed redundant shared_ptr typedefs in Cal3_S2 and Cal3_S2Stereo 2013-05-08 19:21:00 +00:00

README.md

README - Georgia Tech Smoothing and Mapping library

Quickstart

In the root library folder execute:

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

Prerequisites:

  • Boost >= 1.43 (Ubuntu: sudo apt-get install libboost-all-dev)
  • CMake >= 2.6 (Ubuntu: sudo apt-get install cmake)

Optional prerequisites - used automatically if findable by CMake:

Tested compilers

  • GCC 4.2-4.7
  • OSX Clang 2.9-5.0
  • OSX GCC 4.2
  • MSVC 2010, 2012

Tested systems:

  • Ubuntu 11.04 - 13.10
  • MacOS 10.6 - 10.9
  • Windows 7, 8

See the INSTALL file for more detailed installation instructions.

What is GTSAM?

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.

On top of the C++ library, GTSAM includes a MATLAB interface (enable GTSAM_INSTALL_MATLAB_TOOLBOX in CMake to build it). A Python interface is under development.

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

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

The library is organized according to the following directory structure:

3rdparty      local copies of third party libraries - Eigen3 and CCOLAMD
base          provides some base Math and data structures, as well as test-related utilities
geometry      points, poses, tensors, etc
inference     core graphical model inference such as factor graphs, junction trees, Bayes nets, Bayes trees 
linear        inference specialized to Gaussian linear case, GaussianFactorGraph etc...
nonlinear     non-linear factor graphs and non-linear optimization
slam          SLAM and visual SLAM application code

This library contains unchanged copies of two third party libraries, with documentation of licensing as follows:

  • CCOLAMD 2.73: Tim Davis' constrained column approximate minimum degree ordering library
  • Eigen 3.2: General C++ matrix and linear algebra library
    • Licenced under MPL2, provided in gtsam/3rdparty/Eigen/COPYING.README (some code that is 3rd-party to Eigen is BSD and LGPL)