|
gtsam
4.0.0
gtsam
|
A Levenberg-Marquardt Batch Filter that implements the Concurrent Filtering and Smoother interface.
Inheritance diagram for gtsam::ConcurrentBatchFilter:Public Member Functions | |
| ConcurrentBatchFilter (const LevenbergMarquardtParams ¶meters=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 NonlinearFactorGraph & | getFactors () const |
| Access the current set of factors. | |
| const Values & | getLinearizationPoint () const |
| Access the current linearization point. | |
| const Ordering & | getOrdering () const |
| Access the current ordering. | |
| const VectorValues & | getDelta () 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< ConcurrentBatchFilter > | shared_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. | |
|
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&).
|
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.
| key |
|
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.
| smootherFactors | The new factors to be added to the smoother |
| smootherValues | The linearization points of any new variables |
Implements gtsam::ConcurrentFilter.
|
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.
| summarizedFactors | The summarized factors for the filter branch |
| rootValues | The linearization points of the root clique variables |
Implements gtsam::ConcurrentFilter.
|
virtual |
Perform any required operations after the synchronization process finishes.
Called by 'synchronize'
Reimplemented from gtsam::ConcurrentFilter.
|
virtual |
Perform any required operations before the synchronization process starts.
Called by 'synchronize'
Reimplemented from gtsam::ConcurrentFilter.
|
virtual |
Apply the updated version of the smoother branch summarized factors.
| summarizedFactors | An updated version of the smoother branch summarized factors |
Implements gtsam::ConcurrentFilter.
|
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
| 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 |