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

Adapt pick pipeline to function without object #599

Merged
merged 2 commits into from
Sep 1, 2017

Conversation

2scholz
Copy link
Contributor

@2scholz 2scholz commented Aug 24, 2017

Giving an empty object into the picking pipeline was not supported before. executeAttachObject was given an empty object and returned false. This aborted the pick action server right after closing the gripper. To work around this, return true whenever an empty string is given as object id.

In addition planGraspsAndPick was changed, so that it can take an empty string. In that case an empty moveit_msgs::CollisionObject is created for the further steps. Also, an empty string is now the default value for planGraspsAndPick.

This change helps with the gpd integration.

Benjamin Scholz added 2 commits August 24, 2017 18:38
Make it possible to use planGraspsAndPick even though the user did not provide
any object.
Now, if planGraspsAndPick is called with an empty string then planGraspsAndPick is called again
with an empty moveit_msgs::CollisionObject.

This change causes trouble in the executeAttachObject function, because there is no object to be attached.
The function returns false and the pick is being abborted after the grasp.
Thus we just return true in that function when the id of the object is an empty string.
@v4hn
Copy link
Contributor

v4hn commented Aug 24, 2017

This came up during our integration work for gpd #566 .
I reviewed the patch before @2scholz added the pull-request and we tested it successfully on our setup.

An empty object_id was an unconsidered-edge-case before, so this should hurt.

@v4hn v4hn added the awaits 2nd review one maintainer approved this request label Aug 25, 2017
@davetcoleman
Copy link
Member

I do not think this belongs in indigo, though

@davetcoleman davetcoleman merged commit bc77ba1 into moveit:kinetic-devel Sep 1, 2017
v4hn pushed a commit to v4hn/moveit that referenced this pull request Sep 11, 2017
Selective Backport / Did not add default parameter for `planGraspsAndPick`

* Use planGraspsAndPick with empty string

Make it possible to use planGraspsAndPick even though the user did not provide
any object.
Now, if planGraspsAndPick is called with an empty string then planGraspsAndPick is called again
with an empty moveit_msgs::CollisionObject.

This change causes trouble in the executeAttachObject function, because there is no object to be attached.
The function returns false and the pick is being abborted after the grasp.
Thus we just return true in that function when the id of the object is an empty string.
davetcoleman pushed a commit that referenced this pull request Sep 21, 2017
Selective Backport / Did not add default parameter for `planGraspsAndPick`

* Use planGraspsAndPick with empty string

Make it possible to use planGraspsAndPick even though the user did not provide
any object.
Now, if planGraspsAndPick is called with an empty string then planGraspsAndPick is called again
with an empty moveit_msgs::CollisionObject.

This change causes trouble in the executeAttachObject function, because there is no object to be attached.
The function returns false and the pick is being abborted after the grasp.
Thus we just return true in that function when the id of the object is an empty string.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaits 2nd review one maintainer approved this request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants