unitree_rl_gym 入门:从 Isaac Gym 训练到 Unitree 真机部署的完整链路
【免费下载链接】unitree_rl_gym项目地址: https://gitcode.com/GitHub_Trending/un/unitree_rl_gym
unitree_rl_gym 是宇树开源的机器人强化学习训练框架,要解决的核心问题,是如何在仿真中训练运动策略、再把它迁移到另一台仿真器和真实机器人。它面向 Go2、G1、H1、H1_2 四种型号。本文按训练、跨仿真验证、真机部署三段走一遍,适合刚接触机器人强化学习、希望尽快看到落地效果的工程师与学生。
它到底能帮你做什么
一句话:它把"仿真学会走路 → 换一台仿真器校验 → 上真机"这条迁移链路封装成可直接运行的脚本,覆盖 4 个型号、3 个部署目标(Isaac Gym、MuJoCo、物理机器人)。
相比从零搭环境,价值在于:
- 任务已注册:
go2 / g1 / h1 / h1_2通过 task_registry 一键创建环境,无需手写 VecEnv。 - 迁移工具链齐全:train、play、deploy_mujoco、deploy_real 四段脚本相互衔接,模型文件直接复用。
- 预训练模型开箱可用:
deploy/pre_train/下提供 g1/h1/h1_2 的motion.pt,可直接在 MuJoCo 或真机上验证。 - 参数集中可配:奖励尺度、控制频率、观测缩放都收敛在各型号 config 与 yaml 里,方便对照调参。
准备工作:把环境跑起来
先确认硬件与软件基线,再装依赖,最后跑一条自检。
前置条件(取自 doc/setup_zh.md):
- 系统 Ubuntu 18.04+,Nvidia 显卡,驱动 525 或更高。
- Python 3.8,建议用 conda 虚拟环境。
最短安装命令(按依赖顺序执行):
conda create -n unitree-rl python=3.8 -y conda activate unitree-rl pip install -e .说明:Isaac Gym 与 rsl_rl(v1.0.2) 需先按 setup 文档单独安装;pip install -e .会带上 isaacgym、rsl-rl、mujoco==3.2.3 等依赖。
如何判断成功:安装无报错,且pip show mujoco能显示 3.2.3,视为依赖齐全。
自检命令:
python -c "import isaacgym, legged_gym; print('ok')"如何判断成功:终端输出 ok 且无 ImportError,说明仿真与训练包均可正常导入。
三级跳:训练 → 跨仿真验证 → 真机部署
这一节按"策略生成 → 泛化校验 → 上机"的顺序组织,每跳只回答四件事:做什么、跑什么命令、看什么结果、失败去哪查。
第一跳:在 Isaac Gym 里训练策略
做什么:让机器人在并行仿真环境中试错,学会最大化设定的奖励。
python legged_gym/scripts/train.py --task=g1 --headless true --num_envs 4096--task指定型号(go2/g1/h1/h1_2);--headless true关闭图形界面提效;--num_envs 4096是并行环境数,显存不足可下调。
看什么结果:checkpoint 落在logs/<experiment_name>/<date_time>_<run_name>/model_<iteration>.pt;4096 环境下约 1-2 小时可得可用模型。
失败去哪查:任务名报 not registered,检查 legged_gym/envs/ 的注册;显存溢出,下调--num_envs。
第二跳:Play 可视化 + MuJoCo 跨仿真验证
做什么:先在 Gym 里回看动作,再搬到 MuJoCo,确认策略没有过拟合 Gym 特性。
python legged_gym/scripts/play.py --task=g1 python deploy/deploy_mujoco/deploy_mujoco.py g1.yamlplay.py会把 Actor 导出到logs/{experiment}/exported/policies/(MLP 为policy_1.pt,RNN 为policy_lstm_1.pt);deploy_mujoco.py读取deploy/deploy_mujoco/configs/g1.yaml。
看什么结果:MuJoCo 窗口中机器人能稳定行走、不倒下。
失败去哪查:把导出路径填进 yaml 的policy_path;观测或动作维数对不上时,核对 yaml 里的num_obs、num_actions。
第三跳:真机部署(Sim2Real)
做什么:把策略推到物理机器人,用遥控器控制运动。
前置:机器人吊装、进入零力矩后按 L2+R2 进调试模式,网线连接并记下网卡名(如 enp3s0)。
python deploy/deploy_real/deploy_real.py enp3s0 g1.yaml{net_interface}换成实际网卡;配置在deploy/deploy_real/configs/。
看什么结果:按遥控器 start 到默认位、按 A 键原地踏步,摇杆可控制前后/左右/转向。
失败去哪查:连不上机查网卡与unitree_sdk2py;运动异常回 deploy/deploy_real/README.zh.md 对照步骤。
效果不达标?按这张表排查
四类高频问题一张表对齐,先认出现象,再顺藤摸到文件。
| 现象 | 可能原因 | 处理方式 | 涉及文件/参数 |
|---|---|---|---|
| 训练速度慢 | 并行环境少、开着图形界面 | 加--num_envs 4096、--headless true | train.py 命令行参数 |
| 策略不稳、易倒 | 奖励尺度失衡、迭代不足 | 调 rewards.scales,加--max_iterations | g1_config.pyrewards.scales |
| 仿真与真机差距大 | 未做跨仿真校验 | 先跑 deploy_mujoco 再上机 | deploy_mujoco/configs/*.yaml |
| 资源占用高、显存爆 | 环境数过大 | 下调--num_envs、减小 batch | legged_robot_config.pynum_envs |
进阶:让它学会更多
以下五项按从易到难排列,可逐项尝试。
- 调整奖励权重:在 legged_gym/envs/g1/g1_config.py 的
rewards.scales中改动,例如把tracking_lin_vel从 1.0 提到 1.5,可强化直线速度跟踪;改完重训即可对比。 - 渐进式策略:先在平地上学会走,再逐步加入坡度与障碍地形,避免一开始就接触复杂地形导致不收敛。
- 多技能同训:在同一 config 下叠加前向、侧向、转向等速度命令,让一次训练覆盖多种动作。
- 硬件与软件调优:优先 RTX 3080 级显卡,按显存调 batch;配合学习率衰减与早停控制训练节奏。
- 监控指标:盯住平均奖励趋势、策略熵、训练损失三条曲线,据此判断是否收敛或过探索。
下一步行动清单
按顺序执行,可在一周内跑通从文档到真机的完整链路。
- 读安装文档 doc/setup_zh.md,确认驱动与依赖版本。
- 用 deploy/pre_train/ 的预训练模型先跑通 MuJoCo 与真机,建立基准手感。
- 打开 legged_gym/envs/ 找对应型号 config,对照
rewards.scales改一个权重做对比实验。 - 参考 deploy/deploy_real/README.zh.md 走一遍真机调试模式。
- 有阻塞可到仓库 issue 区提问。
从 G1 的平地行走起步,跑通三级跳后再谈更复杂的动作,比一次堆满功能更容易出成果。
【免费下载链接】unitree_rl_gym项目地址: https://gitcode.com/GitHub_Trending/un/unitree_rl_gym
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考