PL_RRT_ClosedChain Class Reference

#include <planners/atace/PL_RRT_Constrained.h>

Inherits PL_PRM_ClosedChain, and PL_PRM_ClosedChain.

Inheritance diagram for PL_RRT_ClosedChain:

Inheritance graph
[legend]
Collaboration diagram for PL_RRT_ClosedChain:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PL_RRT_ClosedChain ()
 ~PL_RRT_ClosedChain ()
void SetCollisionDetector (CD_BasicStyle *collisionDetector)
virtual bool DrawExplicit () const
virtual bool Plan ()
 PL_RRT_ClosedChain ()
 ~PL_RRT_ClosedChain ()
void SetCollisionDetector (CD_BasicStyle *collisionDetector)
virtual bool DrawExplicit () const
virtual bool Plan ()

Public Attributes

bool m_bUseJacobian

Protected Attributes

vertex m_goalVert
vertex m_rootVert

Private Member Functions

bool CreateTree (Configuration &conf)
void ClearTree ()
vertex AddNodeInTree (vertex parentVertex, Configuration &childConf, PA_Points &localPath)
vertex FindClosestInTree (Configuration &conf)
ConfigurationGetConfigurationFromTree (vertex vert)
PA_PointsGetPathFromTree (vertex vert)
double Distance (const Configuration &conf1, const Configuration &conf2)
int Extend (Configuration &fromConf, Configuration &toConf, Configuration dirConf, PA_Points &edgePath)
int ExtendJacobian (Configuration &fromConf, Configuration &toConf, Configuration dirConf, PA_Points &edgePath)
bool AdjustConfiguration (Configuration &config)
int ConnectToGoal (vertex fromVert)
int ConnectToGoalJacobian (vertex fromVert)
int ConnectToGoal ()
int ConnectToGoal2 ()
void CompareJacobianAndRGD ()
bool TestRGDConnection (Configuration &testStartConf, Configuration &testGoalConf, PA_Points &localPath)
bool TestJacobianConnection (Configuration &testStartConf, Configuration &testGoalConf, PA_Points &localPath)
void RetrievePath (vertex &goalVert)
void CopyPath (PA_Points &target, PA_Points &source)
void AppendPath (PA_Points &collect, PA_Points &local)
void AppendPath (PA_Points &collect, PA_Points *local)
void InsertPath (PA_Points &target, PA_Points &source)
bool CreateTree (Configuration &conf)
void ClearTree ()
vertex AddNodeInTree (vertex parentVertex, Configuration &childConf, PA_Points &localPath)
vertex FindClosestInTree (Configuration &conf)
ConfigurationGetConfigurationFromTree (vertex vert)
PA_PointsGetPathFromTree (vertex vert)
double Distance (const Configuration &conf1, const Configuration &conf2)
int Extend (Configuration &fromConf, Configuration &toConf, Configuration dirConf, PA_Points &edgePath)
int ExtendJacobian (Configuration &fromConf, Configuration &toConf, Configuration dirConf, PA_Points &edgePath)
int ConnectToGoal (vertex fromVert)
int ConnectToGoal ()
void CompareLocalPlanners ()
bool TestRGDConnection (Configuration &testStartConf, Configuration &testGoalConf, PA_Points &localPath)
bool TestJacobianConnection (Configuration &testStartConf, Configuration &testGoalConf, PA_Points &localPath)
bool TestAPDecompConnection (Configuration &testStartConf, Configuration &testGoalConf, PA_Points &localPath)
void RetrievePath (vertex &goalVert)
void CopyPath (PA_Points &target, PA_Points &source)
void AppendPath (PA_Points &collect, PA_Points &local)
void AppendPath (PA_Points &collect, PA_Points *local)
void InsertPath (PA_Points &target, PA_Points &source)
void OutputStatistics ()

Private Attributes

R_OpenChainm_pRobot
int m_nDof
int m_nToolFrame
Frame m_frEndEffector
CJacobianjacobian
dynamic_trees m_trajTree
std::vector< vertex > m_vertices
std::vector< vertex > m_vertices

Detailed Description

Definition at line 7 of file PL_RRT_Constrained.h.


Constructor & Destructor Documentation

