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

Expose contact parameters #82

Open
diegoferigo opened this issue Jul 15, 2020 · 5 comments
Open

Expose contact parameters #82

diegoferigo opened this issue Jul 15, 2020 · 5 comments
Labels
help wanted Extra attention is needed

Comments

@diegoferigo
Copy link
Contributor

In our simulations with a humanoid robot we are noticing some funky contact detection behaviour. It's something similar to what was shown in robotology/gym-ignition-models#20. Particularly, when the feet look visually flat on the ground plane, the contacts detected by DART are quite noisy, they go on and off.

In Gazebo Classic, ODE could be tuned quite a lot using the /collision/contact/ode parameters. However, currently none of them are exposed for DART.

Some while ago @scpeters in robotology-legacy/icub-gazebo-legacy#30 (comment) mentioned that the min_depth parameter is quite relevant.

Is 1) setting the depth currently possible in DART and 2) did you ever had any internal discussion about these set of parameters? I suspect that they can become fundamental for any locomotion and manipulation applications.

cc @azeey @chapulina

@diegoferigo
Copy link
Contributor Author

Other related issues and pr: #40, gazebosim/gz-sim#112, gazebosim/gz-sim#234, gazebosim/gz-sim#229.

@chapulina chapulina added the help wanted Extra attention is needed label Jul 20, 2020
@scpeters
Copy link
Member

We didn't have many contact parameters exposed in osrf/gazebo's dart layer, but it would be good to expose some here. I'm in favor of adding ignition::physics::Features that expose well-documented parameters, as long as they are optional (i.e. do not increase the required API surface area).

I would look at dart's ShapeFrameAspect.hh header file to see what parameters can be set on a per-shape basis. From a quick glance, it looks like they support friction parameters and a restitution coefficient, but not as many parameters as were exposed in Open Dynamics Engine.

@diegoferigo
Copy link
Contributor Author

I come back to this issue after a while, I managed to dedicate some time to it because the jumpy contacts situation has become a blocker for many of our applications involving humanoid robots.

As you correctly wrote, currently DART does not expose any of the parameters that ODE has. Unfortunately, I can confirm that relaxing a bit the constraints at the physics engine level is one of the only way I found to stabilize the contacts, as I described in gazebo-forks/dart#14.

Adding in a clean way the possibility to tune that parameter in a per-contact basis, considering the architecture of DART, does not seem a trivial task.

@traversaro
Copy link
Contributor

traversaro commented Nov 2, 2020

I remember that back in time there was a proposal at the Gazebo Classic levle to support in a more flexible way parameters, i.e. without requiring each parameter to be exposed in the SDF spec. Now that the work to support arbitrary physics engine is going forward at the ign-physics level and the SDF specs support custom extensions, one thing that it could be good to have is some ignition-physics SDF extention to pass arbitrary parameters (in the form of key-value map, or simular) to the underlying physics engine. To clarify, I think that @scpeters proposed in:

I'm in favor of adding ignition::physics::Features that expose well-documented parameters, as long as they are optional (i.e. do not increase the required API surface area).

makes sense for parameters that are shared across physics engine, but there should be also some way for people that expose new physics engines via ign-physics to have some way to pass parameters to their simulation engines without the need to define new C++ API for each parameter.

@scpeters
Copy link
Member

#267 is related to this issue

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

4 participants