Re: OpenRave TaskManipulation

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

Re: OpenRave TaskManipulation

Rosen Diankov
Administrator
hi jonas,

This is an excellent question, so i am cc'ing the users list.

The first step is to generate a grasp set with your robot and target
using the grasping database generator:

http://openrave.programmingvision.com/ordocs/en/openravepy-html/openravepy.databases.grasping-module.html

Once you have your grasp set and are satisfied with it (you can view
it using --show), then create a scene with your robot and these
objects in random places.

After that just execute:

openrave.py --example graspplanning --scene=mynewscene.env.xml

And you should have grasp planning ;0)
This simple example does not do mobile manipulation, so keep that in mind.

Also, the grasp planning example is most effective when your robot arm
is 6DOF or more. Arms like the katana arm have 5DOF and are **very
difficult** to work with using IK. Nevertheless, we did create a small
tutorial for them here:

http://openrave.programmingvision.com/index.php/Tutorials:Katana_planning/ja

As for explaining the magic behind taskmanipulation's graspplanning
command, please give me a month to properly document it. Roughly what
it does is:

- pick a grasp such that the destination is also checked and there's an offset
- try to move the arm safely to get the desired preshape
- actually plan towards the offset grasp

rosen,

2010/8/1 Jonas Brich <[hidden email]>:

>  Hello Diankov,
>
> I am currently developing the OpenRave component for our research Group.
> The basic stuff is working quite well. But I found something interesting
> in OpenRave which would fit our purpose really well, it is the
> "TaskManipulation". With this it is possible to pick an object with the
> grasper planner and then move it to another position while avoiding
> obstacles.
> I looked into the Plugin and had a brief look into the Example which is
> provided but I had my difficulties understanding correctly what is going
> on and what information is needed for this task to be working.
> I know you need the object to grasp, then the Grasping Sets? (How can I
> generate them?) and the TaskManipulation problem. But this problem has a
> couple of functions with a lot of parameters where I am not quite sure
> what all of those mean.
>
> In short, we want to grab an object (normally pre-known which shape) and
> then put it safely somewhere else. At the moment we are calculating the
> offset to the object and then trying to grasp it. So we are just
> planning the path to the object or a point in the vicinity of the
> object. This results in not the best grasps and lowering is not an
> option right now with this approach.
>
> I hope I did understand the description of the TaskManipulation problem
> correctly, then if I did, it would solve our problems :)
>
> I would appreciate it if you could give me an example or hints what I
> need for this to work.
>
> Thanks in advance.
>
>
> Best regards
>
> Jonas
>
>

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users
Reply | Threaded
Open this post in threaded view
|

Re: OpenRave TaskManipulation

Rosen Diankov
Administrator
Hi Jonas,

I think the reason for not getting many grasp sets is because the
triangle mesh on the katana arm has been simplified to a point where
the two fingers are slightly asymmetric, this causes a whole world of
troubles. The file on openrave (r1706) was just updated to include
symmetric box padding (image attached), hopefully that should be
better.

As for the grasping python script. Keep in mind that it is much more
difficult to maintain two versions of the same code. Modifying one
means having to remember to change the other. A much better approach
would be to use grasping.py directly from c++ using boost python's
embedded python execution features. It is actually really simple:

http://www.boost.org/doc/libs/1_43_0/libs/python/doc/tutorial/doc/html/python/embedding.html

If you are just concerned with generating the grasps from c++, then
you can make things even simpler by calling 'openrave.py --database
grasping ...' as a shell argument. (this is how the ikfast problem
calls inversekinematics.py for the time being)

rosen,


2010/8/5 Jonas Brich <[hidden email]>:

