Skip to content

feat: add G1 whole-body tracking task for FastSAC on MuJoCo (#292) - #319

Merged
LeeLeno merged 5 commits into
mainfrom
feat/lixiaofan-fastsac_uni
Apr 22, 2026
Merged

LeeLeno merged 5 commits into
mainfrom
feat/lixiaofan-fastsac_uni

Conversation

@LeeLeno

@LeeLeno LeeLeno commented Apr 20, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • Migrate holosoma's G1 WBT task to UniLab FastSAC + MuJoCo
  • New env G1MotionTrackingSAC with asymmetric actor-critic (critic gets base_lin_vel)
  • Hydra config aligned with holosoma g1-29dof-wbt-fast-sac hyperparameters
  • Verified 2.3x throughput improvement over holosoma (IsaacSim) on same hardware with AMP enabled
    also:
  • Add G1MotionTrackingSACEnv — a thin SAC wrapper over G1MotionTrackingEnv that appends base_lin_vel to critic observations (asymmetric actor-critic, aligned with holosoma g1-29dof-wbt-fast-sac)
  • Add off-policy task config conf/offpolicy/task/sac/g1_sac_wbt/mujoco.yaml with holosoma-aligned hyperparameters (gamma=0.99, tau=0.05, num_atoms=501, target_entropy_ratio=0.5)
  • Add motion asset sub3_largebox_003.npz for WBT training
  • Fix MuJoCo render camera: support cam_distance parameter passthrough and adjust default lookat height to 0.75
  • Tune global off-policy defaults: max_grad_norm 0→10, play_steps 200→800
  • Update docs (support matrix & motion-tracking guide) with FastSAC WBT instructions

Usage

# Default training (MuJoCo, 2048 envs)
uv run scripts/train_offpolicy.py algo=sac task=sac/g1_sac_wbt/mujoco

# With AMP for faster training on CUDA
uv run scripts/train_offpolicy.py algo=sac task=sac/g1_sac_wbt/mujoco training.use_amp=true

# Custom env count and iterations
uv run scripts/train_offpolicy.py algo=sac task=sac/g1_sac_wbt/mujoco \
    algo.num_envs=4096 algo.max_iterations=10000 training.use_amp=true

# With wandb logging
uv run scripts/train_offpolicy.py algo=sac task=sac/g1_sac_wbt/mujoco \
    training.use_amp=true training.logger=wandb

# Replay with checkpoint (after training)
uv run scripts/train_offpolicy.py algo=sac task=sac/g1_sac_wbt/mujoco \
    training.play_only=true \
    training.checkpoint=<path_to_checkpoint>

Test plan
 make check (ruff + mypy + pyright)
 make test (non-slow tests, includes auto-discovered config validation)
 Train smoke test: uv run scripts/train_offpolicy.py algo=sac task=sac/g1_sac_wbt/mujoco algo.num_envs=64 algo.max_iterations=50 algo.batch_size=512
 Existing tasks unaffected: uv run scripts/train_offpolicy.py algo=sac task=sac/g1_walk_flat/mujoco algo.num_envs=64 algo.max_iterations=10

@LeeLeno
LeeLeno merged commit a6d32cd into main Apr 22, 2026
10 checks passed
@LeeLeno
LeeLeno deleted the feat/lixiaofan-fastsac_uni branch April 22, 2026 03:45
TATP-233 pushed a commit that referenced this pull request May 4, 2026
feat: add G1 whole-body tracking task for FastSAC on MuJoCo (#292)
TATP-233 pushed a commit that referenced this pull request May 30, 2026
feat: add G1 whole-body tracking task for FastSAC on MuJoCo (#292)
TATP-233 pushed a commit that referenced this pull request Sep 4, 2026
feat: add G1 whole-body tracking task for FastSAC on MuJoCo (#292)
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.

1 participant