Go to the documentation of this file.
34 typedef std::shared_ptr<ConcurrentBatchSmoother>
shared_ptr;
46 Result() : iterations(0), lambdas(0), nonlinearVariables(0), linearVariables(0),
error(0) {}
100 template<
class VALUE>
121 const std::optional< std::vector<size_t> >& removeFactorIndices = {});
127 void presync()
override;
135 void getSummarizedFactors(NonlinearFactorGraph& summarizedFactors,
Values& separatorValues)
override;
146 void synchronize(
const NonlinearFactorGraph& smootherFactors,
const Values& smootherValues,
147 const NonlinearFactorGraph& summarizedFactors,
const Values& separatorValues)
override;
153 void postsync()
override;
183 void removeFactors(
const std::vector<size_t>& slots);
192 void updateSmootherSummarization();
std::shared_ptr< This > shared_ptr
Ordering ordering_
The current ordering used to calculate the linear deltas.
Array< double, 1, 3 > e(1./3., 0.5, 2.)
const Ordering & getOrdering() const
void synchronize(ConcurrentFilter &filter, ConcurrentSmoother &smoother)
Point3 optimize(const NonlinearFactorGraph &graph, const Values &values, Key landmarkKey)
A nonlinear optimizer that uses the Levenberg-Marquardt trust-region scheme.
const GaussianFactorGraph factors
size_t getIterations() const
Getter methods.
VariableIndex variableIndex_
The current variable index, which allows efficient factor lookup by variable.
def retract(a, np.ndarray xi)
LevenbergMarquardtParams parameters_
LM parameters.
double error
The final factor graph error.
ConcurrentBatchSmoother(const LevenbergMarquardtParams ¶meters=LevenbergMarquardtParams())
size_t nonlinearVariables
The number of variables that can be relinearized.
const Values & getLinearizationPoint() const
KeyFormatter DefaultKeyFormatter
Assign default key formatter.
VectorValues delta_
The current set of linear deltas from the linearization point.
~ConcurrentBatchSmoother() override
void print(const Matrix &A, const string &s, ostream &stream)
Values retract(const VectorValues &delta) const
const NonlinearFactorGraph & getFactors() const
Values theta_
Current linearization point of all variables in the smoother.
size_t getLinearVariables() const
std::function< std::string(Key)> KeyFormatter
Typedef for a function to format a key, i.e. to convert it to a string.
NonlinearFactorGraph factors_
The set of all factors currently in the smoother.
static ConjugateGradientParameters parameters
size_t linearVariables
The number of variables that must keep a constant linearization point.
Values calculateEstimate() const
std::shared_ptr< This > shared_ptr
shared_ptr to this class
const VectorValues & getDelta() const
const gtsam::Symbol key('X', 0)
std::vector< size_t > filterSummarizationSlots_
The slots in factor graph that correspond to the current filter summarization factors.
std::vector< float > Values
size_t getNonlinearVariables() const
size_t lambdas
The number of different L-M lambda factors that were tried during optimization.
std::shared_ptr< ConcurrentBatchSmoother > shared_ptr
size_t getLambdas() const
Base classes for the 'filter' and 'smoother' portion of the Concurrent Filtering and Smoothing archit...
NonlinearFactorGraph smootherSummarization_
A temporary holding place for calculated smoother summarization.
Values separatorValues_
The linearization points of the separator variables. These should not be updated during optimization.
ConcurrentSmoother Base
typedef for base class
VALUE calculateEstimate(Key key) const
size_t iterations
The number of optimizer iterations performed.
std::uint64_t Key
Integer nonlinear key type.
std::queue< size_t > availableSlots_
The set of available factor graph slots caused by deleting factors.
ConcurrentBatchSmoother::Result ConcurrentBatchSmootherResult
Typedef for Matlab wrapping.
gtsam
Author(s):
autogenerated on Sat Nov 16 2024 04:02:01