unitree_rl_gym_新手教程_第5章_训练师手册
第 5 章训练师手册 — 所有训练操作详解这是你的训练操作速查手册。每个命令都会解释清楚什么时候用、为什么这样写、注意什么。5.1 训练前必做激活环境每次打开新终端第一步永远是conda activate unitree_rl cd /workspace_project/g1_robot/unitree_rl_gym_study/unitree_rl_gym⚠️ 终端提示符必须显示(unitree_rl)。如果显示(base)说明环境没切过来后面的 pip/python 都会装错地方。5.2 训练命令大全5.2.1 基础训练# 无头训练推荐速度快 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 # 有头训练看过程慢 python legged_gym/scripts/train.py --taskg1 --num_envs64参数作用RTX 4060 8GB 建议值--taskg1选机器人g1/h1/h1_2/go2必填--headless不渲染窗口纯计算正式训练加上--num_envsN同时模拟 N 个机器人无头 512 / 有头 64--max_iterationsN跑 N 轮自动停测试用 200正式用 2000~10000--seedN随机种子同样的种子同样的结果需要复现实验时指定--run_namexxx给这次训练起个名字方便区分不同实验--experiment_namexxx实验组名默认 g1不改也行自定义参数说明--task: 指定任务名称默认 go2--resume: 是否恢复训练--experiment_name: 实验名称--run_name: 运行名称--load_run: 要加载的运行名称-1 表示加载最后一个--checkpoint: 要加载的检查点编号-1 表示加载最后一个--headless: 无头模式运行不显示图形界面--horovod: 使用 horovod 进行多GPU训练--rl_device: RL算法使用的设备如 cuda:0, cpu--num_envs: 环境数量--seed: 随机种子--max_iterations: 最大训练迭代次数5.2.2 选对 num_envs显存规则RTX 4060 8GB 实测 --num_envs64 有头模式 ✅ --num_envs128 有头模式 ❌ 会卡 --num_envs512 无头模式 ✅ --num_envs1024 无头模式 ⚠️ 可能OOM经验训练用无头 512 最快想看过程就用有头 64看完关掉换无头正式跑。5.2.3 训练时你会看到的输出Learning iteration 100/10000 ← 当前第 100 轮 / 总共 10000 轮 Computation: 15000 steps/s ← 每秒算 15000 步 Mean reward: 0.04 ← ★ 总奖励最重要 Mean episode length: 300 ← ★ 平均存活步数越久越好 Mean action noise std: 0.80 ← 探索噪声慢慢变小 AI 有把握了 Value function loss: 0.0011 ← Critic 的预测误差看两个数就够了Mean reward在涨 → AI 在进步Mean episode length在涨 → 越来越久不摔倒5.3 停掉训练、接着跑5.3.1 正常停止在训练终端按CtrlC。模型会自动保存当前最新的 checkpoint。5.3.2 从上次停止的地方继续# 继续最近一次训练 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 --resume # 从指定训练继续 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 \ --resume --load_runJul26_21-25-34_ # 从指定轮数的模型继续比如从第 3100 轮继续跑到 5000 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 \ --resume --load_runJul26_21-25-34_ --checkpoint3100 --max_iterations5000参数作用--resume告诉程序接着训别从头来--load_run文件夹名指定用哪次训练的模型写文件夹名不写完整路径--checkpointN从第 N 轮的模型开始不写就用最新的--max_iterationsN新的目标轮数要大于当前已跑的轮数⚠️ 重要--load_run只写文件夹名比如Jul26_21-25-34_不要写logs/g1/Jul26_21-25-34_。5.4 模型存在哪unitree_rl_gym/logs/g1/ ├── Jul26_21-25-34_/ ← 一次训练 │ ├── model_0.pt ← 初始化模型 │ ├── model_50.pt ← 第 50 轮 │ ├── model_100.pt ← 第 100 轮 │ ├── ... 每 50 轮存一个 │ ├── model_3100.pt ← 你上次停在这 │ └── events.out.tfevents.xxx ← TensorBoard 数据文件 ├── Jul26_20-56-14_/ ← 更早的训练 └── exported/ ← play.py 导出的 JIT 模型知识点说明保存频率每50 轮自动存一次文件夹命名月日_时-分-秒_run_name 为空时文件大小~777KB 每个不占空间旧模型能删吗可以训练完了只保留最后一个和最好的5.5 看训练结果5.5.1 用 play.py 可视化# 看最新训练的模型1 个机器人 python legged_gym/scripts/play.py --taskg1 --num_envs1 # 看指定训练的指定轮数 python legged_gym/scripts/play.py --taskg1 --num_envs1 \ --load_runJul26_21-25-34_ --checkpoint3100 # 对比不同阶段同一训练、不同轮数 python legged_gym/scripts/play.py --taskg1 --num_envs1 \ --load_runJul26_21-25-34_ --checkpoint500 # 早期 python legged_gym/scripts/play.py --taskg1 --num_envs1 \ --load_runJul26_21-25-34_ --checkpoint1500 # 中期 python legged_gym/scripts/play.py --taskg1 --num_envs1 \ --load_runJul26_21-25-34_ --checkpoint3100 # 最新窗口操作按键功能ESC退出V切换视角追踪模式鼠标左键拖拽旋转视角鼠标滚轮缩放鼠标中键拖拽平移视角5.5.2 play.py 的地形限制play.py 默认用一个5×5 的小地形不是训练时的无限平面。G1 走到边界会被墙卡住。这是正常行为看个十几步够判断策略效果就行。5.6 用 TensorBoard 看训练曲线5.6.1 启动# 新终端 conda activate unitree_rl cd /workspace_project/g1_robot/unitree_rl_gym_study/unitree_rl_gym tensorboard --logdirlogs/g1/ --reload_interval5浏览器打开 http://localhost:60065.6.2 关键曲线速查曲线名SCALARS 页好信号坏信号Train/mean_reward或类似含 reward 的 上升 下降或完全不涨Train/mean_episode_length 从 20 → 300 越跑越短Policy/mean_noise_std 从 0.8 → 0.3 反弹或卡在 0.8Loss/value_function 稳步下降 爆炸式上升Episode/rew_alive 上升➡️ 不涨一直在摔Episode/rew_base_height➡️ 接近 0 越来越负老摔Episode/rew_tracking_lin_vel 上升 不跟指令走5.6.3 常见问题曲线没动→ 检查 TensorBoard 启动时--logdir指向的文件夹是不是最新的训练目录。报 protobuf 错误→ 降级过 protobuf 了protobuf3.20.3不会再出现。多个训练混在一起→logs/g1/会显示所有训练记录。勾选左下角 Runs 面板中对应的训练来筛选。5.7 训练实战流程新手推荐的标准流程第 1 步跑一个测试看看链路通不通 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 --max_iterations200 第 2 步看测试效果 python legged_gym/scripts/play.py --taskg1 --num_envs1 → 能站着不摔 正常 第 3 步正式训练 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 --max_iterations2000 → 约 30 分钟 第 4 步观察中期效果 python legged_gym/scripts/play.py --taskg1 --num_envs1 → 能走几步了 方向正确 第 5 步继续训练 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 --resume --max_iterations5000 → 再接再厉 第 6 步评估最终效果 python legged_gym/scripts/play.py --taskg1 --num_envs1 → 能稳定走不摔 达成目标一次成功的训练长什么样训练轮数 机器人行为 0-100 乱动、频繁摔倒、reward 很低 100-500 开始能站几秒了 500-1000 会迈步了但不稳 1000-2000 走路越来越稳、有点方向感 2000-4000 基本能走直线、偶尔摔倒 4000 走得流畅、很少摔倒5.8 调参入门5.8.1 能不能边跑边调不能。必须停掉训练 → 改参数 → 重新启动。不存在跑着跑着中途改一下这种操作。标准流程CtrlC 停训练 → 改参数 → 决定从头训还是接跑 → 重新启动5.8.2 改了参数后从头训还是接跑这个很重要搞错了等于白训你改了什么怎么重启 .为什么奖励权重rewards.scales从头训改变了游戏规则旧模型是按老规则练的不能混用action_scale、stiffness、damping从头训改变了行为方式旧模型不会新玩法域随机化domain_rand从头训改变了训练环境旧模型没见过只改max_iterations可以接跑只是说再多跑几轮模型本身没变学习率、网络结构从头训改变了学习方法旧模型不适用简单记法改了配置文件g1_config.py里的东西 → 从头训。只改命令行参数max_iterations、num_envs→ 可以接跑。不推荐新手改参数后接着训练其实微调也行但要注意参数突变带来的震荡极有可能导致训练失败5.8.3 实际操作演示假设你觉得机器人抬脚不够高拖地走想加大feet_swing_height惩罚# 第 1 步CtrlC 停掉正在跑的训练 # 第 2 步打开配置文件 # legged_gym/envs/g1/g1_config.py # 找到 feet_swing_height -20.0 # 改成 feet_swing_height -30.0 更重的惩罚 # 第 3 步因为改了奖励游戏规则变了必须从头训 # 给这次实验起个名字方便以后在 TensorBoard 里对比 python legged_gym/scripts/train.py --taskg1 --headless --num_envs512 \ --max_iterations500 --run_namehigh_step_test # 第 4 步看效果 python legged_gym/scripts/play.py --taskg1 --num_envs1 \ --load_runhigh_step_test的文件夹名5.8.4 对比新旧实验这就是为什么调参原则里说给每个实验起名字logs/g1/ ├── Jul26_21-25-34_/ ← 默认参数跑了 3100 轮 ├── Jul27_10-30-15_high_step/ ← feet_swing_height -30 └── Jul27_11-00-00_faster/ ← tracking_lin_vel 2.0TensorBoard 启动时会同时显示所有三个实验你可以在左下角 Runs 面板里勾选两条叠在一起看同一张图表里谁更优。5.8.5 什么时候该调训了 500 轮 reward 完全不涨 → 可能学习率有问题机器人走路抽搐 → 加大action_rate惩罚的绝对值总往一边歪 → 加大orientation惩罚的绝对值抬脚拖地 → 加大feet_swing_height惩罚的绝对值走得太慢 / 不走 → 加大tracking_lin_vel奖励5.8.6 调参原则一次只改一个参数改多个你没法判断是哪个起的作用给每个实验起名字--run_nametest_faster方便 TensorBoard 对比先少跑几轮测试改参数后先跑--max_iterations500方向对了再正式跑对比要公平同样的随机种子、同样的训练轮数记录你改了什么开一个笔记记下日期、改了哪个参数、从多少改成多少、效果怎样5.9 命令速查卡你想做什么命令从头训练train.py --taskg1 --headless --num_envs512测试 200 轮train.py --taskg1 --headless --num_envs512 --max_iterations200接着上次跑train.py --taskg1 --headless --num_envs512 --resume从第 N 轮接跑train.py --taskg1 --headless --num_envs512 --resume --checkpointN有头看过程train.py --taskg1 --num_envs64看策略效果play.py --taskg1 --num_envs1看指定模型play.py --taskg1 --num_envs1 --load_run文件夹名 --checkpointN看训练曲线tensorboard --logdirlogs/g1/→ 浏览器 localhost:6006列出模型文件ls -la logs/g1/文件夹名/

