RobotLocomotion / drake

Model-based design and verification for robotics.
https://drake.mit.edu
Other
3.35k stars 1.27k forks source link

No contact reported when in marginal contact #22157

Open amcastro-tri opened 1 week ago

amcastro-tri commented 1 week ago

What happened?

Jeremy Binagia reported this bug in Slack. Jeremy provided a python reproduction here. Essentially they place two geometries in marginal contact. The expectation is that geometry queries (through SG/QueryObject) and contact results queries (through MbP) are not empty. However they are. This implies that somehow the broadphase is not doing the right thing.

WIP PR #22153 reproduces this problem in a C++ unit test. We verify that the ProximityEngine does the right thing (when isntantiated through its internal APIs). However, the full pipeline creating a model with MbP leads to flawed results.

I believe there are two problems. One has to do with the propagation of defaults. But even if defaults are not in the picture (like in the unit tests), still margin is not propagating correctly. Experiments with defaults are in this branch.