A Levenberg-Marquardt Batch Filter that implements the Concurrent Filtering and Smoother interface.
|
|
| ConcurrentBatchFilter (const LevenbergMarquardtParams ¶meters=LevenbergMarquardtParams()) |
| | Default constructor.
|
| |
|
| ~ConcurrentBatchFilter () override |
| | Default destructor.
|
| |
| void | print (const std::string &s="Concurrent Batch Filter:\n", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const override |
| | Implement a GTSAM standard 'print' function. More...
|
| |
| bool | equals (const ConcurrentFilter &rhs, double tol=1e-9) const override |
| | Check if two Concurrent Filters are equal. More...
|
| |
|
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...
|
| |
| void | presync () override |
| | Perform any required operations before the synchronization process starts. More...
|
| |
| void | getSummarizedFactors (NonlinearFactorGraph &filterSummarization, Values &filterSummarizationValues) override |
| | Populate the provided containers with factors that constitute the filter branch summarization needed by the smoother. More...
|
| |
| void | getSmootherFactors (NonlinearFactorGraph &smootherFactors, Values &smootherValues) override |
| | Populate the provided containers with factors being sent to the smoother from the filter. More...
|
| |
| void | synchronize (const NonlinearFactorGraph &smootherSummarization, const Values &smootherSummarizationValues) override |
| | Apply the updated version of the smoother branch summarized factors. More...
|
| |
| void | postsync () override |
| | Perform any required operations after the synchronization process finishes. More...
|
| |
|
| ConcurrentFilter () |
| | Default constructor.
|
| |
|
virtual | ~ConcurrentFilter () |
| | Default destructor.
|
| |
| virtual void | print (const std::string &s="Concurrent Filter:\n", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const =0 |
| | Implement a standard 'print' function. More...
|
| |
| virtual bool | equals (const ConcurrentFilter &rhs, double tol=1e-9) const =0 |
| | Check if two Concurrent Smoothers are equal. More...
|
| |
| virtual void | presync () |
| | Perform any required operations before the synchronization process starts. More...
|
| |
| virtual void | getSummarizedFactors (NonlinearFactorGraph &summarizedFactors, Values &separatorValues)=0 |
| | Populate the provided containers with factors that constitute the filter branch summarization needed by the smoother. More...
|
| |
| virtual void | getSmootherFactors (NonlinearFactorGraph &smootherFactors, Values &smootherValues)=0 |
| | Populate the provided containers with factors being sent to the smoother from the filter. More...
|
| |
| virtual void | synchronize (const NonlinearFactorGraph &summarizedFactors, const Values &separatorValues)=0 |
| | Apply the updated version of the smoother branch summarized factors. More...
|
| |
| virtual void | postsync () |
| | Perform any required operations after the synchronization process finishes. More...
|
| |
|
|
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.
|
| |