cleaned up some more
parent
5d538cbdc2
commit
00627604a2
85
README
85
README
|
@ -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.
|
||||||
|
|
Loading…
Reference in New Issue