Closed iche033 closed 4 months ago
Attention: Patch coverage is 92.23301%
with 8 lines
in your changes are missing coverage. Please review.
Project coverage is 79.04%. Comparing base (
92e02c3
) to head (c921141
). Report is 16 commits behind head on gz-physics7.:exclamation: Current head c921141 differs from pull request most recent head a112092
Please upload reports for the commit a112092 to get more accurate results.
Files | Patch % | Lines |
---|---|---|
bullet-featherstone/src/JointFeatures.cc | 92.42% | 5 Missing :warning: |
bullet-featherstone/src/FreeGroupFeatures.cc | 90.62% | 3 Missing :warning: |
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
🎉 New feature
Summary
There is an inconsistency between how fixed constraints work in dartsim and bullet-featherstone. Currently when a fixed constraint's parent link moves, the behavior in the two physics engine is:
Since there is desire to have both types of behavior so a new feature is added to toggle behavior of a fixed constraint:SetFixedJointWeldChildToParentFeatureBy default, this property is true, i.e. child is always welded to parent link, so we do not break the fixed constraint behavior in dartsim. The bullet-featherstone fixed constraint implementation is updated to match this behavior. This is achieved by setting the pose of child at each iteration - not ideal but gives the expected behavior. Additionally, the bullet-featherstone plugin implementsSetFixedJointWeldChildToParentFeature
and lets users disable welding of links.Update
setMaxAppliedImpulse
to enforce fixed constraint.Other changes to bullet-featherstone's fixed constraint implementation include:
test/common_test/joint_features.cc
changes done in #600 now that fixed constraints are more stableAdded new tests:
test behavior changes with the new API provdided by theSetFixedJointWeldChildToParentFeature
known issues:
The setIgnoreCollisionCheck API does not seem to have an effectTest it
Here's an example showing the behavior of fixed constraint in bullet-featherstone plugin before and after the changes. The two models are connected using the Detachable Joint plugin. The red box is the parent while the blue box is the child.
Before:
After (matches dartsim fixed constraint behavior):
Checklist
codecheck
passed (See contributing)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.