PL_PRM Class Reference

#include <planners/prm/PL_PRM.h>

Inherits PL_GraphBase.

Inherited by PL_PRM_ClosedBase [virtual], PL_PRM_ClosedChain, and PL_RGD_PRM.

Inheritance diagram for PL_PRM:

Inheritance graph
[legend]
Collaboration diagram for PL_PRM:

Collaboration graph
[legend]
List of all members.

Public Member Functions

virtual ~PL_PRM ()
 PL_PRM ()
virtual bool DrawExplicit () const
virtual bool Plan ()
virtual void SetStartConfig (const Configuration &config)
virtual void SetGoalConfig (const Configuration &config)
virtual void SetCollisionDetector (CD_BasicStyle *collisionDetector)
virtual void * GetParameters ()
virtual bool SetParameters (const void *param)
virtual bool ValidateParameters ()
void SetRadiusTol (double tol)
double GetRadiusTol ()
void SetPRMMode (BOOL &isLazy, BOOL &validNodes, BOOL &validEdges)
void GetPRMMode (BOOL &isLazy, BOOL &validNodes, BOOL &validEdges) const
void SetUseMidPts (BOOL use_them)
BOOL GetUseMidPts () const
PRM_StateMachineType GetLastPlanningState () const
void SetInitQuant (int quant)
int GetInitQuant () const
void SetEnhanceQuant (int quant)
int GetEnhanceQuant () const
void SetSeedRatio (double ratio)
double GetSeedRatio () const
BOOL AddNode ()
void CopySettings (PlannerBase *original)

Protected Member Functions

virtual void ConnectNode (const node &newnode)
virtual void ConnectEdgesFull (const node &n1, const double &radius_squared)
virtual void ConnectEdgesLazy (const node &n1, const double &radius_squared)
SuccessResultType BuildInitRoadMap ()
SuccessResultType FindPath ()
SuccessResultType VerifyPath ()
SuccessResultType EnhanceRoadMap ()
virtual bool SaveContents (std::ofstream &outfile) const
virtual bool LoadContents (std::ifstream &infile)
void SetGraphMode (const bool &treeGraph)
bool NodeInConnectionList (const node &n1, const list< int > &connectIDs)

Protected Attributes

double diagonal_squared
double radiusTol
BOOL lazyMode
BOOL validNodesOnly
BOOL validEdgesOnly
BOOL useMidPts
PRM_StateMachineType lastPlanningState
int initQuant
int enhanceQuant
double seedRatio
list< Configurationconfig_seeds
node_map< BOOL > nodeChecked
edge_map< BOOL > edgeChecked
node_map< BOOL > uniformlyAdded
node_map< int > * connectIDp
int baseConnectID
node_map< node > pred
node_map< double > dist
node_pq< double > * openp

Private Member Functions

double Astar_f (const node &n, const double &currcost) const

Detailed Description

Definition at line 37 of file PL_PRM.h.


Constructor & Destructor Documentation

PL_PRM::~PL_PRM  )  [virtual]
 

Definition at line 88 of file PL_PRM.cpp.

References connectIDp, and openp.

PL_PRM::PL_PRM  ) 
 

Definition at line 44 of file PL_PRM.cpp.

References baseConnectID, config_seeds, connectIDp, DEFAULT_ENHANCE_QUANT, DEFAULT_INIT_QUANT, DEFAULT_SEED_RATIO, DEFAULT_TOL, DEFAULTBASECONNECTID, diagonal_squared, edgeChecked, enhanceQuant, FALSE, FILEEXT, PL_GraphBase::fileext, FILEHEADER, PL_GraphBase::fileheader, PL_GraphBase::G, initQuant, lastPlanningState, lazyMode, nodeChecked, openp, PRM_START, seedRatio, SetRadiusTol(), TRUE, uniformlyAdded, useMidPts, validEdgesOnly, and validNodesOnly.

Here is the call graph for this function:


Member Function Documentation

BOOL PL_PRM::AddNode  ) 
 

Definition at line 896 of file PL_PRM.cpp.