PL_RRT_ClosedChain::PL_RRT_ClosedChain  ) 
 

Definition at line 39 of file PL_RRT_Constrained.cpp.

References jacobian, m_bUseJacobian, m_goalVert, and m_rootVert.

PL_RRT_ClosedChain::~PL_RRT_ClosedChain  ) 
 

Definition at line 48 of file PL_RRT_Constrained.cpp.

References ClearTree(), jacobian, and m_rootVert.

Here is the call graph for this function:

PL_RRT_ClosedChain::PL_RRT_ClosedChain  ) 
 

PL_RRT_ClosedChain::~PL_RRT_ClosedChain  ) 
 


Member Function Documentation

vertex PL_RRT_ClosedChain::AddNodeInTree vertex  parentVertex,
Configuration childConf,
PA_Points localPath
[private]
 

vertex PL_RRT_ClosedChain::AddNodeInTree vertex  parentVertex,
Configuration childConf,
PA_Points localPath
[private]
 

Definition at line 640 of file PL_RRT_Constrained.cpp.

References VertexInfoInTree::conf, CopyPath(), VertexInfoInTree::edge, PlannerBase::guid, Semaphore::Lock(), m_vertices, and Semaphore::Unlock().

Referenced by ConnectToGoal(), ConnectToGoal2(), and Plan().

Here is the call graph for this function:

bool PL_RRT_ClosedChain::AdjustConfiguration Configuration config  )  [private]
 

Definition at line 373 of file PL_RRT_Constrained.cpp.

References CJacobian::GetMatrix(), PL_PRM_ClosedChain::GetToolFrame(), Frame::GetTranslationVector(), Matrixmxn::Inverse(), PL_PRM_ClosedChain::IsClosed(), jacobian, m_frEndEffector, m_nDof, Rad2Deg(), CJacobian::SetConfiguration(), CJacobian::SetInterestPoint(), and PL_PRM_ClosedChain::useOrientConstraint.

Referenced by ConnectToGoalJacobian(), ExtendJacobian(), and TestJacobianConnection().

Here is the call graph for this function:

void PL_RRT_ClosedChain::AppendPath PA_Points collect,
PA_Points local
[private]
 

void PL_RRT_ClosedChain::AppendPath PA_Points collect,
PA_Points local
[private]
 

void PL_RRT_ClosedChain::AppendPath PA_Points collect,
PA_Points local
[private]
 

Definition at line 726 of file PL_RRT_Constrained.cpp.

References PA_Points::AppendPoint(), PA_Points::GetPoint(), and PA_Points::Size().

Here is the call graph for this function:

void PL_RRT_ClosedChain::AppendPath PA_Points collect,
PA_Points local
[private]
 

Definition at line 718 of file PL_RRT_Constrained.cpp.

References PA_Points::AppendPoint(), and PA_Points::Size().

Here is the call graph for this function:

void PL_RRT_ClosedChain::ClearTree  )  [private]
 

void PL_RRT_ClosedChain::ClearTree  )  [private]
 

Definition at line 623 of file PL_RRT_Constrained.cpp.

References PlannerBase::guid, Semaphore::Lock(), and m_vertices.

Referenced by CreateTree(), and ~PL_RRT_ClosedChain().

Here is the call graph for this function:

void PL_RRT_ClosedChain::CompareJacobianAndRGD  )  [private]
 

Definition at line 863 of file PL_RRT_Constrained.cpp.

References DEF_NEIGHBOR, PL_PRM_ClosedChain::GenerateRandomConfig(), PlannerBase::GetStartConfig(), jacobian, Log(), and m_pRobot.

Here is the call graph for this function:

void PL_RRT_ClosedChain::CompareLocalPlanners  )  [private]
 

Definition at line 648 of file PL_RRT_ClosedChain.cpp.

References DEF_NEIGHBOR, PL_PRM_ClosedChain::GenerateRandomConfig(), PlannerBase::GetGoalConfig(), PlannerBase::GetStartConfig(), jacobian, Log(), and m_pRobot.

Here is the call graph for this function:

int PL_RRT_ClosedChain::ConnectToGoal  )  [private]
 

