how to make pr2 grasping more robust
Hello, I am using pr2_pick_and_place_manager explained here, in order to pick up objects. I'm calling it from code.
Object detection works very robustly, and I am using objects from the household database. However, grasping often returns UNFEASIBLE - which means it couldn't find a feasible grasp for the object. Sometimes grasping works if the object is centered on a table in front of the PR2, but not always.
Do you have any suggestions about how to reduce the number of times that no feasible grasp is found, so that the robot could pick more robustly the objects?
Turning the robot towards the table? Moving the arm closer to the object before attempting a grasp?
EDIT: This part of the output:
[INFO] 1311008555.087295: tabletop detection reports success
[INFO] 1311008602.329595: detection finished, finding bounding boxes for
clusters and sorting objects
[INFO] 1311008602.330844: object 0, red: recognized object with id 18724
[INFO] 1311009564.034749: attempting to grasp an object, whicharm = 0
sending object collision name of: graspable_object_0
[INFO] 1311008668.999249: grasp result: UNFEASIBLE
[INFO] 1311008668.999630: no feasible grasp for this object with the r arm
[INFO] 1311008668.999930: pick-up failed.
The object marker seemed to be in the right place:
EDIT2: I copied the grasp goal and result into this text file http://web.mit.edu/mitko/Public/rosde...
EDIT3: Indeed if I try a different object there I see a bunch of grasps evaluated for feasibility:
UPDATE: When I send the grasp goal to
rosservice call /objects_database_node/database_grasp_planning
I get
grasps: []
error_code:
value: 0
Value 0 corresponds to success according to http://www.ros.org/doc/api/object_man... so I guess for some reason the grasp planner returns no grasps. Is there a way check why?