From 4d4ea69919b813079d3d4a352cc8ee37dfdbbe75 Mon Sep 17 00:00:00 2001 From: Alex Cunningham Date: Fri, 30 Mar 2012 18:14:31 +0000 Subject: [PATCH] updating build docs and comments --- CMakeLists.txt | 2 +- README | 6 ++++++ USAGE | 20 ++++++++++++-------- 3 files changed, 19 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c7cfc7a9..b2d81d5d4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ endif() # Default to Debug mode if(NOT FIRST_PASS_DONE) set(CMAKE_BUILD_TYPE "Debug" CACHE STRING - "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." + "Choose the type of build, options are: Debug Release Timing Profiling RelWithDebInfo." FORCE) endif() diff --git a/README b/README index 4a72ead08..095d7b79c 100644 --- a/README +++ b/README @@ -158,6 +158,12 @@ $] cmake -DGTSAM_BUILD_CONVENIENCE_LIBRARIES:OPTION=ON .. link all of the tests at once. This option is best for users of GTSAM, as it avoids rebuilding the entirety of gtsam an extra time. +CMAKE_BUILD_TYPE: We support several build configurations for GTSAM (case insensitive) + Debug (default) All error checking options on, no optimization. Use for development. + Release Optimizations turned on, no debug symbols. + Timing Adds ENABLE_TIMING flag to provide statistics on operation + Profiling Standard configuration for use during profiling + RelWithDebInfo Same as Release, but with the -g flag for debug symbols Build and Install diff --git a/USAGE b/USAGE index 24e2bfb17..e5f4dc581 100644 --- a/USAGE +++ b/USAGE @@ -20,6 +20,9 @@ Compiling/Linking with gtsam: 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. @@ -27,7 +30,7 @@ Examples: Overview --------------------------------------------------- -The gtsam library has three primary components necessary for the construction +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. @@ -48,19 +51,20 @@ Factors: 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. +derived versions of NonlinearFactor, NonlinearFactorGraph, in classes visualSLAM::ProjectionFactor, +visualSLAM::Graph, respectively. The values for the system are stored in the generic +Values structure. For definitions and interface, see gtsam/slam/visualSLAM.h. 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 +testVSLAM. 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 a NonlinearFactorGraph object (visualSLAM::Graph) + - Add factors to the graph (note the use of Boost.shared_ptr here) (visualSLAM::ProjectionFactor) + - Create an initial configuration (Values) - 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 + - Extract an updated values from the optimizer \ No newline at end of file