相关新闻

嵌入式触控显示模块开发实战:从MIPI DSI接口到Linux驱动调试

嵌入式触控显示模块开发实战:从MIPI DSI接口到Linux驱动调试

1. 项目概述:从“10.1-DSI-TOUCH-B”看嵌入式显示交互的核心看到“10.1-DSI-TOUCH-B”这个标题,很多嵌入式或硬件开发的朋友可能会心一笑。这不像一个产品型号,更像是一个内部项目代号或BOM清单里的一个物料项。它高度浓缩地揭示了项目的核心…

2026/8/1 15:47:59阅读更多 →
Linux下RTL8852BE无线网卡驱动安装与调试实战指南

Linux下RTL8852BE无线网卡驱动安装与调试实战指南

1. 从一块“无名”网卡说起:RTL8852BE的硬件识别与定位最近在折腾一台老旧的迷你主机,想把它改造成一个软路由或者家庭服务器。拆开一看,主板上除了一个M.2接口,还预留了一个半高的Mini PCIe插槽,空荡荡的。这玩意儿不…

2026/8/1 15:47:59阅读更多 →
STM32定时器中断编程:GetFlagStatus与GetITStatus函数核心区别详解

STM32定时器中断编程:GetFlagStatus与GetITStatus函数核心区别详解

