GTSAM  4.0.2
C++ library for smoothing and mapping (SAM)
Public Types | Protected Member Functions | Protected Attributes | List of all members
gtsam::GaussNewtonOptimizer Class Reference

#include <GaussNewtonOptimizer.h>

Inheritance diagram for gtsam::GaussNewtonOptimizer:
Inheritance graph
[legend]
Collaboration diagram for gtsam::GaussNewtonOptimizer:
Collaboration graph
[legend]

Public Types

using shared_ptr = std::shared_ptr< const NonlinearOptimizer >
 

Public Member Functions

Standard interface
 GaussNewtonOptimizer (const NonlinearFactorGraph &graph, const Values &initialValues, const GaussNewtonParams &params=GaussNewtonParams())
 
 GaussNewtonOptimizer (const NonlinearFactorGraph &graph, const Values &initialValues, const Ordering &ordering)
 
Advanced interface
 ~GaussNewtonOptimizer () override
 
GaussianFactorGraph::shared_ptr iterate () override
 
const GaussNewtonParamsparams () const
 
Standard interface
virtual const Valuesoptimize ()
 
const ValuesoptimizeSafely ()
 
double error () const
 return error in current optimizer state
 
size_t iterations () const
 return number of iterations in current optimizer state
 
const Valuesvalues () const
 return values in current optimizer state
 
const NonlinearFactorGraphgraph () const
 return the graph with nonlinear factors
 
Advanced interface
virtual VectorValues solve (const GaussianFactorGraph &gfg, const NonlinearOptimizerParams &params) const
 

Protected Member Functions

const NonlinearOptimizerParams_params () const override
 
GaussNewtonParams ensureHasOrdering (GaussNewtonParams params, const NonlinearFactorGraph &graph) const
 
void defaultOptimize ()
 

Protected Attributes

GaussNewtonParams params_
 
NonlinearFactorGraph graph_
 The graph with nonlinear factors.
 
std::unique_ptr< internal::NonlinearOptimizerStatestate_
 PIMPL'd state.
 

Detailed Description

This class performs Gauss-Newton nonlinear optimization

Member Typedef Documentation

◆ shared_ptr

using gtsam::NonlinearOptimizer::shared_ptr = std::shared_ptr<const NonlinearOptimizer>
inherited

A shared pointer to this class

Constructor & Destructor Documentation

◆ GaussNewtonOptimizer() [1/2]

gtsam::GaussNewtonOptimizer::GaussNewtonOptimizer ( const NonlinearFactorGraph graph,
const Values initialValues,
const GaussNewtonParams params = GaussNewtonParams() 
)

Standard constructor, requires a nonlinear factor graph, initial variable assignments, and optimization parameters. For convenience this version takes plain objects instead of shared pointers, but internally copies the objects.

Parameters
graphThe nonlinear factor graph to optimize
initialValuesThe initial variable assignments
paramsThe optimization parameters

◆ GaussNewtonOptimizer() [2/2]

gtsam::GaussNewtonOptimizer::GaussNewtonOptimizer ( const NonlinearFactorGraph graph,
const Values initialValues,
const Ordering ordering 
)

Standard constructor, requires a nonlinear factor graph, initial variable assignments, and optimization parameters. For convenience this version takes plain objects instead of shared pointers, but internally copies the objects.

Parameters
graphThe nonlinear factor graph to optimize
initialValuesThe initial variable assignments

◆ ~GaussNewtonOptimizer()

gtsam::GaussNewtonOptimizer::~GaussNewtonOptimizer ( )
inlineoverride

Virtual destructor

Member Function Documentation

◆ _params()

const NonlinearOptimizerParams& gtsam::GaussNewtonOptimizer::_params ( ) const
inlineoverrideprotectedvirtual

Access the parameters (base class version)

Implements gtsam::NonlinearOptimizer.

◆ defaultOptimize()

void gtsam::NonlinearOptimizer::defaultOptimize ( )
protectedinherited

A default implementation of the optimization loop, which calls iterate() until checkConvergence returns true.

◆ ensureHasOrdering()

GaussNewtonParams gtsam::GaussNewtonOptimizer::ensureHasOrdering ( GaussNewtonParams  params,
const NonlinearFactorGraph graph 
) const
protected

Internal function for computing a COLAMD ordering if no ordering is specified

◆ iterate()

GaussianFactorGraph::shared_ptr gtsam::GaussNewtonOptimizer::iterate ( )
overridevirtual

Perform a single iteration, returning GaussianFactorGraph corresponding to the linearized factor graph.

Implements gtsam::NonlinearOptimizer.

◆ optimize()

virtual const Values& gtsam::NonlinearOptimizer::optimize ( )
inlinevirtualinherited

Optimize for the maximum-likelihood estimate, returning a the optimized variable assignments.

This function simply calls iterate() in a loop, checking for convergence with check_convergence(). For fine-grain control over the optimization process, you may call iterate() and check_convergence() yourself, and if needed modify the optimization state between iterations.

Reimplemented in gtsam::NonlinearConjugateGradientOptimizer.

◆ optimizeSafely()

const Values& gtsam::NonlinearOptimizer::optimizeSafely ( )
inherited

Optimize, but return empty result if any uncaught exception is thrown Intended for MATLAB. In C++, use above and catch exceptions. No message is printed: it is up to the caller to check the result

Parameters
optimizera non-linear optimizer

◆ params()

const GaussNewtonParams& gtsam::GaussNewtonOptimizer::params ( ) const
inline

Read-only access the parameters

◆ solve()

virtual VectorValues gtsam::NonlinearOptimizer::solve ( const GaussianFactorGraph gfg,
const NonlinearOptimizerParams params 
) const
virtualinherited

Default function to do linear solve, i.e. optimize a GaussianFactorGraph


The documentation for this class was generated from the following file: