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
 | |
| 
 | |
| 
 | |
| 
 |