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

Impact-based object placing #239

Merged
merged 7 commits into from
Nov 1, 2020

Conversation

alex-mitrevski
Copy link
Member

@alex-mitrevski alex-mitrevski commented Sep 4, 2020

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 rotated After 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 tests
  • Introduce a context variable in the action (like in the pickup_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

…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
@sonarcloud
Copy link

sonarcloud bot commented Sep 11, 2020

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities (and Security Hotspot 0 Security Hotspots to review)
Code Smell A 1 Code Smell

0.0% 0.0% Coverage
0.0% 0.0% Duplication

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)
…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 alex-mitrevski force-pushed the features/surface-impact-while-placing branch from 370465a to 8e34872 Compare November 1, 2020 15:00
@sonarcloud
Copy link

sonarcloud bot commented Nov 1, 2020

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities (and Security Hotspot 0 Security Hotspots to review)
Code Smell A 1 Code Smell

0.0% 0.0% Coverage
0.0% 0.0% Duplication

@alex-mitrevski alex-mitrevski marked this pull request as ready for review November 1, 2020 15:34
@alex-mitrevski alex-mitrevski merged commit bc6600b into devel Nov 1, 2020
@alex-mitrevski alex-mitrevski deleted the features/surface-impact-while-placing branch November 1, 2020 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant