cleaned up some more

release/4.3a0
Chris Beall 2012-05-14 23:35:32 +00:00
parent 5d538cbdc2
commit 00627604a2
1 changed files with 32 additions and 53 deletions

85
README
View File

@ -11,7 +11,8 @@ $] cmake ..
$] make check (optional, runs unit tests) $] make check (optional, runs unit tests)
$] make install $] make install
What is GTSAM ? ---------------------------------------------------
What is GTSAM?
GTSAM is a library of C++ classes that implement smoothing and GTSAM is a library of C++ classes that implement smoothing and
mapping (SAM) in robotics and vision, using factor graphs and Bayes mapping (SAM) in robotics and vision, using factor graphs and Bayes
@ -21,10 +22,7 @@ What is GTSAM ?
GTSAM is not (yet) open source: See COPYING & LICENSE GTSAM is not (yet) open source: See COPYING & LICENSE
Please see USAGE for an example on how to use GTSAM. Please see USAGE for an example on how to use GTSAM.
The core GTSAM code within the folder gtsam, with source, headers, and The library is organized according to the following directory structure:
unit tests. After building, this will generate a single library "libgtsam"
The libgtsam code is organized according to the following directory structure:
3rdparty local copies of third party libraries - Eigen3 and CCOLAMD 3rdparty local copies of third party libraries - Eigen3 and CCOLAMD
base provides some base Math and data structures, as well as test-related utilities base provides some base Math and data structures, as well as test-related utilities
@ -34,12 +32,6 @@ The libgtsam code is organized according to the following directory structure:
nonlinear non-linear factor graphs and non-linear optimization nonlinear non-linear factor graphs and non-linear optimization
slam SLAM and visual SLAM application code slam SLAM and visual SLAM application code
Additionally, in the SVN development version of GTSAM, there is an area for
unstable code directly under development in the folder gtsam_unstable, which contains
a directory structuring mirroring the libgtsam structure as necessary. This section produces
a single library "libgtsam_unstable". Building of gtsam_unstable is disabled by default, see
CMake configuration options for information on enabling building.
This library contains unchanged copies of two third party libraries, with documentation This library contains unchanged copies of two third party libraries, with documentation
of licensing in LICENSE and as follows: of licensing in LICENSE and as follows:
- CCOLAMD 2.73: Tim Davis' constrained column approximate minimum degree ordering library - CCOLAMD 2.73: Tim Davis' constrained column approximate minimum degree ordering library
@ -48,26 +40,19 @@ of licensing in LICENSE and as follows:
- Eigen 3.0.5: General C++ matrix and linear algebra library - Eigen 3.0.5: General C++ matrix and linear algebra library
- Licenced under LGPL v3, provided in gtsam/3rdparty/Eigen/COPYING.LGPL - Licenced under LGPL v3, provided in gtsam/3rdparty/Eigen/COPYING.LGPL
After this is built, you can also run the more involved tests, which test the entire library:
tests More involved unit tests that depend on slam
examples Demo applications as a tutorial for using gtsam
cmake CMake scripts used within the library, as well as for finding GTSAM by dependent projects
Finally, there are some local libraries built needed in the rest of the code: There are two supporting libraries:
CppUnitLite unit test library customized for use with gtsam CppUnitLite unit test library customized for use with gtsam
wrap code generation utility for the Matlab interface to gtsam wrap code generation utility for the Matlab interface to gtsam
Important Installation Notes Specific to GTSAM Important Installation Notes
---------------------------------------------- ----------------------------
1) 1)
GTSAM requires the following libraries to be installed on your system: GTSAM requires the following libraries to be installed on your system:
- BOOST version 1.40 or greater (install through Linux repositories or MacPorts) - BOOST version 1.40 or greater (install through Linux repositories or MacPorts)
- Cmake version 2.6 or higher
GTSAM uses CMake (http://www.cmake.org/) for build automation
- Installed cmake version must be 2.6 or higher
Tested compilers Tested compilers
- gcc - gcc
@ -75,39 +60,20 @@ Tested compilers
- OSX gcc - OSX gcc
2) 2)
GTSAM makes extensive use of debug assertions, even for checking input of GTSAM makes extensive use of debug assertions, and we highly recommend you work
the functions you will call. These assertions are disabled when NDEBUG is in Debug mode while developing (enabled by default). Likewise, it is imperative
defined. Thus, we strongly recommend compiling GTSAM and your own code without that you switch to release mode when running finished code and for timing. GTSAM
this symbol during debugging. will run up to 10x faster in Release mode! See the end of this document for
additional debugging tips.
After debugging, GTSAM will run much faster when compiled with NDEBUG defined,
so that debug checks are disabled.
Another useful debugging symbol is _GLIBCXX_DEBUG, which enables debug checks
and safe containers in the standard C++ library and makes problems much easier
to find.
NOTE: The native Snow Leopard g++ compiler/library contains a bug that makes
it impossible to use _GLIBCXX_DEBUG. MacPorts g++ compilers do work with it though.
NOTE: If _GLIBCXX_DEBUG is used to compile gtsam, anything that links against
gtsam will need to be compiled with _GLIBCXX_DEBUG as well, due to the use of
header-only Eigen.
3) 3)
GTSAM has been written to support the creation of API documentation using GTSAM has Doxygen documentation. To generate, run the the script
doxygen. To create html documentation for GTSAM, run the the script
makedoc.sh. makedoc.sh.
4) 4)
After installing prerequisites for building GTSAM, you can configure and build The instructions below install the library to the default system install path and
GTSAM using CMake with the default options with the quickstart options. For build all components. From a terminal, starting in the root library folder,
details on the full functionality of CMake, see the CMake documentation. execute commands as follows for an out-of-source build:
- CMake Quickstart
Installs to the default system install path and builds all components. From a terminal,
starting in the root library folder, execute commands as follows for an out-of-source
build:
$] mkdir build $] mkdir build
$] cd build $] cd build
@ -118,7 +84,7 @@ $] make install
This will build the library and unit tests, run all of the unit tests, This will build the library and unit tests, run all of the unit tests,
and then install the library itself. and then install the library itself.
- Additional CMake Options and Details - CMake Configuration Options and Details
GTSAM has a number of options that can be configured, which is best done with GTSAM has a number of options that can be configured, which is best done with
one of the following: one of the following:
@ -126,7 +92,7 @@ one of the following:
ccmake the curses GUI for cmake ccmake the curses GUI for cmake
cmake-gui a real GUI for cmake cmake-gui a real GUI for cmake
Important CMake configuration options: Important Options:
CMAKE_BUILD_TYPE: We support several build configurations for GTSAM (case insensitive) CMAKE_BUILD_TYPE: We support several build configurations for GTSAM (case insensitive)
Debug (default) All error checking options on, no optimization. Use for development. Debug (default) All error checking options on, no optimization. Use for development.
@ -175,4 +141,17 @@ unnecessarily. You can also run "make timing" to build all of the timing scripts
To run check on a particular module only, run "make check.[subfolder]", so to run To run check on a particular module only, run "make check.[subfolder]", so to run
just the geometry tests, run "make check.geometry". Individual tests can be run by just the geometry tests, run "make check.geometry". Individual tests can be run by
appending ".run" to the name of the test, for example, to run testMatrix, run appending ".run" to the name of the test, for example, to run testMatrix, run
"make testMatrix.run". "make testMatrix.run".
Debugging tips:
Another useful debugging symbol is _GLIBCXX_DEBUG, which enables debug checks
and safe containers in the standard C++ library and makes problems much easier
to find.
NOTE: The native Snow Leopard g++ compiler/library contains a bug that makes
it impossible to use _GLIBCXX_DEBUG. MacPorts g++ compilers do work with it though.
NOTE: If _GLIBCXX_DEBUG is used to compile gtsam, anything that links against
gtsam will need to be compiled with _GLIBCXX_DEBUG as well, due to the use of
header-only Eigen.