GraspClusteringTask Class Reference

Selects the representative grasps (i.e. cluster centers) from a list of grasps. More...

#include <graspClusteringTask.h>

Inheritance diagram for GraspClusteringTask:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 GraspClusteringTask (TaskDispatcher *disp, db_planner::DatabaseManager *mgr, db_planner::TaskRecord rec)
 Just a stub for now.
virtual void start ()
 Actually does all the work.
 ~GraspClusteringTask ()
 Nothing to do here.

Private Member Functions

bool clusterGrasps (const GraspitDBGrasp *g1, const GraspitDBGrasp *g2)
 Returns true if two grasps are close enough to be clustered together.

Private Attributes

db_planner::PlanningTaskRecord mPlanningTask
 The record of the actual planning task.

Detailed Description

Selects the representative grasps (i.e. cluster centers) from a list of grasps.

Works by selecting the best grasp from a list, then setting it as the representative grasp for all other grasps that are close to it. Then does this iteratively on the remaining grasps.

Two grasps are deemed close based on the position and orientation of they define plus the gripper angle.

Will set the "cluster_rep" property of ALL grasps in the list based on what it thinks, i.e. mark it "true" for all those it thinks should be cluster reps and "false" for all others.

Definition at line 45 of file graspClusteringTask.h.


Constructor & Destructor Documentation

GraspClusteringTask::GraspClusteringTask ( TaskDispatcher disp,
db_planner::DatabaseManager mgr,
db_planner::TaskRecord  rec 
)

Just a stub for now.

Definition at line 41 of file graspClusteringTask.cpp.

GraspClusteringTask::~GraspClusteringTask (  )  [inline]

Nothing to do here.

Definition at line 57 of file graspClusteringTask.h.


Member Function Documentation

bool GraspClusteringTask::clusterGrasps ( const GraspitDBGrasp g1,
const GraspitDBGrasp g2 
) [private]

Returns true if two grasps are close enough to be clustered together.

Only looks at the relative distance between gripper positions for the final grasps. Returns true if both of the follosing are true:

  • translation between gripper locations is less than DISTANCE_THRESHOLD
  • rotation angles between gripper locations is less than ANGULAR_THRESHOLD.

Both thresholds are hard-coded in here.

Definition at line 163 of file graspClusteringTask.cpp.

void GraspClusteringTask::start (  )  [virtual]

Actually does all the work.

Will also load the hand, even though the hand is not explicitly used. It is needed for the grasp allocator, plus it might be needed for retrieving DOF values, for example if the grasp is stored in the database as eigengrasp values.

Implements Task.

Definition at line 51 of file graspClusteringTask.cpp.


Member Data Documentation

The record of the actual planning task.

Definition at line 48 of file graspClusteringTask.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


graspit
Author(s):
autogenerated on Wed Jan 25 11:00:21 2012