RobotLocomotion / drake

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

Drake joint/dof limit semantics confuse ~everyone #17731

Open ggould-tri opened 2 years ago

ggould-tri commented 2 years ago

This is a highly speculative feature request, and I am creating it mostly to have an issue number to refer to as it continues to vex.

Is your feature request related to a problem? Please describe. We have had frequent confusions about whether Drake joint limits are constraints, ie, users expecting an error if they are violated, or writing code assuming that they represent bounds on the state space.

The correct interpretation -- that limit violations are commonplace and indeed expected in most equilibria -- is counterintuitive, and an error that even the most experienced Drake developers make; it would be foolish to expect our users to understand what even our developers struggle with.

Examples of people being misled by the semantics include:

Describe the solution you'd like

I don't know what the answer is, but I think solutions fall into three buckets:

Describe alternatives you've considered

ggould-tri commented 1 year ago

18756 is this issue again; https://drakedevelopers.slack.com/archives/C2WBPQDB7/p1676472897897249 on slack.

amcastro-tri commented 1 year ago

Related discussion in DrakeDevelopers Slack.

Even though the SAP solver models all constraints as compliant, it estimates a stiff set of parameters that prevent ill-conditioning of the problem. Therefore, even when constraint violations are expected (since the underlying model is compliant), these are significantly smaller than when using TAMSI.