news 2026/7/31 9:39:14

unitree_rl_gym_新手教程_第3章_动手实践

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
unitree_rl_gym_新手教程_第3章_动手实践

第 3 章:动手实践 — 训练、查看、调试

开始真正跑模型!每个命令都会解释清楚。

3.1 每次工作前:激活环境

conda activate unitree_rl cd /workspace_project/g1_robot/unitree_rl_gym_study/unitree_rl_gym

⚠️ 必须看到终端提示符显示(unitree_rl)。如果显示(base),说明没切过来。

3.2 开始训练

基础命令

python legged_gym/scripts/train.py --task=g1 --headless --num_envs=512
参数含义建议
--task=g1训练 G1 机器人必填,可选 go2/h1/h1_2
--headless不弹窗口(训练快 30%)训练时推荐加
--num_envs=512同时 512 个环境无头模式 512,有头模式 64
--seed=1随机种子不指定则用 1
--max_iterations=10000训练轮数上限先设 200 测试,确认无误再跑正式

RTX 4060 8GB 显存规则

模式num_envs说明
有头(看过程)64GUI 渲染吃显存,高了会卡
无头(--headless512释放渲染后 GPU 能跑满

训练时你会看到的输出

Learning iteration 100/10000 Computation: 15000 steps/s (collection: 0.3s, learning: 0.07s) Value function loss: 0.0011 ← 价值函数损失(越小越好) Surrogate loss: -0.0221 ← 策略损失(不要管正负,看它变化) Mean action noise std: 0.80 ← 探索噪声(慢慢减小=网络变自信) Mean reward: 0.04 ← ★ 最重要的是这个 —— 平均奖励 Mean episode length: 300 ← ★ 机器人能活几步(越久越好)

看懂两个关键指标就够了:

  • Mean reward 持续上升→ 训练正常 ✅
  • Mean episode length 持续增长→ 机器人站得越来越久 ✅

什么时候停止训练?

  • reward 不再上升(收敛)→ 可以停了
  • 达到max_iterations→ 自动停
  • 显存爆了(OOM Error)→ 减少--num_envs
  • episode_length 接近上限值(~1000 步 = 20 秒)→ 快要练好了

3.3 查看训练效果

方法 1:Isaac Gym 可视化

python legged_gym/scripts/play.py --task=g1 --load_run=<文件夹名>

会弹出一个窗口,显示 G1 在走路。不加--load_run则加载最近一次训练的模型。

键盘控制:ESC 退出,V 切换同步模式。

方法 2:TensorBoard(更推荐)

# 新开一个终端 tensorboard --logdir=logs/

然后在浏览器打开http://localhost:6006,能看到:

图表简要含义
mean_total_reward总奖励;持续上升并趋于稳定,通常表示训练收敛
rew_tracking_lin_vel线速度跟踪;越高表示越能按照指令行走
mean_episode_length平均存活步数;越高通常表示步态越稳定
rew_lin_vel_z/rew_orientation机身稳定性惩罚;负值绝对值越小越好
policy_loss/value_lossPPO 策略与价值网络损失;重点观察是否剧烈发散
entropy策略探索程度;过快降到 0 可能表示探索不足

具体使用方法看:TensorBoard 使用教程

3.4 从上次中断继续训练

# 从上一次中断的位置继续 python legged_gym/scripts/train.py --task=g1 --headless --resume # 从指定的 run 继续 python legged_gym/scripts/train.py --task=g1 --headless --resume --load_run=<文件夹名> # 从第 500 轮的检查点继续 python legged_gym/scripts/train.py --task=g1 --headless --resume --checkpoint=500

模型检查点位置:logs/g1/<日期>_<run_name>/model_<迭代次数>.pt

3.5 常见调试场景

场景 1:训练半天 reward 不涨

可能原因和排查:

  1. 学习率太高/太低g1_config.pyalgorithm.learning_rate(默认 1e-3 一般OK)
  2. 探索不够→ 调大policy.init_noise_std(默认 0.8)
  3. 奖励设计有问题→ 检查rewards.scales各项权重是否合理
  4. 域随机化太强→ 关掉试试,domain_rand.randomize_friction = False

场景 2:机器人学会了但走路抽搐

关节抖动 → 调大rewards.scales.action_rate(变更负),惩罚动作变化。

场景 3:机器人总是前倾摔倒

  • 检查default_joint_angles是否合理(当前默认姿态应该微坐)
  • 增大rewards.scales.orientation(更负的绝对值)
  • 增大rewards.scales.base_height(更负的绝对值)

场景 4:显存不够-CUDA out of memory

# 无头:降低到 256 python legged_gym/scripts/train.py --task=g1 --headless --num_envs=256 # 有头:降低到 32 python legged_gym/scripts/train.py --task=g1 --num_envs=32

3.6 导出模型给 MuJoCo 验证(目标 2)

# 1. 用 play.py 导出 JIT 模型 python legged_gym/scripts/play.py --task=g1 --load_run=<文件夹名> # play.py 默认导出到 logs/g1/exported/policies/ # 2. 用 MuJoCo 跑导出的模型 cd deploy/deploy_mujoco python deploy_mujoco.py g1.yaml

这是学习目标 2(deploy_mujoco)的核心内容。详见 部署计划 - 目标 2。

3.7 训练建议和技巧

新手推荐的实验顺序

  1. 先用默认配置跑 200 轮,看 reward 有没有增长趋势
  2. 看 TensorBoard,了解各项奖励的变化
  3. 调一个参数(比如tracking_lin_vel的权重),重新跑 200 轮对比
  4. 记录每次实验:改了哪个参数、效果怎样
  5. 积累经验:反复 3-4 次就能培养直觉

一次典型训练的时间线

0-100 轮: 机器人基本在乱动,频繁摔倒,reward 很低 100-500 轮: 开始能站几秒了,reward 上升 500-1000 轮: 开始迈步了但不太稳,episode length 达到几百步 1000-3000 轮:走得越来越稳,reward 接近收敛 3000-5000 轮:基本收敛,可以停了 5000-10000 轮:微调优化(如果还有上升空间就继续)

以上是经验估计,实际取决于你的奖励设计和硬件速度。256 环境 ~15k steps/s,1 轮 = 24×256=6144 steps,约 0.4 秒/轮,1000 轮约 7 分钟。

训练过程中不要做的事

  • ❌ 训练中不要开 GUI(会拖慢 30-50%),用--headless+ TensorBoard 看曲线就够了
  • ❌ 不要每跑几轮就改参数,让同一配置至少跑 500 轮再看效果
  • ❌ 不要同时训练和 Play(显存不够)

→ 下一章:04unitree_rl_gym新手教程第4章深入理解

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/31 9:38:19

STM32 HAL库IAP实现指南:从原理到实战的固件空中升级方案

1. 项目缘起&#xff1a;为什么你的产品需要一个IAP功能&#xff1f;在嵌入式产品开发中&#xff0c;固件更新是一个绕不开的话题。想象一下&#xff0c;你的设备已经部署到了成百上千个用户手中&#xff0c;这时你发现了一个需要修复的Bug&#xff0c;或者需要增加一个酷炫的新…

作者头像 李华
网站建设 2026/7/31 9:35:50

Minecraft区块管理终极指南:MCA Selector完全使用手册

Minecraft区块管理终极指南&#xff1a;MCA Selector完全使用手册 【免费下载链接】mcaselector A tool to select chunks from Minecraft worlds for deletion or export. 项目地址: https://gitcode.com/gh_mirrors/mc/mcaselector 你是否曾为Minecraft世界文件日渐臃…

作者头像 李华
网站建设 2026/7/31 9:33:25

本科毕设也查 AIGC 了:第一次写论文的检测扫盲帖

写毕设之前我以为查重就完事了&#xff0c;结果学院群里突然甩出一张 AIGC 检测报告截图&#xff0c;一堆红色标注,说是"疑似 AI 生成"。我那会儿是真懵——查重不是查一个"重复率"吗&#xff0c;这个 AI 率又是什么鬼&#xff0c;跟查重是一回事还是两回事…

作者头像 李华
网站建设 2026/7/31 9:33:04

目前医疗技术领域产学研合作的平均投入产出比数据是怎样的?

核心要点&#xff1a; 医疗技术领域产学研合作缺乏统一的平均投入产出比公开统计&#xff0c;但行业普遍存在转化周期长、效率低、资源错配等痛点&#xff0c;导致政府、高校、企业等主体难以量化创新回报。核心瓶颈在于技术供需信息不对称、成果评价无标准、对接渠道单一&…

作者头像 李华