MIRA
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
TopoMapPlanner Class Reference

#include <topomap/TopoMapPlanner.h>

Classes

struct  CostInfo
 
struct  DbgHopInfo
 
struct  GatewayCostPair
 

Public Types

typedef std::priority_queue< GatewayCostPairOpenList
 
typedef std::map< GatewayNodePtr, CostInfoVisitedList
 

Public Member Functions

 TopoMapPlanner ()
 
void setLeafCostFunction (boost::function< void(NodePtr)> fn)
 Sets function for computing intra costs in leaf nodes. More...
 
void precomputeCosts (TopoMapPtr map)
 
void propagateUpdatedCosts (NodePtr node)
 Needs to be called whenever the costs between the gateways of the given node have been modified (intra-links), in order to propagate the changes upwards in the hierarchy. More...
 
void setConnectivityViolated (NodePtr node, bool isViolated=true)
 Explicitly informs the TopoMapPlanner, that the general assumption, that the given node is fully connected, is violated. More...
 
bool isConnectivityViolated (NodePtr node) const
 Returns true, if the full connectivity assumption of the given node is known to be violated. More...
 
void clearAllConnecitvityViolations (TopoMapPtr map)
 Clears all set and inferred flags of violated connectivity assumptions and hence resets the topological map. More...
 
void setAdditionalLinkCosts (const std::string &fromGWName, const std::string &toGWName, double costs)
 Define additional costs for a specific link. More...
 
void resetAllAdditionalLinkCosts ()
 Reset all additional gateways costs to zero. More...
 
void prepareWavefront (OpenList &Q, const VisitedList &V)
 
bool propagateWavefront (OpenList &Q, VisitedList &V, const NodeSet &localizedNodes=NodeSet(), const NodeSet &ancestors=NodeSet())
 

Static Public Member Functions

static double infinity ()
 "infinity" costs, indicating that a link is blocked More...
 

Public Attributes

std::list< DbgHopInfodbgHops
 
bool dbgEnabled
 

Member Typedef Documentation

◆ OpenList

typedef std::priority_queue<GatewayCostPair> OpenList

◆ VisitedList

typedef std::map<GatewayNodePtr,CostInfo> VisitedList

Constructor & Destructor Documentation

◆ TopoMapPlanner()

Member Function Documentation

◆ setLeafCostFunction()

void setLeafCostFunction ( boost::function< void(NodePtr)>  fn)

Sets function for computing intra costs in leaf nodes.

◆ precomputeCosts()

void precomputeCosts ( TopoMapPtr  map)

◆ propagateUpdatedCosts()

void propagateUpdatedCosts ( NodePtr  node)

Needs to be called whenever the costs between the gateways of the given node have been modified (intra-links), in order to propagate the changes upwards in the hierarchy.

◆ setConnectivityViolated()

void setConnectivityViolated ( NodePtr  node,
bool  isViolated = true 
)

Explicitly informs the TopoMapPlanner, that the general assumption, that the given node is fully connected, is violated.

This may happen when dynamic obstacles block the path within the node. The TopoMapPlanner takes this information into account and falls back to a less efficient planning mode for all affected nodes.

◆ isConnectivityViolated()

bool isConnectivityViolated ( NodePtr  node) const

Returns true, if the full connectivity assumption of the given node is known to be violated.

◆ clearAllConnecitvityViolations()

void clearAllConnecitvityViolations ( TopoMapPtr  map)

Clears all set and inferred flags of violated connectivity assumptions and hence resets the topological map.

◆ setAdditionalLinkCosts()

void setAdditionalLinkCosts ( const std::string &  fromGWName,
const std::string &  toGWName,
double  costs 
)

Define additional costs for a specific link.

◆ resetAllAdditionalLinkCosts()

void resetAllAdditionalLinkCosts ( )

Reset all additional gateways costs to zero.

◆ prepareWavefront()

void prepareWavefront ( OpenList Q,
const VisitedList V 
)

◆ propagateWavefront()

bool propagateWavefront ( OpenList Q,
VisitedList V,
const NodeSet localizedNodes = NodeSet(),
const NodeSet ancestors = NodeSet() 
)

◆ infinity()

static double infinity ( )
inlinestatic

"infinity" costs, indicating that a link is blocked

Member Data Documentation

◆ dbgHops

std::list<DbgHopInfo> dbgHops

◆ dbgEnabled

bool dbgEnabled

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