1.1 Isaac Lab
本章「环境搭建」要做的事:在写一行训练代码前,先把工具链铺好、看懂——本节 1.1 讲训练框架 Isaac Lab(以及它底下的 Isaac Sim、上面的 RSL-RL),1.2 装好并跑通仿真环境,1.3 备齐其他环境(MuJoCo 等),1.4 把官方示例彻底吃透。之后的第 2 章起才进入"策略",由简到难循序渐进。
本体选型:Unitree G1(宇树人形机器人,社区生态最全、最主流、最可及)。我们没有真机,训练全程在仿真里完成。
1. 先看懂这张「地图」
"看懂地图"指的是看懂整条技术链路(不是仿真里的地形)。整个项目就是把下面这条流水线跑通、并在它之上做出差异化:
┌─────────────┐ GPU 并行物理 ┌──────────────┐ PPO 强化学习 ┌──────────────┐
│ Isaac Sim │ ───────────────► │ Isaac Lab │ ──────────────► │ RSL-RL │
│ 物理+渲染引擎 │ 4096 个机器人 │ 机器人学习框架 │ 收集经验/更新 │ PPO 训练器 │
└─────────────┘ 同时仿真 └──────────────┘ 策略网络 └──────┬───────┘
│ 训练收敛
▼
┌────────────────────────────────────────────┐
│ policy.pt / policy.onnx(可部署的策略网络) │
└───────────────────┬────────────────────────┘
│ zero-shot 迁移
▼
┌─────────────────┐
│ MuJoCo │ sim2sim 验证
│ 换一个物理引擎 │ 量化迁移成功率
└─────────────────┘
一句话:Isaac Sim 提供物理 → Isaac Lab 把它包成"会学习的环境" → RSL-RL 用 PPO 训出走路策略 → 导出 ONNX → 丢进 MuJoCo 换个引擎验证它没"过拟合"到 Isaac 的物理。
2. 训练栈:Isaac Sim / Isaac Lab / RSL-RL
| 层 | 是什么 | 在本项目里干什么 |
|---|---|---|
| Isaac Sim | NVIDIA 的机器人物理仿真 + 渲染引擎,底层用 PhysX,能在单张 GPU 上同时仿真上千个机器人。 | 提供 G1 的刚体动力学、接触、地形碰撞。一般 --headless(不开图形界面)跑,纯算物理最快。 |
| Isaac Lab | 建在 Isaac Sim 之上的机器人学习框架(前身 Isaac Gym / OmniIsaacGymEnvs)。用 "manager-based" 方式把一个 RL 任务拆成 观测/动作/奖励/事件/终止 等管理器。自带 G1 行走任务。 | 我们的训练主战场。版本 2.3.2,装在 /home/jeff/IsaacLab(怎么用见 1.2)。 |
| RSL-RL | 苏黎世联邦理工(ETH RSL 实验室)出的轻量级 RL 库,专做腿足机器人,核心是 GPU 上的 PPO。 | 真正"学习"的部分。Isaac Lab 把经验喂给它,它更新策略网络(actor-critic)。日志/权重写到 logs/rsl_rl/。 |
本体 Unitree G1 在 Isaac Lab 里以 G1_MINIMAL_CFG 资产形式提供(关节、连杆、质量、限位都已建好);迁移用的 MuJoCo 属于"其他环境",放到 1.3 讲。
3. 为什么用 Isaac Lab(而不是 unitree_rl_gym)
网上很多 G1/H1 教程用
unitree_rl_gym,它基于 已废弃的 Isaac Gym Preview。我们不用它。
- Isaac Lab 2.3.2 已自带 G1 locomotion 任务,且是 NVIDIA 当前官方主线,长期维护。
- Isaac Gym Preview 早已停更,环境难配、和新驱动冲突。
unitree_rl_gym唯一还值钱的功能是 MuJoCo sim2sim 部署——这部分我们在项目的sim2sim/里用 G1 的 MJCF 重新搭,反而更可控、更能写进简历。
4. 强化学习速览(够读懂后面就行)
后面几节会大量出现这些词,这里先建立直觉,细节到 1.4 结合 G1 任务再展开:
| 概念 | 一句话理解 | 在 G1 行走里是什么 |
|---|---|---|
| Observation(观测) | 机器人每步"看到/感觉到"的信息向量。 | 躯干线/角速度、重力方向、目标速度指令、各关节角度与角速度、上一步动作…… |
| Action(动作) | 策略网络每步输出的控制量。 | 各关节的目标角度(叠加在默认站姿上),再由 PD 转成力矩。 |
| Reward(奖励) | 给行为打分,告诉算法"什么是好"。 | 主奖励=跟上指定行走速度;外加一堆惩罚(能耗、抖动、摔倒)。 |
| PPO | 一种稳定好用的 on-policy 策略梯度算法。 | actor 出动作、critic 估价值,反复"采样→更新"。 |
| 并行仿真 | 同时仿真几千个机器人来海量采样。 | 默认 4096 个 G1 同时走,几分钟攒到百万级经验。 |
| 域随机化 (DR) | 训练时随机扰动物理/施加外力,逼策略学得鲁棒。 | 随机摩擦、质量、推力……是 sim2real/sim2sim 能成立的关键,也是后续主攻点。 |
👉 下一节:1.2 仿真环境(把它装好、跑通冒烟)。