Skip to content

Conversation

@jslee02
Copy link
Member

@jslee02 jslee02 commented Nov 24, 2025

  • Parse <mimic> from SDF in dart::utils::SdfParser and apply mimic properties to joints, choosing mimic motor vs coupler constraint from SDF metadata.
  • Drop bespoke mimic parsing in the GUI example and integration tests; rely on the parser and retarget all followers to the baseline pendulum while keeping the baseline uncoupled.
  • Keep the test/demo world identical to the Gazebo repro SDF and document the change in the changelog.

This aims to address gz-physics issue #432 by reproducing the mimic pendulum scenario via SDF parsing alone.


Before creating a pull request

  • Run pixi run test-all to lint, build, and test your changes (not rerun after the latest merge; previously passed on this branch)
  • Add unit tests for new functionality (parser-driven mimic scenario covered by integration test)
  • Document new methods and classes (changelog updated; parser behavior aligns with SDF spec)
  • Add Python bindings (dartpy) if applicable (not needed here)

jslee02 and others added 24 commits November 21, 2025 17:35
…ead of local followers

- Updated configureMimicMotors in both example and test to get reference joints from middle pendulum (pendulum_with_base) instead of same skeleton
- Modified MimicPairView to track middleReference from the middle pendulum
- Updated GUI renderMimicTable to show error against middle pendulum reference
- Made GUI widget resizable with initial size 800x600
- Added ImGuiTableFlags_Resizable for resizable table columns
- Per-step mimic tracking ensured via MimicMotorConstraint's ERP/CFM parameters

This fixes gazebosim/gz-physics#432 issue where followers now properly track the correct reference joints over extended simulations.
# Conflicts:
#	dart/constraint/CouplerConstraint.hpp
#	dart/constraint/MimicMotorConstraint.hpp
@codecov
Copy link

codecov bot commented Nov 24, 2025

Codecov Report

❌ Patch coverage is 90.62500% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 61.13%. Comparing base (9b39285) to head (c334598).

Files with missing lines Patch % Lines
dart/utils/sdf/SdfParser.cpp 90.62% 6 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #2254      +/-   ##
==========================================
+ Coverage   61.06%   61.13%   +0.06%     
==========================================
  Files         353      353              
  Lines       32144    32208      +64     
  Branches     4182     4192      +10     
==========================================
+ Hits        19628    19689      +61     
- Misses      12516    12519       +3     
Flag Coverage Δ
unittests 61.13% <90.62%> (+0.06%) ⬆️

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

Files with missing lines Coverage Δ
dart/utils/sdf/SdfParser.cpp 81.15% <90.62%> (+0.81%) ⬆️

... and 1 file 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 added this to the DART 7.0 milestone Nov 24, 2025
@jslee02 jslee02 merged commit ec86149 into main Nov 24, 2025
20 of 31 checks passed
@jslee02 jslee02 deleted the gz/sdformat_mimic branch November 24, 2025 22:04
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.

2 participants