Adding Custom Hand Environment and Training Task Environment #216
Replies: 2 comments 4 replies
-
Hi @btaba , We would like to propose adding a new example to MuJoCo Playground that demonstrates training and control of a tendon-driven model. This example aims to complement the existing collection by highlighting MuJoCo Playground’s ability to model and train policies for tendon-actuated systems, in addition to the more common joint-actuated ones. We believe this could be an interesting and meaningful addition to the repository, showing that Playground supports both joint and tendon actuation paradigms, and serving as a reference for users who wish to build similar models. We’ve included the proposed README document below for your review. Please let us know if this would be a good fit for a PR to MuJoCo Playground. Any feedback or suggestions are greatly appreciated. Nan Tetheria Aero Hand Open with Tendon-Driven ActuationThis directory introduces a tendon-driven manipulation example that extends MuJoCo Playground with support for tendon-level control and observation in reinforcement learning tasks. The model is adapted from the Tetheria Aero Hand Open, featuring a physically accurate tendon system that emulates cable-driven actuation. In this setup, both the policy inputs and observations are defined in the tendon space, providing a complete example of training and deploying tendon-driven controllers in MuJoCo. An overview of the hand is shown below:
1. Tendon-Driven MuJoCo Model1.1 ModelingThe mechanical design is derived from URDF files, ensuring accurate representation of the real hand structure. The actuation system in the simulator models the cable design in the real hand through three key components: 1.1.1 Tendon DrivesThe tendons drive the hand to close the fingers and control the thumbs. These are modeled as spatial tendons in MuJoCo that follow the exact routing paths of the real cables. 1.1.2 SpringsThe springs, which are also modeled by tendon components in MuJoCo, provide the forces to pull the fingers in the backward direction. This creates the restoring forces necessary for finger extension. 1.1.3 PulleysThe pulleys, which are modeled as cylinders, organize the cables and springs to ensure they are routed in a similar way to the real hand. Careful placement of these pulleys ensures accurate tendon routing.
1.2 Parameters1.2.1 Mechanical Parameters
1.2.2 Tendon and Spring Specifications
1.2.3 Control ParametersAll remaining parameters, including:
These are fine-tuned to satisfy both similar joint behaviors in simulation and the real world. 2. Training your own policyWe introduce a z-axis rotation task for the Tetheria Aero Hand Open, optimized using the following reward formulation: The optimization variables include the tendon lengths and the thumb abduction joint, which correspond to the real hand’s actuation system. To train policies for the Tetheria Hand: # Run the training script
python learning/train_jax_ppo.py --env_name TetheriaCubeRotateZAxis 3. Running a pretrained policyTo test trained policies in simulation: # Run the simulation rollout script
python learning/train_jax_ppo.py --env_name TetheriaCubeRotateZAxis --play_only --load_checkpoint_path path/to/checkpoints This will:
Seed = 0: Seed = 1: Seed = 14: Sim2real deployment on Tetheria Aero Hand Open: File StructureCore Implementation
XML Models
Key Features
This implementation provides a high-fidelity tendon-driven hand model that closely matches the real robotic hand, enabling effective sim-to-real transfer for manipulation tasks. AcknowledgementsOur code is built upon
|
Beta Was this translation helpful? Give feedback.
-
Hello! This is an amazing contribution! It looks like this is a fairly localized change (just adding a single env), so it'll be easy to merge if that's indeed the case. Can you add some reward curves to the PR as well? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
To whom it may concern,
I’ve been experimenting with MuJoCo Playground, and I’d like to know if it’s possible to integrate a custom environment under the manipulation folder. Specifically, I’ve built a tendon-driven robotic hand model and would like to contribute it as a new environment for training and testing.
Our plan is to:
Add the tendon-driven hand model and corresponding z-rotation task.
Contribute the asset and XML file to mujoco_menagerie.
Include the z-rotation training script in the manipulation folder.
Everything is currently working locally with MuJoCo Playground. Aside from following the PR guidelines and ensuring the required tests pass, are there any additional permissions or steps we should be aware of?
Also, could you share how long the PR review/merge process typically takes?
Thank you for your time and guidance!
Beta Was this translation helpful? Give feedback.
All reactions