Closed pattacini closed 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?
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:
iolReachingCalibration
is responsible for storing the maps of offsets corrections. Also in this case, these corrections will be tweaked manually (no kinesthetic teaching is available on R1 yet).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?
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.
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):
grasp_trsfm_right
and grasp_trsfm_left
, expressed as a vector with 3 translation and 4 axis/angle representation parameters).grasp_bounding_box
, expressed with 6 components which are the min and max boundaries for each dimension xyz).planar_obstacle
, expressed with 4 parameters of a plane equation). Note that this parameter is currently also overwritten online according to the table height.obstacle_safety_distance
, one scalar value) that should be met between the plane and the grasper bounding box.Other parameters that are present in the code but not yet configurable via the file (it can be easily added):
finger_length
, used to check if the grasping is feasible with respect to the superquadric width (it could be renamed with a more generic name like grasper_length or something similar)palm_width
, used to check if the grasping is feasible with respect to the superquadric lengthMaybe 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.
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.
I think we're done with this, right? Shall we close it?
Yes, the configs are in place. What kind of parameter to add inside is probably to be debated further though.
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.