robotology / cardinal-points-grasp

Simple superquadric-based grasping pose generator for iCub
GNU General Public License v2.0
5 stars 4 forks source link

Configuration files for robot-dependent grasp parameters #13

Closed pattacini closed 5 years ago

pattacini commented 5 years ago

It would be convenient to group up robot-dependent parameters used to tune the grasp in a dedicated configuration file.

This way, we might have different configuration files for different robots.

fbottarel commented 5 years ago

Which parameters do you think it would make sense to include in such config file? At this point, anything robot-specific would make sense to fit in there. For instance, does R1 have methods for calibrating the height of the table or to correct the kinematic offsets like the iCub IOL framework has?

pattacini commented 5 years ago

As I said f2f, I'm referring to parameters such as approach distances, hands tilt wrt the object, proportions of the objects wrt hands' sizes...

Calibration on the table plus offsets corrections are made outside of this module:

fbottarel commented 5 years ago

The parameters that need to be explicitly referred in a config file are the following:

and need to be defined robot-by-robot. I've talked with @jchevrie regarding his pull request on for this module, and it turned out he already addressed the grasp refinement transform. Moreover, he had the intuition to parametrize the hand as an enclosing 3D box instead of single parameters, to detect collisions with the table plane. Such dimensions could be related to the palm width and finger length.

As you've said, there is no iolReachingCalibration in R1, therefore we can't really fix the pose with that. Should we just bypass the pose fixing in the code or just design a dummy iolReachingCalibration for R1 to refer to?

pattacini commented 5 years ago

iolReachingCalibration can be still employed in the context of R1. The difference is that the maps will be filled in manually instead of relying on a proper kinesthetic calibration.

Don't worry, keep on referring to iolReachingCalibration, which will return the same input if no map is present.

jchevrie commented 5 years ago

Yes I already started to include some robot-specific parameters tunable via a configuration file.

The following parameters can be tuned (mainly related to grasping pose feasibility, not to grasping action feasibility):

Other parameters that are present in the code but not yet configurable via the file (it can be easily added):

Maybe these parameters should remain separate from the bounding box, since they give a finer representation of the grasping capabilities than the bounding box. We could also add a third one (grasp_size?) for the missing dimension, which represent the maximal distance achievable between the fingers when the grasper is fully open.

fbottarel commented 5 years ago

We could also add a third one (grasp_size?) for the missing dimension, which represent the maximal distance achievable between the fingers when the grasper is fully open.

This parameter exists already, even if it's calculated based on the finger length. ok1 = candidate_pose->pose_ax_size(0) * 2 < 1.5 * finger_length; A finer representation of the gripper (as @jchevrie said) with more parameters would be useful for better tuning, but I think for the time being we should focus on getting the basic grasp functionalities on R1.

pattacini commented 5 years ago

I think we're done with this, right? Shall we close it?

fbottarel commented 5 years ago

Yes, the configs are in place. What kind of parameter to add inside is probably to be debated further though.