Code Walkthrough(面向科研开发,上手 + 深入)#
这套文档的目标是:让第一次阅读本项目的同学在 1-2 小时 内建立可靠的心智模型,并能在现有 Unitree G1 任务(velocity / tracking)的基础上,快速开发自己的 RL 任务。
你会在这里学到什么#
架构总览:ManagerBasedRlEnv = Scene + Simulation + Managers 的数据流与控制流。
Manager-base API 设计:设计哲学、扩展方法以及 奖励 (Reward) 与终止 (Termination) 的配置。
任务开发路径:如何像写 Isaac Lab manager-based task 一样写 mjlab task(但用 dict cfg)。
g1/h1 任务解剖:tasks/velocity、tasks/tracking 与 tasks/homie 的 cfg/MDP/训练入口拆解与改造建议。
阅读顺序建议#
第一次阅读:按顺序看(总览 → 环境生命周期 → managers/terms → 任务实例 → 自己动手)。
已经熟 Isaac Lab:直接跳到 managers_and_terms 与两个任务章节对照代码即可。
章节目录
- 架构总览:一张图看懂 mjlab
- 快速上手:最短开发闭环(训练 / Play / 改任务)
- 代码地图:你应该去哪里改东西?
- 重点类一:ManagerBasedRlEnv(环境生命周期与数据流)
- 重点类二:Managers + Terms(isaaclab-like 的核心抽象)
- 奖励函数与终止条件 (Rewards and Terminations)
- 实例一:Velocity Tracking(Unitree G1)
- 实例二:Motion Tracking / Imitation(Unitree G1)
- 实例三:Homie —— 混合运动与干扰(Unitree H1)
- 如何新增一个 G1 RL 任务(从 0 到可训练)
- 调试与性能:让你“稳”且“快”