parent
fc440f823b
commit
e549dd5305
2
README
2
README
|
@ -16,7 +16,7 @@ Directory structure:
|
||||||
matlab MATLAB proxy classes and wrappers
|
matlab MATLAB proxy classes and wrappers
|
||||||
|
|
||||||
|
|
||||||
Boost Depedencies:
|
Boost Dependencies:
|
||||||
------------------
|
------------------
|
||||||
The GTSAM library is based on the 'Boost C++ Libraries' which can be
|
The GTSAM library is based on the 'Boost C++ Libraries' which can be
|
||||||
found here: http://www.boost.org/.
|
found here: http://www.boost.org/.
|
||||||
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
USAGE - Georgia Tech Smoothing and Mapping library
|
||||||
|
---------------------------------------------------
|
||||||
|
|
||||||
|
What is this file?
|
||||||
|
|
||||||
|
This file explains how to make use of the library for common SLAM tasks,
|
||||||
|
using a visual SLAM implementation as an example.
|
||||||
|
|
||||||
|
|
||||||
|
Getting Started
|
||||||
|
---------------------------------------------------
|
||||||
|
Install:
|
||||||
|
Follow the installation instructions in the README file to build and
|
||||||
|
install gtsam, as well as running tests to ensure the library is working
|
||||||
|
properly.
|
||||||
|
|
||||||
|
Compiling/Linking with gtsam:
|
||||||
|
The installation creates a binary "libgtsam" at the installation prefix,
|
||||||
|
and an include folder "gtsam". These are the only required includes, but
|
||||||
|
the library has also been designed to make use of XML serialization through
|
||||||
|
the Boost.serialization library, which requires the the Boost.serialization
|
||||||
|
headers and binaries to be linked.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
To see how the library works, examine the unit tests provided.
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
---------------------------------------------------
|
||||||
|
The gtsam library has three primary components necessary for the construction
|
||||||
|
of factor graph representation and optimization which users will need to
|
||||||
|
adapt to their particular problem.
|
||||||
|
|
||||||
|
FactorGraph:
|
||||||
|
A factor graph contains a set of variables to solve for (i.e., robot poses,
|
||||||
|
landmark poses, etc.) and a set of constraints between these variables, which
|
||||||
|
make up factors.
|
||||||
|
Config:
|
||||||
|
A configuration is a single object containing labeled values for all of the
|
||||||
|
variables. Currently, all variables are labeled with strings, but the type
|
||||||
|
or organization of the variables can change
|
||||||
|
Factors:
|
||||||
|
A nonlinear factor expresses a constraint between variables, which in the
|
||||||
|
SLAM example, is a measurement such as a visual reading on a landmark or
|
||||||
|
odometry.
|
||||||
|
|
||||||
|
|
||||||
|
VSLAM Example
|
||||||
|
---------------------------------------------------
|
||||||
|
The visual slam example shows a full implementation of a slam system. The example contains
|
||||||
|
derived versions of NonlinearFactor, NonlinearFactorGraph, and a Config, in classes
|
||||||
|
VSLAMFactor, VSLAMGraph, and VSLAMConfig, respectively.
|
||||||
|
|
||||||
|
The clearest example of the use of the graph to find a solution is in
|
||||||
|
testVSLAMGraph. The basic process for using graphs is as follows (and can be seen in
|
||||||
|
the test):
|
||||||
|
- Create a NonlinearFactorGraph object (VSLAMGraph)
|
||||||
|
- Add factors to the graph (note the use of Boost.shared_ptr here) (VSLAMFactor)
|
||||||
|
- Create an initial configuration (VSLAMConfig)
|
||||||
|
- Create an elimination ordering of variables (this must include all variables)
|
||||||
|
- Create and initialize a NonlinearOptimizer object (Note that this is a generic
|
||||||
|
algorithm that does not need to be derived for a particular problem)
|
||||||
|
- Call optimization functions with the optimizer to optimize the graph
|
||||||
|
- Extract an updated configuration from the optimizer
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue