127 lines
4.8 KiB
Plaintext
127 lines
4.8 KiB
Plaintext
README - Georgia Tech Smoothing and Mapping library
|
|
---------------------------------------------------
|
|
|
|
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. A set of MATLAB mex wrappers is included.
|
|
|
|
GTSAM is not (yet) open source: See COPYING & LICENSE
|
|
|
|
The code is organized according to the following directory structure:
|
|
|
|
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
|
|
|
|
All of the above contain code and tests, and build local shared libraries that are then
|
|
bundled in a top-level shared library libgtsam.la. After his is built, you can also run
|
|
the more involved tests that test the entire library:
|
|
|
|
tests more involved tests that depend on slam
|
|
|
|
Furthermore the MATLAB wrapper generator code is run as well
|
|
|
|
wrap MATLAB wrapper generation code
|
|
gtsam.h interface file for which wrappers will be generated
|
|
toolbox MATLAB proxy classes and wrappers generated
|
|
matlab examples and tests of the above
|
|
|
|
Finally, there are some local libraries built needed in the rest of the code:
|
|
|
|
colamd COLAMD and CCOLAMD by Tim Davis needed for re-ordering
|
|
CppUnitLite unit test library
|
|
doc documentation
|
|
m4 local M4 macros
|
|
spqr_mini Core frontal solver from SuiteSparse (will probably go as not LGPL)
|
|
|
|
|
|
Boost Dependencies:
|
|
------------------
|
|
The GTSAM library is based on the 'Boost C++ Libraries' which can be
|
|
found here: http://www.boost.org/.
|
|
Donwload the lates version and extract Boost in any place. To this
|
|
place the compiler will be linking.
|
|
|
|
- On Linux BOOST can also be installed with a packaged manager.
|
|
- On Mac OS Mac Port can be used.
|
|
|
|
For example the Boost path could be '/opt/local/include/' on a typical
|
|
Mac system, where you should be able to find one of the header files:
|
|
/opt/local/include/boost/config.hpp
|
|
|
|
If your boost files are on a different place change the path according
|
|
to your path.
|
|
|
|
The path to the Boost files can be set as an environmental variable in
|
|
the startup scrip. For a Bash shell the startup file is ~/.bashrc
|
|
put the following command in this file:
|
|
export BOOST_DIR=/opt/local/include/
|
|
|
|
Installation:
|
|
-------------
|
|
To finally install the library go into the directory where you unpacked the
|
|
GTSAM library, run the command below for example:
|
|
$] ./configure --with-toolbox=$HOME/toolbox/ --with-boost=/opt/local/include/
|
|
|
|
where the path after --with-toolbox should point to the directory you want to have the gtsam
|
|
matlab scripts installed in.
|
|
|
|
This command will configure the makefile for compiling the GTSAM library.
|
|
|
|
The 'toolbox' flag sets the path where you want to install the GTSAM Matlab Toolbox.
|
|
You have to set it to an existing directory. After successful installation there
|
|
will be a gtsam directory with all Matlab GTSAM Toolbox files.
|
|
|
|
The 'boost' flag sets the path where you installed or copied the BOOST C++ Library.
|
|
The path has to be set to the top boost directory. In this directory there are a bunch
|
|
of folders (e.g. boost, doc, libs ....).
|
|
Set the path to this folder.
|
|
|
|
|
|
After configure you makefile you have to compile the library
|
|
Type:
|
|
$] make
|
|
$] make install
|
|
|
|
Parallel Build
|
|
----------------
|
|
|
|
The above will put object files and executables in the source directories. If you like, it is
|
|
very easy to configure the libraries to put all these in a parallel build tree so they do not
|
|
clutter the source tree. To do this, instead of running configure in the gtsam directory itself,
|
|
run it in sub-directory of choice, e.g.:
|
|
|
|
$] mkdir build
|
|
$] cd build
|
|
$] ../configure --with-toolbox=$HOME/toolbox/ --with-boost=/opt/local/include/
|
|
$] make install
|
|
|
|
Built-in Unit Tests:
|
|
----------------
|
|
There is one more optional step in which you can invoke the unit tests included in the gtsam libraries.
|
|
$] make check
|
|
By verifying all the test results are positive, you can make sure that the functionalities of the gtsam
|
|
libraries are correct.
|
|
|
|
The toolbox directory flag is where you want to compile the GTSAM Matlab toolbox.
|
|
|
|
Compile Matlab Toolbox:
|
|
-----------------------
|
|
1) Start Matlab
|
|
2) Go to File->Set Path and add the toolbox directory where you installed the
|
|
GTSAM Matlab Toolbox
|
|
3) Change your current directory to the GTSAM Matlab Toolbox
|
|
4) Type 'make_gtsam' at the Command Window
|
|
|
|
Run Matlab Unit Tests:
|
|
-----------------------
|
|
In the matlab command window, change directory to $gtsam/matlab and then type 'run_tests', which will
|
|
invoke the matlab unit tests.
|
|
|