-
Notifications
You must be signed in to change notification settings - Fork 45
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
Impact-based object placing #239
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…or placing) I want to do impact detection as change detection over force measurements, so I've added two functions: * one for initialising the measurements * one for checking if the difference between the initial measurements and the current measurements is above a threshold
…to features/surface-impact-while-placing
Kudos, SonarCloud Quality Gate passed! 0 Bugs |
The field is a Boolean "release_on_impact", which specifies whether the object should be released by detecting impact with the surface or by simply releasing the object (the latter is used for throwing an object)
…used by the action
…hrow clients The field is set to true and false respectively (we want to detect surface impact while placing, but we don't want to wait for impact while throwing an object)
alex-mitrevski
force-pushed
the
features/surface-impact-while-placing
branch
from
November 1, 2020 15:00
370465a
to
8e34872
Compare
Kudos, SonarCloud Quality Gate passed! 0 Bugs |
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Addresses #224
The PR introduces impact detection in the place action (based on force measurements), which contributes to a more intelligent execution of the action. As suggested in the issue description, the robot first goes to a designated pose and then moves its arm down until it detects impact with the placing surface, at which point the object is released. Only force measurements along the z-axis of the base are taken into account for impact detection.
Tests to verify the functionality
I did some tests with the HSR as a proof of concept. Due to the built-in safety features of the HSR, the impact that the arm makes with the surface has to be quite small, so the arm was only allowed to move down at the default low speed. Impacts were detected successfully for objects with different weights, which suggests that the procedure is general and transferable across objects.
A video showing the functionality in action can be found on the b-it-bots channel.
TODOs before merging
Test with objects grasped in a top-down fashion. In the initial tests, the z-axis of the sensor coincided with the z-axis of the base, so I didn't have to worry about transforming the measurements, but this might be necessary when the sensor axes are rotatedAfter thinking about this for a while, I think it would be better to address this point with a separate PR; placing after a top-down grasp is a new feature that will require its own testspickup_action
) that will allow a release action - just as before - to be performed as well (for instance, impact-based placing is not suitable for drawers or containers) - This has been resolved by adding a new Boolean field to the goal (release_on_impact
), which can be used to control whether to detect impact on placing