int PL_RRT_ClosedChain::ConnectToGoal vertex  fromVert  )  [private]
 

int PL_RRT_ClosedChain::ConnectToGoal  )  [private]
 

Definition at line 448 of file PL_RRT_Constrained.cpp.

References AddNodeInTree(), PA_Points::AppendPoint(), PL_PRM_ClosedChain::edgeFrag, ERR_SUCCESS, FindClosestInTree(), PL_PRM_ClosedChain::GenerateRandomConfigForPose(), GetConfigurationFromTree(), PlannerBase::GetGoalConfig(), PL_PRM_ClosedChain::GetToolFrame(), PL_PRM_ClosedChain::IsInterfering(), m_goalVert, MAX_CONF_RETRY, and PL_PRM_ClosedChain::useGoalPose.

Referenced by Plan().

Here is the call graph for this function:

int PL_RRT_ClosedChain::ConnectToGoal vertex  fromVert  )  [private]
 

Definition at line 495 of file PL_RRT_Constrained.cpp.

References AddNodeInTree(), PA_Points::AppendPoint(), PL_PRM_ClosedChain::edgeFrag, ERR_FAIL, ERR_SUCCESS, GetConfigurationFromTree(), PlannerBase::GetGoalConfig(), PL_PRM_ClosedChain::IsInterfering(), and m_goalVert.

Here is the call graph for this function:

int PL_RRT_ClosedChain::ConnectToGoal2  )  [private]
 

Definition at line 401 of file PL_RRT_Constrained.cpp.

References AddNodeInTree(), PA_Points::AppendPoint(), PL_PRM_ClosedChain::edgeFrag, ERR_SUCCESS, FindClosestInTree(), PL_PRM_ClosedChain::GenerateRandomConfigForPose(), GetConfigurationFromTree(), PlannerBase::GetGoalConfig(), PL_PRM_ClosedChain::GetToolFrame(), PL_PRM_ClosedChain::IsInterfering(), m_goalVert, MAX_CONF_RETRY, and PL_PRM_ClosedChain::useGoalPose.

Here is the call graph for this function:

int PL_RRT_ClosedChain::ConnectToGoalJacobian vertex  fromVert  )  [private]
 

Definition at line 523 of file PL_RRT_Constrained.cpp.

References AdjustConfiguration(), PA_Points::AppendPoint(), PA_Points::Clear(), PL_HasCollisionDetector::collisionDetector, DEF_DIST_TOLERANCE, DEF_INCREMENT, Configuration::DOF(), ERR_FAIL, GetConfigurationFromTree(), PlannerBase::GetGoalConfig(), CJacobian::GetMatrix(), Matrixmxn::Inverse(), CD_Bool::IsInterfering(), jacobian, Log(), m_frEndEffector, m_nDof, VectorN::Magnitude(), MIN_DIST_CHANGE, CJacobian::SetConfiguration(), CJacobian::SetInterestPoint(), and PL_PRM_ClosedChain::useOrientConstraint.

Referenced by Plan().

Here is the call graph for this function:

void PL_RRT_ClosedChain::CopyPath PA_Points target,
PA_Points source
[inline, private]
 

Definition at line 45 of file PL_RRT_ClosedChain.h.

void PL_RRT_ClosedChain::CopyPath PA_Points target,
PA_Points source
[inline, private]
 

Definition at line 56 of file PL_RRT_Constrained.h.

Referenced by AddNodeInTree().

bool PL_RRT_ClosedChain::CreateTree Configuration conf  )  [private]
 

bool PL_RRT_ClosedChain::CreateTree Configuration conf  )  [private]
 

Definition at line 604 of file PL_RRT_Constrained.cpp.

References ClearTree(), VertexInfoInTree::conf, PlannerBase::guid, Semaphore::Lock(), m_rootVert, m_vertices, and Semaphore::Unlock().

Referenced by Plan().

Here is the call graph for this function:

double PL_RRT_ClosedChain::Distance const Configuration conf1,
const Configuration conf2
[private]
 

double PL_RRT_ClosedChain::Distance const Configuration conf1,
const Configuration conf2
[private]
 

Definition at line 690 of file PL_RRT_Constrained.cpp.

