g2o
Toggle main menu visibility
Loading...
Searching...
No Matches
g2o
examples
interactive_slam
g2o_interactive
g2o_online.cpp
Go to the documentation of this file.
1
// g2o - General Graph Optimization
2
// Copyright (C) 2011 R. Kuemmerle, G. Grisetti, W. Burgard
3
// All rights reserved.
4
//
5
// Redistribution and use in source and binary forms, with or without
6
// modification, are permitted provided that the following conditions are
7
// met:
8
//
9
// * Redistributions of source code must retain the above copyright notice,
10
// this list of conditions and the following disclaimer.
11
// * Redistributions in binary form must reproduce the above copyright
12
// notice, this list of conditions and the following disclaimer in the
13
// documentation and/or other materials provided with the distribution.
14
//
15
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
16
// IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
18
// PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19
// HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
21
// TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
23
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
24
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
27
#include <csignal>
28
#include <cstdlib>
29
#include <iomanip>
30
#include <iostream>
31
32
#include "
g2o/stuff/command_args.h
"
33
#include "
g2o/stuff/macros.h
"
34
#include "
g2o/stuff/timeutil.h
"
35
#include "
g2o_slam_interface.h
"
36
#include "
graph_optimizer_sparse_online.h
"
37
#include "
slam_parser/interface/parser_interface.h
"
38
39
static
bool
hasToStop
=
false
;
40
41
using namespace
std
;
42
using namespace
g2o
;
43
44
void
sigquit_handler
(
int
sig) {
45
if
(sig == SIGINT) {
46
hasToStop
= 1;
47
static
int
cnt = 0;
48
if
(cnt++ == 2) {
49
cerr <<
__PRETTY_FUNCTION__
<<
" forcing exit"
<< endl;
50
exit(1);
51
}
52
}
53
}
54
55
int
main
(
int
argc,
char
** argv) {
56
bool
pcg;
57
int
updateEachN;
58
bool
vis;
59
bool
verbose;
60
// command line parsing
61
CommandArgs
arg;
62
arg.
param
(
"update"
, updateEachN, 10,
63
"update the graph after inserting N nodes"
);
64
arg.
param
(
"pcg"
, pcg,
false
,
"use PCG instead of Cholesky"
);
65
arg.
param
(
"v"
, verbose,
false
,
"verbose output of the optimization process"
);
66
arg.
param
(
"g"
, vis,
false
,
"gnuplot visualization"
);
67
68
arg.
parseArgs
(argc, argv);
69
70
SparseOptimizerOnline
optimizer(pcg);
71
optimizer.
setVerbose
(verbose);
72
optimizer.
setForceStopFlag
(&
hasToStop
);
73
optimizer.
vizWithGnuplot
= vis;
74
75
G2oSlamInterface
slamInterface(&optimizer);
76
slamInterface.
setUpdateGraphEachN
(updateEachN);
77
78
SlamParser::ParserInterface
parserInterface(&slamInterface);
79
80
while
(parserInterface.
parseCommand
(cin)) {
81
// do something additional if needed
82
}
83
84
return
0;
85
}
SlamParser::ParserInterface
top-level interface to the parser
Definition
parser_interface.h:43
SlamParser::ParserInterface::parseCommand
bool parseCommand(std::istream &input)
Definition
parser_interface.cpp:46
g2o::CommandArgs
Command line parsing of argc and argv.
Definition
command_args.h:45
g2o::CommandArgs::parseArgs
bool parseArgs(int argc, char **argv, bool exitOnError=true)
Definition
command_args.cpp:106
g2o::CommandArgs::param
void param(const std::string &name, bool &p, bool defValue, const std::string &desc)
Definition
command_args.cpp:188
g2o::G2oSlamInterface
Definition
g2o_slam_interface.h:42
g2o::G2oSlamInterface::setUpdateGraphEachN
void setUpdateGraphEachN(int n)
Definition
g2o_slam_interface.cpp:433
g2o::SparseOptimizerOnline
Definition
graph_optimizer_sparse_online.h:37
g2o::SparseOptimizerOnline::vizWithGnuplot
bool vizWithGnuplot
Definition
graph_optimizer_sparse_online.h:57
g2o::SparseOptimizer::setForceStopFlag
void setForceStopFlag(bool *flag)
Definition
sparse_optimizer.cpp:604
g2o::SparseOptimizer::setVerbose
void setVerbose(bool verbose)
Definition
sparse_optimizer.cpp:562
command_args.h
hasToStop
static bool hasToStop
Definition
g2o.cpp:59
sigquit_handler
void sigquit_handler(int sig)
Definition
g2o_online.cpp:44
g2o_slam_interface.h
main
int main()
Definition
gicp_demo.cpp:44
graph_optimizer_sparse_online.h
macros.h
__PRETTY_FUNCTION__
#define __PRETTY_FUNCTION__
Definition
macros.h:90
g2o
Definition
dl_wrapper.cpp:55
std
Definition
jet.h:876
parser_interface.h
timeutil.h
utility functions for handling time related stuff
Generated on
for g2o by
1.17.0