news 2026/5/30 17:56:30

宇树 Qmini 双足机器人训练个人经验总结

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
宇树 Qmini 双足机器人训练个人经验总结

前提说明:为什么不建议在云端直接跑渲染?#

我最开始的目标是:训练、渲染、视频录制全部在 AutoDL 上完成,不经过本地运行。

然而现实是:

即使用 Xvfb 等虚拟显示器启动 Isaac Gym,也会发生视频保存全黑的情况。

VNC 远程桌面也无法正常显示 Isaac Gym 的渲染窗口。

根本原因来自 驱动版本过高与 Isaac Gym 对驱动的强依赖。

因此更推荐:在云服务器训练模型 → 本地 Ubuntu 加载策略进行测试与演示。

可以在云服务器中进行训练然后在本地进行测试,这是我目前发现的比较好的方式,本地使用的是ubuntu系统,最后算是可以正常演示。

当前的问题都是基于我完全使用autodl上进行的尝试,希望可以对大家有所帮助,少踩坑。

训练阶段#

python train.py --config BIRL --name <name>

--name

​ 存放路径experiments/<name>/

--config

​ 选择配置文件,默认:BIRL

--resume

​ 恢复训练

​ eg:python train.py --name stand --resume --path experiments/stand/checkpoints/policy_40000.pt

--render

​ 开启画面显示(isaac gym窗口)

--fix_cam

​ 视角固定在机器人上方

--horovod

​ 多gpu训练

--r l_device

​ 训练设备设置

​ 默认cudo0,可以改为cpu等

--num_envs

​ 环境数量

--seed

​ 随机种子,利于复现

--max_iterations

​ 最大训练迭代次数

image-20251121103327885

查看结果#

云端可能出现 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

image-20251121103256106

运行训练好的策略 play.py#

python play.py --render --name <name> 加载训练好的策略,开始跑模拟器

--render 显示画面

--fix_cam 相机固定跟随机器人

--cmp_real 与真实机器人采集的数据对比绘图

--plt_sim 显示仿真数据的曲线图(如关节角、速度等)

--num_envs 改变并行环境数量

--video 开启视频录制,保存到 videos/ 文件夹,必须配合 --render

--time 玩多少秒

--iter 指定用哪一轮的模型,默认加载目录下最后一个 policy

--epochs 重复评估多少次,用来统计平均性能

--debug 保存仿真数据到 Excel

导出ONNX模型#

python export_pt2onnx.py --name <name>

把 .pt 权重导出为 .onnx,便于部署到嵌入式设备、Jetson、Unity 等。

加载(调试)urdf模型#

python tune_urdf.py

测试你的机器人 URDF 是否正常加载,检查质量参数、碰撞体、关节限位,也可微调模型参数

自动调参PID(tun_pid.py)#

python tune_pid.py --mode <mode>

--model

sin 发送正弦信号测试电机响应

real 上传真实机器人数据进行比较

reset 恢复初始值,不进行测试

错误#

Headless 环境无法渲染#

云服务器默认无显示设备。

临时方案:使用虚拟显示:Xvfb(首先进行pip下载)

Xvfb :1 -screen 0 1024x768x24 & #启动 X Server

export DISPLAY=:1 #设置环境变量

注意:但这只能让程序“以为”自己有显示,无法保证正常渲染!

使用autodl远程连接,play.py 视频录制仍为黑屏#

image-20251121211032490

原因分析:原因:云端 GPU 驱动版本过高(如 570 系列),超过了 Isaac Gym 的兼容范围。

Isaac Gym 对渲染器依赖的驱动版本非常敏感,驱动过新 → 渲染器初始化失败 → 视频录制为纯黑。

目前找到比较好的方案是:云端只做训练,本地 Ubuntu 运行 play.py。

最后的最后再次说明,目前我认为比较稳妥、推荐的流程是:云端训练(AutoDL)→ 本地 Ubuntu Play 与可视化。云端的 headless 环境与高版本驱动目前无法可靠支持 Isaac Gym 的图形渲染与视频录制,本地则能完美解决所有渲染相关问题。

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

MySQL数据库全方位优化指南:从硬件到架构的深度调优

一、基础筑基&#xff1a;服务器硬件层优化硬件是MySQL性能的底层支撑&#xff0c;不合理的硬件配置会让后续软件层面的优化事倍功半。在硬件选型时&#xff0c;应将资金优先投入到以下核心组件&#xff1a;1. 磁盘I/O&#xff1a;性能瓶颈的核心突破口MySQL的查询、写入操作频…

作者头像 李华
网站建设 2026/5/30 18:13:34

多场景 Shell 脚本实例,搞定系统 / 日志 / 数据库 / 容器

1、linux系统中&#xff0c;目录/root/下有一个文件ip-pwd.ini&#xff0c;内容如下: 10.111.11.1,root,xyxyxy 10.111.11.2,root,xzxzxz 10.111.11.3,root,123456 10.111.11.4,root,xxxxxx …… 文件中每一行的格式都为linux服务器的ip,root用户名,root密码&#xff0c;请用一…

作者头像 李华
网站建设 2026/5/30 0:09:13

cmakelists.txt之环境检测

if(WIN32)message("This is Windows")# Windows特定代码set(LIB_FILE_NAME "C:/sunyard/git/sc20_l610_la/out/appimage_debug/sunyard/lib/libS20.a") endif()if(

作者头像 李华
网站建设 2026/5/29 21:50:12

爬虫下岗?Reader API 4 种网页数据秒转 AI 语料技巧,加速知识库搭建

前言 在 AI 知识库构建与模型训练场景中&#xff0c;网页数据是最核心的语料来源之一。传统爬虫技术依赖 DOM 解析规则配置&#xff0c;不仅面临动态网页抓取失效、广告冗余信息干扰、反爬机制拦截等问题&#xff0c;还需投入大量人力进行数据清洗与结构化处理&#xff0c;导致…

作者头像 李华
网站建设 2026/5/28 23:13:56

ESP32-S3双SPI总线实战:让TFT屏幕与SD卡完美共存的终极指南

ESP32-S3双SPI总线实战&#xff1a;让TFT屏幕与SD卡完美共存的终极指南 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 你是否曾经在ESP32-S3项目中被这样的问题困扰&#xff1a;连接了TF…

作者头像 李华