Grasping script fails with 20 DOF robotic hand

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Grasping script fails with 20 DOF robotic hand

Farhan
left_mpl_arm.xml
left_mpl_wrist.xml

Hi Rosen,

I work at the JHU Applied Physics Lab, and we're trying to implement the OpenRave grasp planner for our highly dexterous 20 DOF hand written in the OpenRave XML format.

We are trying to run one of the grasp scripts with our hand. We've tried multiple variations of "openrave.py --database grasping --robot=my.robot.xml --manipulatordirection="0 1 0", but to no avail. (the other graspplanner scripts in OpenRave face similar issues with this hand)

Part of error message:
grasp 57/1104
[kinbody.cpp:1275] dof 2 value is not in limits 5.100000e-02<0.000000e+00
[kinbody.cpp:1275] dof 2 value is not in limits 1.000000e-01<0.000000e+00
[kinbody.cpp:1275] dof 2 value is not in limits 1.000000e-01<0.000000e+00
[kinbody.cpp:1275] dof 2 value is not in limits 1.000000e-01<0.000000e+00
[kinbody.cpp:1275] dof 6 value is not in limits 6.300000e-02<0.000000e+00
Grasp Failed:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/databases/grasping.py", line 471, in consumer
    contacts,finalconfig,mindist,volume = left_mpl_arm.xmlleft_mpl_wrist.xmlself.testGrasp(grasp=grasp,graspingnoise=graspingnoise,translate=True,forceclosure=forceclosure,forceclosurethreshold=forceclosurethreshold)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/databases/grasping.py", line 668, in testGrasp
    contacts,finalconfig,mindist,volume = self.runGrasp(graspingnoise=0,**kwargs)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/databases/grasping.py", line 706, in runGrasp
    return self.grasper.Grasp(direction=grasp[self.graspindices.get('igraspdir')], roll=grasp[self.graspindices.get('igrasproll')], position=grasp[self.graspindices.get('igrasppos')], standoff=grasp[self.graspindices.get('igraspstandoff')], manipulatordirection=grasp[self.graspindices.get('imanipulatordirection')], target=self.target,graspingnoise = graspingnoise, forceclosure=forceclosure, execute=False, outputfinal=True,translationstepmult=translationstepmult,finestep=finestep)
  File "/usr/local/lib/python2.7/dist-packages/openravepy/_openravepy_0_9/interfaces/Grasper.py", line 76, in Grasp
    raise planning_error('Grasp failed')
planning_error: openrave planning_error: 'Grasp failed'


*I've attached the .robot.xml and .kinbody.xml files for the hand.

Thanks for your help!
Reply | Threaded
Open this post in threaded view
|

Re: Grasping script fails with 20 DOF robotic hand

Farhan
*22 DOF hand.
Reply | Threaded
Open this post in threaded view
|

Re: Grasping script fails with 20 DOF robotic hand

Farhan
In reply to this post by Farhan
what am I missing in my robot definition that's causing this error?

I usually get the above error after this:
    gmodel = openravepy.databases.grasping.GraspingModel(robot,target)
    if not gmodel.load():
        gmodel.autogenerate()

The third line will cause the grasp fail errors above. It starts with DOF limit errors. I suspected that this is happening because of the orientation of the hand, but changing that didn't help my cause.

What do you think I should do?