Skip to content

Feat/appo g1 motion tracking - #52

Merged
TATP-233 merged 3 commits into
mainfrom
feat/appo-g1-motion-tracking
Mar 21, 2026
Merged

TATP-233 merged 3 commits into
mainfrom
feat/appo-g1-motion-tracking

Conversation

@caozx1110

Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI left a comment

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.

Pull request overview

Adds support for a new APPO task (g1_motion_tracking) by registering motion-tracking environments and introducing task/reward Hydra configs, plus extending play-mode configuration.

Changes:

  • Register unilab.envs.motion_tracking in registry-import helpers so G1MotionTracking can be discovered.
  • Add new APPO task + reward configs for g1_motion_tracking, and include it in the train-script config smoke test.
  • Make APPO play-mode step count and camera parameters configurable via Hydra, and pass camera parameters to the renderer.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/scripts/test_train_script_configs.py Extends APPO config-load test matrix to include g1_motion_tracking.
src/unilab/utils/algo_utils.py Ensures motion-tracking env modules are imported/registered.
scripts/train_appo.py Imports motion-tracking registry; makes play steps configurable; passes camera params to renderer.
conf/appo/task/g1_motion_tracking.yaml New task config selecting G1MotionTracking + reward override.
conf/appo/reward/g1_motion_tracking.yaml New reward-scale config for motion tracking.
conf/appo/config.yaml Adds global play-mode defaults (play_steps, camera params).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread scripts/train_appo.py
Comment on lines 157 to 181
@@ -168,7 +170,14 @@ def play_appo(cfg: DictConfig, rl_cfg: dict):

print("Rendering frames...")
frames = render_many.render_states_get_frames(
state_list, env.cfg.model_file, width=1280, height=720, camera_id=-1
state_list,
env.cfg.model_file,
width=1280,
height=720,
camera_id=-1,
cam_distance=cfg.training.cam_distance,
cam_elevation=cfg.training.cam_elevation,
cam_azimuth=cfg.training.cam_azimuth,
)

Copilot AI Mar 21, 2026

Copy link

Choose a reason for hiding this comment

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

play_appo currently renders all frames into memory (frames = render_states_get_frames(...)) before writing the video. Increasing the default play_steps to 1000 can easily create multi-GB frame lists at 1280x720 (and OOM) even with a modest number of steps/envs. Consider keeping the historical default (150) here and only overriding training.play_steps in task-specific configs that truly need longer videos, or refactoring playback to stream/chunk frames instead of accumulating them all at once.

Copilot uses AI. Check for mistakes.
Comment thread conf/appo/config.yaml Outdated
都听你的

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@TATP-233
TATP-233 merged commit 33b87c7 into main Mar 21, 2026
3 checks passed
@TATP-233
TATP-233 deleted the feat/appo-g1-motion-tracking branch March 21, 2026 08:13
TATP-233 added a commit that referenced this pull request May 4, 2026
TATP-233 added a commit that referenced this pull request May 30, 2026
TATP-233 added a commit that referenced this pull request Sep 4, 2026
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