Classes | Public Types | Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
AISNavigation::TreePoseGraph< Ops > Struct Template Referenceabstract

The template class for representing an abstract tree without specifing the dimensionality of the exact parameterization of the nodes. This definition is passed in via the Operation (Ops) template class. More...

#include <posegraph.hh>

Classes

struct  Edge
 Definition of an edge in the graph based on the template input from Ops. More...
 
struct  Vertex
 Definition of a vertex in the graph based on the template input from Ops. More...
 

Public Types

typedef Ops::BaseType BaseType
 
typedef Ops::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 Ops::InformationType Information
 
typedef Ops::ParametersType Parameters
 
typedef Ops::PoseType Pose
 
typedef Ops::RotationType Rotation
 
typedef Ops::TransformationType Transformation
 
typedef Ops::TranslationType Translation
 
typedef std::map< int, Vertex *> VertexMap
 
typedef std::set< Vertex *> VertexSet
 

Public Member Functions

EdgeaddEdge (Vertex *v1, Vertex *v2, const Transformation &t, const Information &i)
 
EdgeaddIncrementalEdge (int id1, int id2, const Transformation &t, const Information &i)
 
VertexaddVertex (int id, const Pose &pose)
 
EdgeSetaffectedEdges (Vertex *v)
 
EdgeSetaffectedEdges (VertexSet &vl)
 
bool buildMST (int id)
 
bool buildSimpleTree ()
 
void clear ()
 
void compressIndices ()
 
Edgeedge (int id1, int id2)
 
const Edgeedge (int id1, int id2) const
 
virtual void initializeFromParentEdge (Vertex *v)=0
 
int maxIndex ()
 
int maxPathLength ()
 
EdgeremoveEdge (Edge *eq)
 
VertexremoveVertex (int id)
 
void revertEdge (Edge *e)
 
virtual void revertEdgeInfo (Edge *e)=0
 
bool sanityCheck ()
 
EdgeSetsortEdges ()
 
int totalPathLength ()
 
template<class Action >
void treeBreadthVisit (Action &act)
 
template<class Action >
void treeDepthVisit (Action &act, Vertex *v)
 
 TreePoseGraph ()
 
Vertexvertex (int id)
 
const Vertexvertex (int id) const
 
virtual ~TreePoseGraph ()
 

Public Attributes

EdgeMap edges
 
Vertexroot
 
EdgeSetsortedEdges
 
VertexMap vertices
 

Protected Member Functions

void fillEdgeInfo (Edge *e)
 
void fillEdgesInfo ()
 

Protected Attributes

EdgeCompareMode edgeCompareMode
 

Detailed Description

template<class Ops>
struct AISNavigation::TreePoseGraph< Ops >

The template class for representing an abstract tree without specifing the dimensionality of the exact parameterization of the nodes. This definition is passed in via the Operation (Ops) template class.

Definition at line 91 of file posegraph.hh.

Member Typedef Documentation

◆ BaseType

template<class Ops>
typedef Ops::BaseType AISNavigation::TreePoseGraph< Ops >::BaseType

Definition at line 92 of file posegraph.hh.

◆ Covariance

template<class Ops>
typedef Ops::CovarianceType AISNavigation::TreePoseGraph< Ops >::Covariance

Definition at line 97 of file posegraph.hh.

◆ EdgeCompareMode

template<class Ops>
typedef EVComparator<Edge*>::CompareMode AISNavigation::TreePoseGraph< Ops >::EdgeCompareMode

Definition at line 118 of file posegraph.hh.

◆ EdgeList

template<class Ops>
typedef std::list< Edge* > AISNavigation::TreePoseGraph< Ops >::EdgeList

Definition at line 119 of file posegraph.hh.

◆ EdgeMap

template<class Ops>
typedef std::map< Edge*, Edge* > AISNavigation::TreePoseGraph< Ops >::EdgeMap

Definition at line 122 of file posegraph.hh.

◆ EdgeSet

template<class Ops>
typedef std::multiset< Edge*, EVComparator<Edge*> > AISNavigation::TreePoseGraph< Ops >::EdgeSet

Definition at line 123 of file posegraph.hh.

◆ Information

template<class Ops>
typedef Ops::InformationType AISNavigation::TreePoseGraph< Ops >::Information

Definition at line 98 of file posegraph.hh.

◆ Parameters

template<class Ops>
typedef Ops::ParametersType AISNavigation::TreePoseGraph< Ops >::Parameters

Definition at line 99 of file posegraph.hh.

◆ Pose

template<class Ops>
typedef Ops::PoseType AISNavigation::TreePoseGraph< Ops >::Pose

Definition at line 93 of file posegraph.hh.

◆ Rotation

template<class Ops>
typedef Ops::RotationType AISNavigation::TreePoseGraph< Ops >::Rotation

Definition at line 94 of file posegraph.hh.

