49 lines
2.3 KiB
Markdown
49 lines
2.3 KiB
Markdown
# GTSAM USAGE
|
|
|
|
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.
|
|
|
|
If you use CMake for your project, you can use the CMake scripts in the cmake folder for finding `GTSAM`, `CppUnitLite`, and `Wrap`.
|
|
|
|
### 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.
|
|
|
|
* Values:
|
|
|
|
Values 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.
|
|
|
|
The library is organized according to the following directory structure:
|
|
|
|
3rdparty local copies of third party libraries e.g. Eigen3 and CCOLAMD
|
|
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
|
|
|
|
|
|
|