libmove3d-planners
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | List of all members
RRTExpansion Class Reference

Expansion procedure of the Rapidly-exploring Random Tree (RRT) algorithm. More...

#include <RRT.hpp>

Inheritance diagram for RRTExpansion:
TreeExpansion BaseExpansion DirectedExpansion StarExpansion TransitionEdgeExpansion TransitionExpansion HRICS_rrtExpansion HRICS_rrtPlanExpansion ThresholdExpansion

Public Member Functions

 RRTExpansion (Graph *graph)
 Constructor.
 
virtual ~RRTExpansion ()
 Destructor.
 
virtual unsigned extend (Node *fromNode, confPtr_t directionConf, Node *directionNode)
 RRT Extend. More...
 
virtual unsigned connect (Node *fromNode, confPtr_t directionConf, Node *directionNode)
 RRT Connect. More...
 
virtual bool isValidConnection (localPathPtr_t path)
 Check whether the given path is a valid connection. More...
 
virtual bool addCycles ()
 Try to add cycles to the graph. More...
 
virtual bool addCycles1 ()
 
virtual bool addCycles2 ()
 
virtual bool addCycles3 ()
 
- Public Member Functions inherited from TreeExpansion
 TreeExpansion (Graph *graph)
 Constructor.
 
virtual ~TreeExpansion ()
 Destructor.
 
void expansionSucceeded (Node *node)
 Actions to be done after the expansion attempted from the given node, in case of success.
 
void expansionFailed (Node *node)
 Actions to be done after the expansion attempted from the given node, in case of failure.
 
- Public Member Functions inherited from BaseExpansion
 BaseExpansion ()
 Constructor.
 
 BaseExpansion (Graph *prtGraph)
 
 ~BaseExpansion ()
 Destructor.
 
void setGraph (Graph *G)
 Set the graph that is beeing expanded.
 
GraphgetGraph ()
 Get the graph that is beeing expanded.
 
int getDirectionMethod ()
 Get Node Expansion Method.
 
void setDirectionMethod (int directionExpansion)
 Set Expansion node Method.
 
int getNodeMethod ()
 Get Node Expansion Method.
 
void setNodeMethod (int nodeExpansion)
 Set Expansion node Method.
 
void setFromComp (Node *fromComp)
 Set the From Connected Component.
 
NodegetFromComp ()
 Get the From Connected Component.
 
void setToComp (Node *toComp)
 Set the To Connected Component.
 
NodegetToComp ()
 Get the To Connected Component.
 
double step ()
 Expansion Step (Delta) More...
 
double getDMax ()
 
double computeInterpolationFactor (double pathLength)
 Compute the interpolation factor along the path, based on the extension step.
 
confPtr_t interpolate (confPtr_t conf, LocalPath *path, double factor)
 Interpolation along the given path.
 
double positionAlongPath (LocalPath &path, double param)
 Position on localpath in [0,1].
 
double pathDelta (LocalPath &path)
 Return the path parameter that is the closest to step()
 
LocalPath getExtensiontPath (std::tr1::shared_ptr< Configuration > qi, std::tr1::shared_ptr< Configuration > qf)
 Computes a localpath parameter used for expansion of at max step() of length. More...
 
void expansionFailed (Node &node)
 Function called when a node can not be connected. More...
 
virtual NodeaddNode (Node *currentNode, LocalPath &path, double pathDelta, Node *directionNode, unsigned &nbCreatedNodes)
 Adds a node to a connected component. More...
 
bool refinementControl (LocalPath &path, double rho, Node &compNode)
 Function that balances the ratio of exploration towards refinement.
 
bool nextStep (LocalPath &path, std::tr1::shared_ptr< Configuration > &directionConfig, double &pathDelta, std::tr1::shared_ptr< LocalPath > &newPath, Env::expansionMethod method)
 Returns a valid configuration on the local path.
 
bool nextStep (LocalPath &path, Node *directionNode, double &pathDelta, std::tr1::shared_ptr< LocalPath > &newPath, Env::expansionMethod method)
 Returns a valid configuration on the local path.
 
virtual NodegetExpansionNode (Node *compNode, confPtr_t direction, int distance)
 Gets the nearest node in the graph. More...
 
std::tr1::shared_ptr
< Configuration
getExpansionDirection (Node *expandComp, Node *goalComp, bool samplePassive, Node *&directionNode)
 
NodegetLasAddedNode ()
 Return last added node.
 
void addConnectibleNode ()
 
unsigned int getNbConnectibleNodes ()
 

Protected Member Functions

virtual NodeaddNode (localPathPtr_t path, Node *fromNode, Node *directionNode)
 Add a node to the graph, after an expansion that has produced the given path, starting from fromNode. More...
 

Additional Inherited Members

- Protected Attributes inherited from BaseExpansion
int m_ExpansionNodeMethod
 
int m_MaxExpandNodeFailure
 
int m_kNearestPercent
 
int m_ExpansionDirectionMethod
 
bool m_IsDirSampleWithRlg
 
Graphm_Graph
 
Nodem_last_added_node
 
Nodem_fromComp
 
Nodem_toComp
 
unsigned int _nbConnectibleNodes
 

Detailed Description

Expansion procedure of the Rapidly-exploring Random Tree (RRT) algorithm.

Member Function Documentation

bool RRTExpansion::addCycles ( )
virtual

Try to add cycles to the graph.

Returns
TRUE if at least one cycle has been added, and FALSE otherwise

Reimplemented in TransitionExpansion, and DirectedExpansion.

Node * RRTExpansion::addNode ( localPathPtr_t  path,
Node fromNode,
Node directionNode 
)
protectedvirtual

Add a node to the graph, after an expansion that has produced the given path, starting from fromNode.

If the expansion has successfully reached the already existing node directionNode, directionNode is simply linked to fromNode. Otherwise, a new node containing the end configuration of the path is created and linked to fromNode.

Returns
the added node

Reimplemented in DirectedExpansion.

unsigned RRTExpansion::connect ( Node fromNode,
confPtr_t  directionConf,
Node directionNode 
)
virtual

RRT Connect.

Parameters
fromNodenode from which the expansion is performed
directionConfconfiguration toward which the expansion is going
directionNodenode toward which the expansion is going (when relevant)
Returns
the number of created nodes

Reimplemented in ThresholdExpansion, TransitionExpansion, and DirectedExpansion.

unsigned RRTExpansion::extend ( Node fromNode,
confPtr_t  directionConf,
Node directionNode 
)
virtual

RRT Extend.


RRT Expansion


Parameters
fromNodenode from which the expansion is performed
directionConfconfiguration toward which the expansion is going
directionNodenode toward which the expansion is going (when relevant)
Returns
the number of created nodes

RRT Extend.

Parameters
fromNodenode from which the expansion is performed
directionConfconfiguration toward which the expansion is going
directionNodenode toward which the expansion is going (when relevant)
Returns
the number of created nodes

Reimplemented in ThresholdExpansion, TransitionExpansion, and DirectedExpansion.

virtual bool RRTExpansion::isValidConnection ( localPathPtr_t  path)
inlinevirtual

Check whether the given path is a valid connection.

Returns
TRUE if the connection is valid, and FALSE otherwise

Reimplemented in TransitionExpansion.


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