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

Allow BoxedLcpConstraintSolver to have secondary LCP solver #1265

Merged
merged 12 commits into from
Apr 8, 2019

Conversation

jslee02
Copy link
Member

@jslee02 jslee02 commented Mar 23, 2019

Problem

Dantzig LCP solver sometimes returns inaccurate solution or even NAN values when the LCP doesn't have a solution. More importantly, BoxedLCPConstraintSolver uses the solution without any sanity checks, which easily leads to unstable simulation. This is reported in #892.

Solution

Let BoxedLCPConstraintSolver to use more robust LCP solver such as PGS when it fails to solve with the primary LCP solver. In addition to that, as a final resort, it discards NAN value solution when the secondary LCP solver failed as well.

Testing

Added the regression test provided by @pchorak. Thanks!


Before creating a pull request

  • Document new methods and classes
  • Format new code files using clang-format

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

@jslee02 jslee02 added this to the DART 6.8.0 milestone Mar 23, 2019
@jslee02 jslee02 requested review from mxgrey and scpeters March 23, 2019 22:26
@jslee02 jslee02 marked this pull request as ready for review March 23, 2019 22:28
@jslee02 jslee02 changed the title Allow LCP constraint solver to have secondary LCP solver Allow BoxedLcpConstraintSolver to have secondary LCP solver Mar 23, 2019
@jslee02 jslee02 merged commit 9012a4a into master Apr 8, 2019
@jslee02 jslee02 deleted the dantzig_fallback branch April 8, 2019 22:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant