#include <ISAM2Params.h>
Public Types | |
enum | Factorization { CHOLESKY, QR } |
typedef std::variant< ISAM2GaussNewtonParams, ISAM2DoglegParams > | OptimizationParams |
typedef std::variant< double, FastMap< char, Vector > > | RelinearizationThreshold |
Static Public Member Functions | |
Some utilities | |
static Factorization | factorizationTranslator (const std::string &str) |
static std::string | factorizationTranslator (const Factorization &value) |
Definition at line 136 of file ISAM2Params.h.
typedef std::variant<ISAM2GaussNewtonParams, ISAM2DoglegParams> gtsam::ISAM2Params::OptimizationParams |
Either ISAM2GaussNewtonParams or ISAM2DoglegParams
Definition at line 138 of file ISAM2Params.h.
typedef std::variant<double, FastMap<char, Vector> > gtsam::ISAM2Params::RelinearizationThreshold |
Either a constant relinearization threshold or a per-variable-type set of thresholds
Definition at line 141 of file ISAM2Params.h.
Enumerator | |
---|---|
CHOLESKY | |
QR |
Definition at line 182 of file ISAM2Params.h.
|
inline |
Specify parameters as constructor arguments See the documentation of member variables above.
_keyFormatter | see ISAM2::Params::keyFormatter, |
Definition at line 231 of file ISAM2Params.h.
|
static |
Definition at line 60 of file ISAM2Params.cpp.
|
static |
Definition at line 73 of file ISAM2Params.cpp.
|
inline |
Definition at line 323 of file ISAM2Params.h.
|
inline |
Definition at line 305 of file ISAM2Params.h.
|
inline |
Definition at line 308 of file ISAM2Params.h.
|
inline |
Definition at line 299 of file ISAM2Params.h.
|
inline |
Definition at line 302 of file ISAM2Params.h.
|
inline |
print iSAM2 parameters
Definition at line 253 of file ISAM2Params.h.
|
inline |
Definition at line 316 of file ISAM2Params.h.
|
inline |
Definition at line 319 of file ISAM2Params.h.
|
inline |
Definition at line 310 of file ISAM2Params.h.
|
inline |
Definition at line 313 of file ISAM2Params.h.
bool gtsam::ISAM2Params::cacheLinearizedFactors |
Whether to cache linear factors (default: true). This can improve performance if linearization is expensive, but can hurt performance if linearization is very cleap due to computation to look up additional keys.
Definition at line 201 of file ISAM2Params.h.
bool gtsam::ISAM2Params::enableDetailedResults |
Whether to compute and return ISAM2Result::detailedResults, this can increase running time (default: false)
Definition at line 207 of file ISAM2Params.h.
bool gtsam::ISAM2Params::enablePartialRelinearizationCheck |
Check variables for relinearization in tree-order, stopping the check once a variable does not need to be relinearized (default: false). This can improve speed by only checking a small part of the top of the tree. However, variables below the check cut-off can accumulate significant deltas without triggering relinearization. This is particularly useful in exploration scenarios where real-time performance is desired over correctness. Use with caution.
Definition at line 219 of file ISAM2Params.h.
bool gtsam::ISAM2Params::enableRelinearization |
Controls whether ISAM2 will ever relinearize any variables (default: true)
Definition at line 175 of file ISAM2Params.h.
bool gtsam::ISAM2Params::evaluateNonlinearError |
Whether to evaluate the nonlinear error before and after the update, to return in ISAM2Result from update()
Definition at line 178 of file ISAM2Params.h.
Factorization gtsam::ISAM2Params::factorization |
Specifies whether to use QR or CHOESKY numerical factorization (default: CHOLESKY). Cholesky is faster but potentially numerically unstable for poorly-conditioned problems, which can occur when uncertainty is very low in some variables (or dimensions of variables) and very high in others. QR is slower but more numerically stable in poorly-conditioned problems. We suggest using the default of Cholesky unless gtsam sometimes throws IndefiniteLinearSystemException when your problem's Hessian is actually positive definite. For positive definite problems, numerical error accumulation can cause the problem to become numerically negative or indefinite as solving proceeds, especially when using Cholesky.
Definition at line 194 of file ISAM2Params.h.
bool gtsam::ISAM2Params::findUnusedFactorSlots |
When you will be removing many factors, e.g. when using ISAM2 as a fixed-lag smoother, enable this option to add factors in the first available factor slots, to avoid accumulating nullptr factor slots, at the cost of having to search for slots every time a factor is added.
Definition at line 225 of file ISAM2Params.h.
KeyFormatter gtsam::ISAM2Params::keyFormatter |
A KeyFormatter for when keys are printed during debugging (default: DefaultKeyFormatter)
Definition at line 204 of file ISAM2Params.h.
OptimizationParams gtsam::ISAM2Params::optimizationParams |
Optimization parameters, this both selects the nonlinear optimization method and specifies its parameters, either ISAM2GaussNewtonParams or ISAM2DoglegParams. In the former, Gauss-Newton optimization will be used with the specified parameters, and in the latter Powell's dog-leg algorithm will be used with the specified parameters.
Definition at line 151 of file ISAM2Params.h.
int gtsam::ISAM2Params::relinearizeSkip |
Only relinearize any variables every relinearizeSkip calls to ISAM2::update (default: 10)
Definition at line 171 of file ISAM2Params.h.
RelinearizationThreshold gtsam::ISAM2Params::relinearizeThreshold |
Only relinearize variables whose linear delta magnitude is greater than this threshold (default: 0.1). If this is a FastMap<char,Vector> instead of a double, then the threshold is specified for each dimension of each variable type. This parameter then maps from a character indicating the variable type to a Vector of thresholds for each dimension of that variable. For example, if Pose keys are of type TypedSymbol<'x',Pose3>, and landmark keys are of type TypedSymbol<'l',Point3>, then appropriate entries would be added with:
Definition at line 169 of file ISAM2Params.h.