This document provides comprehensive guidance for setting up and troubleshooting the dexrobot_mujoco git submodule used in the DexHand Isaac Gym environment.
The dexrobot_mujoco submodule contains essential assets for the DexHand simulation:
- Hand Models: MuJoCo XML files for different hand configurations (left/right, simplified/full collision)
- 3D Meshes: STL files for hand components and visual rendering
- Scene Assets: Pre-built scenes for manipulation tasks (ball catching, furniture interaction)
- ROS Integration: Tools for ROS1/ROS2 compatibility and data recording
- Utilities: Helper scripts for hand articulation and model conversion
Location: assets/dexrobot_mujoco/
Primary Repository: https://gitee.com/dexrobot/dexrobot_mujoco.git
git clone --recursive https://github.com/dexrobot/dexrobot_isaac
cd dexrobot_isaacIf you already cloned without --recursive:
cd dexrobot_isaac
git submodule update --init --recursiveVerify the submodule is properly initialized:
# Check submodule status
git submodule status
# Should show something like:
# d0f332e559ef991b95bad6a2c16adad476b9487b assets/dexrobot_mujoco (v0.1.0-36-gd0f332e)
# Verify files exist
ls -la assets/dexrobot_mujoco/
# Should show README.md, dexrobot_mujoco/, docs/, etc.Always use git submodule update to ensure the submodule version matches the main repository's specifications. This maintains compatibility between the main codebase and submodule assets.
# Update to the exact commit specified by the main repository
git submodule update --remote
# Or update all submodules recursively
git submodule update --init --recursiveUsers with access to internal repositories can fetch the latest updates:
cd assets/dexrobot_mujoco
# Add internal remote (if not already added)
git remote add internal <internal_repository_url>
# Fetch latest changes
git fetch internal
# Switch to a specific branch or tag
git checkout internal/main
# or
git checkout internal/latest-stable
# Return to main directory and update submodule reference
cd ../..
git add assets/dexrobot_mujoco
git commit -m "Update dexrobot_mujoco submodule to latest version"-
Check current version:
git submodule status
-
Update to specified version:
git submodule update --remote
-
Verify compatibility:
python examples/dexhand_test.py
-
Commit changes (if updating main repo):
git add .gitmodules assets/dexrobot_mujoco git commit -m "Update submodule to version X.X.X"
Symptom: assets/dexrobot_mujoco/ is empty or missing
Solution:
git submodule update --init --recursiveSymptom: fatal: remote error: access denied or network timeouts
Solutions:
-
Check network connectivity:
ping gitee.com
-
Try alternative repository:
cd assets/dexrobot_mujoco git remote set-url origin https://github.com/DexRobot/dexrobot_mujoco.git git fetch origin -
Use SSH instead of HTTPS:
cd assets/dexrobot_mujoco git remote set-url origin git@gitee.com:dexrobot/dexrobot_mujoco.git git fetch origin
Symptom: Permission denied (publickey) errors
Solution:
# Check SSH key
ssh -T git@gitee.com
# or
ssh -T git@github.com
# Add SSH key to agent if needed
ssh-add ~/.ssh/id_rsaSymptom: Submodule shows (HEAD detached at <commit>)
This is normal behavior - submodules are designed to be in detached HEAD state to maintain version consistency.
To make changes:
cd assets/dexrobot_mujoco
git checkout main # or desired branch
# Make your changes
git add .
git commit -m "Your changes"
git push origin mainSymptom: Merge conflicts when updating submodule
Solution:
cd assets/dexrobot_mujoco
git status # Check conflicted files
git reset --hard HEAD # Discard local changes
git pull origin main # Or desired branchSymptom: Submodule version doesn't match main repository expectations
Solution:
# Reset to repository-specified version
git submodule update --init --recursive
# Force update to specific commit
cd assets/dexrobot_mujoco
git checkout <commit_hash>
cd ..
git add assets/dexrobot_mujoco
git commit -m "Fix submodule version consistency"If the submodule becomes corrupted:
# Remove submodule directory
rm -rf assets/dexrobot_mujoco
# Re-initialize
git submodule update --init --recursive
# Verify
git submodule statusIf all else fails:
# Remove submodule completely
git submodule deinit assets/dexrobot_mujoco
rm -rf .git/modules/assets/dexrobot_mujoco
git rm -f assets/dexrobot_mujoco
# Re-add submodule
git submodule add https://gitee.com/dexrobot/dexrobot_mujoco.git assets/dexrobot_mujoco
git submodule update --init --recursiveIf Gitee is unavailable:
cd assets/dexrobot_mujoco
git remote add github https://github.com/DexRobot/dexrobot_mujoco.git
git fetch github
git checkout github/mainFor users with internal repository access:
cd assets/dexrobot_mujoco
git remote add internal <internal_repository_url>
git fetch internal
git checkout internal/mainNote: Internal repository URLs are not included in this documentation for security reasons. Contact your system administrator for access details.
# Check submodule status
git submodule status
# Verify essential files exist
ls -la assets/dexrobot_mujoco/dexrobot_mujoco/models/
# Should show: dexhand021_right.xml, dexhand021_left.xml, etc.
# Check meshes
ls -la assets/dexrobot_mujoco/dexrobot_mujoco/meshes/dexhand021/
# Should show: *.STL files for hand components# Test environment creation
python examples/dexhand_test.py
# Should load successfully without missing file errors# Run basic training test
python train.py task=BlindGrasping env.numEnvs=4 train.maxIterations=10
# Should complete without asset loading errors- Always use
git submodule updatefor version consistency - Verify submodule status before reporting issues
- Test functionality after submodule updates
- Commit submodule changes in main repository when updating
- Use appropriate remote based on network accessibility
- Keep SSH keys up to date for authentication
If you encounter issues not covered in this guide:
- Check the main TROUBLESHOOTING.md document
- Verify network connectivity to repository sources
- Contact your system administrator for internal repository access
- Check the submodule repository's own documentation in
assets/dexrobot_mujoco/README.md
This documentation is part of the DexHand Isaac Gym environment. For more information, see the main README.md and documentation index.