Skip to content

Conversation

@Nan-Tetheria
Copy link

Tendon-driven z-rotation task

rollout2.mp4

As shown in the video, the policy learns to rotate a cube about the z-axis using tendon-space actuation of the Tetheria Aero Hand Open.

All finger joints are driven by tendons, while the thumb abduction is actuated via a position actuator. This environment serves as an example demonstrating MuJoCo Playground’s training capabilities on tendon-driven and under-actuated models.

For further information about the tendon-actuated model, which emulates the cable-driven mechanism of the real hand, please refer to the accompanying README and MJCF files.

The reward function consists of three interpretable components:

  1. Angular-velocity reward – encourages continuous cube rotation around the target axis.
  2. Action-rate penalty – regularizes motor commands to ensure smooth tendon motion.
  3. Termination penalty – discourages premature termination or unstable contact.

Although individual training runs exhibit stochastic variation, the policies consistently converge to a positive total reward within approximately 40 minutes of PPO training on a single NVIDIA GeForce RTX 5090.

reward_overall

The resulting policy transfers directly to the physical Tetheria Aero Hand Open, benefiting from the tendon-space formulation that closely mirrors the real actuation system.

@google-cla
Copy link

google-cla bot commented Oct 8, 2025

Thanks for your pull request! It looks like this may be your first contribution to a Google open source project. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA).

View this failed invocation of the CLA check for more information.

For the most up to date status, view the checks section at the bottom of the pull request.

@btaba
Copy link
Collaborator

btaba commented Oct 9, 2025

Thanks for the contributions again! A few tasks should be done to tidy up the PR before submission:

  1. The XML and all robot assets should be added to mujoco_menagerie and removed from this PR. We explicitly do not include robot assets in this repo to avoid bloating the repo size and dealing w/ licensing headaches. mujoco_menagerie is the place to do that.
  2. The gifs and plots should be removed (we like to keep a minimal git history). The pngs however seem small enough and informative, so I think it's OK to keep a few of those, but I'd ask to make it more minimal.
  3. Adding an author line in the copyright header is against our style guides. Attribution is handled via git log. I also notice you added a copyright for TetherIA Inc., and I see that TetherIA Inc. signed a CLA with Google Deepmind so that looks good! However, the date is wrong on the Deepmind copyright. Can you make sure the header matches others in the repo with the appropriate format, and add the TetherIA Inc. on top?

Thank you!

Copy link
Collaborator

@btaba btaba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added comment in main thread

@Nan-Tetheria
Copy link
Author

Nan-Tetheria commented Oct 9, 2025

Thanks for the contributions again! A few tasks should be done to tidy up the PR before submission:

1. The XML and all robot assets should be added to `mujoco_menagerie` and removed from this PR. We explicitly do not include robot assets in this repo to avoid bloating the repo size and dealing w/ licensing headaches. `mujoco_menagerie` is the place to do that.

2. The gifs and plots should be removed (we like to keep a minimal git history). The pngs however seem small enough and informative, so I think it's OK to keep a few of those, but I'd ask to make it more minimal.

3. Adding an author line in the copyright header is against our style guides. Attribution is handled via git log. I also notice you added a copyright for TetherIA Inc., and I see that TetherIA Inc. signed a CLA with Google Deepmind so that looks good!  However, the date is wrong on the Deepmind copyright. Can you make sure the header matches others in the repo with the appropriate format, and add the TetherIA Inc. on top?

Thank you!

Hi @btaba

Thank you for your thoughtful comments! I’ve addressed all of them in the latest update. Here’s a brief summary of the changes:

  1. The mesh folder has been removed, and the asset links now point to those in Menagerie. Our PR for Menagerie is still under review. For now, please refer to commit SHA a7d16be94e2eb8ef0251d8c09e7089903f22826b for the corresponding update in mujoco_playground/_src/mjx_env.py.
  2. All GIFs and plots have been removed, making the README more concise.
  3. The license headers adjusted following your comments.

Thanks again for your time and feedback. Please let me know if there’s anything else that needs to be refined!

Nan

@Nan-Tetheria Nan-Tetheria requested a review from btaba October 9, 2025 21:28
Copy link
Collaborator

@btaba btaba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very nice contribution again! Generally LGTM with minor comments. Please let us know when the Mengarie PR is in, and we can then merge this one in as well

termination=-100.0,
action_rate=-1.0,
),
),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just curious, if you had tried this with the Warp backend, see examples here

impl='jax',
nconmax=30 * 8192,
njmax=128,

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we just tested the Warp backend by setting impl=warp for training, and it works smoothly.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to pull out the reoreintation_cube into _src/manipulation/assets, and re-use the same files?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried moving the files to the directory you suggested, but encountered some directory-related errors. I suggest we keep this PR as it is for now and address the issue in a future update.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this pdf file necessary? Why is it in pdf format?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Those files are for different tasks and are not needed here, so I’ve removed them to keep the assets minimal.

@Nan-Tetheria
Copy link
Author

Very nice contribution again! Generally LGTM with minor comments. Please let us know when the Mengarie PR is in, and we can then merge this one in as well

Thanks for the feedback! I’ve addressed most of the comments, leaving one due to the directory issue for future changes. Please let me know how this version looks.

I’ve also left a comment on our PR in the Menagerie repo to help speed up the review, though it doesn’t seem to be moving very quickly at the moment. I’ll keep you posted once there’s any update.

Nan

@Nan-Tetheria Nan-Tetheria requested a review from btaba October 14, 2025 17:55
@Nan-Tetheria Nan-Tetheria requested a review from btaba November 7, 2025 20:01
@Nan-Tetheria
Copy link
Author

Just fixed the building error by updating the menagerie commit sha. Should work now.

@Nan-Tetheria
Copy link
Author

Hi! Friendly second ping on that PR. The build issue is resolved and the updates are pushed.
If you get a chance, please take another pass. Thanks!

Copy link
Collaborator

@erikfrey erikfrey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is nicely written code. Appreciate the attention to detail!

@Nan-Tetheria
Copy link
Author

Hi! CI is green except for the internal Copybara check.
Let me know if there's anything I need to do, or if it's safe on your end. Thanks!

@erikfrey
Copy link
Collaborator

@Nan-Tetheria yes all good, that's on our end to address as part of the import. It shoujld finally merge in the next day or two. Thanks for your patience.

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.

3 participants