References config_seeds, ConnectNode(), FALSE, PL_GraphBase::G, PL_GraphBase::GenerateRandomConfig(), PlannerBase::HasTimeLimitExpired(), PL_GraphBase::IsInterfering(), nodeChecked, TRUE, uniformlyAdded, and validNodesOnly.

Referenced by BuildInitRoadMap().

Here is the call graph for this function:

double PL_PRM::Astar_f const node &  n,
const double &  currcost
const [inline, private]
 

Definition at line 1762 of file PL_PRM.cpp.

References PL_GraphBase::Distance(), and PL_GraphBase::goalNode.

Referenced by FindPath().

Here is the call graph for this function:

SuccessResultType PL_PRM::BuildInitRoadMap  )  [protected]
 

Definition at line 1200 of file PL_PRM.cpp.

References AddNode(), PlannerBase::HasTimeLimitExpired(), initQuant, PL_GraphBase::NodeCount(), and TIMER_EXPIRED.

Referenced by Plan(), PL_RGD_PRM::Plan_As_Usual(), and PL_PRM_ClosedChain::Plan_As_Usual().

Here is the call graph for this function:

void PL_PRM::ConnectEdgesFull const node &  n1,
const double &  radius_squared
[protected, virtual]
 

Reimplemented in PL_PRM_ClosedChain, PL_RGD_PRM, and PL_PRM_ClosedBase.

Definition at line 1047 of file PL_PRM.cpp.

References baseConnectID, config_seeds, connectIDp, PL_GraphBase::Distance(), edgeChecked, PL_GraphBase::G, PL_GraphBase::GetMidPoint(), PL_GraphBase::IsInterfering(), PL_GraphBase::NIL_ID, NodeInConnectionList(), TRUE, and useMidPts.

Referenced by ConnectNode().

Here is the call graph for this function:

void PL_PRM::ConnectEdgesLazy const node &  n1,
const double &  radius_squared
[protected, virtual]
 

Definition at line 989 of file PL_PRM.cpp.

References config_seeds, PL_GraphBase::Distance(), edgeChecked, FALSE, PL_GraphBase::G, PL_GraphBase::GetMidPoint(), PL_GraphBase::IsInterfering(), TRUE, useMidPts, and validEdgesOnly.

Referenced by ConnectNode().

Here is the call graph for this function:

void PL_PRM::ConnectNode const node &  newnode  )  [protected, virtual]
 

Definition at line 964 of file PL_PRM.cpp.

References ConnectEdgesFull(), ConnectEdgesLazy(), diagonal_squared, lazyMode, and radiusTol.

Referenced by AddNode(), SetGoalConfig(), and SetStartConfig().

Here is the call graph for this function:

void PL_PRM::CopySettings PlannerBase original  ) 
 

Reimplemented from PL_GraphBase.

Definition at line 1772 of file PL_PRM.cpp.

References PL_GraphBase::CopySettings(), enhanceQuant, initQuant, lazyMode, radiusTol, seedRatio, SetGraphMode(), useMidPts, validEdgesOnly, and validNodesOnly.

Referenced by ServerBase::RefreshPlanner().

Here is the call graph for this function:

bool PL_PRM::DrawExplicit  )  const [virtual]
 

Reimplemented from PL_GraphBase.

Reimplemented in PL_RGD_RRT, PL_RGD_Constraint, PL_RRT_ClosedChain, and PL_RRT_ClosedChain.

Definition at line 114 of file PL_PRM.cpp.

References PL_GraphBase::DrawSpecific(), PL_GraphBase::G, PL_GraphBase::GetCoords(), PL_GraphBase::goalNode, PL_GraphBase::graphPath, Semaphore::Lock(), nodeChecked, PL_GraphBase::startNode, and uniformlyAdded.

Referenced by PL_RGD_Constraint::DrawExplicit().

Here is the call graph for this function:

SuccessResultType PL_PRM::EnhanceRoadMap  )  [protected]
 

Definition at line 1640 of file PL_PRM.cpp.

References config_seeds, diagonal_squared, enhanceQuant, FALSE, PL_GraphBase::GenerateRandomConfig(), PL_GraphBase::IsInterfering(), radiusTol, seedRatio, TRUE, and validNodesOnly.

