Skip to content

Implements passive fixed tendons with mjwarp#5522

Open
nv-rgresia wants to merge 35 commits into
isaac-sim:developfrom
nv-rgresia:passive-tendons
Open

Implements passive fixed tendons with mjwarp#5522
nv-rgresia wants to merge 35 commits into
isaac-sim:developfrom
nv-rgresia:passive-tendons

Conversation

@nv-rgresia
Copy link
Copy Markdown
Contributor

@nv-rgresia nv-rgresia commented May 6, 2026

Description

I have implemented the ability to use and modify passive tendons properties. Despite the shortcomings, this is on feature parity with the existing shadow hand physx environment. While mjc supports spatial tendons, this PR assumes that only fixed tendons are present in the scene, if any. Only 1:1 properties are currently supported (stiffness and damping; there is no equivalent for limit stiffness and rest length/position limits don't have the same data type as in physx (vec2f instead of float), so they can't be ported without restructuring the buffers/apis.

Type of change

  • New feature (non-breaking change which adds functionality)

Checklist

  • I have read and understood the contribution guidelines
  • I have run the pre-commit checks with ./isaaclab.sh --format
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

@github-actions github-actions Bot added documentation Improvements or additions to documentation asset New asset feature or request isaac-sim Related to Isaac Sim team isaac-mimic Related to Isaac Mimic team infrastructure labels May 6, 2026
@nv-rgresia nv-rgresia changed the base branch from main to develop May 6, 2026 20:01
@kellyguo11 kellyguo11 moved this to In progress in Isaac Lab May 7, 2026
# newton requires implicitactuators be specified in usd and there's a bug with physx tendons
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ShadowRobot/ShadowHand/shadow_hand_instanceable_newton.usd",
#usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ShadowRobot/ShadowHand/shadow_hand_instanceable_newton.usd",
usd_path=f"/home/rgresia/Repositories/mujoco_menagerie/shadow_hand/right_hand.usd/right_shadow_hand.usda",
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

this does not look right

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

fixed

num_envs=8192, env_spacing=0.75, replicate_physics=True, clone_in_fabric=False
)
default: InteractiveSceneCfg = physx
default: InteractiveSceneCfg = newton_mjwarp
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

non-breaking, but might prefer to not change default?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

reverted

@kellyguo11
Copy link
Copy Markdown
Contributor

@nv-rgresia many of the tasks tests are failing with this error 2026-05-15T21:58:04.5870969Z 2026-05-15T21:58:04Z [104,639ms] [Warning] [omni.physx.plugin] PhysX warning: PxShape::getMaterialFromInternalFaceIndex received 0xFFFFffff as input - returning NULL., FILE /builds/omniverse/physics/physx/source/physx/src/NpShape.cpp, LINE 598

Could you check if it's related to the change?

@nv-rgresia
Copy link
Copy Markdown
Contributor Author

@kellyguo11 i'm looking into it, I found some errors related to the mock arti view and the lack of usd asset, but didn't see what your referring to. Considering I didn't touch physx-related code or the asset, i'm not sure how my changes are related.

@kellyguo11
Copy link
Copy Markdown
Contributor

https://github.com/isaac-sim/IsaacLab/actions/runs/25945216312/job/76271830895?pr=5522 - this job for example seems to be failing on a lot of physx related errors

# newton requires implicitactuators be specified in usd and there's a bug with physx tendons
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ShadowRobot/ShadowHand/shadow_hand_instanceable_newton.usd",
# newton/mujoco have separate usd schema
usd_path=f"{ISAAC_NUCLEUS_DIR}/Robots/ShadowRobot/ShadowHand/shadow_hand_newton.usd/right_shadow_hand.usda",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

this seems to be the source of all the remaining test failure. which file is the correct USD asset? and has it been uploaded to S3?

@kellyguo11 kellyguo11 moved this from In progress to In review in Isaac Lab May 17, 2026
@isaaclab-review-bot
Copy link
Copy Markdown

🤖 Isaac Lab Review Bot — Update (a2ded62)

Minor path cleanup in this commit — changed Shadow Hand Newton USD path from shadow_hand_newton.usd/right_shadow_hand.usda to ShadowHandNewton/shadow_hand_instanceable.usda. This is a cosmetic fix aligning with the new asset directory structure.

No substantive code changes. Previously identified findings remain documented in the original review.

Approved by @ooctipus — ready for merge pending CI green.

Copy link
Copy Markdown

@isaaclab-review-bot isaaclab-review-bot Bot left a comment

Choose a reason for hiding this comment

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

Update (d32c593): Merge from develop branch reviewed. The 8 new commits since 29068bf are primarily infrastructure updates merged from develop:

  • PPISP Camera Wrapper (#5499): Adds post-render ISP pipeline across renderers
  • Tiled Camera Views (#5696): Adds tiled camera views to Kit/Newton visualizers
  • CI Updates (#5628, #5549): Isaac Sim image updates and workaround removal
  • Newton Manager Fix (#5710): Scene data provider backend detection fix
  • Multi-GPU FrameView (#5514): Enables FabricFrameView on non-primary GPUs
  • USD Core Update (#5495): Updates to usd-core 25.11.0
  • Test Seed Fix (#5709): Deterministic test ordering fix

No changes to the tendon implementation files — the merge only brought develop changes into this feature branch.


Update (bda9004): Another merge from develop reviewed (d32c593..bda9004). This commit contains more infrastructure updates merged from develop:

  • Additions to isaaclab_ppisp package (PPISP post-render pipeline)
  • Visualizer tiled camera views and Newton visualizer improvements
  • Test infrastructure updates (env test utils, string test seed fix)
  • OVRTX/Newton renderer HDR output support
  • Various changelog and version bumps

No changes to the tendon implementation files — the core tendon feature (mjwarp passive fixed tendons in articulation, schemas, Newton manager) remains unchanged. The merge only brought develop infrastructure into this feature branch.


Previous Update (29068bf): Configuration changes reviewed - defaults switched from newton_mjwarp to physx backend, with position/rotation adjustments in shadow_hand_env_cfg.py. No new issues found.


Remaining Items (from original review)

  1. Minor typo (schemas.py:880): "exiss""exists"

  2. Docstring/implementation mismatch (articulation.py write_fixed_tendon_properties_to_sim_index):

    • Consider adding partial tendon write support or updating the docstring
  3. Mock incomplete (mock_articulation_view.py):

    • Missing tendon_names property for test mocks
  4. Test coverage: No unit tests for new tendon APIs


Previous reviews preserved above for context.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

asset New asset feature or request documentation Improvements or additions to documentation infrastructure isaac-lab Related to Isaac Lab team isaac-mimic Related to Isaac Mimic team isaac-sim Related to Isaac Sim team

Projects

Status: In review

Development

Successfully merging this pull request may close these issues.

5 participants