References PL_HasCollisionDetector::collisionDetector, PL_PRM::dist, CD_JointLimits::JointDisplacement(), and VectorN::Length().

Referenced by Extend(), FindClosestInTree(), and TestRGDConnection().

Here is the call graph for this function:

virtual bool PL_RRT_ClosedChain::DrawExplicit  )  const [virtual]
 

Reimplemented from PL_PRM.

bool PL_RRT_ClosedChain::DrawExplicit  )  const [virtual]
 

Reimplemented from PL_PRM.

Definition at line 78 of file PL_RRT_Constrained.cpp.

References VertexInfoInTree::conf, PlannerBase::guid, Semaphore::Lock(), m_trajTree, and m_vertices.

Here is the call graph for this function:

int PL_RRT_ClosedChain::Extend Configuration fromConf,
Configuration toConf,
Configuration  dirConf,
PA_Points edgePath
[private]
 

int PL_RRT_ClosedChain::Extend Configuration fromConf,
Configuration toConf,
Configuration  dirConf,
PA_Points edgePath
[private]
 

Definition at line 243 of file PL_RRT_Constrained.cpp.

References PA_Points::AppendPoint(), PA_Points::Clear(), PL_PRM::dist, Distance(), PL_PRM_ClosedChain::edgeFrag, ERR_FAIL, ERR_SUCCESS, PL_PRM_ClosedChain::GetClosedConfiguration(), PL_PRM_ClosedChain::IsInterfering(), LEN_STEP_SIZE, and MAX_CONF_RETRY.

Referenced by Plan().

Here is the call graph for this function:

int PL_RRT_ClosedChain::ExtendJacobian Configuration fromConf,
Configuration toConf,
Configuration  dirConf,
PA_Points edgePath
[private]
 

int PL_RRT_ClosedChain::ExtendJacobian Configuration fromConf,
Configuration toConf,
Configuration  dirConf,
PA_Points edgePath
[private]
 

Definition at line 286 of file PL_RRT_Constrained.cpp.

References AdjustConfiguration(), PA_Points::AppendPoint(), PA_Points::Clear(), PL_HasCollisionDetector::collisionDetector, DEF_INCREMENT, CJacobian::GetMatrix(), Matrixmxn::Inverse(), CD_Bool::IsInterfering(), jacobian, LEN_STEP_SIZE, m_frEndEffector, m_nDof, VectorN::Magnitude(), CJacobian::SetConfiguration(), CJacobian::SetInterestPoint(), and PL_PRM_ClosedChain::useOrientConstraint.

Referenced by Plan().

Here is the call graph for this function:

vertex PL_RRT_ClosedChain::FindClosestInTree Configuration conf  )  [private]
 

vertex PL_RRT_ClosedChain::FindClosestInTree Configuration conf  )  [private]
 

Definition at line 656 of file PL_RRT_Constrained.cpp.

References VertexInfoInTree::conf, Distance(), and m_vertices.

Referenced by ConnectToGoal(), ConnectToGoal2(), and Plan().

Here is the call graph for this function:

Configuration& PL_RRT_ClosedChain::GetConfigurationFromTree vertex  vert  )  [private]
 

Configuration & PL_RRT_ClosedChain::GetConfigurationFromTree vertex  vert  )  [private]
 

Definition at line 683 of file PL_RRT_Constrained.cpp.

References VertexInfoInTree::conf.

Referenced by ConnectToGoal(), ConnectToGoal2(), ConnectToGoalJacobian(), and Plan().

PA_Points& PL_RRT_ClosedChain::GetPathFromTree vertex  vert  )  [private]
 

PA_Points & PL_RRT_ClosedChain::GetPathFromTree vertex  vert  )  [private]
 

Definition at line 701 of file PL_RRT_Constrained.cpp.

References VertexInfoInTree::edge.

Referenced by RetrievePath().

void PL_RRT_ClosedChain::InsertPath PA_Points target,
PA_Points source
[private]
 

void PL_RRT_ClosedChain::InsertPath PA_Points target,
PA_Points source
[private]
 

Definition at line 734 of file PL_RRT_Constrained.cpp.

References PA_Points::Size().

Referenced by RetrievePath().