Referenced by Plan(), PL_RGD_PRM::Plan_As_Usual(), and PL_PRM_ClosedChain::Plan_As_Usual().

Here is the call graph for this function:

SuccessResultType PL_PRM::FindPath  )  [protected]
 

Definition at line 1228 of file PL_PRM.cpp.

References Astar_f(), dist, PL_GraphBase::G, PL_GraphBase::goalNode, PL_GraphBase::graphPath, PlannerBase::HasTimeLimitExpired(), lastPlanningState, openp, PASS, pred, PRM_FIND_PATH, PRM_TIMER_EXPIRED, PL_GraphBase::startNode, and TIMER_EXPIRED.

Referenced by Plan(), PL_RGD_PRM::Plan_As_Usual(), and PL_PRM_ClosedChain::Plan_As_Usual().

Here is the call graph for this function:

int PL_PRM::GetEnhanceQuant  )  const [inline]
 

Definition at line 78 of file PL_PRM.h.

References enhanceQuant.

int PL_PRM::GetInitQuant  )  const [inline]
 

Definition at line 75 of file PL_PRM.h.

References initQuant.

PRM_StateMachineType PL_PRM::GetLastPlanningState  )  const [inline]
 

Definition at line 72 of file PL_PRM.h.

References lastPlanningState.

void * PL_PRM::GetParameters  )  [virtual]
 

Reimplemented from PlannerBase.

Definition at line 1794 of file PL_PRM.cpp.

References enhanceQuant, PlannerBase::GetParameters(), initQuant, lazyMode, PlannerBase::paramBuffer, radiusTol, seedRatio, PlannerBase::sizeOfParameterBuffer, validEdgesOnly, and validNodesOnly.

Here is the call graph for this function:

void PL_PRM::GetPRMMode BOOL &  isLazy,
BOOL &  validNodes,
BOOL &  validEdges
const
 

Definition at line 721 of file PL_PRM.cpp.

References lazyMode, validEdgesOnly, and validNodesOnly.

double PL_PRM::GetRadiusTol  ) 
 

Definition at line 664 of file PL_PRM.cpp.

References radiusTol.

double PL_PRM::GetSeedRatio  )  const [inline]
 

Definition at line 81 of file PL_PRM.h.

References seedRatio.

BOOL PL_PRM::GetUseMidPts  )  const [inline]
 

Definition at line 70 of file PL_PRM.h.

References useMidPts.

bool PL_PRM::LoadContents std::ifstream &  infile  )  [protected, virtual]
 

Reimplemented from PL_GraphBase.

Definition at line 292 of file PL_PRM.cpp.

References baseConnectID, connectIDp, DEFAULTBASECONNECTID, edgeChecked, enhanceQuant, PL_GraphBase::G, initQuant, lastPlanningState, lazyMode, PL_GraphBase::LoadContents(), PL_GraphBase::NIL_ID, nodeChecked, PRM_START, radiusTol, seedRatio, uniformlyAdded, useMidPts, validEdgesOnly, and validNodesOnly.

Here is the call graph for this function:

bool PL_PRM::NodeInConnectionList const node &  n1,
const list< int > &  connectIDs
[protected]
 

Definition at line 867 of file PL_PRM.cpp.

References connectIDp.

Referenced by ConnectEdgesFull(), PL_PRM_ClosedBase::ConnectEdgesFull(), PL_RGD_PRM::ConnectEdgesFull(), and PL_PRM_ClosedChain::ConnectEdgesFull().

bool PL_PRM::Plan  )  [virtual]
 

Reimplemented from PL_GraphBase.

Reimplemented in PL_PRM_ClosedChain, PL_RGD_PRM, PL_RGD_RRT, PL_RGD_Constraint, PL_RRT_ClosedChain, PL_PRM_ClosedBase, PL_PRM_ClosedLocalJacobian, PL_PRM_ClosedChain, and PL_RRT_ClosedChain.

Definition at line 445 of file PL_PRM.cpp.

