Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | List of all members
gtsam::HybridGaussianISAM Class Reference

Incremental Smoothing and Mapping (ISAM) algorithm for hybrid factor graphs. More...

#include <HybridGaussianISAM.h>

Inheritance diagram for gtsam::HybridGaussianISAM:
Inheritance graph
[legend]

Public Types

typedef ISAM< HybridBayesTreeBase
 
typedef std::shared_ptr< Thisshared_ptr
 
typedef HybridGaussianISAM This
 
- Public Types inherited from gtsam::ISAM< HybridBayesTree >
typedef HybridBayesTree Base
 
typedef Base::BayesNetType BayesNetType
 
typedef Base::Clique Clique
 
typedef Base::Cliques Cliques
 
typedef Base::FactorGraphType FactorGraphType
 
typedef Base::sharedClique sharedClique
 
- Public Types inherited from gtsam::HybridBayesTree
typedef std::shared_ptr< Thisshared_ptr
 
typedef HybridBayesTree This
 
- Public Types inherited from gtsam::BayesTree< HybridBayesTreeClique >
typedef HybridBayesTreeClique ::BayesNetType BayesNetType
 
typedef HybridBayesTreeClique Clique
 The clique type, normally BayesTreeClique. More...
 
typedef FastList< sharedCliqueCliques
 
typedef HybridBayesTreeClique ::ConditionalType ConditionalType
 
typedef FactorGraphType::Eliminate Eliminate
 
typedef HybridBayesTreeClique ::EliminationTraitsType EliminationTraitsType
 
typedef HybridBayesTreeClique ::FactorGraphType FactorGraphType
 
typedef HybridBayesTreeClique ::FactorType FactorType
 
typedef Clique Node
 Synonym for Clique (TODO: remove) More...
 
typedef ConcurrentMap< Key, sharedCliqueNodes
 
typedef FastVector< sharedCliqueRoots
 
typedef std::shared_ptr< BayesNetTypesharedBayesNet
 
typedef std::shared_ptr< CliquesharedClique
 Shared pointer to a clique. More...
 
typedef std::shared_ptr< ConditionalTypesharedConditional
 
typedef std::shared_ptr< FactorTypesharedFactor
 
typedef std::shared_ptr< FactorGraphTypesharedFactorGraph
 
typedef sharedClique sharedNode
 Synonym for sharedClique (TODO: remove) More...
 

Public Member Functions

void update (const HybridGaussianFactorGraph &newFactors, const std::optional< size_t > &maxNrLeaves={}, const std::optional< Ordering > &ordering={}, const HybridBayesTree::Eliminate &function=HybridBayesTree::EliminationTraitsType::DefaultEliminate)
 Perform update step with new factors. More...
 
Standard Constructors
 HybridGaussianISAM ()
 
 HybridGaussianISAM (const HybridBayesTree &bayesTree)
 
- Public Member Functions inherited from gtsam::ISAM< HybridBayesTree >
 ISAM ()
 
 ISAM (const Base &bayesTree)
 
void update (const FactorGraphType &newFactors, const Eliminate &function=EliminationTraitsType::DefaultEliminate)
 
void updateInternal (const FactorGraphType &newFactors, Cliques *orphans, const Eliminate &function=EliminationTraitsType::DefaultEliminate)
 
- Public Member Functions inherited from gtsam::HybridBayesTree
 HybridBayesTree ()=default
 
bool equals (const This &other, double tol=1e-9) const
 
GaussianBayesTree choose (const DiscreteValues &assignment) const
 Get the Gaussian Bayes Tree which corresponds to a specific discrete value assignment. More...
 
double error (const HybridValues &values) const
 
HybridValues optimize () const
 Optimize the hybrid Bayes tree by computing the MPE for the current set of discrete variables and using it to compute the best continuous update delta. More...
 
VectorValues optimize (const DiscreteValues &assignment) const
 Recursively optimize the BayesTree to produce a vector solution. More...
 
void prune (const size_t maxNumberLeaves)
 Prune the underlying Bayes tree. More...
 
- Public Member Functions inherited from gtsam::BayesTree< HybridBayesTreeClique >
size_t size () const
 
bool empty () const
 
const Nodesnodes () const
 
sharedClique operator[] (Key j) const
 
const Rootsroots () const
 
const sharedCliqueclique (Key j) const
 
BayesTreeCliqueData getCliqueData () const
 
size_t numCachedSeparatorMarginals () const
 
