RobotLocomotion / drake

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

[geometry] Add SceneGraph contact_summary output port #21568

Closed jwnimmer-tri closed 1 week ago

jwnimmer-tri commented 2 weeks ago

Towards #20545.


This change is Reviewable

jwnimmer-tri commented 1 week ago

For now, I'm going to abandon this in lieu of #21608, which is probably all we need to solve #20545.

If we ever decide to sample input ports, then we will need something like this. (Sampling the QueryObject is outrageously expensive -- we need to sample the collision results input port only, not the whole query object.)

However, as I thought about this new output/input port long term, I wasn't 100% sure how it would interact with collision filtering and joint locking. We want to make joint locking dynamic (state or input, not a parameter), and we want cliques of locked bodies to not spend time computing contacts with each other, which means somehow the plant will need to communicate that clique filtering information to the scene graph. If we decide to accomplish that with a query function argument instead of the kinematics input/output port, then this approach would get in the way and need to be reverted.