dart icon indicating copy to clipboard operation
dart copied to clipboard

Accumulate contact points to prevent objects sinking when using ODE - Waiting for comments

Open henriquealrs opened this issue 1 year ago • 1 comments

This is a proposal PR attempting to fix #1654 - Capsule shapes sink through ground with ODE.

I tried to find some functionality in ODE similar to the one from Bullet used in https://github.com/dartsim/dart/pull/859 but couldn't find an analogous feature io ODE. So I tried manually implementing a limited contact history and a best effort to keep at least 3 contact points in order to make contact stable.

I worry about performance impact, but tests didn't get anything. I also ran gz-physics tests using DART with my changes and it seemed OK.

There is one failing test test_ForceDependentSlip, but it also fails when using Bullet or DART collision detection, so I think we could reevaluate this test.


Before creating a pull request

  • [ ] Document new methods and classes
  • [ ] Format new code files using ClangFormat by running make format
  • [ ] Build with -DDART_TREAT_WARNINGS_AS_ERRORS=ON and resolve all the compile warnings

Before merging a pull request

  • [ ] Set version target by selecting a milestone on the right side
  • [ ] Summarize this change in CHANGELOG.md
  • [ ] Add unit test(s) for this change
  • [ ] Add Python bindings for new methods and classes

henriquealrs avatar Jul 23 '24 13:07 henriquealrs