gtsam  4.0.0 gtsam
gtsam::ConcurrentBatchFilter Class Reference

## Detailed Description

A Levenberg-Marquardt Batch Filter that implements the Concurrent Filtering and Smoother interface.

Inheritance diagram for gtsam::ConcurrentBatchFilter:

## Public Member Functions

ConcurrentBatchFilter (const LevenbergMarquardtParams &parameters=LevenbergMarquardtParams())
Default constructor.

virtual ~ConcurrentBatchFilter ()
Default destructor.

virtual void print (const std::string &s="Concurrent Batch Filter:\n", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
Implement a GTSAM standard 'print' function.

virtual bool equals (const ConcurrentFilter &rhs, double tol=1e-9) const
Check if two Concurrent Filters are equal.

const NonlinearFactorGraphgetFactors () const
Access the current set of factors.

const ValuesgetLinearizationPoint () const
Access the current linearization point.

const OrderinggetOrdering () const
Access the current ordering.

const VectorValuesgetDelta () const
Access the current set of deltas to the linearization point.

Values calculateEstimate () const
Compute the current best estimate of all variables and return a full Values structure. More...

template<class VALUE >
VALUE calculateEstimate (Key key) const
Compute the current best estimate of a single variable. More...

virtual Result update (const NonlinearFactorGraph &newFactors=NonlinearFactorGraph(), const Values &newTheta=Values(), const boost::optional< FastList< Key > > &keysToMove=boost::none, const boost::optional< std::vector< size_t > > &removeFactorIndices=boost::none)
Add new factors and variables to the filter. More...

virtual void presync ()
Perform any required operations before the synchronization process starts. More...

virtual void getSummarizedFactors (NonlinearFactorGraph &filterSummarization, Values &filterSummarizationValues)
Populate the provided containers with factors that constitute the filter branch summarization needed by the smoother. More...

virtual void getSmootherFactors (NonlinearFactorGraph &smootherFactors, Values &smootherValues)
Populate the provided containers with factors being sent to the smoother from the filter. More...

virtual void synchronize (const NonlinearFactorGraph &smootherSummarization, const Values &smootherSummarizationValues)
Apply the updated version of the smoother branch summarized factors. More...

virtual void postsync ()
Perform any required operations after the synchronization process finishes. More...

## Public Types

typedef boost::shared_ptr< ConcurrentBatchFiltershared_ptr

typedef ConcurrentFilter Base
typedef for base class

## Classes

struct  Result
Meta information returned about the update. More...

## Protected Attributes

LevenbergMarquardtParams parameters_
LM parameters.

NonlinearFactorGraph factors_
The set of all factors currently in the filter.

Values theta_
Current linearization point of all variables in the filter.

Ordering ordering_
The current ordering used to calculate the linear deltas.

VectorValues delta_
The current set of linear deltas from the linearization point.

std::queue< size_t > availableSlots_
The set of available factor graph slots caused by deleting factors.

Values separatorValues_
The linearization points of the separator variables. These should not be updated during optimization.

std::vector< size_t > separatorSummarizationSlots_
The slots in factor graph that correspond to the current smoother summarization on the current separator.

NonlinearFactorGraph smootherSummarization_
The smoother summarization on the old separator sent by the smoother during the last synchronization.

NonlinearFactorGraph smootherShortcut_
A set of conditional factors from the old separator to the current separator (recursively calculated during each filter update)

NonlinearFactorGraph filterSummarization_
A temporary holding place for calculated filter summarization factors to be sent to the smoother.

NonlinearFactorGraph smootherFactors_
A temporary holding place for the set of full nonlinear factors being sent to the smoother.

Values smootherValues_
A temporary holding place for the linearization points of all keys being sent to the smoother.

## ◆ calculateEstimate() [1/2]

 Values gtsam::ConcurrentBatchFilter::calculateEstimate ( ) const
inline

Compute the current best estimate of all variables and return a full Values structure.

If only a single variable is needed, it may be faster to call calculateEstimate(const KEY&).

## ◆ calculateEstimate() [2/2]

template<class VALUE >
 VALUE gtsam::ConcurrentBatchFilter::calculateEstimate ( Key key ) const
inline

Compute the current best estimate of a single variable.

This is generally faster than calling the no-argument version of calculateEstimate if only specific variables are needed.

Parameters
 key
Returns

## ◆ getSmootherFactors()

 void gtsam::ConcurrentBatchFilter::getSmootherFactors ( NonlinearFactorGraph & smootherFactors, Values & smootherValues )
virtual

Populate the provided containers with factors being sent to the smoother from the filter.

These may be original nonlinear factors, or factors encoding a summarization of the filter information. The specifics will be implementation-specific for a given filter.

Parameters
 smootherFactors The new factors to be added to the smoother smootherValues The linearization points of any new variables

Implements gtsam::ConcurrentFilter.

## ◆ getSummarizedFactors()

 void gtsam::ConcurrentBatchFilter::getSummarizedFactors ( NonlinearFactorGraph & filterSummarization, Values & filterSummarizationValues )
virtual

Populate the provided containers with factors that constitute the filter branch summarization needed by the smoother.

Also, linearization points for the new root clique must be provided.

Parameters
 summarizedFactors The summarized factors for the filter branch rootValues The linearization points of the root clique variables

Implements gtsam::ConcurrentFilter.

## ◆ postsync()

 void gtsam::ConcurrentBatchFilter::postsync ( )
virtual

Perform any required operations after the synchronization process finishes.

Called by 'synchronize'

Reimplemented from gtsam::ConcurrentFilter.

## ◆ presync()

 void gtsam::ConcurrentBatchFilter::presync ( )
virtual

Perform any required operations before the synchronization process starts.

Called by 'synchronize'

Reimplemented from gtsam::ConcurrentFilter.

## ◆ synchronize()

 void gtsam::ConcurrentBatchFilter::synchronize ( const NonlinearFactorGraph & smootherSummarization, const Values & smootherSummarizationValues )
virtual

Apply the updated version of the smoother branch summarized factors.

Parameters
 summarizedFactors An updated version of the smoother branch summarized factors

Implements gtsam::ConcurrentFilter.

## ◆ update()

 ConcurrentBatchFilter::Result gtsam::ConcurrentBatchFilter::update ( const NonlinearFactorGraph & newFactors = NonlinearFactorGraph(), const Values & newTheta = Values(), const boost::optional< FastList< Key > > & keysToMove = boost::none, const boost::optional< std::vector< size_t > > & removeFactorIndices = boost::none )
virtual

Add new factors and variables to the filter.

Add new measurements, and optionally new variables, to the filter. This runs a full update step of the derived filter algorithm

Parameters
 newFactors The new factors to be added to the smoother newTheta Initialization points for new variables to be added to the filter You must include here all new variables occurring in newFactors that were not already in the filter. keysToMove An optional set of keys to move from the filter to the smoother removeFactorIndices An optional set of indices corresponding to the factors you want to remove from the graph

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