Add AMP get-up pipeline with sequence discriminator and git-sourced expert data

This commit is contained in:
Chen
2026-04-20 15:51:44 +08:00
parent 9e6e7e00f8
commit 995f6522b2
10 changed files with 1226 additions and 443 deletions

View File

@@ -0,0 +1,62 @@
# AMP Tools for `get_up`
This folder contains all AMP-related code for `rl_game/get_up`.
## Files
- `amp_rewards.py`: AMP discriminator + reward function used by training config.
- `amp_motion.py`: Build AMP expert features from local get-up keyframe YAML files.
- `migrate_legged_lab_expert_template.py`: Template converter for migrating external expert data (for example legged_lab outputs) to `expert_features.pt`.
## Quick start
Generate expert features from current local keyframes:
```bash
python rl_game/get_up/train.py --amp_from_keyframes --headless
```
Convert external motion/expert file to AMP template:
```bash
python rl_game/get_up/amp/migrate_legged_lab_expert_template.py \
--input /path/to/source_data.pt \
--output rl_game/get_up/amp/expert_features.pt \
--input_key expert_features \
--feature_dim 55 \
--repeat 4
```
Convert downloaded `legged_lab` motion pickles directly:
```bash
python rl_game/get_up/amp/migrate_legged_lab_expert_template.py \
--input third_party/legged_lab/source/legged_lab/legged_lab/data/MotionData/g1_29dof/amp/walk_and_run \
--input_glob "*.pkl" \
--target_dof 23 \
--feature_dim 55 \
--clip_weight_mode uniform \
--output rl_game/get_up/amp/expert_features.pt
```
For get-up data from gitee legged_lab, use git-like focused clip sampling:
```bash
python rl_game/get_up/amp/migrate_legged_lab_expert_template.py \
--input third_party/legged_lab_gitee/source/legged_lab/legged_lab/data/MotionData/g1_29dof/amp/get_up \
--input_glob "*.pkl" \
--target_dof 23 \
--feature_dim 55 \
--clip_weight_mode git_getup_focus \
--output rl_game/get_up/amp/expert_features.pt
```
Then train with online AMP discriminator:
```bash
python rl_game/get_up/train.py \
--amp_train_discriminator \
--amp_expert_features rl_game/get_up/amp/expert_features.pt \
--amp_reward_weight 0.6 \
--headless
```