iSAM
iSAM: Incremental Smoothing and Mapping (v1.7)

What is iSAM?

iSAM is an optimization library for sparse nonlinear problems as encountered in simultaneous localization and mapping (SLAM). The iSAM library provides efficient algorithms for batch and incremental optimization, recovering the exact least-squares solution. The library can easily be extended to new problems, and functionality for often encountered 2D and 3D SLAM problems is already provided. The iSAM algorithm was originally developed by Michael Kaess (kaess@mit.edu) and Frank Dellaert (dellaert@cc.gatech.edu) at Georgia Tech.

Copyright and License

Copyright (C) 2009-2013 Massachusetts Institute of Technology.
Michael Kaess (kaess@mit.edu), Hordur Johannsson (hordurj@mit.edu), David Rosen (dmrosen@mit.edu), Nicholas Carlevaris-Bianco (carlevar@umich.edu) and John Leonard (jleonard@mit.edu)

iSAM is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

iSAM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with iSAM. If not, see <http://www.gnu.org/licenses/>.

Download

The latest version of iSAM is available at http://people.csail.mit.edu/kaess/isam

The source code is available from our public subversion repository:

svn co https://svn.csail.mit.edu/isam

Requirements

This software was tested under Ubuntu 9.04-11.04, and Mac OS X 10.5-10.6. iSAM depends on the following software:

  • CMake (version 2.8 or higher)
  • CHOLMOD (sparse matrix libraries by Tim Davis, University of Florida)
  • Eigen (version 3)
  • SDL (optional, needed for 3D viewer)
  • doxygen (optional, to generate documentation)
  • graphviz (optional, to generate documentation)

To install all required packages in Ubuntu 9.10 and later, simply type:

sudo apt-get install cmake libsuitesparse-dev libeigen3-dev libsdl1.2-dev doxygen graphviz

Note that CHOLMOD is contained in SuiteSparse. On Mac OS X, SuiteSparse and SDL are available through MacPorts:

sudo port install suitesparse libsdl

Installation

Compile with:

make

Directory structure:

  • isamlib/ contains the source code for the iSAM library
  • include/ contains the header files for the iSAM library
  • isam/ contains the source code for the iSAM executable
  • examples/ contains examples for using different components of the iSAM library
  • doc/ contains the documentation (after calling "make doc")
  • misc/ contains code referenced from publications
  • data/ contains example data files
  • lib/ contains the actual library "libisam.a"
  • bin/ contains the main executable "isam"

Usage example:

bin/isam -G data/sphere400.txt

For more usage information:

bin/isam -h

Install the library in your system with:

make install

Note that make just provides a convenient wrapper for running cmake in a separate "build" directory. Compile options can be changed with "ccmake build". In particular, support for the 3D viewer can be disabled by setting USE_GUI to OFF. Library and include paths can be modified manually in case SuiteSparse/CHOLMOD was installed in a local directory and cannot be found automatically.

Documentation

To generate detailed documentation for the source code, type:

make doc

and open doc/html/index.html in your browser.

References (please cite when using this software)

Details of the algorithms used in this software are provided in these publications (the latex bibliography file isam.bib is included for convenience).

  • "iSAM: Incremental Smoothing and Mapping" by M. Kaess, A. Ranganathan, and F. Dellaert, IEEE Trans. on Robotics, TRO, vol. 24, no. 6, Dec. 2008, pp. 1365-1378, PDF
  • "Covariance Recovery from a Square Root Information Matrix for Data Association" by M. Kaess and F. Dellaert, Journal of Robotics and Autonomous Systems, RAS, vol. 57, Dec. 2009, pp. 1198-1210, PDF
  • "An Incremental Trust-Region Method for Robust Online Sparse Least-Squares Estimation" by D.M. Rosen, M. Kaess and J.J. Leonard, International Conference on Robotics and Automation (ICRA), May 2012, PDF

A full list of iSAM-related references in BibTeX format is available here: Bibliography.

Newer publications will be available from my web page at http://people.csail.mit.edu/kaess/

Acknowledgments

Many thanks to Richard Roberts for his help with this software. Thanks also to John McDonald, Ayoung Kim, Ryan Eustice, Aisha Walcott, Been Kim and Abe Bachrach for their feedback and patience with earlier versions.

 All Classes Files Functions Variables