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

#include <graph_optimizer_sparse_online.h>

Inheritance diagram for g2o::SparseOptimizerOnline:
Collaboration diagram for g2o::SparseOptimizerOnline:

Public Member Functions

 SparseOptimizerOnline (bool pcg=false)
virtual ~SparseOptimizerOnline ()
int optimize (int iterations, bool online=false)
virtual bool updateInitialization (HyperGraph::VertexSet &vset, HyperGraph::EdgeSet &eset)
void update (double *update)
virtual bool initSolver (int dimension, int batchEveryN)
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)

Public Attributes

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

Protected Attributes

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 ()
Static Public Attributes inherited from g2o::HyperGraph
static const int UnassignedId = -1
static const int InvalidId = -2
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)

Detailed Description

Definition at line 37 of file graph_optimizer_sparse_online.h.

Constructor & Destructor Documentation

◆ SparseOptimizerOnline()

g2o::SparseOptimizerOnline::SparseOptimizerOnline ( bool pcg = false)
explicit

◆ ~SparseOptimizerOnline()

g2o::SparseOptimizerOnline::~SparseOptimizerOnline ( )
virtual

Definition at line 73 of file graph_optimizer_sparse_online.cpp.

References _gnuplot.

Member Function Documentation

◆ gnuplotVisualization()

◆ initSolver()

◆ optimize()

◆ update()

◆ updateInitialization()

bool g2o::SparseOptimizerOnline::updateInitialization ( HyperGraph::VertexSet & vset,
HyperGraph::EdgeSet & eset )
virtual

HACK updating the internal structures for online processing

Reimplemented from g2o::SparseOptimizer.

Reimplemented in g2o::SparseOptimizerIncremental.

Definition at line 176 of file graph_optimizer_sparse_online.cpp.

References g2o::OptimizableGraph::Vertex::clearQuadraticForm(), newEdges, and g2o::SparseOptimizer::updateInitialization().

Referenced by g2o::SparseOptimizerIncremental::updateInitialization().

Member Data Documentation

◆ _gnuplot

FILE* g2o::SparseOptimizerOnline::_gnuplot
protected

◆ _underlyingSolver

Solver* g2o::SparseOptimizerOnline::_underlyingSolver
protected

◆ _usePcg

bool g2o::SparseOptimizerOnline::_usePcg
protected

Definition at line 63 of file graph_optimizer_sparse_online.h.

Referenced by initSolver(), optimize(), and SparseOptimizerOnline().

◆ batchStep

◆ newEdges

HyperGraph::EdgeSet* g2o::SparseOptimizerOnline::newEdges

◆ slamDimension

◆ vizWithGnuplot

bool g2o::SparseOptimizerOnline::vizWithGnuplot

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