ATOM01-Train 是一个面向足式机器人强化学习研究与落地的开源训练框架。它以 NVIDIA IsaacLab 为仿真底座,围绕 ATOM01 双足机器人构建了一套完整的「训练—算法—部署」pipeline。本页面向初次接触的开发者,阐述项目要解决的核心问题、架构设计理念以及它为何值得成为你入男足式机器人 RL 的第一站。
Sources: README_CN.md
项目要解决什么问题
足式机器人的强化学习训练涉及仿真环境搭建、奖励设计、算法实现、Sim2Sim 验证等多个环节。对于初学者而言,常见的痛点包括:环境逻辑 buried 在大型框架内部难以调试、算法代码与框架耦合过深无法独立迭代、以及从训练到真机部署缺乏明确的迁移路径。ATOM01-Train 的设计初衷正是为了降低这一全链路的认知门槛与重构成本——它将环境定义以高透明度的方式呈现,将算法库以独立模块的形式维护,并内置了从 IsaacLab 到 MuJoCo 的 Sim2Sim 部署脚本,使得你可以在隔离的代码空间中完成从第一行环境逻辑到最终策略导出的完整闭环。
Sources: README_CN.md, robolab/setup.py
整体架构一览
项目采用双仓库隔离设计,在顶层由 robolab/ 与 rsl_rl/ 两个核心包组成。前者负责仿真环境、机器人资产与部署工具,后者负责强化学习算法与网络模块。两者通过 pip 可编辑安装独立管理依赖,确保你的环境开发不会侵入 IsaacLab 核心仓库,算法迭代也不会被仿真细节过度干扰。
flowchart TB
subgraph 训练侧["训练侧 (IsaacLab + GPU 并行)"]
A1["robolab/tasks<br/>Direct / Manager-based 环境"]
A2["robolab/assets<br/>ATOM01 机器人配置"]
A3["rsl_rl/algorithms<br/>PPO / PPO-AMP / Distillation"]
A4["rsl_rl/modules<br/>Actor-Critic / Attention / RND / Symmetry"]
A5["rsl_rl/runners<br/>OnPolicy / AMP / Distillation Runner"]
end
subgraph 部署侧["部署侧 (Sim2Sim & 真机迁移)"]
B1["robolab/scripts/mujoco<br/>sim2sim_atom01.py"]
B2["robolab/data/motions<br/>AMP / BeyondMimic 数据集"]
end
A1 --> A5
A5 --> A3
A3 --> A4
A2 --> A1
A5 -->|导出 policy.pt| B1
B2 --> A1
上图展示了数据与控制的流动关系:训练阶段,IsaacLab 提供大规模并行仿真环境,rsl_rl 中的 Runner 驱动算法进行策略更新;当训练收敛后,策略权重被导出为 policy.pt,再由 MuJoCo Sim2Sim 脚本加载验证,为后续真机迁移提供低风险的中间过渡。
Sources: robolab/robolab/init.py, robolab/scripts/rsl_rl/train.py, robolab/scripts/mujoco/sim2sim_atom01.py
核心特性矩阵
ATOM01-Train 并非一个简单的「环境封装」,而是一个集成了多种前沿算法的综合平台。下表从环境范式、算法模块和部署能力三个维度梳理其关键能力。
| 维度 | 特性 | 说明 |
|---|---|---|
| 环境架构 | Direct RL | 直接继承 DirectRLEnv,环境逻辑一目了然,适合细粒度调试与快速重构 |
| Manager-based RL | 基于 IsaacLab 的 Manager 系统,通过配置类组合观察、奖励、事件,适合复杂任务编排 | |
| 内置任务 | Base Locomotion | 基础速度跟踪行走任务,包含高度扫描、接触感知、指令生成 |
| Attention Encoder | 在基础任务上引入注意力编码器,处理高维感知输入 | |
| Interrupt Recovery | 支持外部中断与恢复机制,训练具有抗扰动能力的策略 | |
| AMP | 基于 Manager-based 架构的对抗运动先验,实现模仿学习 | |
| BeyondMimic | 扩展模仿学习框架,支持更丰富的运动数据驱动策略 | |
| 算法库 | PPO | 经典近端策略优化,支持自适应学习率与 KL 散度调度 |
| PPO-AMP | 融合 AMP 判别器,利用运动数据提供风格奖励 | |
| Distillation | 学生-教师蒸馏框架,支持将大模型策略压缩为轻量策略 | |
| 网络扩展 | Actor-Critic (MLP/CNN/RNN) | 多种主干网络可选 |
| Attention Encoder | 多头自注意力编码器,处理序列化观测与空间感知 | |
| RND | 随机网络蒸馏内在奖励,增强稀疏奖励下的探索 | |
| Symmetry | 左右对称性约束,提升策略鲁棒性与数据效率 | |
| 工程能力 | 分布式训练 | 支持多 GPU / 多节点数据并行 |
| Sim2Sim | 内置 MuJoCo 迁移脚本,验证策略跨物理引擎的泛化性 | |
| 运动数据管线 | 提供 AMP / BeyondMimic 数据集格式与重定向参考配置 |
Sources: rsl_rl/rsl_rl/algorithms/ppo.py, rsl_rl/rsl_rl/algorithms/ppo_amp.py, rsl_rl/rsl_rl/algorithms/distillation.py, rsl_rl/rsl_rl/modules/actor_critic_attn_enc.py, rsl_rl/rsl_rl/modules/rnd.py, rsl_rl/rsl_rl/modules/symmetry.py
项目目录速览
为了帮助你快速建立空间感,以下是生产代码的核心目录结构(已过滤依赖与缓存目录):
atom01_train/
├── robolab/ # 环境、资产与部署脚本
│ ├── robolab/
│ │ ├── assets/robots/ # ATOM01 机器人 ArticulationCfg
│ │ ├── tasks/
│ │ │ ├── direct/ # Direct RL 环境
│ │ │ │ ├── base/ # 基础行走环境 + MDP 配置
│ │ │ │ ├── attn_enc/ # 注意力编码器环境
│ │ │ │ └── interrupt/ # 中断恢复环境
│ │ │ └── manager_based/ # Manager-based RL 环境
│ │ │ ├── amp/ # AMP 模仿学习环境
│ │ │ └── beyondmimic/ # BeyondMimic 模仿学习环境
│ │ └── utils/ # 数学工具与键盘交互
│ ├── scripts/
│ │ ├── rsl_rl/ # 训练、测试入口
│ │ ├── mujoco/ # Sim2Sim 部署脚本
│ │ └── tools/ # 环境列表、重定向工具
│ └── data/
│ ├── robots/ # URDF / MJCF 模型
│ └── motions/ # AMP / BeyondMimic 运动数据集
├── rsl_rl/ # 强化学习算法库(独立包)
│ ├── rsl_rl/
│ │ ├── algorithms/ # PPO、PPO-AMP、Distillation
│ │ ├── modules/ # 网络与辅助模块
│ │ ├── networks/ # MLP、CNN、Attention、Memory
│ │ ├── runners/ # 训练循环与日志
│ │ ├── storage/ # Rollout Buffer、Circular Buffer
│ │ └── utils/ # 日志、工具函数
│ └── config/example_config.yaml # 算法超参数配置示例
└── README_CN.md # 中文快速开始指南
这种目录组织体现了一个关键设计决策:robolab 负责「仿真世界发生什么」,而 rsl_rl 负责「智能体如何学习」。当你需要修改机器人的观测空间时,只需关注 robolab/tasks/;当你想尝试新的损失函数或网络结构时,只需关注 rsl_rl/。两者通过标准的 VecEnv 接口解耦。
Sources: robolab/robolab/tasks/init.py, rsl_rl/rsl_rl/runners/on_policy_runner.py, rsl_rl/rsl_rl/runners/amp_runner.py
三大核心价值
1. 高透明度与低重构难度
与许多将环境逻辑隐藏在层层 Manager 背后的框架不同,ATOM01-Train 的 Direct RL 环境(如 BaseEnv)直接继承自 DirectRLEnv,奖励计算、观测拼接、指令生成等核心逻辑均以显式 Python 代码呈现。你可以在一个文件中完整追踪从仿真状态到策略输入的整条数据流,这对于初学者理解「环境到底在做什么」至关重要。同时,模块化的配置类(BaseEnvCfg)让你可以通过替换配置文件而非修改源码来切换不同的地形、奖励权重或观测组合,显著降低了实验迭代时的重构成本。
Sources: robolab/robolab/tasks/direct/base/base_env.py, robolab/robolab/tasks/direct/base/base_config.py
2. 开箱即用的高级算法
项目内置了当前足式机器人领域多个重要算法变体,且均保持统一的接口风格。无论你希望训练一个标准的速度跟踪策略(PPO)、一个具备人类运动风格的行走策略(PPO-AMP),还是一个能在廉价传感器上运行的轻量策略(Distillation),都只需修改配置入口即可切换算法 Runner,无需从零实现判别器、缓冲区或分布式同步逻辑。此外,注意力编码器、RND 探索增强和对称性约束等模块均已封装为即插即用的网络组件,可通过 YAML 配置一键启用。
Sources: rsl_rl/rsl_rl/modules/amp.py, rsl_rl/rsl_rl/modules/student_teacher.py, rsl_rl/rsl_rl/modules/actor_critic_attn_enc.py
3. 从仿真到部署的闭环支持
训练得到的策略如果仅停留在 IsaacLab 中,其价值将大打折扣。ATOM01-Train 提供了完整的 Sim2Sim 迁移路径:通过 scripts/mujoco/sim2sim_atom01.py,你可以将导出的 PyTorch 策略直接加载到 MuJoCo 物理引擎中进行验证。脚本内部已经完成了观测提取、PD 控制扭矩计算与 IsaacLab 坐标系到 MuJoco 坐标系的适配,使得跨引擎验证几乎零额外开发成本。同时,项目预留了运动数据重定向工具的配置接口(scripts/tools/retarget/config/atom01.yaml),为后续从动捕数据到 AMP/BeyondMimic 数据集的制作提供了标准化入口。
Sources: robolab/scripts/mujoco/sim2sim_atom01.py, README_CN.md
推荐阅读路线
作为初学者,建议你按照以下顺序逐步深入,每一站都建立在前一站的知识基础之上:
- 环境搭建与快速运行 — 完成 IsaacLab 与 ATOM01-Train 的安装,运行第一个训练命令,验证环境就绪。
- 项目结构导读 — 深入理解
robolab与rsl_rl的模块划分,掌握配置文件的组织方式。 - 训练你的第一个策略 — 以 Base Locomotion 任务为例,走完从配置到训练再到可视化的完整流程。
- Direct RL 环境架构 或 Manager-based 环境架构 — 根据你的研究需求,选择一种环境范式进行深入学习。
如果你已经具备一定的强化学习基础,也可以直接从 PPO 核心算法与超参数 或 AMP Runner 与模仿学习训练 开始,快速上手 ATOM01-Train 的算法扩展能力。