>  Hi,
>
> finally Python is working as I mentioned. I am now tested the the python
> commands you sent me earlier. The computation of the Grasp Set worked
> really well. Obviously the Katana is limited and I got only 3 valid
> Grasp Sets. I am currently playing with the graspingnoise, maybe I get
> more with this. The next command, the "GraspPlanning" run for about 10
> min and it was not possible to grasp anything, I think it is because I
> calculated only 3 Grasps. But I have to say it looks really good :)
>
> I took a look into grasping.py which is the file for generating the
> Grasp Set. It contains all the logic for calculating the sets. And if I
> want to generate Grasp Sets with C++ I have to take this code and try to
> port it onto C++ or am I mistaken?
> For the "GraspPlanning" it would be the same I think. I would have to
> port the grasplanning.py file or are they C++ equivalents? I know from
> the plugin "grasper". This is the important plugin for C++ to call the
> Grasper. But the logic which is in grasping.py and graspplanning.py is
> nowhere in C++?
>
> If this logic is not available I think a simple way would definitely be
> to use python out of C++ but that I have to look if that is even possible.
>
>
> Best regards.
>
> Jonas
>
>
>
> On 01.08.2010 19:42, Rosen Diankov wrote:
>> yes this is all possible using C++, in fact the python stuff just
>> wraps the C++ functions
>> rosen,
>>
>> 2010/8/1 Jonas Brich <[hidden email]>:
>>>  Thanks for the fast answer,
>>>
>>> I will try this next week. So I got the basic idea right to build first
>>> the grasp sets and then let the "TaskManipulation" problem on it :).
>>>
>>> But I have one question, is this all possible over the C++ API, then my
>>> component uses this API. I suppose it would be difficult but if it would
>>> work in theory it would be nice.
>>>
>>> I will write you again if I have other problems or if it works
>>>
>>> Best regards
>>>
>>> Jonas
>>>
>>>
>>> On 01.08.2010 16:14, Rosen Diankov wrote:
>>>> hi jonas,
>>>>
>>>> This is an excellent question, so i am cc'ing the users list.
>>>>
>>>> The first step is to generate a grasp set with your robot and target
>>>> using the grasping database generator:
>>>>
>>>> http://openrave.programmingvision.com/ordocs/en/openravepy-html/openravepy.databases.grasping-module.html
>>>>
>>>> Once you have your grasp set and are satisfied with it (you can view
>>>> it using --show), then create a scene with your robot and these
>>>> objects in random places.
>>>>
>>>> After that just execute:
>>>>
>>>> openrave.py --example graspplanning --scene=mynewscene.env.xml
>>>>
>>>> And you should have grasp planning ;0)
>>>> This simple example does not do mobile manipulation, so keep that in mind.
>>>>
>>>> Also, the grasp planning example is most effective when your robot arm
>>>> is 6DOF or more. Arms like the katana arm have 5DOF and are **very
>>>> difficult** to work with using IK. Nevertheless, we did create a small
>>>> tutorial for them here:
>>>>
>>>> http://openrave.programmingvision.com/index.php/Tutorials:Katana_planning/ja
>>>>
>>>> As for explaining the magic behind taskmanipulation's graspplanning
>>>> command, please give me a month to properly document it. Roughly what
>>>> it does is:
>>>>
>>>> - pick a grasp such that the destination is also checked and there's an offset
>>>> - try to move the arm safely to get the desired preshape
>>>> - actually plan towards the offset grasp
>>>>
>>>> rosen,
>>>>
>>>> 2010/8/1 Jonas Brich <[hidden email]>:
>>>>>  Hello Diankov,
>>>>>
>>>>> I am currently developing the OpenRave component for our research Group.
>>>>> The basic stuff is working quite well. But I found something interesting
>>>>> in OpenRave which would fit our purpose really well, it is the
>>>>> "TaskManipulation". With this it is possible to pick an object with the
>>>>> grasper planner and then move it to another position while avoiding
>>>>> obstacles.
>>>>> I looked into the Plugin and had a brief look into the Example which is
>>>>> provided but I had my difficulties understanding correctly what is going
>>>>> on and what information is needed for this task to be working.
>>>>> I know you need the object to grasp, then the Grasping Sets? (How can I
>>>>> generate them?) and the TaskManipulation problem. But this problem has a
>>>>> couple of functions with a lot of parameters where I am not quite sure
>>>>> what all of those mean.
>>>>>
>>>>> In short, we want to grab an object (normally pre-known which shape) and
>>>>> then put it safely somewhere else. At the moment we are calculating the
>>>>> offset to the object and then trying to grasp it. So we are just
>>>>> planning the path to the object or a point in the vicinity of the
>>>>> object. This results in not the best grasps and lowering is not an
>>>>> option right now with this approach.
>>>>>
>>>>> I hope I did understand the description of the TaskManipulation problem
>>>>> correctly, then if I did, it would solve our problems :)
>>>>>
>>>>> I would appreciate it if you could give me an example or hints what I
>>>>> need for this to work.
>>>>>
>>>>> Thanks in advance.
>>>>>
>>>>>
>>>>> Best regards
>>>>>
>>>>> Jonas
>>>>>
>>>>>
>

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
Openrave-users mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/openrave-users

katana_gripper_padding.jpg (92K) Download Attachment