moveit / moveit_task_constructor

A hierarchical multi-stage manipulation planner
https://moveit.github.io/moveit_task_constructor
BSD 3-Clause "New" or "Revised" License
176 stars 150 forks source link

Dual arm collaborative support #390

Open DatSpace opened 1 year ago

DatSpace commented 1 year ago

One of the biggest issues I believe with this repo is the lack of detailed documentation. This issue is to ask the following questions that I was not able to clearly answer after a lot of effort searching.

rhaschke commented 1 year ago
  • Does the task constructor support dual arm planning? For example, you can specify a move_group that references two other move_groups and then do a single plan for two goals for each end effector respectively?

Depends on the type of goals. For joint-space goals that should work out-of-the-box. Cartesian goals can be specified for a single end-effector only. You could try to plan Cartesian motions for both groups independently of each other with a Merger container, which will finally merge both trajectories into a single one.

  • I saw some stages do support adding mutiple goals or obstacles (modify planning scene etc) but how do you handle the above in ComputeIK frame?

Only a single Cartesian goal is supported.

  • How does the task constructor handle different versions of moveit given it uses moveit for planning ?

MTC's master branch supports MoveIt1's master branch (and usually Noetic binary releases). The ros2 branch supports MoveIt2's main branch. That's it. Thus, you are encouraged to build MoveIt from source if you are running older ROS distros. This way, Melodic is fully supported.

  • Can I have, within a single task, stages that are for different move_groups ?

Sure. You need to specify the move_group for each and every stage.

DatSpace commented 1 year ago

Thank you for the reply. That covered my questions.