Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement new pick&place plan capability #112

Open
henningkayser opened this issue Nov 20, 2019 · 6 comments
Open

Implement new pick&place plan capability #112

henningkayser opened this issue Nov 20, 2019 · 6 comments

Comments

@henningkayser
Copy link
Member

henningkayser commented Nov 20, 2019

This effort aims at providing a new generic pick and place planning pipeline based on MTC.
Here we can discuss design and specification details.

Development PR: #111

@rhaschke
Copy link
Contributor

rhaschke commented Nov 20, 2019

We aim to have 3 move_group capabilities:

  • Pick
  • Place
  • Pick+Place

Key concepts / architecture

  • Pick and Place will be implemented as reusable MTC containers (improving the existing ones),
  • which instantiate configurable stages for a GraspProvider and PlaceProvider respectively.
  • To handle bimodal grasping (i.e. choosing left or right gripper for grasping) all relevant properties should be passed via solution properties from the chosen gripper and grasp_msg.
  • Those provider stages should be instantiated via pluginlib.

Picking

We will provide two basic GraspProvider stages:

  • One taking a predefined list of possible grasps (grasp_msg).
  • One being an action client calling an external action server to provide grasps.
    • The server might return grasps both in its feedback and its result messages (to allow for early start of planning).
  • The GraspProvider will need the following parameters:
    • eef defining (eef group, arm group, parent link in arm group)
    • a grasp_frame (PoseStamped)
    • a generic key-value parameter map that will be passed on to the action server
      • action server name (with default: grasp_provider)
      • config: e.g. selector for left/right/both hands (to be used by action server)

Grasping Messages

Fields of the grasp_msg are not fully discussed yet. Probably we will need many fields of the existing grasp message.

  • grasp_frame as PoseStamped (relative to the parent_link)
  • ignore_collision_links of the hand during finger closing
    Instead of providing exact grasps, would be great if we could handle tolerances and MTC would generate more grasps within those translational or rotational tolerances?

@felixvd
Copy link

felixvd commented Jun 16, 2020

@henningkayser Did anything happen about this since it was posted? If yes, could you update to avoid potentially duplicating work?

@rhaschke
Copy link
Contributor

Unfortunately, we didn't make progress on that in Bielefeld...

@v4hn
Copy link
Contributor

v4hn commented Jun 16, 2020 via email

@felixvd
Copy link

felixvd commented Dec 21, 2020

We have implemented something similar that we plan to reshape into this PR soon. Just saying in case someone was planning to tackle this during the holidays.

@rhaschke
Copy link
Contributor

rhaschke commented Dec 21, 2020

👍 I'm curious to see your approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants