parent
							
								
									fc440f823b
								
							
						
					
					
						commit
						e549dd5305
					
				
							
								
								
									
										2
									
								
								README
								
								
								
								
							
							
						
						
									
										2
									
								
								README
								
								
								
								
							| 
						 | 
				
			
			@ -16,7 +16,7 @@ Directory structure:
 | 
			
		|||
  matlab  MATLAB proxy classes and wrappers
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Boost Depedencies:
 | 
			
		||||
Boost Dependencies:
 | 
			
		||||
------------------
 | 
			
		||||
The GTSAM library is based on the 'Boost C++ Libraries' which can be
 | 
			
		||||
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