g2o
Loading...
Searching...
No Matches
g2o::SparseOptimizerIncremental Class Reference

#include <graph_optimizer_sparse_incremental.h>

Inheritance diagram for g2o::SparseOptimizerIncremental:
Collaboration diagram for g2o::SparseOptimizerIncremental:

Public Member Functions

 SparseOptimizerIncremental ()
 ~SparseOptimizerIncremental ()
int optimize (int iterations, bool online=false)
virtual bool updateInitialization (HyperGraph::VertexSet &vset, HyperGraph::EdgeSet &eset)
virtual bool initSolver (int dimension, int batchEveryN)
Public Member Functions inherited from g2o::SparseOptimizerOnline
 SparseOptimizerOnline (bool pcg=false)
virtual ~SparseOptimizerOnline ()
int optimize (int iterations, bool online=false)
void update (double *update)
virtual void gnuplotVisualization ()
Public Member Functions inherited from g2o::SparseOptimizer
 SparseOptimizer ()
virtual ~SparseOptimizer ()
virtual bool initializeOptimization (HyperGraph::EdgeSet &eset)
virtual bool initializeOptimization (HyperGraph::VertexSet &vset, int level=0)
virtual bool initializeOptimization (int level=0)
virtual void computeInitialGuess ()
virtual void computeInitialGuess (EstimatePropagatorCost &propagator)
virtual void setToOrigin ()
bool computeMarginals (SparseBlockMatrix< MatrixX > &spinv, const std::vector< std::pair< int, int > > &blockIndices)
bool computeMarginals (SparseBlockMatrix< MatrixX > &spinv, const Vertex *vertex)
bool computeMarginals (SparseBlockMatrix< MatrixX > &spinv, const VertexContainer &vertices)
virtual Vertex * findGauge ()
 finds a gauge in the graph to remove the undefined dof.
bool gaugeFreedom ()
double activeChi2 () const
double activeRobustChi2 () const
bool verbose () const
 verbose information during optimization
void setVerbose (bool verbose)
void setForceStopFlag (bool *flag)
bool * forceStopFlag () const
bool terminate ()
 if external stop flag is given, return its state. False otherwise
const VertexContainer & indexMapping () const
 the index mapping of the vertices
const VertexContainer & activeVertices () const
 the vertices active in the current optimization
const EdgeContainer & activeEdges () const
 the edges active in the current optimization
virtual bool removeVertex (HyperGraph::Vertex *v, bool detach=false)
VertexContainer::const_iterator findActiveVertex (const OptimizableGraph::Vertex *v) const
EdgeContainer::const_iterator findActiveEdge (const OptimizableGraph::Edge *e) const
const OptimizationAlgorithm * algorithm () const
 the solver used by the optimizer
OptimizationAlgorithm * solver ()
void setAlgorithm (OptimizationAlgorithm *algorithm)
void push (SparseOptimizer::VertexContainer &vlist)
 push the estimate of a subset of the variables onto a stack
void push (HyperGraph::VertexSet &vlist)
 push the estimate of a subset of the variables onto a stack
void push ()
 push all the active vertices onto a stack
void pop (SparseOptimizer::VertexContainer &vlist)
 pop (restore) the estimate a subset of the variables from the stack
void pop (HyperGraph::VertexSet &vlist)
 pop (restore) the estimate a subset of the variables from the stack
void pop ()
 pop (restore) the estimate of the active vertices from the stack
void discardTop (SparseOptimizer::VertexContainer &vlist)
void discardTop ()
 same as above, but for the active vertices
virtual void clear ()
void computeActiveErrors ()
 G2O_ATTRIBUTE_DEPRECATED (void linearizeSystem())
void update (const double *update)
const BatchStatisticsContainer & batchStatistics () const
BatchStatisticsContainer & batchStatistics ()
void setComputeBatchStatistics (bool computeBatchStatistics)
bool computeBatchStatistics () const
bool addComputeErrorAction (HyperGraphAction *action)
 add an action to be executed before the error vectors are computed
bool removeComputeErrorAction (HyperGraphAction *action)
virtual void discardTop (HyperGraph::VertexSet &vset)
Public Member Functions inherited from g2o::OptimizableGraph
Vertex * vertex (int id)
 returns the vertex number id appropriately casted
const Vertex * vertex (int id) const
 returns the vertex number id appropriately casted
 OptimizableGraph ()
 empty constructor
virtual ~OptimizableGraph ()
virtual bool addVertex (HyperGraph::Vertex *v, Data *userData)
virtual bool addVertex (HyperGraph::Vertex *v)
bool addVertex (OptimizableGraph::Vertex *v, Data *userData)
bool addVertex (OptimizableGraph::Vertex *v)
virtual bool addEdge (HyperGraph::Edge *e)
bool addEdge (OptimizableGraph::Edge *e)
virtual bool setEdgeVertex (HyperGraph::Edge *e, int pos, HyperGraph::Vertex *v)
double chi2 () const
 returns the chi2 of the current configuration