sharedConditional marginalFactor (Key j, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 
sharedFactorGraph joint (Key j1, Key j2, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 
sharedBayesNet jointBayesNet (Key j1, Key j2, const Eliminate &function=EliminationTraitsType::DefaultEliminate) const
 
void dot (std::ostream &os, const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 Output to graphviz format, stream version. More...
 
std::string dot (const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 Output to graphviz format string. More...
 
void saveGraph (const std::string &filename, const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 output to file with graphviz format. More...
 
Key findParentClique (const CONTAINER &parents) const
 
void clear ()
 
void deleteCachedShortcuts ()
 
void removePath (sharedClique clique, BayesNetType *bn, Cliques *orphans)
 
void removeTop (const KeyVector &keys, BayesNetType *bn, Cliques *orphans)
 
Cliques removeSubtree (const sharedClique &subtree)
 
void insertRoot (const sharedClique &subtree)
 
void addClique (const sharedClique &clique, const sharedClique &parent_clique=sharedClique())
 
void addFactorsToGraph (FactorGraph< FactorType > *graph) const
 
void print (const std::string &s="", const KeyFormatter &keyFormatter=DefaultKeyFormatter) const
 

Static Public Member Functions

static Ordering GetOrdering (HybridGaussianFactorGraph &factors, const HybridGaussianFactorGraph &newFactors)
 Helper method to get an ordering given the existing factors and any new factors added. More...
 

Private Member Functions

void updateInternal (const HybridGaussianFactorGraph &newFactors, HybridBayesTree::Cliques *orphans, const std::optional< size_t > &maxNrLeaves={}, const std::optional< Ordering > &ordering={}, const HybridBayesTree::Eliminate &function=HybridBayesTree::EliminationTraitsType::DefaultEliminate)
 Internal method that performs the ISAM update. More...
 

Additional Inherited Members

- Protected Types inherited from gtsam::BayesTree< HybridBayesTreeClique >
typedef std::shared_ptr< Thisshared_ptr
 
typedef BayesTree< HybridBayesTreeCliqueThis
 
- Protected Member Functions inherited from gtsam::BayesTree< HybridBayesTreeClique >
Thisoperator= (const This &other)
 
 ~BayesTree ()
 
 BayesTree ()
 
 BayesTree (const This &other)
 
void getCliqueData (sharedClique clique, BayesTreeCliqueData *stats) const
 
void dot (std::ostream &s, sharedClique clique, const KeyFormatter &keyFormatter, int parentnum=0) const
 
void removeClique (sharedClique clique)
 
void fillNodesIndex (const sharedClique &subtree)
 
bool equals (const This &other, double tol=1e-9) const
 
- Protected Attributes inherited from gtsam::BayesTree< HybridBayesTreeClique >
Nodes nodes_
 
Roots roots_
 

Detailed Description

Incremental Smoothing and Mapping (ISAM) algorithm for hybrid factor graphs.

Definition at line 37 of file HybridGaussianISAM.h.

Member Typedef Documentation

◆ Base

Definition at line 39 of file HybridGaussianISAM.h.

◆ shared_ptr

typedef std::shared_ptr<This> gtsam::HybridGaussianISAM::shared_ptr

Definition at line 41 of file HybridGaussianISAM.h.

◆ This

Definition at line 40 of file HybridGaussianISAM.h.

Constructor & Destructor Documentation

◆ HybridGaussianISAM() [1/2]

gtsam::HybridGaussianISAM::HybridGaussianISAM ( )

Create an empty Bayes Tree

Definition at line 35 of file HybridGaussianISAM.cpp.

◆ HybridGaussianISAM() [2/2]

gtsam::HybridGaussianISAM::HybridGaussianISAM ( const HybridBayesTree bayesTree)

Copy constructor

Definition at line 38 of file HybridGaussianISAM.cpp.

Member Function Documentation

◆ GetOrdering()

Ordering gtsam::HybridGaussianISAM::GetOrdering ( HybridGaussianFactorGraph factors,
const HybridGaussianFactorGraph newFactors 
)
static

Helper method to get an ordering given the existing factors and any new factors added.

Parameters
factorsThe existing factors in the BayesTree.
newFactorsNew factors added during the update step.
Returns
Ordering

Definition at line 42 of file HybridGaussianISAM.cpp.

◆ update()

void gtsam::HybridGaussianISAM::update ( const HybridGaussianFactorGraph newFactors,
const std::optional< size_t > &  maxNrLeaves = {},
const std::optional< Ordering > &  ordering = {},
const HybridBayesTree::Eliminate function = HybridBayesTree::EliminationTraitsType::DefaultEliminate 
)

Perform update step with new factors.

Parameters
newFactorsFactor graph of new factors to add and eliminate.
maxNrLeavesThe maximum number of leaves to keep after pruning.
orderingCustom elimination ordering.
functionElimination function.

Definition at line 117 of file HybridGaussianISAM.cpp.

◆ updateInternal()

void gtsam::HybridGaussianISAM::updateInternal ( const HybridGaussianFactorGraph newFactors,
HybridBayesTree::Cliques orphans,
const std::optional< size_t > &  maxNrLeaves = {},
const std::optional< Ordering > &  ordering = {},
const HybridBayesTree::Eliminate function = HybridBayesTree::EliminationTraitsType::DefaultEliminate 
)
private

Internal method that performs the ISAM update.

Definition at line 71 of file HybridGaussianISAM.cpp.


The documentation for this class was generated from the following files:


gtsam
Author(s):
autogenerated on Sun Dec 22 2024 04:23:54