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

Add WeldJointConstraint for fixed joints if the parent is not a FreeJoint #366

Closed
wants to merge 9 commits into from

Conversation

iche033
Copy link
Contributor

@iche033 iche033 commented Jun 23, 2022

🎉 New feature

Summary

Revives the PR from @arjo129: #345.

I'm pasting the description from the original PR below:

Summary

Currently, if we try to attach two models to the same item using fixed joints, we are unable to do so. This is because Dart's WeldJoint requires that the rigid body skeletons to form a tree. We can solve this by using WeldJointConstraints instead and that is what I'm trying to use.

Test it

I've introduced a unit test here.
2022-04-28T16:51:49 107398391
Essentially what happens is there are two floating boxes and a box in the middle that's resting. We start the system out by creating the two fixed joints between the box resting on the big box and the floating box. The middle box will now have two parents. However there should be no movement as the middle box will be holding the other two boxes that are floating in mid air. We run this for 100 steps to make sure that there is no movement. This is because the middle box is holding on to the two side boxes. Then we release the joints the two boxes should fall away.

TODO

Since this affects the physics in a lot of places it will be important to do the following before merging

  • Check performance - Seems to be able to do realtime speeds in the example shown below
  • Figure out how to cast joints to weld contraints - Skip casting if is a constraint
  • Do an upstream integration test.
  • Get a ✔️ in the CI. - Good ol' 🪟 not passing
  • Check other affected functions.
  • Find out how to deal with ObjectToId as weld constraints are not added to this list. - Pending reviewer feedback.

Checklist

  • Signed all commits for DCO
  • Added tests
  • Added example and/or tutorial
  • Updated documentation (as needed)
  • Updated migration guide (as needed)
  • Consider updating Python bindings (if the library has them)
  • codecheck passed (See contributing)
  • All tests passed (See test coverage)
  • While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

arjo129 added 9 commits April 20, 2022 16:32
…ched to the same opbject.

Signed-off-by: Arjo Chakravarty <[email protected]>
Signed-off-by: Arjo Chakravarty <[email protected]>
Signed-off-by: Arjo Chakravarty <[email protected]>
Signed-off-by: Arjo Chakravarty <[email protected]>
Signed-off-by: Arjo Chakravarty <[email protected]>
Signed-off-by: Arjo Chakravarty <[email protected]>
Signed-off-by: Arjo Chakravarty <[email protected]>
Signed-off-by: Arjo Chakravarty <[email protected]>
@github-actions github-actions bot added the 🏯 fortress Ignition Fortress label Jun 23, 2022
@iche033 iche033 closed this Jun 23, 2022
@iche033
Copy link
Contributor Author

iche033 commented Jun 23, 2022

Closing this as I can just reopen the original PR

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🏯 fortress Ignition Fortress
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

2 participants