Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

GenericRRT< NODE, N > Class Template Reference

Generic RRT implementation that makes no assumptions about the nature of the state space; those details are handled by the NODE template argument, which must be a subclass of RRTNodeBase. More...

#include <GenericRRT.h>

Inheritance diagram for GenericRRT< NODE, N >:

Detailed Description

template<typename NODE, size_t N>
class GenericRRT< NODE, N >

Generic RRT implementation that makes no assumptions about the nature of the state space; those details are handled by the NODE template argument, which must be a subclass of RRTNodeBase.

Definition at line 102 of file GenericRRT.h.

List of all members.

Public Types

typedef NODE::NodeValue_t NodeValue_t

Public Member Functions

 GenericRRT (typename NODE::CollisionChecker *collCheck, AdmissibilityPredicate< NODE > *predicate=NULL)
 Constructor; will delete collCheck argument when destructed.
 GenericRRT (const GenericRRT &other)
 Copy constructor.
virtual ~GenericRRT ()
 Destructor: deletes the collision checker.
void setLimits (const NodeValue_t &_lowerLimits, const NodeValue_t &_upperLimits)
 Set lower and upper value limits for each dimension of the space.
virtual void setInterpolation (const NodeValue_t &_interpolationStep)
 Set interpolation step size for each dimension of the space for both extending and smoothing.
virtual void setExtendingInterpolation (const NodeValue_t &_extendingInterpolationStep)
 Set interpolation step size for each dimension of the space for extending.
virtual void setSmoothingInterpolation (const NodeValue_t &_smoothingInterpolationStep)
 Set interpolation step size for each dimension of the space for smoothing.
virtual PlannerResult< N > planPath (const NodeValue_t &start, const NodeValue_t &end, unsigned int maxIterations, std::vector< NodeValue_t > *pathResult=NULL, std::vector< NODE > *treeStartResult=NULL, std::vector< NODE > *treeEndResult=NULL)
 Plan a path from start to end.
NODE::CollisionChecker * getCC ()
virtual void dumpTree (const std::vector< NODE > &tree, const std::string &header="")
void addObstaclesToShapeSpace (ShapeSpace &space, const fmat::Transform &t=fmat::Transform()) const

Protected Member Functions

virtual void initialize (const NodeValue_t &start, std::vector< NODE > &treeStartResult, const NodeValue_t &end, std::vector< NODE > &treeEndResult)
 Set up initial search trees.
virtual void buildPath (const std::vector< NODE > *treeStart, const std::vector< NODE > *treeEnd, std::vector< NodeValue_t > &path)
void addNode (std::vector< NODE > *tree, const NodeValue_t &q, unsigned int parent)

Protected Attributes

NodeValue_t lowerLimits
 lower limits on state q
NodeValue_t upperLimits
 upper limits on state q
NodeValue_t extendingInterpolationStep
 interpolation steps for q while extending
NodeValue_t smoothingInterpolationStep
 interpolation steps for q while smoothing
NODE::CollisionChecker * cc
 collision checker
AdmissibilityPredicate< NODE > * predicate
 admissibility predicate

Private Member Functions

unsigned int nearestNode (std::vector< NODE > *tree, const NodeValue_t &target)
RRTNodeBase::Interp_t extend (std::vector< NODE > *tree, const NodeValue_t &q, bool truncate, bool searchingBackwards)
GenericRRToperator= (const GenericRRT &)
 Don't call this.

Member Typedef Documentation

template<typename NODE, size_t N>
typedef NODE::NodeValue_t GenericRRT< NODE, N >::NodeValue_t

Constructor & Destructor Documentation

template<typename NODE, size_t N>
GenericRRT< NODE, N >::GenericRRT ( typename NODE::CollisionChecker *  collCheck,
AdmissibilityPredicate< NODE > *  predicate = NULL 
)

Constructor; will delete collCheck argument when destructed.

Definition at line 190 of file GenericRRT.h.

template<typename NODE, size_t N>
GenericRRT< NODE, N >::GenericRRT ( const GenericRRT< NODE, N > &  other  ) 

Copy constructor.

Definition at line 124 of file GenericRRT.h.

template<typename NODE, size_t N>
virtual GenericRRT< NODE, N >::~GenericRRT (  )  [virtual]

Destructor: deletes the collision checker.

Definition at line 133 of file GenericRRT.h.


Member Function Documentation

template<typename NODE, size_t N>
void GenericRRT< NODE, N >::addNode ( std::vector< NODE > *  tree,
const NodeValue_t q,
unsigned int  parent 
) [protected]
template<typename NODE , size_t N>
void GenericRRT< NODE, N >::addObstaclesToShapeSpace ( ShapeSpace &  space,
const fmat::Transform t = fmat::Transform() 
) const

Definition at line 375 of file GenericRRT.h.

Referenced by Grasper::PlanArmApproach::doStart(), and Grasper::planBodyPath().

template<typename NODE, size_t N>
void GenericRRT< NODE, N >::buildPath ( const std::vector< NODE > *  treeStart,
const std::vector< NODE > *  treeEnd,
std::vector< NodeValue_t > &  path 
) [protected, virtual]

