ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

MoveIt task constructor custom stages

asked 2020-05-11 03:45:21 -0500

Madcreator gravatar image

updated 2020-05-11 07:32:46 -0500

Hi !

I want to create a custom stage to be able to pick/place object with dual arms. I found that is it possible to do so as TAMS-group created a stage to pour (https://github.com/TAMS-Group/mtc_pou...). I also looked at the primitive stages like "pick" but I can't manage to understand what are the essential function that need to be implemented in order to work well with other stages.

And also to better understand how stages work : how does the pick stage interface with movegroup low level function pick ?(is the stage completly replacing the movegroup pick function ?)

And finally is there tutorials on how to create custom stages for MTC ?

Thanks in advance,

Regards,

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2020-05-11 07:34:51 -0500

v4hn gravatar image

Documentation-wise our presentation at ROSCon 2018 is probably a good starting point: https://roscon.ros.org/2018/ It also walks you (briefly) through the C++ API that you need to implement for a custom stage.

"pick" is definitely no "primitive" stage! The current pick implementation is a container comprised of quite a number of primitive stages. Thinking otherwise is very confusing indeed.

For pick/place with dual-arms you will have to setup your own container, possibly using some custom primitive stages to generate paired pick poses, etc.

edit flag offensive delete link more

Comments

Thank you for the precision, I watched a second time the Roscon presentation and I understand some new things ! When I was saying primitive stage, I was meaning "default ones" (like simple_grasp, connect, etc.) that exist now in moveit task constructor, I used the wrong word, sorry. I have already some functions that take a planning scene, plan the dual arm action (pick or place) then return a modified planning scene and trajectories, so I think this will fits well in the "compute" function of my custom stage, am I wrong ?

Madcreator gravatar image Madcreator  ( 2020-05-12 04:32:32 -0500 )edit

I would add that this will probably be easiest if (or maybe impossible unless) you define a planning group that contains both arms.

fvd gravatar image fvd  ( 2020-05-12 22:30:38 -0500 )edit

I went further by understanding that I need to also create a specific planner for my dual arm goals. I see in the pipeline planner that is already implemented, that you use the generatePlan (to generate trajectories) function which is also used in the last stage of the (now unused) pick and place pipeline (that is used in my dual arm project), at the last stage : plan. But how are implemented the reachable and valid pose filte and the approach and translate stage in MTC? Is it done by wrappers ?

Madcreator gravatar image Madcreator  ( 2020-05-26 03:04:04 -0500 )edit

Question Tools

2 followers

Stats

Asked: 2020-05-11 03:45:21 -0500

Seen: 340 times

Last updated: May 11 '20