Simox
2.3.74.0
|
An efficient implementation of the grasp wrench space algorithm for grasp quality evaluation. More...
Static Public Member Functions | |
static std::vector< VirtualRobot::MathTools::ContactPoint > | createWrenchPoints (std::vector< VirtualRobot::MathTools::ContactPoint > &points, const Eigen::Vector3f ¢erOfModel, float objectLengthMM) |
static float | minOffset (VirtualRobot::MathTools::ConvexHull6DPtr ch) |
Goes through all facets of convex hull and searches the minimum distance to it's center. More... | |
Protected Member Functions | |
VirtualRobot::MathTools::ConvexHull6DPtr | calculateConvexHull (std::vector< VirtualRobot::MathTools::ContactPoint > &points) |
VirtualRobot::MathTools::ContactPoint | calculateHullCenter (VirtualRobot::MathTools::ConvexHull6DPtr hull) |
float | minDistanceToGWSHull (VirtualRobot::MathTools::ContactPoint &point) |
bool | isOriginInGWSHull () |
void | printContacts (std::vector< VirtualRobot::MathTools::ContactPoint > &points) |
Protected Member Functions inherited from GraspStudio::GraspQualityMeasure | |
bool | sampleObjectPoints (int nMaxFaces=400) |
Static Protected Member Functions | |
static Eigen::Vector3f | crossProductPosNormalInv (const VirtualRobot::MathTools::ContactPoint &v1) |
Protected Attributes | |
bool | OWSCalculated |
bool | GWSCalculated |
VirtualRobot::MathTools::ConvexHull6DPtr | convexHullOWS |
VirtualRobot::MathTools::ConvexHull6DPtr | convexHullGWS |
VirtualRobot::MathTools::ContactPoint | convexHullCenterGWS |
VirtualRobot::MathTools::ContactPoint | convexHullCenterOWS |
float | minOffsetOWS |
float | volumeOWS |
Protected Attributes inherited from GraspStudio::GraspQualityMeasure | |
float | unitForce |
float | frictionCoeff |
int | frictionConeSamples |
ContactConeGeneratorPtr | coneGenerator |
std::vector< VirtualRobot::MathTools::ContactPoint > | sampledObjectPoints |
std::vector< VirtualRobot::MathTools::ContactPoint > | sampledObjectPointsM |
Protected Attributes inherited from VirtualRobot::BasicGraspQualityMeasure | |
Eigen::Vector3f | centerOfModel |
float | objectLength |
float | graspQuality |
int | maxContacts |
VirtualRobot::SceneObjectPtr | object |
std::vector< VirtualRobot::MathTools::ContactPoint > | contactPoints |
std::vector< VirtualRobot::MathTools::ContactPoint > | contactPointsM |
bool | verbose |
An efficient implementation of the grasp wrench space algorithm for grasp quality evaluation.
the grasp wrench space algorithm is widely used in the context of grasp planning. By analyzing the grasp wrench space (GWS) of a given set of contact points, a quality score of a grasp can be evaluated. In this implementation, additionally an object specific wrench space (WS) is calculated, which approximatevly represents a "perfect" grasp. This object is used to normalize the quality score.
GraspStudio::GraspQualityMeasureWrenchSpace::GraspQualityMeasureWrenchSpace | ( | VirtualRobot::SceneObjectPtr | object, |
float | unitForce = 1.0f , |
||
float | frictionConeCoeff = 0.35f , |
||
int | frictionConeSamples = 8 |
||
) |
|
overridedefault |
|
protected |
|
overridevirtual |
Compute the grasp quality for the given contact points.
Reimplemented from VirtualRobot::BasicGraspQualityMeasure.
void GraspStudio::GraspQualityMeasureWrenchSpace::calculateGWS | ( | ) |
|
protected |
|
overridevirtual |
This method is used to compute a reference value that describes a perfect grasp.
Implements GraspStudio::GraspQualityMeasure.
void GraspStudio::GraspQualityMeasureWrenchSpace::calculateOWS | ( | int | samplePoints = 300 | ) |
|
static |
|
staticprotected |
|
inline |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
overridevirtual |
Returns f_max_gws / f_max_OWS with f_max_gws = max distance of GWS hull center to one of its facets with f_max_ows = max distance of OWS hull center to one of its facets -> also known as "epsilon" quality == radius of larges enclosing 6D ball
Reimplemented from VirtualRobot::BasicGraspQualityMeasure.
|
overridevirtual |
Returns description of this object.
Reimplemented from GraspStudio::GraspQualityMeasure.
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
Volume grasp quality ratio of GWS volume / OWS volume -> also known as "v" quality
|
inline |
|
overridevirtual |
Indicate whether the grasp is in force closure.
Implements GraspStudio::GraspQualityMeasure.
|
protected |
|
protected |
|
static |
Goes through all facets of convex hull and searches the minimum distance to it's center.
|
inline |
|
virtual |
The OWS should not change for an object, so if you have the data calculated once, you can set them here (The values for the OWS can change slightly, since the facets used for generation of the OWS are sampled randomly, in case there are more than 400 of them)
|
protected |
|
overridevirtual |
setup contact information the contact points are normalized by subtracting the COM the contact normals are normalize to unit length
Reimplemented from VirtualRobot::BasicGraspQualityMeasure.
|
overridevirtual |
setup contact information the contact points are normalized by subtracting the COM the contact normals are normalize to unit length
Reimplemented from VirtualRobot::BasicGraspQualityMeasure.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |