gazebosim / gz-mujoco

25 stars 4 forks source link

MJCF to SDF: Add serial joints #62

Closed ahcorde closed 2 years ago

ahcorde commented 2 years ago

🎉 New feature

Summary

This PR allows to create joint in serial if there is the need

You can try this with the humanoid.xml world available in dm_control.

Issues:

humanoid

Test it

Checklist

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.

codecov[bot] commented 2 years ago

Codecov Report

Merging #62 (c3a63ec) into main (6a76012) will decrease coverage by 0.15%. The diff coverage is 96.10%.

@@            Coverage Diff             @@
##             main      #62      +/-   ##
==========================================
- Coverage   95.20%   95.05%   -0.16%     
==========================================
  Files          24       24              
  Lines        1106     1152      +46     
==========================================
+ Hits         1053     1095      +42     
- Misses         53       57       +4     
Impacted Files Coverage Δ
...sdformat_mjcf/mjcf_to_sdformat/converters/world.py 97.47% <95.94%> (-1.16%) :arrow_down:
...sdformat_mjcf/mjcf_to_sdformat/converters/joint.py 89.23% <100.00%> (-3.08%) :arrow_down:
.../sdformat_mjcf/mjcf_to_sdformat/converters/link.py 100.00% <100.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 6a76012...c3a63ec. Read the comment docs.

azeey commented 2 years ago

I just tested this with dm_control/dm_control/suite/cheetah.xml and it doesn't seem to be creating serial joints. I wonder if it doesn't handle joints whose parents are "world" properly.

ahcorde commented 2 years ago

I'm able to load the world but I have to remove these 3 joints

      <joint name="rootx" type="slide" axis="1 0 0" class="free"/>
      <joint name="rootz" type="slide" axis="0 0 1" class="free"/>
      <joint name="rooty" type="hinge" axis="0 1 0" class="free"/>

I'm not really sure why these joints are there, maybe to report the state ?

Selection_082

cheetah