Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
AISNavigation::TreeOptimizer2 Struct Reference

Class that contains the core optimization algorithm. More...

#include <treeoptimizer2.hh>

Inheritance diagram for AISNavigation::TreeOptimizer2:
Inheritance graph
[legend]

Public Types

typedef std::vector< PosePoseVector
 
- Public Types inherited from AISNavigation::TreePoseGraph2
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
 
- Public Types inherited from AISNavigation::TreePoseGraph< Operations2D< double > >
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 ()
 
- Public Member Functions inherited from AISNavigation::TreePoseGraph2
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)
 
- Public Member Functions inherited from AISNavigation::TreePoseGraph< Operations2D< double > >
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)
 
EdgeSetaffectedEdges (Vertex *v)
 
EdgeSetaffectedEdges (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 ()
 
EdgeSetsortEdges ()
 
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)
 
- Protected Member Functions inherited from AISNavigation::TreePoseGraph< Operations2D< double > >
void fillEdgeInfo (Edge *e)
 
void fillEdgesInfo ()
 

Protected Attributes

double gamma [3]
 
int iteration
 
PoseVector M
 
- Protected Attributes inherited from AISNavigation::TreePoseGraph< Operations2D< double > >
EdgeCompareMode edgeCompareMode
 

Additional Inherited Members

- Public Attributes inherited from AISNavigation::TreePoseGraph2
int verboseLevel
 
- Public Attributes inherited from AISNavigation::TreePoseGraph< Operations2D< double > >
EdgeMap edges
 
Vertex * root
 
EdgeSetsortedEdges
 
VertexMap vertices
 

Detailed Description

Class that contains the core optimization algorithm.

Definition at line 52 of file treeoptimizer2.hh.

Member Typedef Documentation

◆ PoseVector

Definition at line 53 of file treeoptimizer2.hh.

Constructor & Destructor Documentation

◆ TreeOptimizer2()

AISNavigation::TreeOptimizer2::TreeOptimizer2 ( )

Constructor

Definition at line 69 of file treeoptimizer2.cpp.

◆ ~TreeOptimizer2()

AISNavigation::TreeOptimizer2::~TreeOptimizer2 ( )
virtual

Destructor

Definition at line 74 of file treeoptimizer2.cpp.

Member Function Documentation

◆ computePreconditioner()

void AISNavigation::TreeOptimizer2::computePreconditioner ( )
protected

The first of the two main steps of each iteration

Definition at line 107 of file treeoptimizer2.cpp.

◆ error() [1/2]

double AISNavigation::TreeOptimizer2::error ( ) const

Conmputes the gloabl error of the network

Definition at line 360 of file treeoptimizer2.cpp.

◆ error() [2/2]

double AISNavigation::TreeOptimizer2::error ( const Edge *  e) const
protected

Conmputes the error of the constraint/edge e

Definition at line 315 of file treeoptimizer2.cpp.

◆ getPose()

TreeOptimizer2::Pose AISNavigation::TreeOptimizer2::getPose ( Vertex *  v,
Vertex *  top 
)
protected

Recomputes only the pose of the node v wrt. to an arbitraty parent (top) of v in the tree

Definition at line 299 of file treeoptimizer2.cpp.

◆ initializeOnlineOptimization()

void AISNavigation::TreeOptimizer2::initializeOnlineOptimization ( )

Initialization function

Definition at line 98 of file treeoptimizer2.cpp.

◆ initializeOptimization()

void AISNavigation::TreeOptimizer2::initializeOptimization ( )

Initialization function

Definition at line 82 of file treeoptimizer2.cpp.

◆ initializeTreeParameters()

void AISNavigation::TreeOptimizer2::initializeTreeParameters ( )

Initialization function

Definition at line 77 of file treeoptimizer2.cpp.

◆ iterate()

void AISNavigation::TreeOptimizer2::iterate ( TreePoseGraph2::EdgeSet eset = 0)

Performs one iteration of the algorithm

Definition at line 278 of file treeoptimizer2.cpp.

◆ propagateErrors()

void AISNavigation::TreeOptimizer2::propagateErrors ( )
protected

The second of the two main steps of each iteration

Definition at line 162 of file treeoptimizer2.cpp.

◆ updatePoseChain()

void AISNavigation::TreeOptimizer2::updatePoseChain ( Vertex *  v,
Vertex *  top 
)
protected

Recomputes the poses of all vertices from v to an arbitraty parent (top) of v in the tree

Definition at line 289 of file treeoptimizer2.cpp.

Member Data Documentation

◆ gamma

double AISNavigation::TreeOptimizer2::gamma[3]
protected

Used to compute the learning rate lambda

Definition at line 98 of file treeoptimizer2.hh.

◆ iteration

int AISNavigation::TreeOptimizer2::iteration
protected

Iteration counter

Definition at line 95 of file treeoptimizer2.hh.

◆ M

PoseVector AISNavigation::TreeOptimizer2::M
protected

The diaginal block elements of the preconditioning matrix (D_k in the paper)

Definition at line 102 of file treeoptimizer2.hh.


The documentation for this struct was generated from the following files:


rtabmap
Author(s): Mathieu Labbe
autogenerated on Mon Jan 23 2023 03:38:59