1. 项目概述
整理了一个基于 NVIDIA Isaac Lab 的 Unitree Go2 四足机器人强化学习开源工程。Isaac Lab 基于 Isaac Sim,适合构建高并发机器人强化学习环境;Unitree Go2 是 12 自由度四足机器人,适合作为 locomotion、复杂地形运动、导航避障和 Sim2Real 研究对象。项目围绕 Go2 构建了四个递进任务:Task1 平地速度跟踪、Task2 多地形运动、Task3 自主导航与避障、Task4 Sim2Real / RMA 抗扰训练。
项目重点不是给出一个固定的最终策略,而是把一个四足机器人强化学习工程从配置、环境、世界模型、训练、测试、评估、日志和 checkpoint 管理等环节拆清楚,形成可以继续复现、修改和扩展的基础框架。
2. 工程结构
工程采用较清晰的模块化组织方式。`configs/` 保存任务配置和平台示例配置;`scripts/ubuntu/` 与 `scripts/windows/` 分别保存两个系统下的 check、test、smoke、train、eval、visualize 脚本;`src/go2_rl/common/` 保存 skrl 模型、frame stack wrapper、checkpoint、normalizer、日志进度和路径解析等公共工具;`src/go2_rl/tasks/` 保存四个任务的核心代码;`tests/` 保存 world 和 env 测试;`docs/` 保存任务设计、训练说明、路径配置、验证记录和故障排查文档。
当前 active 脚本命名保持统一:Ubuntu 使用 `.sh`,Windows 使用 `.ps1`,并且每个任务都尽量保持相同的控制入口,例如 `smoke_task1` 到 `smoke_task4`、`train_task1` 到 `train_task4`、`eval_task1` 到 `eval_task4`。这样在不同系统和不同任务之间切换时,命令结构比较一致。
3. 四个任务
Task1 是平地速度跟踪任务,动作维度为 12,actor observation 为 87 维,主要训练 Go2 的基础站立、行走和速度跟踪能力。Task2 在 Task1 基础上加入多地形课程学习,包含 rough flat、slopes、stepping stones 和 stairs,actor observation 为 87 维,privileged observation 为 178 维,其中 terrain privileged tail 为 91 维。
Task3 加入解析导航世界,使用目标点、静态 / 动态障碍物、60 维 lidar 和 risk features 训练导航避障能力。Task3 单帧 actor observation 为 208 维,5 帧堆叠后 actor input 为 1040 维,world privileged tail 为 68 维,critic input 为 1108 维。Task4 面向 Sim2Real / RMA teacher 训练,teacher_obs = actor_history + privileged_obs = 240 + 25 = 265,扰动包括摩擦、负载、重心偏移、电机强度变化和外力扰动。
4. 测试与验证
项目提供 Ubuntu 端 world 测试、env 测试和 smoke training。world 测试用于验证 Task2 的 terrain / curriculum 逻辑,以及 Task3 的目标、障碍物、lidar、risk features 和 termination 逻辑。env 测试用于验证 IsaacLab 环境构建、reset / step API、观测维度、动作维度、reward / info 输出和数值稳定性。smoke training 用于确认训练入口、日志写入、checkpoint 保存和训练循环能够正常启动。
bash scripts/ubuntu/test_task2_world.sh bash scripts/ubuntu/test_task3_world.sh bash scripts/ubuntu/test_task1_env.sh bash scripts/ubuntu/test_task2_env.sh bash scripts/ubuntu/test_task3_env.sh bash scripts/ubuntu/test_task4_env.sh
bash scripts/ubuntu/smoke_task1.sh bash scripts/ubuntu/smoke_task2.sh bash scripts/ubuntu/smoke_task3.sh bash scripts/ubuntu/smoke_task4.sh
5. 训练与评估
推荐训练顺序是先训练 Task1,获得基础 locomotion checkpoint;Task2 从 Task1 warm-start,学习多地形运动;Task3 从 Task1 或 Task2 warm-start,学习目标导航与避障;Task4 从 Task2 warm-start,训练 RMA teacher policy。
bash scripts/ubuntu/train_task1.sh bash scripts/ubuntu/train_task2.sh logs/task1/<run_name>/final_checkpoint/go2_task1_model.pt bash scripts/ubuntu/train_task3.sh logs/task2/<run_name>/final_checkpoint/go2_task2_model.pt bash scripts/ubuntu/train_task4.sh logs/task2/<run_name>/final_checkpoint/go2_task2_model.pt
训练日志默认保存在 `logs/task1/` 到 `logs/task4/`,每个 run 通常包含中间 checkpoint、final checkpoint 和训练元数据。训练过程中会输出 env steps、FPS、reward、速度、高度、接触、摔倒率、成功率、碰撞率、terrain level 等信息,便于观察训练状态。
6. 项目链接
GitHub:https://github.com/0324Lw/NVIDIA--Isaac-Lab-Unitree_Go2-control
项目适合参考 Isaac Lab 下四足机器人强化学习工程的组织方式,包括任务拆分、脚本入口、测试流程、训练日志管理和 checkpoint 管理。后续仍可继续扩展 student policy、RMA adaptation module、更多导航场景、更复杂地形和真机部署接口。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。