宇树 Qmini 双足机器人训练经验总结
这篇内容基于我在云端服务器上对 Qmini 进行完整训练与测试的实践总结,涵盖训练、可视化、策略测试、模型导出、URDF 调试等环节,并重点说明 headless(无显示)环境下的各种坑与解决方案。希望能帮到后来者少走弯路。
为什么不建议在云端直接跑渲染?
最初的目标是训练、渲染、视频录制全部在云端完成。但现实情况是,即使用 Xvfb 等虚拟显示器启动 Isaac Gym,也会发生视频保存全黑的情况。VNC 远程桌面也无法正常显示 Isaac Gym 的渲染窗口。根本原因来自驱动版本过高与 Isaac Gym 对驱动的强依赖。
因此更推荐:在云端训练模型 → 本地 Ubuntu 加载策略进行测试与演示。
目前发现的稳妥流程是:云端训练 → 本地 Play 与可视化。云端的 headless 环境与高版本驱动目前无法可靠支持 Isaac Gym 的图形渲染与视频录制,本地则能完美解决所有渲染相关问题。
训练阶段
使用以下命令启动训练:
python train.py --config BIRL --name <name>
常用参数说明:
--name:存放路径为experiments/<name>/--config:选择配置文件,默认 BIRL--resume:恢复训练,例如python train.py --name stand --resume --path experiments/stand/checkpoints/policy_40000.pt--render:开启画面显示(isaac gym 窗口)--fix_cam:视角固定在机器人上方--horovod:多 gpu 训练--rl_device:训练设备设置,默认 cuda0,可改为 cpu 等--num_envs:环境数量--seed:随机种子,利于复现--max_iterations:最大训练迭代次数
查看结果
云端可能出现 6006 端口占用的情况,需要手动释放。
1. 安装 lsof
apt-get update
apt-get install lsof -y
2. 查看端口占用
lsof -i :6006
3. 杀掉进程
kill -9 <PID>
4. 重新启动 TensorBoard
tensorboard --logdir experiments/<name>/log --port 6006
运行训练好的策略 play.py
加载训练好的策略,开始跑模拟器:
python play.py --render --name <name>
参数说明:
--render:显示画面--fix_cam:相机固定跟随机器人--cmp_real:与真实机器人采集的数据对比绘图--plt_sim:显示仿真数据的曲线图(如关节角、速度等)


