[Task Clean-up][Contrib] Dexterous Part 8/10: Move the OpenAI Shadow Hand variants to contrib - #6954
Draft
hujc7 wants to merge 3 commits into
Draft
[Task Clean-up][Contrib] Dexterous Part 8/10: Move the OpenAI Shadow Hand variants to contrib#6954hujc7 wants to merge 3 commits into
hujc7 wants to merge 3 commits into
Conversation
This was referenced Aug 7, 2026
[Task Clean-up][Manager] Dexterous Part 6/10: Add the handover and camera manager counterparts
#6421
Draft
Adds manager-based Allegro and Shadow cube reorientation environments that mirror their Direct counterparts, sharing the reward, termination, command and event definitions so the two workflows stay numerically in step. A value-parity test pins the shared task-defining values. Moves the shared task helpers into the reorientation task package and renames the manager Allegro configurations after the robot rather than the object.
Adds the manager-based handover task and the Shadow camera reorientation task, each mirroring its Direct counterpart's observation, reward and termination contracts. Extends the value-parity test to the handover pair. Retargets the handover recorder import to the reorientation helpers, which the previous part moved out of core/utils.py.
The four OpenAI identifiers reproduced a specific sim-to-real setup -- 20 Hz control, action and observation noise, and an episode budget spent per goal -- which does not generalize to other reorientation work. They now live in contrib as two tasks, with the feed-forward and recurrent policies sharing one environment and selected with --agent. The observation architecture does generalize, so it stays in the core task as presets=openai: a 42-dimensional actor restricted to what a physical hand can measure, paired with a 187-dimensional privileged critic. One preset token switches both the environment and the RSL-RL agent. Replaces the obs_type string with the independent reduced_obs and asymmetric_obs flags.
ooctipus
reviewed
Aug 7, 2026
| return SceneEntityCfg(name, joint_names=".*") | ||
|
|
||
|
|
||
| def _fingertip_entity(name: str) -> SceneEntityCfg: |
Collaborator
There was a problem hiding this comment.
you can set a constant instead of create a funciton
ooctipus
reviewed
Aug 7, 2026
| ) | ||
|
|
||
|
|
||
| def _hand_entity(name: str) -> SceneEntityCfg: |
Collaborator
There was a problem hiding this comment.
constant instead of function
ooctipus
reviewed
Aug 7, 2026
| # soft limits equal the hard limits here: soft_joint_pos_limits_factor defaults to 1.0 | ||
| right_joint_pos = ObsTerm(func=mdp.joint_pos_limit_normalized, params={"asset_cfg": _hand_entity("right_hand")}) | ||
| right_joint_vel = ObsTerm(func=mdp.joint_vel, scale=0.2, params={"asset_cfg": _hand_entity("right_hand")}) | ||
| right_fingertip_pos = ObsTerm(func=mdp.fingertip_pos, params={"asset_cfg": _fingertip_entity("right_hand")}) |
Collaborator
There was a problem hiding this comment.
why not use the one function to return finger tip state?
hujc7
force-pushed
the
jichuanh/reorient-openai-contrib-p8
branch
from
August 7, 2026 10:05
75eee1e to
b0d2d84
Compare
ooctipus
reviewed
Aug 7, 2026
| rewards: OpenAIRewardsCfg = OpenAIRewardsCfg() | ||
| terminations: OpenAITerminationsCfg = OpenAITerminationsCfg() | ||
|
|
||
| enable_domain_randomization: bool = True |
Collaborator
There was a problem hiding this comment.
does this needs to exist?
ooctipus
reviewed
Aug 7, 2026
| physics=PhysicsCfg(), | ||
| ) | ||
| # a looser goal, chased repeatedly, with falls punished | ||
| fall_penalty = -50.0 |
Collaborator
There was a problem hiding this comment.
we shouldn't need this kind of direc env style field creation/overrride if we are in manager style.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Review Map
Summary
--agent.presets=openai— a 42-dimensional actor limited to what a physical hand can measure, plus a 187-dimensional privileged critic. One preset token switches both the environment and the RSL-RL agent.obs_typestring with independentreduced_obs/asymmetric_obsflags, so a task may narrow the actor, add a privileged critic, or both.presets=openaion the manager workflow) added rather than lost.Task identifiers
Isaac-Reorient-Cube-Shadow-OpenAI-FFIsaacContrib-Reorient-Cube-Shadow-OpenAIIsaac-Reorient-Cube-Shadow-OpenAI-LSTMIsaacContrib-Reorient-Cube-Shadow-OpenAI --agent rsl_rl_lstm_cfg_entry_pointIsaac-Reorient-Cube-Shadow-OpenAI-FF-DirectIsaacContrib-Reorient-Cube-Shadow-OpenAI-DirectIsaac-Reorient-Cube-Shadow-OpenAI-LSTM-DirectIsaacContrib-Reorient-Cube-Shadow-OpenAI-Direct --agent rsl_rl_lstm_cfg_entry_pointOn the removal without deprecation aliases
AGENTS.mdrequires prior deprecation for public API removals. These four identifiers are being removed outright, deliberately: the equivalent tasks exist underIsaacContrib-names in the same release, the changelog fragment carries the full mapping above, and retaining four alias registrations plus anobs_typetranslation would preserve a naming scheme this series exists to retire. Raised in review — happy to add aliases if maintainers prefer.Series
Part 8 of 10. Depends on Part 6/10 (#6421), which owns
Isaac-Reorient-Cube-Shadow-Camera; this branch is based on it, so the diff contains #6421's commits until it merges. Review from75eee1e7211onward.Validation
test_reorient_value_parity.py,test_reorient_utils.py,test_hydra.py)presets=openaiverified on the Direct and manager workflowsupdate_environments_rst.py --checkregenerated