1. 项目概述:从两个看似相同的函数说起 如果你正在学习STM32的定时器(TIM),并且已经开始接触中断编程,那么你大概率会遇到这两个名字长得像双胞胎一样的固件库函数: TIM_GetFlagStatus 和 TIM_GetITStat…

2026/8/1 15:47:58阅读更多 →
基于STM32的多协议串口转换器设计:USB/RS232/RS485/TTL智能网关实现

基于STM32的多协议串口转换器设计:USB/RS232/RS485/TTL智能网关实现

1. 项目缘起:为什么我们需要一个“万能”的串口转换器?在嵌入式开发、工业自动化、智能硬件调试这些领域里混久了,你手边一定会攒下一堆“宝贝”:一个老旧的PLC,接口是RS485;一块新买的单片机开发板&#x…

2026/8/1 17:12:43阅读更多 →
数字人文技术实践:OCR、NLP与关联数据解锁中世纪天文学古籍

数字人文技术实践:OCR、NLP与关联数据解锁中世纪天文学古籍

如果你是一位对天文学史、古籍翻译或跨文化交流感兴趣的技术爱好者,最近可能会注意到一个特别的项目——《Ars Astronomica》。它并非发布新的天文观测数据或软件工具,而是做了一件更基础、却同样重要的事:将一批罕见的中世纪希伯来语与拉丁语…

