Skip to content

Fix joint impulse statefulness#2308

Merged
jslee02 merged 8 commits intomainfrom
issue/1089_statefulness
Dec 25, 2025
Merged

Fix joint impulse statefulness#2308
jslee02 merged 8 commits intomainfrom
issue/1089_statefulness

Conversation

@jslee02
Copy link
Member

@jslee02 jslee02 commented Dec 13, 2025

Fixes part of #1089 by moving GenericJoint impulse-related members into the joint Aspect State so they are captured/restored by dart::dynamics::Skeleton::getState() / setState().

  • Adds mVelocityChanges, mImpulses, and mConstraintImpulses to dart::dynamics::detail::GenericJointState and updates GenericJoint/FreeJoint to use them.
  • Makes dart::simulation::World::reset() clear constraint impulses so stale constraint forces don't leak across independent runs.
  • Adds regression tests in tests/integration/dynamics/test_SkeletonState.cpp.
  • Updates GitHub CI workflows to pin the pixi install location (avoids intermittent pixi: command not found / exit 127 on some runners).

Closes: #1089.

@jslee02 jslee02 added this to the DART 7.0 milestone Dec 13, 2025
@codecov
Copy link

codecov bot commented Dec 13, 2025

Codecov Report

❌ Patch coverage is 90.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.63%. Comparing base (a6b93bf) to head (a598e07).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
dart/dynamics/detail/GenericJoint.hpp 86.95% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2308      +/-   ##
==========================================
+ Coverage   64.58%   64.63%   +0.05%     
==========================================
  Files         367      367              
  Lines       33826    33837      +11     
  Branches     4472     4474       +2     
==========================================
+ Hits        21845    21872      +27     
+ Misses      11981    11965      -16     
Flag Coverage Δ
unittests 64.63% <90.00%> (+0.05%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
dart/dynamics/GenericJoint.hpp 100.00% <ø> (ø)
dart/dynamics/detail/GenericJointAspect.hpp 71.42% <100.00%> (+1.27%) ⬆️
dart/simulation/World.cpp 79.27% <100.00%> (+1.58%) ⬆️
dart/simulation/World.hpp 100.00% <ø> (ø)
dart/dynamics/detail/GenericJoint.hpp 79.56% <86.95%> (+0.36%) ⬆️

... and 4 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jslee02 jslee02 marked this pull request as draft December 22, 2025 16:09
@jslee02 jslee02 marked this pull request as ready for review December 25, 2025 21:25
@jslee02 jslee02 merged commit 75f4d8e into main Dec 25, 2025
14 of 39 checks passed
@jslee02 jslee02 deleted the issue/1089_statefulness branch December 25, 2025 21:34
jslee02 added a commit that referenced this pull request Dec 26, 2025
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.

Make statefulness and properties of simulation artifacts more transparent

1 participant