33 typedef std::shared_ptr<ConcurrentIncrementalSmoother>
shared_ptr;
44 Result() : iterations(0), nonlinearVariables(0), linearVariables(0), error(0) {}
67 return isam2_.getFactorsUnsafe();
72 return isam2_.getLinearizationPoint();
77 return isam2_.getDelta();
84 return isam2_.calculateEstimate();
94 return isam2_.calculateEstimate<
VALUE>(
key);
112 const std::optional<FactorIndices>& removeFactorIndices = {});
118 void presync()
override;
144 void postsync()
override;
164 void updateSmootherSummarization();
void print(const Matrix &A, const string &s, ostream &stream)
size_t getIterations() const
Getter methods.
const gtsam::Symbol key('X', 0)
size_t linearVariables
The number of variables that must keep a constant linearization point.
Values smootherValues_
New variables to be added to the smoother during the next update.
~ConcurrentIncrementalSmoother() override
size_t iterations
The number of optimizer iterations performed.
ISAM2 isam2_
iSAM2 inference engine
FactorIndices filterSummarizationSlots_
The slots in factor graph that correspond to the current filter summarization factors.
size_t nonlinearVariables
The number of variables that can be relinearized.
Values calculateEstimate() const
NonlinearFactorGraph smootherSummarization_
A temporary holding place for calculated smoother summarization.
VALUE calculateEstimate(Key key) const
size_t getNonlinearVariables() const
NonlinearFactorGraph smootherFactors_
New factors to be added to the smoother during the next update.
static const KeyFormatter DefaultKeyFormatter
ConcurrentIncrementalSmoother::Result ConcurrentIncrementalSmootherResult
Typedef for Matlab wrapping.
FastVector< FactorIndex > FactorIndices
Define collection types:
std::shared_ptr< ConcurrentIncrementalSmoother > shared_ptr
Incremental update functionality (ISAM2) for BayesTree, with fluid relinearization.
double error
The final factor graph error.
Array< double, 1, 3 > e(1./3., 0.5, 2.)
ConcurrentIncrementalSmoother(const ISAM2Params ¶meters=ISAM2Params())
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
const Values & getLinearizationPoint() const
static ConjugateGradientParameters parameters
NonlinearFactorGraph filterSummarizationFactors_
New filter summarization factors to replace the existing filter summarization during the next update...
std::vector< float > Values
Values separatorValues_
The linearization points of the separator variables. These should not be changed during optimization...
void synchronize(ConcurrentFilter &filter, ConcurrentSmoother &smoother)
const NonlinearFactorGraph & getFactors() const
size_t getLinearVariables() const
Base classes for the 'filter' and 'smoother' portion of the Concurrent Filtering and Smoothing archit...
const VectorValues & getDelta() const
bool synchronizationUpdatesAvailable_
Flag indicating the currently stored synchronization updates have not been applied yet...
std::uint64_t Key
Integer nonlinear key type.
ConcurrentSmoother Base
typedef for base class