References PA_Points::AppendPoint(), BuildInitRoadMap(), PA_Points::Clear(), diagonal_squared, EnhanceRoadMap(), FALSE, FindPath(), PL_GraphBase::GetCspaceRange(), SmootherBase::GetPath(), PlannerBase::GetStartConfig(), PL_GraphBase::goalNode, PL_GraphBase::graphPath, PlannerBase::guid, PL_GraphBase::IsInterfering(), lastPlanningState, Semaphore::Lock(), PL_Boolean_Output::m_Smoother, PASS, PL_Boolean_Output::path, PRM_BUILD_INIT_ROADMAP, PRM_DONE, PRM_ENHANCE_ROADMAP, PRM_FAILURE, PRM_FIND_PATH, PRM_START, PRM_TRANSLATE_PATH, PRM_VERIFY_PATH, SmootherBase::SetCollisionDetector(), SmootherBase::SetPath(), SmootherBase::Smooth(), PL_GraphBase::startNode, PlannerBase::StartTimer(), TIMER_EXPIRED, PL_GraphBase::TranslatePath(), Semaphore::Unlock(), and VerifyPath().

Referenced by PL_PRM_ClosedBase::Plan().

Here is the call graph for this function:

bool PL_PRM::SaveContents std::ofstream &  outfile  )  const [protected, virtual]
 

Reimplemented from PL_GraphBase.

Definition at line 382 of file PL_PRM.cpp.

References baseConnectID, edgeChecked, enhanceQuant, PL_GraphBase::G, initQuant, lazyMode, PL_GraphBase::NIL_ID, nodeChecked, radiusTol, PL_GraphBase::SaveContents(), seedRatio, uniformlyAdded, useMidPts, validEdgesOnly, and validNodesOnly.

Here is the call graph for this function:

void PL_PRM::SetCollisionDetector CD_BasicStyle collisionDetector  )  [virtual]
 

Reimplemented from PL_GraphBase.

Reimplemented in PL_PRM_ClosedChain, PL_RGD_PRM, PL_RRT_ClosedChain, PL_PRM_ClosedLocalJacobian, PL_PRM_ClosedJacobian, PL_PRM_ClosedAPDecomp, PL_PRM_ClosedChain, and PL_RRT_ClosedChain.

Definition at line 736 of file PL_PRM.cpp.

References PL_HasCollisionDetector::collisionDetector, diagonal_squared, PL_GraphBase::GetCspaceRange(), and PL_GraphBase::SetCollisionDetector().

Referenced by ServerBase::RefreshPlanner(), PL_PRM_ClosedAPDecomp::SetCollisionDetector(), PL_PRM_ClosedJacobian::SetCollisionDetector(), PL_PRM_ClosedLocalJacobian::SetCollisionDetector(), PL_RRT_ClosedChain::SetCollisionDetector(), PL_RGD_PRM::SetCollisionDetector(), and PL_PRM_ClosedChain::SetCollisionDetector().

Here is the call graph for this function:

void PL_PRM::SetEnhanceQuant int  quant  )  [inline]
 

Definition at line 77 of file PL_PRM.h.

References enhanceQuant.

void PL_PRM::SetGoalConfig const Configuration config  )  [virtual]
 

Reimplemented from PL_GraphBase.

Definition at line 789 of file PL_PRM.cpp.

References ConnectNode(), PL_GraphBase::G, PlannerBase::GetGoalConfig(), PL_GraphBase::goalNode, and PL_GraphBase::SetGoalConfig().

Referenced by PL_RGD_PRM::Plan(), and PL_PRM_ClosedChain::Plan().

Here is the call graph for this function:

void PL_PRM::SetGraphMode const bool &  treeGraph  )  [protected]
 

Definition at line 830 of file PL_PRM.cpp.

References baseConnectID, PL_GraphBase::ClearGraph(), connectIDp, DEFAULTBASECONNECTID, and PL_GraphBase::G.

Referenced by CopySettings(), and SetPRMMode().

Here is the call graph for this function:

void PL_PRM::SetInitQuant int  quant  )  [inline]
 

Definition at line 74 of file PL_PRM.h.

References initQuant.

bool PL_PRM::SetParameters const void *  param  )  [virtual]
 

Reimplemented from PlannerBase.

Definition at line 1866 of file PL_PRM.cpp.

