corelib
src
optimizer
toro3d
treeoptimizer2.h
Go to the documentation of this file.
1
/**********************************************************************
2
*
3
* This source code is part of the Tree-based Network Optimizer (TORO)
4
*
5
* TORO Copyright (c) 2007 Giorgio Grisetti, Cyrill Stachniss,
6
* Slawomir Grzonka, and Wolfram Burgard
7
*
8
* TORO is licences under the Common Creative License,
9
* Attribution-NonCommercial-ShareAlike 3.0
10
*
11
* You are free:
12
* - to Share - to copy, distribute and transmit the work
13
* - to Remix - to adapt the work
14
*
15
* Under the following conditions:
16
*
17
* - Attribution. You must attribute the work in the manner specified
18
* by the author or licensor (but not in any way that suggests that
19
* they endorse you or your use of the work).
20
*
21
* - Noncommercial. You may not use this work for commercial purposes.
22
*
23
* - Share Alike. If you alter, transform, or build upon this work,
24
* you may distribute the resulting work only under the same or
25
* similar license to this one.
26
*
27
* Any of the above conditions can be waived if you get permission
28
* from the copyright holder. Nothing in this license impairs or
29
* restricts the author's moral rights.
30
*
31
* TORO is distributed in the hope that it will be useful,
32
* but WITHOUT ANY WARRANTY; without even the implied
33
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
34
* PURPOSE.
35
**********************************************************************/
36
44
#ifndef _TREEOPTIMIZER2_HH_
45
#define _TREEOPTIMIZER2_HH_
46
47
#include "
posegraph2.h
"
48
49
namespace
AISNavigation
{
50
52
struct
TreeOptimizer2
:
public
TreePoseGraph2
{
53
typedef
std::vector<Pose>
PoseVector
;
54
56
TreeOptimizer2
();
57
59
virtual
~TreeOptimizer2
();
60
62
void
initializeTreeParameters
();
63
65
void
initializeOptimization
();
66
68
void
initializeOnlineOptimization
();
69
71
void
iterate
(
TreePoseGraph2::EdgeSet
* eset=0);
72
74
double
error
()
const
;
75
76
protected
:
78
void
computePreconditioner
();
79
81
void
propagateErrors
();
82
85
void
updatePoseChain
(Vertex* v, Vertex* top);
86
89
Pose
getPose
(Vertex*v, Vertex* top);
90
92
double
error
(
const
Edge*
e
)
const
;
93
95
int
iteration
;
96
98
double
gamma
[3];
99
102
PoseVector
M
;
103
104
};
105
106
};
//namespace AISNavigation
107
#endif
AISNavigation::TreeOptimizer2::~TreeOptimizer2
virtual ~TreeOptimizer2()
Definition:
treeoptimizer2.cpp:75
AISNavigation::TreeOptimizer2::updatePoseChain
void updatePoseChain(Vertex *v, Vertex *top)
Definition:
treeoptimizer2.cpp:290
AISNavigation::TreeOptimizer2::initializeTreeParameters
void initializeTreeParameters()
Definition:
treeoptimizer2.cpp:78
AISNavigation::TreeOptimizer2
Class that contains the core optimization algorithm.
Definition:
treeoptimizer2.h:52
AISNavigation::TreePoseGraph< Operations2D< double > >::EdgeSet
std::multiset< Edge *, EVComparator< Edge * > > EdgeSet
Definition:
posegraph.h:123
AISNavigation::TreeOptimizer2::error
double error() const
Definition:
treeoptimizer2.cpp:361
AISNavigation::TreeOptimizer2::iterate
void iterate(TreePoseGraph2::EdgeSet *eset=0)
Definition:
treeoptimizer2.cpp:279
AISNavigation::TreeOptimizer2::initializeOnlineOptimization
void initializeOnlineOptimization()
Definition:
treeoptimizer2.cpp:99
posegraph2.h
AISNavigation::TreeOptimizer2::TreeOptimizer2
TreeOptimizer2()
Definition:
treeoptimizer2.cpp:70
AISNavigation::TreeOptimizer2::PoseVector
std::vector< Pose > PoseVector
Definition:
treeoptimizer2.h:53
AISNavigation::TreeOptimizer2::initializeOptimization
void initializeOptimization()
Definition:
treeoptimizer2.cpp:83
AISNavigation::TreeOptimizer2::gamma
double gamma[3]
Definition:
treeoptimizer2.h:98
AISNavigation::TreeOptimizer2::M
PoseVector M
Definition:
treeoptimizer2.h:102
AISNavigation::TreeOptimizer2::getPose
Pose getPose(Vertex *v, Vertex *top)
Definition:
treeoptimizer2.cpp:300
AISNavigation::Pose2
2D Point (x,y) with orientation (theta)
Definition:
transformation2.h:120
AISNavigation::TreePoseGraph2
The class (struct) that contains 2D graph related functions such as loading, saving,...
Definition:
posegraph2.h:57
AISNavigation::TreeOptimizer2::iteration
int iteration
Definition:
treeoptimizer2.h:95
e
Array< double, 1, 3 > e(1./3., 0.5, 2.)
AISNavigation::TreeOptimizer2::computePreconditioner
void computePreconditioner()
Definition:
treeoptimizer2.cpp:108
AISNavigation
Definition:
posegraph.h:57
AISNavigation::TreeOptimizer2::propagateErrors
void propagateErrors()
Definition:
treeoptimizer2.cpp:163
rtabmap
Author(s): Mathieu Labbe
autogenerated on Thu Jul 25 2024 02:50:22