◆ Transformation

template<class Ops>
typedef Ops::TransformationType AISNavigation::TreePoseGraph< Ops >::Transformation

Definition at line 96 of file posegraph.hh.

◆ Translation

template<class Ops>
typedef Ops::TranslationType AISNavigation::TreePoseGraph< Ops >::Translation

Definition at line 95 of file posegraph.hh.

◆ VertexMap

template<class Ops>
typedef std::map< int, Vertex* > AISNavigation::TreePoseGraph< Ops >::VertexMap

Definition at line 120 of file posegraph.hh.

◆ VertexSet

template<class Ops>
typedef std::set< Vertex* > AISNavigation::TreePoseGraph< Ops >::VertexSet

Definition at line 121 of file posegraph.hh.

Constructor & Destructor Documentation

◆ TreePoseGraph()

template<class Ops>
AISNavigation::TreePoseGraph< Ops >::TreePoseGraph ( )
inline

constructor

Definition at line 220 of file posegraph.hh.

◆ ~TreePoseGraph()

template<class Ops >
AISNavigation::TreePoseGraph< Ops >::~TreePoseGraph ( )
virtual

Destructor

Definition at line 411 of file posegraph.hh.

Member Function Documentation

◆ addEdge()

template<class Ops>
TreePoseGraph< Ops >::Edge * AISNavigation::TreePoseGraph< Ops >::addEdge ( Vertex v1,
Vertex v2,
const Transformation t,
const Information i 
)

Add an edge/constraint to the graph

Definition at line 133 of file posegraph.hh.

◆ addIncrementalEdge()

template<class Ops>
TreePoseGraph< Ops >::Edge * AISNavigation::TreePoseGraph< Ops >::addIncrementalEdge ( int  id1,
int  id2,
const Transformation t,
const Information i 
)

Adds en edge incrementally to the tree. It builds a simple tree and initializes the structures for the optimization.

This function is for online processing. It requires that at least one vertex is already present in the graph. The vertices are represented by their ids.

Once the edge is introduced in the structure:

  • the parent of the node with the higher ID is computed.
  • the top node is assigned
  • the edge is inserted in the
Returns
A pointer to the added edge, if the insertion was succesfull. 0 otherwise.

Definition at line 155 of file posegraph.hh.

◆ addVertex()

template<class Ops>
TreePoseGraph< Ops >::Vertex * AISNavigation::TreePoseGraph< Ops >::addVertex ( int  id,
const Pose pose 
)

Add a vertex to the graph

Definition at line 100 of file posegraph.hh.

◆ affectedEdges() [1/2]

template<class Ops >
TreePoseGraph< Ops >::EdgeSet * AISNavigation::TreePoseGraph< Ops >::affectedEdges ( Vertex v)

Returns a set of edges which are accected by the mofification of the vertex v. The set is ordered according to the level of their top node.

Definition at line 477 of file posegraph.hh.

◆ affectedEdges() [2/2]

template<class Ops>
EdgeSet* AISNavigation::TreePoseGraph< Ops >::affectedEdges ( VertexSet vl)

◆ buildMST()

template<class Ops >
bool AISNavigation::TreePoseGraph< Ops >::buildMST ( int  id)

Constructs the tree be computing a minimal spanning tree

Definition at line 289 of file posegraph.hh.

◆ buildSimpleTree()

template<class Ops >
bool AISNavigation::TreePoseGraph< Ops >::buildSimpleTree ( )

Constructs the incremental tree according to the input trajectory

Definition at line 353 of file posegraph.hh.

◆ clear()

template<class Ops >
void AISNavigation::TreePoseGraph< Ops >::clear ( )

Delete all edges and vertices

Definition at line 416 of file posegraph.hh.

◆ compressIndices()

template<class Ops >
void AISNavigation::TreePoseGraph< Ops >::compressIndices ( )

remove gaps in the indices of the vertex ids

Definition at line 621 of file posegraph.hh.

◆ edge() [1/2]

template<class Ops >
TreePoseGraph< Ops >::Edge * AISNavigation::TreePoseGraph< Ops >::edge ( int  id1,
int  id2 
)

Returns the edge between the two vertices

Definition at line 64 of file posegraph.hh.

◆ edge() [2/2]

template<class Ops >
const TreePoseGraph< Ops >::Edge * AISNavigation::TreePoseGraph< Ops >::edge ( int  id1,
int  id2 
) const

Returns a const pointer tothe edge between the two vertices

Definition at line 78 of file posegraph.hh.

◆ fillEdgeInfo()

template<class Ops >
void AISNavigation::TreePoseGraph< Ops >::fillEdgeInfo ( Edge e)
protected

Definition at line 433 of file posegraph.hh.

◆ fillEdgesInfo()

template<class Ops >
void AISNavigation::TreePoseGraph< Ops >::fillEdgesInfo ( )
protected