References enhanceQuant, initQuant, lazyMode, PlannerBase::paramBuffer, radiusTol, seedRatio, PlannerBase::SetParameters(), validEdgesOnly, and validNodesOnly.

Here is the call graph for this function:

void PL_PRM::SetPRMMode BOOL &  isLazy,
BOOL &  validNodes,
BOOL &  validEdges
 

Definition at line 675 of file PL_PRM.cpp.

References lazyMode, SetGraphMode(), TRUE, validEdgesOnly, and validNodesOnly.

Here is the call graph for this function:

void PL_PRM::SetRadiusTol double  tol  ) 
 

Definition at line 651 of file PL_PRM.cpp.

References radiusTol.

Referenced by PL_PRM().

void PL_PRM::SetSeedRatio double  ratio  )  [inline]
 

Definition at line 80 of file PL_PRM.h.

References seedRatio.

void PL_PRM::SetStartConfig const Configuration config  )  [virtual]
 

Reimplemented from PL_GraphBase.

Definition at line 753 of file PL_PRM.cpp.

References ConnectNode(), PL_GraphBase::G, PlannerBase::GetStartConfig(), PL_GraphBase::SetStartConfig(), and PL_GraphBase::startNode.

Here is the call graph for this function:

void PL_PRM::SetUseMidPts BOOL  use_them  )  [inline]
 

Definition at line 69 of file PL_PRM.h.

References useMidPts.

bool PL_PRM::ValidateParameters  )  [virtual]
 

Reimplemented from PlannerBase.

Definition at line 1932 of file PL_PRM.cpp.

SuccessResultType PL_PRM::VerifyPath  )  [protected]
 

Definition at line 1413 of file PL_PRM.cpp.

References FAIL, and PL_GraphBase::graphPath.

Referenced by Plan(), PL_RGD_PRM::Plan_As_Usual(), and PL_PRM_ClosedChain::Plan_As_Usual().


Member Data Documentation

int PL_PRM::baseConnectID [protected]
 

Definition at line 145 of file PL_PRM.h.

Referenced by ConnectEdgesFull(), PL_PRM_ClosedBase::ConnectEdgesFull(), PL_RGD_PRM::ConnectEdgesFull(), PL_PRM_ClosedChain::ConnectEdgesFull(), LoadContents(), PL_PRM(), SaveContents(), and SetGraphMode().

list<Configuration> PL_PRM::config_seeds [protected]
 

Definition at line 131 of file PL_PRM.h.

Referenced by AddNode(), ConnectEdgesFull(), PL_PRM_ClosedBase::ConnectEdgesFull(), PL_RGD_PRM::ConnectEdgesFull(), PL_PRM_ClosedChain::ConnectEdgesFull(), ConnectEdgesLazy(), EnhanceRoadMap(), and PL_PRM().

node_map<int>* PL_PRM::connectIDp [protected]
 

Definition at line 144 of file PL_PRM.h.

Referenced by ConnectEdgesFull(), PL_PRM_ClosedBase::ConnectEdgesFull(), PL_RGD_PRM::ConnectEdgesFull(), PL_PRM_ClosedChain::ConnectEdgesFull(), LoadContents(), NodeInConnectionList(), PL_PRM(), SetGraphMode(), and ~PL_PRM().

double PL_PRM::diagonal_squared [protected]
 

Definition at line 117 of file PL_PRM.h.

Referenced by ConnectNode(), EnhanceRoadMap(), PL_PRM(), Plan(), PL_RGD_PRM::Plan_As_Usual(), PL_PRM_ClosedChain::Plan_As_Usual(), and SetCollisionDetector().

node_map<double> PL_PRM::dist [protected]
 

Definition at line 154 of file PL_PRM.h.

Referenced by PL_RRT_ClosedChain::Distance(), PL_RGD_RRT::Distance(), PL_RRT_ClosedChain::Extend(), PL_RGD_RRT::Extend(), and FindPath().

edge_map<BOOL> PL_PRM::edgeChecked [protected]
 

Definition at line 139 of file PL_PRM.h.

