g2o
Toggle main menu visibility
Loading...
Searching...
No Matches
g2o
examples
interactive_slam
g2o_incremental
graph_optimizer_sparse_incremental.h
Go to the documentation of this file.
1
// g2o - General Graph Optimization
2
// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
3
//
4
// g2o is free software: you can redistribute it and/or modify
5
// it under the terms of the GNU General Public License as published
6
// by the Free Software Foundation, either version 3 of the License, or
7
// (at your option) any later version.
8
//
9
// g2o is distributed in the hope that it will be useful,
10
// but WITHOUT ANY WARRANTY; without even the implied warranty of
11
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
// GNU General Public License for more details.
13
//
14
// You should have received a copy of the GNU General Public License
15
// along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17
#ifndef G2O_GRAPH_OPTIMIZER_SPARSE_INCREMENTAL_H
18
#define G2O_GRAPH_OPTIMIZER_SPARSE_INCREMENTAL_H
19
20
#include "
g2o/core/sparse_block_matrix.h
"
21
#include "
g2o/examples/interactive_slam/g2o_interactive/graph_optimizer_sparse_online.h
"
22
#include "
g2o_incremental_api.h
"
23
#include "
linear_solver_cholmod_online.h
"
24
25
namespace
g2o
{
26
27
namespace
cholmod
{
28
struct
CholmodExt
;
29
}
30
31
class
G2O_INCREMENTAL_API
SparseOptimizerIncremental
32
:
public
SparseOptimizerOnline
{
33
public
:
34
SparseOptimizerIncremental
();
35
~SparseOptimizerIncremental
();
36
37
int
optimize
(
int
iterations,
bool
online =
false
);
38
39
virtual
bool
updateInitialization
(
HyperGraph::VertexSet
& vset,
40
HyperGraph::EdgeSet
& eset);
41
42
virtual
bool
initSolver
(
int
dimension,
int
batchEveryN);
43
44
protected
:
45
SparseBlockMatrix<Eigen::MatrixXd>
_updateMat
;
46
cholmod_common
_cholmodCommon
;
47
cholmod::CholmodExt
*
_cholmodSparse
;
48
cholmod_factor*
_cholmodFactor
;
49
cholmod_triplet*
_permutedUpdate
;
50
cholmod_factor*
_L
;
51
LinearSolverCholmodOnlineInterface
*
_solverInterface
;
52
53
HyperGraph::VertexSet
_touchedVertices
;
54
Eigen::VectorXi
_perm
;
55
Eigen::VectorXi
_cmember
;
56
57
Eigen::VectorXi
_tripletWorkspace
;
58
cholmod::CholmodExt
*
_permutedUpdateAsSparse
;
59
60
bool
computeCholeskyUpdate
();
61
void
convertTripletUpdateToSparse
();
62
};
63
64
}
// namespace g2o
65
66
#endif
g2o::HyperGraph::EdgeSet
std::set< Edge * > EdgeSet
Definition
hyper_graph.h:141
g2o::HyperGraph::VertexSet
std::set< Vertex * > VertexSet
Definition
hyper_graph.h:142
g2o::LinearSolverCholmodOnlineInterface
generic interface for the online solver
Definition
linear_solver_cholmod_online.h:36
g2o::SparseBlockMatrix
Sparse matrix which uses blocks.
Definition
sparse_block_matrix.h:64
g2o::SparseOptimizerIncremental::_updateMat
SparseBlockMatrix< Eigen::MatrixXd > _updateMat
Definition
graph_optimizer_sparse_incremental.h:45
g2o::SparseOptimizerIncremental::_permutedUpdateAsSparse
cholmod::CholmodExt * _permutedUpdateAsSparse
Definition
graph_optimizer_sparse_incremental.h:58
g2o::SparseOptimizerIncremental::_cmember
Eigen::VectorXi _cmember
Definition
graph_optimizer_sparse_incremental.h:55
g2o::SparseOptimizerIncremental::_cholmodCommon
cholmod_common _cholmodCommon
Definition
graph_optimizer_sparse_incremental.h:46
g2o::SparseOptimizerIncremental::_permutedUpdate
cholmod_triplet * _permutedUpdate
Definition
graph_optimizer_sparse_incremental.h:49
g2o::SparseOptimizerIncremental::_cholmodFactor
cholmod_factor * _cholmodFactor
Definition
graph_optimizer_sparse_incremental.h:48
g2o::SparseOptimizerIncremental::convertTripletUpdateToSparse
void convertTripletUpdateToSparse()
Definition
graph_optimizer_sparse_incremental.cpp:530
g2o::SparseOptimizerIncremental::_tripletWorkspace
Eigen::VectorXi _tripletWorkspace
Definition
graph_optimizer_sparse_incremental.h:57
g2o::SparseOptimizerIncremental::optimize
int optimize(int iterations, bool online=false)
Definition
graph_optimizer_sparse_incremental.cpp:89
g2o::SparseOptimizerIncremental::_solverInterface
LinearSolverCholmodOnlineInterface * _solverInterface
Definition
graph_optimizer_sparse_incremental.h:51
g2o::SparseOptimizerIncremental::_perm
Eigen::VectorXi _perm
Definition
graph_optimizer_sparse_incremental.h:54
g2o::SparseOptimizerIncremental::_L
cholmod_factor * _L
Definition
graph_optimizer_sparse_incremental.h:50
g2o::SparseOptimizerIncremental::SparseOptimizerIncremental
SparseOptimizerIncremental()
Definition
graph_optimizer_sparse_incremental.cpp:57
g2o::SparseOptimizerIncremental::computeCholeskyUpdate
bool computeCholeskyUpdate()
Definition
graph_optimizer_sparse_incremental.cpp:400
g2o::SparseOptimizerIncremental::initSolver
virtual bool initSolver(int dimension, int batchEveryN)
Definition
graph_optimizer_sparse_incremental.cpp:485
g2o::SparseOptimizerIncremental::_touchedVertices
HyperGraph::VertexSet _touchedVertices
Definition
graph_optimizer_sparse_incremental.h:53
g2o::SparseOptimizerIncremental::updateInitialization
virtual bool updateInitialization(HyperGraph::VertexSet &vset, HyperGraph::EdgeSet &eset)
Definition
graph_optimizer_sparse_incremental.cpp:182
g2o::SparseOptimizerIncremental::_cholmodSparse
cholmod::CholmodExt * _cholmodSparse
Definition
graph_optimizer_sparse_incremental.h:47
g2o::SparseOptimizerOnline::SparseOptimizerOnline
SparseOptimizerOnline(bool pcg=false)
Definition
graph_optimizer_sparse_online.cpp:63
g2o_incremental_api.h
G2O_INCREMENTAL_API
#define G2O_INCREMENTAL_API
Definition
g2o_incremental_api.h:46
graph_optimizer_sparse_online.h
linear_solver_cholmod_online.h
g2o::cholmod
Definition
graph_optimizer_sparse_incremental.h:27
g2o
Definition
dl_wrapper.cpp:55
sparse_block_matrix.h
g2o::cholmod::CholmodExt
Our extension of the CHOLMOD matrix struct.
Definition
cholmod_ext.h:38
Generated on
for g2o by
1.17.0