Here is the call graph for this function:

void PL_RRT_ClosedChain::OutputStatistics  )  [private]
 

Definition at line 568 of file PL_RRT_ClosedChain.cpp.

References PL_HasCollisionDetector::collisionDetector, CD_Linear::GetNumberOfTimesCalledLinear(), CD_Bool::GetNumberOfTimesCalledPoint(), PlannerBase::GetTimeElapsedInSeconds(), Log(), m_vertices, PL_Boolean_Output::path, and PA_Points::Size().

Here is the call graph for this function:

virtual bool PL_RRT_ClosedChain::Plan  )  [virtual]
 

Reimplemented from PL_PRM_ClosedChain.

bool PL_RRT_ClosedChain::Plan  )  [virtual]
 

Reimplemented from PL_PRM_ClosedChain.

Definition at line 161 of file PL_RRT_Constrained.cpp.

References AddNodeInTree(), PA_Points::Clear(), ConnectToGoal(), ConnectToGoalJacobian(), CreateTree(), ERR_FAIL, ERR_SUCCESS, ERR_TIMEOUT, Extend(), ExtendJacobian(), FindClosestInTree(), PL_PRM_ClosedChain::GenerateRandomConfig(), GetConfigurationFromTree(), PlannerBase::GetStartConfig(), PlannerBase::HasTimeLimitExpired(), jacobian, m_bUseJacobian, m_goalVert, m_pRobot, PL_Boolean_Output::path, RetrievePath(), and PlannerBase::StartTimer().

Here is the call graph for this function:

void PL_RRT_ClosedChain::RetrievePath vertex &  goalVert  )  [private]
 

void PL_RRT_ClosedChain::RetrievePath vertex &  goalVert  )  [private]
 

Definition at line 708 of file PL_RRT_Constrained.cpp.

References GetPathFromTree(), InsertPath(), and PL_Boolean_Output::path.

Referenced by Plan().

Here is the call graph for this function:

void PL_RRT_ClosedChain::SetCollisionDetector CD_BasicStyle collisionDetector  )  [virtual]
 

Reimplemented from PL_PRM_ClosedChain.

void PL_RRT_ClosedChain::SetCollisionDetector CD_BasicStyle collisionDetector  )  [virtual]
 

Reimplemented from PL_PRM_ClosedChain.

Definition at line 56 of file PL_RRT_Constrained.cpp.

References PL_HasCollisionDetector::collisionDetector, CD_BasicStyle::DeactivateFrames(), CD_BasicStyle::DOF(), CD_BasicStyle::GetFrameManager(), FrameManager::GetFrameRef(), CD_BasicStyle::GetRobot(), R_OpenChain::GetToolFrame(), Matrix4x4::Identity(), jacobian, m_frEndEffector, m_nDof, m_nToolFrame, m_pRobot, and PL_PRM::SetCollisionDetector().

Referenced by ServerBase::RefreshPlanner().

Here is the call graph for this function:

bool PL_RRT_ClosedChain::TestAPDecompConnection Configuration testStartConf,
Configuration testGoalConf,
PA_Points localPath
[private]
 

Definition at line 627 of file PL_RRT_ClosedChain.cpp.

References ALG_CLOSEDCHAIN_APD, PA_Points::AppendPoint(), PA_Points::Clear(), PL_PRM_ClosedChain::edgeFrag, PL_PRM_ClosedAPDecomp::IsInterfering(), and PL_PRM_ClosedChain::m_nAlgorithm.

Here is the call graph for this function:

bool PL_RRT_ClosedChain::TestJacobianConnection Configuration testStartConf,
Configuration testGoalConf,
PA_Points localPath
[private]
 

bool PL_RRT_ClosedChain::TestJacobianConnection Configuration testStartConf,
Configuration testGoalConf,
PA_Points localPath
[private]
 

Definition at line 752 of file PL_RRT_Constrained.cpp.

