Class that contains the core optimization algorithm. More...
#include <treeoptimizer2.h>
Public Types | |
typedef std::vector< Pose > | PoseVector |
![]() | |
typedef Operations2D< double >::CovarianceType | CovarianceMatrix |
typedef Operations2D< double >::InformationType | InformationMatrix |
typedef Operations2D< double >::PoseType | Pose |
typedef Operations2D< double >::RotationType | Rotation |
typedef Operations2D< double >::TransformationType | Transformation |
typedef Operations2D< double >::TranslationType | Translation |
![]() | |
typedef Operations2D< double > ::BaseType | BaseType |
typedef Operations2D< double > ::CovarianceType | Covariance |
typedef EVComparator< Edge * >::CompareMode | EdgeCompareMode |
typedef std::list< Edge * > | EdgeList |
typedef std::map< Edge *, Edge * > | EdgeMap |
typedef std::multiset< Edge *, EVComparator< Edge * > > | EdgeSet |
typedef Operations2D< double > ::InformationType | Information |
typedef Operations2D< double > ::ParametersType | Parameters |
typedef Operations2D< double > ::PoseType | Pose |
typedef Operations2D< double > ::RotationType | Rotation |
typedef Operations2D< double > ::TransformationType | Transformation |
typedef Operations2D< double > ::TranslationType | Translation |
typedef std::map< int, Vertex * > | VertexMap |
typedef std::set< Vertex * > | VertexSet |
Public Member Functions | |
double | error () const |
void | initializeOnlineOptimization () |
void | initializeOptimization () |
void | initializeTreeParameters () |
void | iterate (TreePoseGraph2::EdgeSet *eset=0) |
TreeOptimizer2 () | |
virtual | ~TreeOptimizer2 () |
![]() | |
virtual void | collapseEdge (Edge *e) |
virtual void | initializeFromParentEdge (Vertex *v) |
void | initializeOnTree () |
bool | load (const char *filename, bool overrideCovariances=false) |
bool | loadEquivalences (const char *filename) |
void | printDepth (std::ostream &os) |
void | printEdgesStat (std::ostream &os) |
void | printWidth (std::ostream &os) |
virtual void | revertEdgeInfo (Edge *e) |
bool | save (const char *filename) |
bool | saveGnuplot (const char *filename) |
![]() | |
Edge * | addEdge (Vertex *v1, Vertex *v2, const Transformation &t, const Information &i) |
Edge * | addIncrementalEdge (int id1, int id2, const Transformation &t, const Information &i) |
Vertex * | addVertex (int id, const Pose &pose) |
EdgeSet * | affectedEdges (Vertex *v) |
EdgeSet * | affectedEdges (VertexSet &vl) |
bool | buildMST (int id) |
bool | buildSimpleTree () |
void | clear () |
void | compressIndices () |
Edge * | edge (int id1, int id2) |
const Edge * | edge (int id1, int id2) const |
int | maxIndex () |
int | maxPathLength () |
Edge * | removeEdge (Edge *eq) |
Vertex * | removeVertex (int id) |
void | revertEdge (Edge *e) |
bool | sanityCheck () |
EdgeSet * | sortEdges () |
int | totalPathLength () |
void | treeBreadthVisit (Action &act) |
void | treeDepthVisit (Action &act, Vertex *v) |
TreePoseGraph () | |
Vertex * | vertex (int id) |
const Vertex * | vertex (int id) const |
virtual | ~TreePoseGraph () |
Protected Member Functions | |
void | computePreconditioner () |
double | error (const Edge *e) const |
Pose | getPose (Vertex *v, Vertex *top) |
void | propagateErrors () |
void | updatePoseChain (Vertex *v, Vertex *top) |
![]() | |
void | fillEdgeInfo (Edge *e) |
void | fillEdgesInfo () |
Protected Attributes | |
double | gamma [3] |
int | iteration |
PoseVector | M |
![]() | |
EdgeCompareMode | edgeCompareMode |
Additional Inherited Members | |
![]() | |
int | verboseLevel |
![]() | |
EdgeMap | edges |
Vertex * | root |
EdgeSet * | sortedEdges |
VertexMap | vertices |
Class that contains the core optimization algorithm.
Definition at line 52 of file treeoptimizer2.h.
typedef std::vector<Pose> AISNavigation::TreeOptimizer2::PoseVector |
Definition at line 53 of file treeoptimizer2.h.
AISNavigation::TreeOptimizer2::TreeOptimizer2 | ( | ) |
Constructor
Definition at line 70 of file treeoptimizer2.cpp.
|
virtual |
Destructor
Definition at line 75 of file treeoptimizer2.cpp.
|
protected |
The first of the two main steps of each iteration
Definition at line 108 of file treeoptimizer2.cpp.
double AISNavigation::TreeOptimizer2::error | ( | ) | const |
Conmputes the gloabl error of the network
Definition at line 361 of file treeoptimizer2.cpp.
|
protected |
Conmputes the error of the constraint/edge e
Definition at line 316 of file treeoptimizer2.cpp.
|
protected |
Recomputes only the pose of the node v wrt. to an arbitraty parent (top) of v in the tree
Definition at line 300 of file treeoptimizer2.cpp.
void AISNavigation::TreeOptimizer2::initializeOnlineOptimization | ( | ) |
Initialization function
Definition at line 99 of file treeoptimizer2.cpp.
void AISNavigation::TreeOptimizer2::initializeOptimization | ( | ) |
Initialization function
Definition at line 83 of file treeoptimizer2.cpp.
void AISNavigation::TreeOptimizer2::initializeTreeParameters | ( | ) |
Initialization function
Definition at line 78 of file treeoptimizer2.cpp.
void AISNavigation::TreeOptimizer2::iterate | ( | TreePoseGraph2::EdgeSet * | eset = 0 | ) |
Performs one iteration of the algorithm
Definition at line 279 of file treeoptimizer2.cpp.
|
protected |
The second of the two main steps of each iteration
Definition at line 163 of file treeoptimizer2.cpp.
|
protected |
Recomputes the poses of all vertices from v to an arbitraty parent (top) of v in the tree
Definition at line 290 of file treeoptimizer2.cpp.
|
protected |
Used to compute the learning rate lambda
Definition at line 98 of file treeoptimizer2.h.
|
protected |
Iteration counter
Definition at line 95 of file treeoptimizer2.h.
|
protected |
The diaginal block elements of the preconditioning matrix (D_k in the paper)
Definition at line 102 of file treeoptimizer2.h.