int maxDimension () const
 return the maximum dimension of all vertices in the graph
void recomputeJacobianWorkspaceSize ()
std::set< int > dimensions () const
virtual void preIteration (int)
virtual void postIteration (int)
bool addPreIterationAction (HyperGraphAction *action)
 add an action to be executed before each iteration
bool addPostIterationAction (HyperGraphAction *action)
 add an action to be executed after each iteration
bool removePreIterationAction (HyperGraphAction *action)
 remove an action that should no longer be executed before each iteration
bool removePostIterationAction (HyperGraphAction *action)
 remove an action that should no longer be executed after each iteration
virtual bool load (std::istream &is)
bool load (const char *filename)
virtual bool save (std::ostream &os, int level=0) const
 save the graph to a stream. Again uses the Factory system.
bool save (const char *filename, int level=0) const
 function provided for convenience, see save() above
bool saveSubset (std::ostream &os, HyperGraph::VertexSet &vset, int level=0)
 save a subgraph to a stream. Again uses the Factory system.
bool saveSubset (std::ostream &os, HyperGraph::EdgeSet &eset)
 save a subgraph to a stream. Again uses the Factory system.
virtual void setFixed (HyperGraph::VertexSet &vset, bool fixed)
 fixes/releases a set of vertices
void setRenamedTypesFromString (const std::string &types)
bool isSolverSuitable (const OptimizationAlgorithmProperty &solverProperty, const std::set< int > &vertDims=std::set< int >()) const
virtual void clearParameters ()
bool addParameter (Parameter *p)
Parameter * parameter (int id)
bool verifyInformationMatrices (bool verbose=false) const
bool saveVertex (std::ostream &os, Vertex *v) const
bool saveParameter (std::ostream &os, Parameter *v) const
bool saveEdge (std::ostream &os, Edge *e) const
bool saveUserData (std::ostream &os, HyperGraph::Data *v) const
JacobianWorkspace & jacobianWorkspace ()
 the workspace for storing the Jacobians of the graph
const JacobianWorkspace & jacobianWorkspace () const
ParameterContainer & parameters ()
const ParameterContainer & parameters () const
void forEachVertex (std::function< void(OptimizableGraph::Vertex *)> fn)
 apply a unary function to all vertices
void forEachVertex (HyperGraph::VertexSet &vset, std::function< void(OptimizableGraph::Vertex *)> fn)
 apply a unary function to the vertices in vset
Public Member Functions inherited from g2o::HyperGraph
 HyperGraph ()
 constructs an empty hyper graph
virtual ~HyperGraph ()
 destroys the hyper-graph and all the vertices of the graph
Vertex * vertex (int id)
const Vertex * vertex (int id) const
virtual bool removeEdge (Edge *e)
const VertexIDMap & vertices () const
VertexIDMap & vertices ()
const EdgeSet & edges () const
EdgeSet & edges ()
virtual bool mergeVertices (Vertex *vBig, Vertex *vSmall, bool erase)
virtual bool detachVertex (Vertex *v)
virtual bool changeId (Vertex *v, int newId)

Protected Member Functions

bool computeCholeskyUpdate ()
void convertTripletUpdateToSparse ()
Protected Member Functions inherited from g2o::SparseOptimizer
void sortVectorContainers ()
bool buildIndexMapping (SparseOptimizer::VertexContainer &vlist)
void clearIndexMapping ()
Protected Member Functions inherited from g2o::OptimizableGraph
void performActions (int iter, HyperGraphActionSet &actions)

Protected Attributes

SparseBlockMatrix< Eigen::MatrixXd > _updateMat
cholmod_common _cholmodCommon
cholmod::CholmodExt * _cholmodSparse
cholmod_factor * _cholmodFactor
cholmod_triplet * _permutedUpdate
cholmod_factor * _L
LinearSolverCholmodOnlineInterface * _solverInterface
HyperGraph::VertexSet _touchedVertices
Eigen::VectorXi _perm
Eigen::VectorXi _cmember
Eigen::VectorXi _tripletWorkspace
cholmod::CholmodExt * _permutedUpdateAsSparse
Protected Attributes inherited from g2o::SparseOptimizerOnline
FILE * _gnuplot
bool _usePcg
Solver * _underlyingSolver
Protected Attributes inherited from g2o::SparseOptimizer
bool * _forceStopFlag
bool _verbose
VertexContainer _ivMap
VertexContainer _activeVertices
 sorted according to VertexIDCompare
EdgeContainer _activeEdges
 sorted according to EdgeIDCompare