Reimplemented in ShapeSpacePlannerXYTheta.

Definition at line 317 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::planPath().

template<typename NODE, size_t N>
void GenericRRT< NODE, N >::dumpTree ( const std::vector< NODE > &  tree,
const std::string &  header = "" 
) [virtual]

Definition at line 366 of file GenericRRT.h.

template<typename NODE, size_t N>
RRTNodeBase::Interp_t GenericRRT< NODE, N >::extend ( std::vector< NODE > *  tree,
const NodeValue_t q,
bool  truncate,
bool  searchingBackwards 
) [private]

Definition at line 293 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::planPath().

template<typename NODE, size_t N>
NODE::CollisionChecker* GenericRRT< NODE, N >::getCC (  ) 

Definition at line 165 of file GenericRRT.h.

template<typename NODE, size_t N>
void GenericRRT< NODE, N >::initialize ( const NodeValue_t start,
std::vector< NODE > &  treeStartResult,
const NodeValue_t end,
std::vector< NODE > &  treeEndResult 
) [protected, virtual]

Set up initial search trees.

Reimplemented in ShapeSpacePlannerXYTheta.

Definition at line 195 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::planPath().

template<typename NODE, size_t N>
unsigned int GenericRRT< NODE, N >::nearestNode ( std::vector< NODE > *  tree,
const NodeValue_t target 
) [private]

Definition at line 274 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::extend(), and GenericRRT< NODE, N >::planPath().

template<typename NODE, size_t N>
GenericRRT& GenericRRT< NODE, N >::operator= ( const GenericRRT< NODE, N > &   )  [private]

Don't call this.

template<typename NODE, size_t N>
GenericRRTBase::PlannerResult< N > GenericRRT< NODE, N >::planPath ( const NodeValue_t start,
const NodeValue_t end,
unsigned int  maxIterations,
std::vector< NodeValue_t > *  pathResult = NULL,
std::vector< NODE > *  treeStartResult = NULL,
std::vector< NODE > *  treeEndResult = NULL 
) [virtual]

Plan a path from start to end.

Definition at line 203 of file GenericRRT.h.

template<typename NODE, size_t N>
virtual void GenericRRT< NODE, N >::setExtendingInterpolation ( const NodeValue_t _extendingInterpolationStep  )  [virtual]

Set interpolation step size for each dimension of the space for extending.

Definition at line 148 of file GenericRRT.h.

Referenced by GenericRRT< RRTNode3DR< N >, 3 >::setInterpolation().

template<typename NODE, size_t N>
virtual void GenericRRT< NODE, N >::setInterpolation ( const NodeValue_t _interpolationStep  )  [virtual]

Set interpolation step size for each dimension of the space for both extending and smoothing.

Definition at line 142 of file GenericRRT.h.

template<typename NODE, size_t N>
void GenericRRT< NODE, N >::setLimits ( const NodeValue_t _lowerLimits,
const NodeValue_t _upperLimits 
)

Set lower and upper value limits for each dimension of the space.

Definition at line 136 of file GenericRRT.h.

template<typename NODE, size_t N>
virtual void GenericRRT< NODE, N >::setSmoothingInterpolation ( const NodeValue_t _smoothingInterpolationStep  )  [virtual]

Set interpolation step size for each dimension of the space for smoothing.

Definition at line 153 of file GenericRRT.h.

Referenced by GenericRRT< RRTNode3DR< N >, 3 >::setInterpolation().


Member Data Documentation

template<typename NODE, size_t N>
NodeValue_t GenericRRT< NODE, N >::extendingInterpolationStep [protected]

interpolation steps for q while extending

Definition at line 111 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::extend(), and GenericRRT< RRTNode3DR< N >, 3 >::setExtendingInterpolation().

template<typename NODE, size_t N>
NodeValue_t GenericRRT< NODE, N >::lowerLimits [protected]

lower limits on state q

Definition at line 107 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::planPath(), and GenericRRT< RRTNode3DR< N >, 3 >::setLimits().

template<typename NODE, size_t N>
AdmissibilityPredicate<NODE>* GenericRRT< NODE, N >::predicate [protected]

admissibility predicate

Definition at line 117 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::extend(), and GenericRRT< RRTNode3DR< N >, 3 >::~GenericRRT().

template<typename NODE, size_t N>
NodeValue_t GenericRRT< NODE, N >::smoothingInterpolationStep [protected]

interpolation steps for q while smoothing

Definition at line 113 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::buildPath(), and GenericRRT< RRTNode3DR< N >, 3 >::setSmoothingInterpolation().

template<typename NODE, size_t N>
NodeValue_t GenericRRT< NODE, N >::upperLimits [protected]

upper limits on state q

Definition at line 109 of file GenericRRT.h.

Referenced by GenericRRT< NODE, N >::planPath(), and GenericRRT< RRTNode3DR< N >, 3 >::setLimits().


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

Tekkotsu v5.1CVS
Generated Mon May 9 04:59:08 2016 by Doxygen 1.6.3