2026/8/1 17:12:43阅读更多 →
PCB材料参数Dk与Df解析:从信号完整性到高速设计选型

PCB材料参数Dk与Df解析:从信号完整性到高速设计选型

1. 项目概述:从“玄学”到“科学”的PCB材料认知在高速数字电路和射频微波领域摸爬滚打十几年,我见过太多工程师在项目后期被信号完整性问题折磨得焦头烂额。眼瞅着原理图逻辑完美,PCB布局布线也规规矩矩,可一上电测试&#xff0c…

2026/8/1 17:12:43阅读更多 →
STAI量表全解析:从状态与特质焦虑原理到临床评估实操

STAI量表全解析:从状态与特质焦虑原理到临床评估实操

1. 项目概述:理解焦虑的“标尺” 在心理学研究和临床实践中,我们常常需要一种客观、量化的工具来“看见”那些看不见摸不着的内心状态,比如焦虑。这就像医生需要体温计来测量体温,我们需要一把精准的“尺子”来测量焦虑的程度。而…

2026/8/1 17:12:43阅读更多 →
谷歌地球翻车了:把历史地标变成“末日废墟”后,AI生图功能被连夜撤回

谷歌地球翻车了:把历史地标变成“末日废墟”后,AI生图功能被连夜撤回

8月1日清晨,无数科技爱好者像往常一样点开谷歌地球网页版,却发现昨天刚上线的那个闪着微光的“Create image”按钮,消失了。就在前一天,谷歌刚刚把自家最新图像生成模型Nano Banana 2正式塞进了谷歌地球,号称要让人“一…

2026/8/1 17:12:42阅读更多 →
AI教材生成攻略:从选题到成型,这些AI工具帮你快速搞定高校教材

AI教材生成攻略:从选题到成型,这些AI工具帮你快速搞定高校教材

AI写教材:提升效率与质量的新选择 写教材离不开大量资料作为支持,但传统的资料整理方式早已满足不了现在的需求。以往,我们需要从各种渠道搜集信息,比如课标文件、学术论文和教学案例,这些内容往往分散在知网、教研平…

2026/8/1 17:10:41阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/31 20:44:05阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/31 17:41:43阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/31 20:44:05阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/1 0:00:10阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/1 0:00:10阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/1 0:00:10阅读更多 →