OptimizationAlgorithm * _algorithm
BatchStatisticsContainer _batchStatistics
bool _computeBatchStatistics
Protected Attributes inherited from g2o::OptimizableGraph
std::map< std::string, std::string > _renamedTypesLookup
long long _nextEdgeId
std::vector< HyperGraphActionSet > _graphActions
ParameterContainer _parameters
JacobianWorkspace _jacobianWorkspace
Protected Attributes inherited from g2o::HyperGraph
VertexIDMap _vertices
EdgeSet _edges

Additional Inherited Members

Public Types inherited from g2o::SparseOptimizer
enum  { AT_COMPUTEACTIVERROR = OptimizableGraph::AT_NUM_ELEMENTS , AT_NUM_ELEMENTS }
Public Types inherited from g2o::OptimizableGraph
enum  ActionType { AT_PREITERATION , AT_POSTITERATION , AT_NUM_ELEMENTS }
typedef std::set< HyperGraphAction * > HyperGraphActionSet
typedef std::vector< OptimizableGraph::Vertex * > VertexContainer
 vector container for vertices
typedef std::vector< OptimizableGraph::Edge * > EdgeContainer
 vector container for edges
Public Types inherited from g2o::HyperGraph
typedef std::bitset< HyperGraph::HGET_NUM_ELEMS > GraphElemBitset
typedef std::set< Edge * > EdgeSet
typedef std::set< Vertex * > VertexSet
typedef std::unordered_map< int, Vertex * > VertexIDMap
typedef std::vector< Vertex * > VertexContainer
Static Public Member Functions inherited from g2o::OptimizableGraph
static bool initMultiThreading ()
Public Attributes inherited from g2o::SparseOptimizerOnline
int slamDimension
HyperGraph::EdgeSet * newEdges
bool batchStep
bool vizWithGnuplot
Public Attributes inherited from g2o::OptimizableGraph
class G2O_CORE_API Vertex
class G2O_CORE_API Edge
Public Attributes inherited from g2o::HyperGraph
class G2O_CORE_API Data
class G2O_CORE_API DataContainer
class G2O_CORE_API Vertex
class G2O_CORE_API Edge
Static Public Attributes inherited from g2o::HyperGraph
static const int UnassignedId = -1
static const int InvalidId = -2

Detailed Description

Definition at line 31 of file graph_optimizer_sparse_incremental.h.

Constructor & Destructor Documentation

◆ SparseOptimizerIncremental()

g2o::SparseOptimizerIncremental::SparseOptimizerIncremental ( )

◆ ~SparseOptimizerIncremental()

g2o::SparseOptimizerIncremental::~SparseOptimizerIncremental ( )

Member Function Documentation

◆ computeCholeskyUpdate()

◆ convertTripletUpdateToSparse()

void g2o::SparseOptimizerIncremental::convertTripletUpdateToSparse ( )
protected

◆ initSolver()

◆ optimize()

◆ updateInitialization()

Member Data Documentation

◆ _cholmodCommon

cholmod_common g2o::SparseOptimizerIncremental::_cholmodCommon
protected

◆ _cholmodFactor

cholmod_factor* g2o::SparseOptimizerIncremental::_cholmodFactor
protected

◆ _cholmodSparse

cholmod::CholmodExt* g2o::SparseOptimizerIncremental::_cholmodSparse
protected

◆ _cmember

Eigen::VectorXi g2o::SparseOptimizerIncremental::_cmember
protected

Definition at line 55 of file graph_optimizer_sparse_incremental.h.

Referenced by initSolver(), and optimize().

◆ _L

cholmod_factor* g2o::SparseOptimizerIncremental::_L
protected

◆ _perm

Eigen::VectorXi g2o::SparseOptimizerIncremental::_perm
protected

Definition at line 54 of file graph_optimizer_sparse_incremental.h.

Referenced by optimize(), and updateInitialization().

◆ _permutedUpdate

cholmod_triplet* g2o::SparseOptimizerIncremental::_permutedUpdate
protected

◆ _permutedUpdateAsSparse

cholmod::CholmodExt* g2o::SparseOptimizerIncremental::_permutedUpdateAsSparse
protected

◆ _solverInterface

LinearSolverCholmodOnlineInterface* g2o::SparseOptimizerIncremental::_solverInterface
protected

◆ _touchedVertices

HyperGraph::VertexSet g2o::SparseOptimizerIncremental::_touchedVertices
protected

Definition at line 53 of file graph_optimizer_sparse_incremental.h.

Referenced by optimize(), and updateInitialization().

◆ _tripletWorkspace

Eigen::VectorXi g2o::SparseOptimizerIncremental::_tripletWorkspace
protected

Definition at line 57 of file graph_optimizer_sparse_incremental.h.

Referenced by convertTripletUpdateToSparse().

◆ _updateMat

SparseBlockMatrix<Eigen::MatrixXd> g2o::SparseOptimizerIncremental::_updateMat
protected

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