For all the grasps of the given object, computes and stores their compliant equivalents. More...
#include <compliantGraspCopyTask.h>
Public Member Functions | |
CompliantGraspCopyTask (TaskDispatcher *disp, db_planner::DatabaseManager *mgr, db_planner::TaskRecord rec) | |
Just a stub for now. | |
virtual void | start () |
Actually does all the work. | |
~CompliantGraspCopyTask () | |
Nothing to do here. | |
Private Member Functions | |
bool | checkStoreGrasp (const db_planner::Grasp *original) |
Stores a new grasp in the database as a compliant copy of the original. | |
bool | compliantCopy (const db_planner::Grasp *grasp, Pr2Gripper2010::ComplianceType compliance) |
Does all the compliant copy work for one particular grasp. | |
bool | searchSimilarity (const transf &t1, const transf &t2) |
Same thing, but using the distance measure also used in grasp planning. | |
bool | similarity (const transf &t1, const transf &t2) |
Returns true if two transforms are "close" to each other. |
For all the grasps of the given object, computes and stores their compliant equivalents.
A compliant equivalent grasp of a given grasp is obtained by doing a "compliant open" (meaning opening around one of the fingers).
We are inheriting from the PreGraspCheckTask as this shares some of the functionality,
Definition at line 42 of file compliantGraspCopyTask.h.
CompliantGraspCopyTask::CompliantGraspCopyTask | ( | TaskDispatcher * | disp, | |
db_planner::DatabaseManager * | mgr, | |||
db_planner::TaskRecord | rec | |||
) |
Just a stub for now.
Definition at line 40 of file compliantGraspCopyTask.cpp.
CompliantGraspCopyTask::~CompliantGraspCopyTask | ( | ) | [inline] |
Nothing to do here.
Definition at line 61 of file compliantGraspCopyTask.h.
bool CompliantGraspCopyTask::checkStoreGrasp | ( | const db_planner::Grasp * | original | ) | [private] |
Stores a new grasp in the database as a compliant copy of the original.
Definition at line 155 of file compliantGraspCopyTask.cpp.
bool CompliantGraspCopyTask::compliantCopy | ( | const db_planner::Grasp * | grasp, | |
Pr2Gripper2010::ComplianceType | compliance | |||
) | [private] |
Does all the compliant copy work for one particular grasp.
Definition at line 103 of file compliantGraspCopyTask.cpp.
Same thing, but using the distance measure also used in grasp planning.
This is copied over from the distance function of the SearchState so that we use the same metric as when doing the actual grasp planning.
Definition at line 244 of file compliantGraspCopyTask.cpp.
Returns true if two transforms are "close" to each other.
This uses a slightly different similarity metric, more in tune with what we use for clustering but different from the one used during actual grasp planning, which will lead to inconsistencies in the sampling. This *should* not create real problems though.
The angular threshold does not really play any role here as compliant copies *should* not have any angular differences.
Definition at line 220 of file compliantGraspCopyTask.cpp.
void CompliantGraspCopyTask::start | ( | ) | [virtual] |
Actually does all the work.
Reimplemented from PreGraspCheckTask.
Definition at line 46 of file compliantGraspCopyTask.cpp.