Simox  2.3.49
Saba::Rrt Class Reference

A simple sampling based, single rrt planner using the extend or connect method. More...

Inheritance diagram for Saba::Rrt:
Saba::MotionPlanner Saba::BiRrt Saba::GraspRrt Saba::GraspIkRrt

Public Types

enum  RrtMethod { eExtend, eConnect, eConnectCompletePath }
 
enum  ExtensionResult { eError, eFailed, eSuccess, ePartial }
 

Public Member Functions

 Rrt (CSpaceSampledPtr cspace, RrtMethod mode=eConnect, float probabilityExtendToGoal=0.1f)
 
virtual ~Rrt ()
 
virtual bool plan (bool bQuiet=false)
 
virtual void printConfig (bool printOnlyParams=false)
 
virtual void reset ()
 reset the planner More...
 
virtual bool setStart (const Eigen::VectorXf &c)
 set start configuration More...
 
virtual bool setGoal (const Eigen::VectorXf &c)
 set goal configuration More...
 
void setProbabilityExtendToGoal (float p)
 
CSpaceTreePtr getTree ()
 
- Public Member Functions inherited from Saba::MotionPlanner
EIGEN_MAKE_ALIGNED_OPERATOR_NEW MotionPlanner (CSpacePtr cspace)
 
virtual ~MotionPlanner ()
 destructor More...
 
CSpacePathPtr getSolution ()
 
void setMaxCycles (unsigned int mc)
 
Eigen::VectorXf getStartConfig ()
 return start configuration More...
 
Eigen::VectorXf getGoalConfig ()
 return goal configuration More...
 
unsigned int getNrOfCycles ()
 check that planner is initialized More...
 
CSpacePtr getCSpace ()
 The CSpace. More...
 
virtual void stopExecution ()
 
void setName (std::string sName)
 Give the planner a name. More...
 
std::string getName ()
 The name of the planner. More...
 
float getPlanningTimeMS ()
 
virtual bool isInitialized ()
 returns true, when start and goal config have been set More...
 

Protected Member Functions

virtual bool createSolution (bool bQuiet=false)
 create the solution More...
 
virtual ExtensionResult extend (Eigen::VectorXf &c, CSpaceTreePtr tree, int &storeLastAddedID)
 
virtual ExtensionResult connectComplete (Eigen::VectorXf &c, CSpaceTreePtr tree, int &storeLastAddedID)
 
virtual ExtensionResult connectUntilCollision (Eigen::VectorXf &c, CSpaceTreePtr tree, int &storeLastAddedID)
 

Protected Attributes

CSpaceTreePtr tree
 the rrt on which are operating More...
 
CSpaceNodePtr startNode
 start node (root of RRT) More...
 
CSpaceNodePtr goalNode
 goal node (set when RRT weas successfully connected to goalConfig) More...
 
Eigen::VectorXf tmpConfig
 tmp config More...
 
float extendGoToGoal
 the probability that the goal config is used instead of a randomly created configuration More...
 
float extendStepSize
 step size for one rrt extend (copied from cspace) More...
 
int lastAddedID
 ID of last added node. More...
 
RrtMethod rrtMode
 
- Protected Attributes inherited from Saba::MotionPlanner
CSpacePtr cspace
 the cspace on which are operating More...
 
CSpacePathPtr solution
 the solution More...
 
bool stopSearch
 indicates that the search should be interrupted More...
 
unsigned int dimension
 dimension of c-space More...
 
Eigen::VectorXf startConfig
 start config More...
 
bool startValid
 
Eigen::VectorXf goalConfig
 goal config More...
 
bool goalValid
 
unsigned int maxCycles
 maximum cycles for searching More...
 
unsigned int cycles
 current cycles done in the run method More...
 
std::string name
 Name of this planner (standard: "Motion Planner") More...
 
float planningTime
 

Detailed Description

A simple sampling based, single rrt planner using the extend or connect method.

Rrt-related algorithms are known to allow efficient motion planning in high dimensional configuration spaces. Complex setups can be specified via the used c-space classes. The number of degrees of freedom (DoF/dimension) is defined via the c-space. Also the collision detection is handled by the c-space classes.

