8#ifndef OPTIMIZER_ISAM2_BATCH_HPP
9#define OPTIMIZER_ISAM2_BATCH_HPP
22 if (graphConfigPtr_->slowBatchSmootherUseCholeskyFactorizationFlag_) {
23 isam2Params_.factorization = gtsam::ISAM2Params::CHOLESKY;
24 std::cout <<
"Using Cholesky factorization for slow batch smoother (ISAM2)." << std::endl;
26 isam2Params_.factorization = gtsam::ISAM2Params::QR;
27 std::cout <<
"Using QR factorization for slow batch smoother (ISAM2)." << std::endl;
31 batchSmootherPtr_->params().print(
"HolisticFusion: Factor Graph Parameters of Slow Batch Optimization Graph.");
37 bool update()
override {
return true; }
40 bool update(
const gtsam::NonlinearFactorGraph& newGraphFactors,
const gtsam::Values& newGraphValues,
41 const std::map<gtsam::Key, double>& newGraphKeysTimeStampMap,
const int depth = 0)
override {
73 throw std::runtime_error(
"HolisticFusion: OptimizerIsam2Batch: No optimization has been performed yet.");
111 throw std::runtime_error(
"HolisticFusion: OptimizerIsam2Batch: No optimization has been performed yet.");
std::shared_ptr< GraphConfig > graphConfigPtr_
gtsam::NonlinearFactorGraph containerBatchSmootherFactors_
gtsam::Values batchSmootherOptimizedResult_
gtsam::KeyVector getAllOptimizedKeys() override
std::map< gtsam::Key, double > batchSmootherKeyTimestampMap_
gtsam::Vector calculateEstimatedVector(const gtsam::Key &key) override
gtsam::Pose3 calculateEstimatedPose3(const gtsam::Key &key) override
gtsam::Matrix calculateMarginalCovarianceMatrixAtKey(const gtsam::Key &key) override
gtsam::ISAM2Result batchSmootherIsam2Result_
gtsam::Point3 calculateEstimatedPoint3(const gtsam::Key &key) override
OptimizerIsam2Batch(const std::shared_ptr< GraphConfig > graphConfigPtr)
void optimize(int maxIterations) override
bool update(const gtsam::NonlinearFactorGraph &newGraphFactors, const gtsam::Values &newGraphValues, const std::map< gtsam::Key, double > &newGraphKeysTimeStampMap, const int depth=0) override
std::shared_ptr< gtsam::ISAM2 > batchSmootherPtr_
const gtsam::Values & getAllOptimizedStates() override
gtsam::imuBias::ConstantBias calculateEstimatedBias(const gtsam::Key &key) override
const gtsam::NonlinearFactorGraph & getNonlinearFactorGraph() const override
gtsam::Values containerBatchSmootherValues_
const std::map< gtsam::Key, double > & getFullKeyTimestampMap() override
gtsam::Vector3 calculateEstimatedVelocity3(const gtsam::Key &key) override
~OptimizerIsam2Batch()=default
gtsam::ISAM2Params isam2Params_
OptimizerIsam2(const std::shared_ptr< GraphConfig > graphConfigPtr)
bool optimizedAtLeastOnceFlag_