Referenced by ConnectEdgesFull(), PL_PRM_ClosedBase::ConnectEdgesFull(), PL_RGD_PRM::ConnectEdgesFull(), PL_PRM_ClosedChain::ConnectEdgesFull(), ConnectEdgesLazy(), LoadContents(), PL_PRM(), and SaveContents().

int PL_PRM::enhanceQuant [protected]
 

Definition at line 128 of file PL_PRM.h.

Referenced by CopySettings(), EnhanceRoadMap(), GetEnhanceQuant(), GetParameters(), LoadContents(), PL_PRM(), SaveContents(), SetEnhanceQuant(), and SetParameters().

int PL_PRM::initQuant [protected]
 

Definition at line 127 of file PL_PRM.h.

Referenced by BuildInitRoadMap(), CopySettings(), GetInitQuant(), GetParameters(), LoadContents(), PL_PRM(), SaveContents(), SetInitQuant(), and SetParameters().

PRM_StateMachineType PL_PRM::lastPlanningState [protected]
 

Definition at line 125 of file PL_PRM.h.

Referenced by FindPath(), GetLastPlanningState(), LoadContents(), PL_PRM(), Plan(), PL_RGD_PRM::Plan_As_Usual(), and PL_PRM_ClosedChain::Plan_As_Usual().

BOOL PL_PRM::lazyMode [protected]
 

Definition at line 120 of file PL_PRM.h.

Referenced by ConnectNode(), CopySettings(), GetParameters(), GetPRMMode(), LoadContents(), PL_PRM(), SaveContents(), SetParameters(), and SetPRMMode().

node_map<BOOL> PL_PRM::nodeChecked [protected]
 

Definition at line 138 of file PL_PRM.h.

Referenced by AddNode(), DrawExplicit(), LoadContents(), PL_PRM(), and SaveContents().

node_pq<double>* PL_PRM::openp [protected]
 

Definition at line 155 of file PL_PRM.h.

Referenced by FindPath(), PL_PRM(), and ~PL_PRM().

node_map<node> PL_PRM::pred [protected]
 

Definition at line 153 of file PL_PRM.h.

Referenced by FindPath().

double PL_PRM::radiusTol [protected]
 

Definition at line 118 of file PL_PRM.h.

Referenced by ConnectNode(), CopySettings(), EnhanceRoadMap(), GetParameters(), GetRadiusTol(), LoadContents(), SaveContents(), SetParameters(), and SetRadiusTol().

double PL_PRM::seedRatio [protected]
 

Definition at line 129 of file PL_PRM.h.

Referenced by CopySettings(), EnhanceRoadMap(), GetParameters(), GetSeedRatio(), LoadContents(), PL_PRM(), SaveContents(), SetParameters(), and SetSeedRatio().

node_map<BOOL> PL_PRM::uniformlyAdded [protected]
 

Definition at line 141 of file PL_PRM.h.

Referenced by AddNode(), DrawExplicit(), LoadContents(), PL_PRM(), and SaveContents().

BOOL PL_PRM::useMidPts [protected]
 

Definition at line 123 of file PL_PRM.h.

Referenced by ConnectEdgesFull(), PL_PRM_ClosedBase::ConnectEdgesFull(), PL_RGD_PRM::ConnectEdgesFull(), PL_PRM_ClosedChain::ConnectEdgesFull(), ConnectEdgesLazy(), CopySettings(), GetUseMidPts(), LoadContents(), PL_PRM(), SaveContents(), and SetUseMidPts().

BOOL PL_PRM::validEdgesOnly [protected]
 

Definition at line 122 of file PL_PRM.h.

Referenced by ConnectEdgesLazy(), CopySettings(), GetParameters(), GetPRMMode(), LoadContents(), PL_PRM(), SaveContents(), SetParameters(), and SetPRMMode().

BOOL PL_PRM::validNodesOnly [protected]
 

Definition at line 121 of file PL_PRM.h.

Referenced by AddNode(), CopySettings(), EnhanceRoadMap(), GetParameters(), GetPRMMode(), LoadContents(), PL_PRM(), SaveContents(), SetParameters(), and SetPRMMode().


The documentation for this class was generated from the following files:
Generated on Sat Apr 1 21:57:15 2006 for Motion Planning Kernel by  doxygen 1.4.6-NO