iSAM: Incremental Smoothing and Mapping (v1.6)

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 ( and Frank Dellaert ( at Georgia Tech.

Copyright and License

Copyright (C) 2009-2012 Massachusetts Institute of Technology.
Michael Kaess (, Hordur Johannsson (, David Rosen ( and John Leonard (

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


The latest version of iSAM is available at

The source code is available from our public subversion repository:

svn co


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

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


Compile with:


Directory structure:

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.


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

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

Newer publications will be available from my web page at


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.

Author(s): Ji Zhang
autogenerated on Sun Mar 1 2015 11:30:50