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 
53  typedef std::vector<Pose> PoseVector;
54 
57 
59  virtual ~TreeOptimizer2();
60 
63 
66 
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 
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