Documentation
parent
a02eae679f
commit
9cab332190
|
|
@ -16,16 +16,21 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// \callgraph
|
// \callgraph
|
||||||
|
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <gtsam/inference/BayesTree.h>
|
#include <gtsam/inference/BayesTree.h>
|
||||||
|
|
||||||
namespace gtsam {
|
namespace gtsam {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A Bayes tree with an update methods that implements the iSAM algorithm.
|
||||||
|
* Given a set of new factors, it re-eliminates the invalidated part of the tree.
|
||||||
|
*/
|
||||||
template<class CONDITIONAL>
|
template<class CONDITIONAL>
|
||||||
class ISAM: public BayesTree<CONDITIONAL> {
|
class ISAM: public BayesTree<CONDITIONAL> {
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
typedef BayesTree<CONDITIONAL> Base;
|
typedef BayesTree<CONDITIONAL> Base;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
@ -36,23 +41,29 @@ namespace gtsam {
|
||||||
/** Create a Bayes Tree from a Bayes Net */
|
/** Create a Bayes Tree from a Bayes Net */
|
||||||
ISAM(const BayesNet<CONDITIONAL>& bayesNet);
|
ISAM(const BayesNet<CONDITIONAL>& bayesNet);
|
||||||
|
|
||||||
/** Create a Bayes Tree from a Bayes Tree */
|
/** Copy constructor */
|
||||||
ISAM(const Base& bayesTree) : Base(bayesTree) {}
|
ISAM(const Base& bayesTree) :
|
||||||
|
Base(bayesTree) {
|
||||||
typedef typename BayesTree<CONDITIONAL>::sharedClique sharedClique;
|
}
|
||||||
|
|
||||||
typedef typename BayesTree<CONDITIONAL>::Cliques Cliques;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* iSAM. (update_internal provides access to list of orphans for drawing purposes)
|
* update the Bayes tree with a set of new factors, typically derived from measurements
|
||||||
|
* @param newFactors is a factor graph that contains the new factors
|
||||||
|
* @param function an elimination routine
|
||||||
*/
|
*/
|
||||||
template<class FG>
|
template<class FG>
|
||||||
|
void update(const FG& newFactors, typename FG::Eliminate function);
|
||||||
|
|
||||||
|
/** advanced interface */
|
||||||
|
|
||||||
|
typedef typename BayesTree<CONDITIONAL>::sharedClique sharedClique;
|
||||||
|
typedef typename BayesTree<CONDITIONAL>::Cliques Cliques;
|
||||||
|
|
||||||
|
/** update_internal provides access to list of orphans for drawing purposes */
|
||||||
|
template<class FG>
|
||||||
void update_internal(const FG& newFactors, Cliques& orphans,
|
void update_internal(const FG& newFactors, Cliques& orphans,
|
||||||
typename FG::Eliminate function);
|
typename FG::Eliminate function);
|
||||||
|
|
||||||
template<class FG>
|
};
|
||||||
void update(const FG& newFactors, typename FG::Eliminate function);
|
|
||||||
|
|
||||||
}; // ISAM
|
}/// namespace gtsam
|
||||||
|
|
||||||
} /// namespace gtsam
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue