# robot_train **Repository Path**: huahuaze/robot_train ## Basic Information - **Project Name**: robot_train - **Description**: 人形机器人的训练代码仓库 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-05-27 - **Last Updated**: 2026-09-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 本项目基于roboparty实现,优化代码,解决环境依赖和查找的问题。 使用步骤 阶段一:准备代码与资源 git clone https://gitee.com/huahuaze/robot_train.git cd robot_train tar -vxf combined.tar 阶段二:安装项目依赖(本地) ⚠️ 此时尚未解决系统冲突,只是把代码挂上。 # 安装 robolab cd robolab pip install -e . # 安装 rsl_rl(此时可能不生效) cd ../rsl_rl pip install -e . 阶段三:解决 Isaac Sim 的“系统级污染”(最关键) 这是你这次操作中最有价值的一步。 Isaac Sim 自带了一个老旧的 rsl_rl,会覆盖你刚安装的版本。 🔥 强制移除系统级 rsl_rl rm -rf /workspace/isaaclab/_isaac_sim/kit/python/lib/python3.11/site-packages/rsl_rl* 🔄 重新绑定本地源码 cd /path/to/robot_train/rsl_rl pip install -e . --no-deps ✅ 验证(必须做) python -c "import rsl_rl; print(rsl_rl.__file__)" ✅ 输出必须是: /root/Desktop/robot_train/rsl_rl/... ❌ 如果是 isaac_sim/...,说明还没删干净。 阶段四:配置运行环境 export PYTHONPATH=/root/Desktop/robot_train:$PYTHONPATH 阶段五:执行训练 # 查看可选任务 python robolab/scripts/tools/list_envs.py # 正式训练(推荐配置) python robolab/scripts/rsl_rl/train.py \ --task=Atom01-Flat \ --logger=tensorboard \ --num_envs=4096 PYTHONPATH ✅ 确保 robolab 能被找到 --num_envs=4096 ✅ 利用 GPU 并行加速 🚀 使用方法 ------- ### 训练 python robolab/scripts/rsl_rl/train.py \ --task=Atom01-Flat \ --headless \ --logger=tensorboard \ --num_envs=8192 ### 测试(Play) python robolab/scripts/rsl_rl/play.py --task=Atom01-Flat --num_envs=1 ### 测试(AMP) python robolab/scripts/rsl_rl/play_amp.py --task=Atom01-AMP-Play --num_envs=1 ### 测试(BeyondMimic) python robolab/scripts/rsl_rl/play_bm.py --task=Atom01-BeyondMimic --num_envs=1 ### 测试(Parkour) python robolab/scripts/rsl_rl/play_parkour.py --task=Atom01-Parkour-Play --num_envs=1 ### 导出 ONNX 模型 > ⚠️ 导出时务必设置 `--num_envs=1` python robolab/scripts/rsl_rl/play_parkour.py \ --task=Atom01-Parkour-Play \ --num_envs=1 \ --exportonnx * * * 🔁 Sim2Sim (Isaac → MuJoCo) --------------------------- python robolab/scripts/mujoco/sim2sim_atom01.py \ --load_model "/path/to/exported/policy.pt" * * * 📊 数据集准备(AMP / BeyondMimic) --------------------------- 本项目使用 **GMR**​ 获取参考数据。 > ⚠️ **关节顺序映射问题**​ > > GMR 导出的数据集关节顺序通常与 URDF/XML 一致,但与 Isaac Lab 内部顺序不同。 **解决方法:** 1. 准备关节映射配置文件(参考 `scripts/tools/retarget/config/atom01.yaml`) 2. 执行重排序脚本: python scripts/tools/retarget/dataset_retarget.py * * * 🙏 参考与致谢 -------- 本项目建立在巨人的肩膀上: * Isaac Lab * rsl_rl * legged_gym * legged_lab * robot_lab * InstinctLab 几种训练策略的差异 1) `play.py`(最常见)——测「纯 RL 策略」 ----------------------------- 适用:**Atom01-Flat / 常规行走/盲走/简单地形**这类任务 训练多半就是 **PPO + reward shaping**,没有“参考动作片段”。 典型特征(你点开 `train.py / play.py`大概能看到): * 策略网络输入通常是:**观测 o_t(关节位置/速度/足端接触/IMU/上一动作…)** * 输出:**动作 a_t**(delta position / torque offset 之类) * 测试就干一件事:**load policy.pt → 对每个 env step 跑 `policy(o_t)`→ 看你机器人会不会站 / 走 /不翻** 一句话:**你教它“怎么活得更好”,它学出来的是 reward-max 的行为。** * * * 2) `play_amp.py`——测「AMP(Adversarial Motion Priors)」 --------------------------------------------------- 适用:**Atom01-AMP-Play**这种“要复现 MoCap/参考运动风格”的任务。 AMP 的关键点是: * 除了 RL 的 reward,**还有一个“风格判别器/先验”在约束动作别太野**,让它贴近给定的参考运动(walk/run/jump clips)。 * 因此它往往需要: * **reference motion data / clip pool / phase info** * 有时会额外把“motion embedding / AMP obs”拼进网络或判别器里 所以 `play_amp.py`通常会多做(相对 `play.py`): * 初始化/加载 **motion dataset / motion loader** * 保证测试时的 **phase / clip index /时间推进**与训练对齐 * 可能还会把 **discriminator(判别器)关掉只跑策略**(不然你会看到一些“eval专用开关”) 一句话:**你不只是在测‘能不能走’,而是在确认‘走出来像不像参考数据’。** * * * 3) `play_bm.py`——测「BeyondMimic / 更复杂的模仿框架」 ------------------------------------------ 适用:**Atom01-BeyondMimic**这种(名字就说明白啦)。 BeyondMimic 一般比 AMP 更“重”一点,常见差异点: * 可能不止一段 clip,而是**一大组技能/子任务**(多目标、条件化) * 可能需要加载 **离线缓存(nearest neighbor / retrieval index / dataset index)**,否则在线算不动 * 策略可能是 **conditioned on goal / skill-id / future trajectory chunk**,而不只是当前观测 所以 `play_bm.py`往往会: * 走另一条 **env cfg / policy wrapper**(尤其数据加载路径不同) * 更强调“把 dataset retarget 的结果准备好”(你 README 里那段关节映射就是这个链路的一部分) 一句话:**AMP 是‘风格先验’,BeyondMimic 更像‘靠大量范例把复杂技能逼出来’;两者数据管线不同,不能混用入口。** * * * 4) `play_parkour.py`——测「跑酷/地形强依赖策略」 ----------------------------------- 适用:**Atom01-Parkour-Play**。 跑酷类任务通常有几个“会炸在 play.py 里”的点: * **地形不是平的**:需要加载 heightmap / trimesh / obstacle assets(有些 env 只在 train 变体里才默认开) * **行为阶段性明显**:例如 走→快走→小跳→大跳→落,policy 里可能有 **command / phase / gait scheduler / contact schedule** * 有些实现会把 parkour 的 “play 相机/debug vis/只跑固定seed地形”单独处理