- 项目概述
整理了一个基于 NVIDIA Isaac Lab 的 Unitree Go2 四足机器人强化学习开源工程。Isaac Lab 基于 Isaac Sim,适合构建高并发机器人强化学习环境;Unitree Go2 是 12 自由度四足机器人,适合作为 locomotion、复杂地形运动、导航避障和 Sim2Real 研究对象。项目围绕 Go2 构建了四个递进任务:Task1 平地速度跟踪、Task2 多地形运动、Task3 自主导航与避障、Task4 Sim2Real / RMA 抗扰训练。
项目重点不是给出一个固定的最终策略,而是把一个四足机器人强化学习工程从配置、环境、世界模型、训练、测试、评估、日志和 checkpoint 管理等环节拆清楚,形成可以继续复现、修改和扩展的基础框架。 - 工程结构
工程采用较清晰的模块化组织方式。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。这样在不同系统和不同任务之间切换时,命令结构比较一致。 - 四个任务
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,扰动包括摩擦、负载、重心偏移、电机强度变化和外力扰动。 - 测试与验证
项目提供 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 - 训练与评估
推荐训练顺序是先训练 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//final_checkpoint/go2_task1_model.pt
bash scripts/ubuntu/train_task3.sh logs/task2//final_checkpoint/go2_task2_model.pt
bash scripts/ubuntu/train_task4.sh logs/task2//final_checkpoint/go2_task2_model.pt
训练日志默认保存在logs/task1/到logs/task4/,每个 run 通常包含中间 checkpoint、final checkpoint 和训练元数据。训练过程中会输出 env steps、FPS、reward、速度、高度、接触、摔倒率、成功率、碰撞率、terrain level 等信息,便于观察训练状态。 - 项目链接
GitHub:https://github.com/0324Lw/NVIDIA--Isaac-Lab-Unitree_Go2-control
项目适合参考 Isaac Lab 下四足机器人强化学习工程的组织方式,包括任务拆分、脚本入口、测试流程、训练日志管理和 checkpoint 管理。后续仍可继续扩展 student policy、RMA adaptation module、更多导航场景、更复杂地形和真机部署接口。