Definition at line 455 of file posegraph.hh.

◆ initializeFromParentEdge()

template<class Ops>
virtual void AISNavigation::TreePoseGraph< Ops >::initializeFromParentEdge ( Vertex v)
pure virtual

Revert edge info. This function needs to be implemented by a subclass

Implemented in AISNavigation::TreePoseGraph3, and AISNavigation::TreePoseGraph2.

◆ maxIndex()

template<class Ops >
int AISNavigation::TreePoseGraph< Ops >::maxIndex ( )

compute the highest index of an vertex

Definition at line 634 of file posegraph.hh.

◆ maxPathLength()

template<class Ops >
int AISNavigation::TreePoseGraph< Ops >::maxPathLength ( )

Determines the length of the longest path in the tree

Definition at line 597 of file posegraph.hh.

◆ removeEdge()

template<class Ops>
TreePoseGraph< Ops >::Edge * AISNavigation::TreePoseGraph< Ops >::removeEdge ( Edge eq)

Remove an edge/constraint from the graph

Definition at line 213 of file posegraph.hh.

◆ removeVertex()

template<class Ops >
TreePoseGraph< Ops >::Vertex * AISNavigation::TreePoseGraph< Ops >::removeVertex ( int  id)

Remove a vertex from the graph

Definition at line 114 of file posegraph.hh.

◆ revertEdge()

template<class Ops>
void AISNavigation::TreePoseGraph< Ops >::revertEdge ( Edge e)

Trun around an edge (used to ensure a certain oder on the vertexes)

Definition at line 92 of file posegraph.hh.

◆ revertEdgeInfo()

template<class Ops>
virtual void AISNavigation::TreePoseGraph< Ops >::revertEdgeInfo ( Edge e)
pure virtual

Revert edge info. This function needs to be implemented by a subclass

Implemented in AISNavigation::TreePoseGraph3, and AISNavigation::TreePoseGraph2.

◆ sanityCheck()

template<class Ops >
bool AISNavigation::TreePoseGraph< Ops >::sanityCheck ( )

performs a consistency check on the tree and the graph structure.

Returns
false on failure.

Definition at line 658 of file posegraph.hh.

◆ sortEdges()

template<class Ops >
TreePoseGraph< Ops >::EdgeSet * AISNavigation::TreePoseGraph< Ops >::sortEdges ( )

Sort constraints for correct processing order

Definition at line 464 of file posegraph.hh.

◆ totalPathLength()

template<class Ops >
int AISNavigation::TreePoseGraph< Ops >::totalPathLength ( )

Determines the path length of all pathes in the tree

Definition at line 609 of file posegraph.hh.

◆ treeBreadthVisit()

template<class Ops >
template<class Action >
void AISNavigation::TreePoseGraph< Ops >::treeBreadthVisit ( Action &  act)

Function to perform a breadth-first visit of the nodes in the tree to carry out a specific action act

Definition at line 254 of file posegraph.hh.

◆ treeDepthVisit()

template<class Ops >
template<class Action >
void AISNavigation::TreePoseGraph< Ops >::treeDepthVisit ( Action &  act,
Vertex v 
)

Function to perform a depth-first visit of the nodes in the tree to carry out a specific action act

Definition at line 279 of file posegraph.hh.

◆ vertex() [1/2]

template<typename Ops >
TreePoseGraph< Ops >::Vertex * AISNavigation::TreePoseGraph< Ops >::vertex ( int  id)

Returns the vertex with the given id

Definition at line 48 of file posegraph.hh.

◆ vertex() [2/2]

template<typename Ops >
const TreePoseGraph< Ops >::Vertex * AISNavigation::TreePoseGraph< Ops >::vertex ( int  id) const

Returns a const pointer to the vertex with the given id

Definition at line 56 of file posegraph.hh.

Member Data Documentation

◆ edgeCompareMode

template<class Ops>
EdgeCompareMode AISNavigation::TreePoseGraph< Ops >::edgeCompareMode
protected

Definition at line 265 of file posegraph.hh.

◆ edges

template<class Ops>
EdgeMap AISNavigation::TreePoseGraph< Ops >::edges

All edges

Definition at line 254 of file posegraph.hh.

◆ root

template<class Ops>
Vertex* AISNavigation::TreePoseGraph< Ops >::root

The root node of the tree

Definition at line 248 of file posegraph.hh.

◆ sortedEdges

template<class Ops>
EdgeSet* AISNavigation::TreePoseGraph< Ops >::sortedEdges

The constraints/edges sorted according to the level in the tree in order to allow us the efficient update (pose computation) of the nodes in the tree (see the RSS07 paper for further details)

Definition at line 260 of file posegraph.hh.

◆ vertices

template<class Ops>
VertexMap AISNavigation::TreePoseGraph< Ops >::vertices

All vertices

Definition at line 251 of file posegraph.hh.


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


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