Simox  2.3.74.0
Saba::GraspIkRrt Class Reference
Inheritance diagram for Saba::GraspIkRrt:
Saba::BiRrt Saba::Rrt Saba::MotionPlanner

Public Member Functions

EIGEN_MAKE_ALIGNED_OPERATOR_NEW GraspIkRrt (CSpaceSampledPtr cspace, VirtualRobot::ManipulationObjectPtr object, VirtualRobot::AdvancedIKSolverPtr ikSolver, VirtualRobot::GraspSetPtr graspSet, float probabSampleGoal=0.1f)
 
 ~GraspIkRrt () override
 
bool plan (bool bQuiet=false) override
 
void printConfig (bool printOnlyParams=false) override
 
bool setGoal (const Eigen::VectorXf &c) override
 This is not allowed here, since we sample goal configurations during planning: If called an exception is thrown. More...
 
void reset () override
 reset the planner More...
 
- Public Member Functions inherited from Saba::BiRrt
EIGEN_MAKE_ALIGNED_OPERATOR_NEW BiRrt (CSpacePtr cspace, RrtMethod modeA=eConnect, RrtMethod modeB=eConnect, float samplingSize=-1)
 
 ~BiRrt () override
 
bool setStart (const Eigen::VectorXf &c) override
 set start configuration More...
 
CSpaceTreePtr getTree2 ()
 
- Public Member Functions inherited from Saba::Rrt
 Rrt (CSpacePtr cspace, RrtMethod mode=eConnect, float probabilityExtendToGoal=0.1f, float samplingSize=-1)
 
 ~Rrt () override
 
bool plan (bool bQuiet=false) override
 
void printConfig (bool printOnlyParams=false) override
 
void reset () override
 reset the planner More...
 
bool setStart (const Eigen::VectorXf &c) override
 set start configuration More...
 
bool setGoal (const Eigen::VectorXf &c) override
 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...
 
void setPlanningTimeout (float timeoutMs)
 

Protected Member Functions

bool doPlanningCycle ()
 
bool searchNewGoal ()
 
bool checkGoalConfig (Eigen::VectorXf &config)
 
bool addIKSolution (Eigen::VectorXf &config, VirtualRobot::GraspPtr grasp)
 
- Protected Member Functions inherited from Saba::BiRrt
bool createSolution (bool bQuiet=false) override
 create the solution More...
 
- Protected Member Functions inherited from Saba::Rrt
bool createSolution (bool bQuiet=false) override
 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

float sampleGoalProbab
 
VirtualRobot::ManipulationObjectPtr object
 
VirtualRobot::AdvancedIKSolverPtr ikSolver
 
VirtualRobot::GraspSetPtr graspSet
 
VirtualRobot::RobotNodeSetPtr rns
 
VirtualRobot::GraspSetPtr graspSetWorking
 
bool found
 Indicates if a solution was found. More...
 
std::map< VirtualRobot::GraspPtr, Saba::CSpaceNodePtrgraspNodeMapping
 
std::vector< Eigen::VectorXf > ikSolutions
 
- Protected Attributes inherited from Saba::BiRrt
CSpaceTreePtr tree2
 the second tree More...
 
int lastAddedID2
 ID of last added node. More...
 
RrtMethod rrtMode2
 
- Protected Attributes inherited from Saba::Rrt
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
 
float planningTimeout
 Planning time in milliseconds. More...
 

Additional Inherited Members

- Public Types inherited from Saba::Rrt
enum  RrtMethod { eExtend, eConnect, eConnectCompletePath }
 
enum  ExtensionResult { eError, eFailed, eSuccess, ePartial }
 

Detailed Description

The GraspIkRrt planner combines the search for a feasible grasp and an IK solution with the search for a collision-free motion.

Constructor & Destructor Documentation

◆ GraspIkRrt()

Saba::GraspIkRrt::GraspIkRrt ( CSpaceSampledPtr  cspace,
VirtualRobot::ManipulationObjectPtr  object,
VirtualRobot::AdvancedIKSolverPtr  ikSolver,
VirtualRobot::GraspSetPtr  graspSet,
float  probabSampleGoal = 0.1f 
)

Constructor

Parameters
cspaceThe C-Space that should be used for collision detection
objectThe object to be grasped
ikSolverThe ikSolver that should be used
graspSetThe grasps, defining potential goal configurations.
probabSampleGoalProbability with which a goal config is created during planning loop.

◆ ~GraspIkRrt()

Saba::GraspIkRrt::~GraspIkRrt ( )
overridedefault

Member Function Documentation

◆ addIKSolution()

bool Saba::GraspIkRrt::addIKSolution ( Eigen::VectorXf &  config,
VirtualRobot::GraspPtr  grasp 
)
protected

◆ checkGoalConfig()

bool Saba::GraspIkRrt::checkGoalConfig ( Eigen::VectorXf &  config)
protected

◆ doPlanningCycle()

bool Saba::GraspIkRrt::doPlanningCycle ( )
protected

◆ plan()

bool Saba::GraspIkRrt::plan ( bool  bQuiet = false)
overridevirtual

do the planning (blocking method)

Returns
true if solution was found, otherwise false

Reimplemented from Saba::BiRrt.

◆ printConfig()

void Saba::GraspIkRrt::printConfig ( bool  printOnlyParams = false)
overridevirtual

Print setup of planner.

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

Reimplemented from Saba::BiRrt.

◆ reset()

void Saba::GraspIkRrt::reset ( )
overridevirtual

reset the planner

Reimplemented from Saba::BiRrt.

◆ searchNewGoal()

bool Saba::GraspIkRrt::searchNewGoal ( )
protected

◆ setGoal()

bool Saba::GraspIkRrt::setGoal ( const Eigen::VectorXf &  c)
overridevirtual

This is not allowed here, since we sample goal configurations during planning: If called an exception is thrown.

Reimplemented from Saba::BiRrt.

Field Documentation

◆ found

bool Saba::GraspIkRrt::found
protected

Indicates if a solution was found.

◆ graspNodeMapping

std::map< VirtualRobot::GraspPtr, Saba::CSpaceNodePtr > Saba::GraspIkRrt::graspNodeMapping
protected

◆ graspSet

VirtualRobot::GraspSetPtr Saba::GraspIkRrt::graspSet
protected

◆ graspSetWorking

VirtualRobot::GraspSetPtr Saba::GraspIkRrt::graspSetWorking
protected

◆ ikSolutions

std::vector< Eigen::VectorXf > Saba::GraspIkRrt::ikSolutions
protected

◆ ikSolver

VirtualRobot::AdvancedIKSolverPtr Saba::GraspIkRrt::ikSolver
protected

◆ object

VirtualRobot::ManipulationObjectPtr Saba::GraspIkRrt::object
protected

◆ rns

VirtualRobot::RobotNodeSetPtr Saba::GraspIkRrt::rns
protected

◆ sampleGoalProbab

float Saba::GraspIkRrt::sampleGoalProbab
protected