See also
CSpaceSampled
CSpacePath
CSpaceTree

Member Enumeration Documentation

Enumerator
eError 
eFailed 
eSuccess 
ePartial 
Enumerator
eExtend 
eConnect 
eConnectCompletePath 

Constructor & Destructor Documentation

Saba::Rrt::Rrt ( CSpaceSampledPtr  cspace,
RrtMethod  mode = eConnect,
float  probabilityExtendToGoal = 0.1f 
)

Constructor

Parameters
cspaceA cspace, defining the used joints (the dimension/DoF) and the collision detection setup.
modeSpecify the RRT method that should be used
probabilityExtendToGoalSpecify how often the goal node should be used instead of a random config (value must be between 0 and 1)
Saba::Rrt::~Rrt ( )
virtual

Member Function Documentation

Rrt::ExtensionResult Saba::Rrt::connectComplete ( Eigen::VectorXf &  c,
CSpaceTreePtr  tree,
int &  storeLastAddedID 
)
protectedvirtual

Reimplemented in Saba::GraspRrt.

Rrt::ExtensionResult Saba::Rrt::connectUntilCollision ( Eigen::VectorXf &  c,
CSpaceTreePtr  tree,
int &  storeLastAddedID 
)
protectedvirtual
bool Saba::Rrt::createSolution ( bool  bQuiet = false)
protectedvirtual

create the solution

Implements Saba::MotionPlanner.

Reimplemented in Saba::BiRrt.

Rrt::ExtensionResult Saba::Rrt::extend ( Eigen::VectorXf &  c,
CSpaceTreePtr  tree,
int &  storeLastAddedID 
)
protectedvirtual
Saba::CSpaceTreePtr Saba::Rrt::getTree ( )
bool Saba::Rrt::plan ( bool  bQuiet = false)
virtual

Do the planning (blocking method). On success the Rrt can be accessed with the getTree() method and the found solution with getSolution().

Parameters
bQuietPrint some info or not.
Returns
true if solution was found, otherwise false

Implements Saba::MotionPlanner.

Reimplemented in Saba::GraspRrt, Saba::GraspIkRrt, and Saba::BiRrt.

void Saba::Rrt::printConfig ( bool  printOnlyParams = false)
virtual

Print setup of planner.

Parameters
printOnlyParamsIf set the decorating start and end is skipped (can be used to print derived classes).

Reimplemented from Saba::MotionPlanner.

Reimplemented in Saba::GraspRrt, Saba::GraspIkRrt, and Saba::BiRrt.

void Saba::Rrt::reset ( )
virtual

reset the planner

Reimplemented from Saba::MotionPlanner.

Reimplemented in Saba::GraspRrt, Saba::GraspIkRrt, and Saba::BiRrt.

bool Saba::Rrt::setGoal ( const Eigen::VectorXf &  c)
virtual

set goal configuration

Reimplemented from Saba::MotionPlanner.

Reimplemented in Saba::GraspRrt, Saba::BiRrt, and Saba::GraspIkRrt.

void Saba::Rrt::setProbabilityExtendToGoal ( float  p)
bool Saba::Rrt::setStart ( const Eigen::VectorXf &  c)
virtual

set start configuration

Reimplemented from Saba::MotionPlanner.

Reimplemented in Saba::GraspRrt, and Saba::BiRrt.

Field Documentation

float Saba::Rrt::extendGoToGoal
protected

the probability that the goal config is used instead of a randomly created configuration

float Saba::Rrt::extendStepSize
protected

step size for one rrt extend (copied from cspace)

CSpaceNodePtr Saba::Rrt::goalNode
protected

goal node (set when RRT weas successfully connected to goalConfig)

int Saba::Rrt::lastAddedID
protected

ID of last added node.

RrtMethod Saba::Rrt::rrtMode
protected
CSpaceNodePtr Saba::Rrt::startNode
protected

start node (root of RRT)

Eigen::VectorXf Saba::Rrt::tmpConfig
protected

tmp config

CSpaceTreePtr Saba::Rrt::tree
protected

the rrt on which are operating