--- license: other license_name: mit-code-bones-seed-data library_name: pytorch tags: - robotics - humanoid - unitree-g1 - motion-tracking - world-model - fall-recovery --- # SuperMimic G1 tracker with fall recovery (get-up) A Unitree G1 whole-body motion-tracking policy from an independent reproduction of SuperMimic (arXiv:2610.28480), fine-tuned so that it gets up after falling (prone, supine or on its side) and resists knock-down pushes. Code: [github.com/Mr-Zqr/SuperMimic-Reproduced](https://github.com/Mr-Zqr/SuperMimic-Reproduced) (`main`). 基于 SuperMimic 复现的 Unitree G1 全身动作跟踪策略,在此基础上做了"摔倒后起身"微调(设计见仓库 `docs/REPRODUCTION_PLAN.md` 的 D22)。 ## 结果 起身测试:256 个环境,静止站立的 T-pose 参考,全部关闭摔倒终止;"起身"定义为骨盆高度误差 < 0.1 m 且倾角误差 < 0.2,持续 0.5 s,限时 10 s。跟踪评测用固定的 2000 条 BONES 平地子集,每条从第一帧完整播放,无噪声、无域随机化。 | 检查点 | 俯卧 / 仰卧 / 侧卧 起身成功率 | 4–6 m/s 推倒率 | 2000 条子集跟踪回报 | |---|---|---|---| | 跟踪基线 bones_flat_v2,18 万次迭代 | 10% / 0% / — | 91%(18.8 万次迭代时测) | 0.921(2 条失败) | | **本模型,26 万次迭代** | **100% / 100% / 100%**(中位 1.3 / 1.3 / 1.5 s) | **0%** | 0.912(6 条失败) | 代价:跟踪回报略降(逐 clip 中位 −0.006),主要来自全局根部位置 / 朝向漂移;新增的失败主要是倒立类动作。 ## 文件 | 文件 | 内容 | |---|---| | `policy.pt` | 策略权重 + 配置(35.6 MB),可直接用仓库 `main` 的评测 / 回放脚本加载 | | `training_state_ckpt_0260000.pt` | 完整训练状态(世界模型、critic、优化器、采样器,221 MB),用于续训 | | `videos/` | 回放视频:起身(22.8 万次迭代,俯卧 / 仰卧各两段)、侧手翻和 180° / 360° 空翻(26 万次迭代) | ## 使用 ```bash git clone https://github.com/Mr-Zqr/SuperMimic-Reproduced.git cd SuperMimic-Reproduced uv sync hf download RayZhao/supermimic_getup policy.pt --local-dir checkpoints # 交互回放(需要 NVIDIA GPU;有显示器时用原生 MuJoCo 查看器,否则用浏览器版 viser) uv run python scripts/play.py --ckpt checkpoints/policy.pt --npz-dir data/npz/lafan1 --clips fallAndGetUp1_subject1 # 评测(每条 clip 从第一帧完整播放) uv run python scripts/eval_benchmark.py --ckpt checkpoints/policy.pt --npz-dir data/npz/lafan1 ``` 动作数据不随模型发布,按仓库 README 的"数据"一节准备(LAFAN1 或 BONES-SEED 的 G1 重定向)。 注意:`play.py` 和评测保留了训练时的摔倒终止(骨盆高度 / 倾角偏差超过阈值即重置)。想观察倒地后起身,需要关闭终止,见仓库 README 的"摔倒起身"一节。 ## 训练 - 观测:论文 Table A.1 的 93 维本体感知(10 帧历史),加未来 10 帧 G1 参考目标;不含全局位置等状态估计。 - 基线:bones_flat_v2,在清洗后的 BONES-SEED 平地子集(102,004 条,198 h)上按论文 Table A.5 训练 18 万次迭代,单卡 RTX 4090。 - 起身微调:从 18 万次迭代续训到 26 万次,学习率恒定 2e-5,分三段: 1. 18 万 → 19.2 万:30% 的回合关闭摔倒终止(`--env.immune-probability 0.3`); 2. 19.2 万 → 21.2 万:再加击倒推力(`--env.push-interval-s 2.0 4.0 --env.push-speed 4.0 6.0`); 3. 21.2 万 → 26 万:再加 10% 从躺姿开始的重置(`--env.lie-probability 0.1`)。 - 续训 `training_state_ckpt_0260000.pt` 需要带 `per_bin` 重置采样器的代码版本(训练时用了 `--env.gmax-mode per_bin`);该采样器还不在 `main` 上。 ## 局限 - 策略看不到自己的全局位置,长动作(如 LAFAN1 的 2–4 分钟 clip)会逐渐漂离参考。 - 倒立类动作和超出 G1 关节限位的参考(如跪坐到脚跟)仍会失败。 ## 许可 代码为 MIT 许可(见 GitHub 仓库)。模型在 [BONES-SEED](https://huggingface.co/datasets/bones-studio/seed) 数据上训练,使用请同时遵守 BONES-SEED 的许可条款。