References AdjustConfiguration(), PA_Points::AppendPoint(), PA_Points::Clear(), PL_HasCollisionDetector::collisionDetector, DEF_DIST_TOLERANCE, DEF_INCREMENT, Configuration::DOF(), CJacobian::GetMatrix(), Matrixmxn::Inverse(), CD_Bool::IsInterfering(), jacobian, m_frEndEffector, m_nDof, VectorN::Magnitude(), CJacobian::SetConfiguration(), CJacobian::SetInterestPoint(), and PL_PRM_ClosedChain::useOrientConstraint.

Here is the call graph for this function:

bool PL_RRT_ClosedChain::TestRGDConnection Configuration testStartConf,
Configuration testGoalConf,
PA_Points localPath
[private]
 

bool PL_RRT_ClosedChain::TestRGDConnection Configuration testStartConf,
Configuration testGoalConf,
PA_Points localPath
[private]
 

Definition at line 816 of file PL_RRT_Constrained.cpp.

References PA_Points::AppendPoint(), DEF_DIST_TOLERANCE, Distance(), PL_GraphBase::IsInterfering(), PL_PRM_ClosedChain::MakeItClosed(), MAX_ITERATION, MAX_RETRY, and MAX_RETRY2.

Here is the call graph for this function:


Member Data Documentation

CJacobian* PL_RRT_ClosedChain::jacobian [private]
 

Reimplemented from PL_PRM_ClosedJacobian.

Definition at line 29 of file PL_RRT_Constrained.h.

Referenced by AdjustConfiguration(), CompareJacobianAndRGD(), CompareLocalPlanners(), ConnectToGoalJacobian(), ExtendJacobian(), PL_RRT_ClosedChain(), Plan(), SetCollisionDetector(), TestJacobianConnection(), and ~PL_RRT_ClosedChain().

bool PL_RRT_ClosedChain::m_bUseJacobian
 

Definition at line 23 of file PL_RRT_Constrained.h.

Referenced by PL_RRT_ClosedChain(), and Plan().

Frame PL_RRT_ClosedChain::m_frEndEffector [private]
 

Reimplemented from PL_PRM_ClosedJacobian.

Definition at line 28 of file PL_RRT_Constrained.h.

Referenced by AdjustConfiguration(), ConnectToGoalJacobian(), ExtendJacobian(), SetCollisionDetector(), and TestJacobianConnection().

vertex PL_RRT_ClosedChain::m_goalVert [protected]
 

Definition at line 18 of file PL_RRT_Constrained.h.

Referenced by ConnectToGoal(), ConnectToGoal2(), PL_RRT_ClosedChain(), and Plan().

int PL_RRT_ClosedChain::m_nDof [private]
 

Reimplemented from PL_PRM_ClosedJacobian.

Definition at line 26 of file PL_RRT_Constrained.h.

Referenced by AdjustConfiguration(), ConnectToGoalJacobian(), ExtendJacobian(), SetCollisionDetector(), and TestJacobianConnection().

int PL_RRT_ClosedChain::m_nToolFrame [private]
 

Reimplemented from PL_PRM_ClosedJacobian.

Definition at line 27 of file PL_RRT_Constrained.h.

Referenced by SetCollisionDetector().

R_OpenChain* PL_RRT_ClosedChain::m_pRobot [private]
 

Reimplemented from PL_PRM_ClosedJacobian.

Definition at line 25 of file PL_RRT_Constrained.h.

Referenced by CompareJacobianAndRGD(), CompareLocalPlanners(), Plan(), and SetCollisionDetector().

vertex PL_RRT_ClosedChain::m_rootVert [protected]
 

Definition at line 19 of file PL_RRT_Constrained.h.

Referenced by CreateTree(), PL_RRT_ClosedChain(), and ~PL_RRT_ClosedChain().

dynamic_trees PL_RRT_ClosedChain::m_trajTree [private]
 

Definition at line 33 of file PL_RRT_Constrained.h.

Referenced by DrawExplicit().

std::vector<vertex> PL_RRT_ClosedChain::m_vertices [private]
 

Definition at line 24 of file PL_RRT_ClosedChain.h.

std::vector<vertex> PL_RRT_ClosedChain::m_vertices [private]
 

Definition at line 34 of file PL_RRT_Constrained.h.

Referenced by AddNodeInTree(), ClearTree(), CreateTree(), DrawExplicit(), FindClosestInTree(), and OutputStatistics().


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