XGO-DuckWiki 首页
Wiki 首页/XGO-Duck/进阶开发
XGO-Duck 知识库进阶开发

强化学习训练与模型导出

适用版本XGO-Duck

XGO-Duck 使用基于 mjlab(MuJoCo Warp)的仿真环境,通过 PPO 训练策略并导出 ONNX。训练在具备 CUDA GPU 的电脑上进行,机载运行时负责执行兼容的策略。

安装环境

训练环境需要 CUDA GPU、Python 3.12 和 uv。克隆仓库后,在项目根目录安装依赖:

cd xgoduck_rl
uv sync

在 DGX Spark / GB10、Jetson 等 ARM 机器上,首次同步可能下载较大的 CUDA 安装包;可在同步前将 UV_HTTP_TIMEOUT 设置为 600 秒。具体依赖和设备支持请以所用版本为准。

训练与查看

在仓库根目录运行:

uv run list-envs
uv run train Mjlab-Velocity-Flat-XgoDuck --env.scene.num-envs 4096
uv run play Mjlab-Velocity-Flat-XgoDuck

4096 是示例中的并行环境数,并不保证适合所有 GPU;按可用显存和训练情况调整。play 不指定 checkpoint 时会读取该任务目录中的最新模型;也可使用 --checkpoint-file 选择具体文件。

其他训练任务包括粗糙地形、起身、拾取、坐站、左右脚踢球、翻滚和轮滑;名称及实验目录请查阅训练任务表。检查点和 TensorBoard 日志位于 logs/rsl_rl/<experiment>/。

导出 ONNX

把下面的 <run> 和 model_XXXX.pt 替换为实际训练结果:

uv run python scripts/export.py Mjlab-Velocity-Flat-XgoDuck \
  --checkpoint-file logs/rsl_rl/xgoduck_velocity/<run>/model_XXXX.pt \
  --onnx-file logs/rsl_rl/xgoduck_velocity/<run>/<run>.onnx

导出会将观测归一化写入模型;不指定 --onnx-file 时默认写到当前目录的 output.onnx。保留训练配置、checkpoint 和导出文件,方便追溯。

部署前核对

模型是 ONNX 格式并不自动意味着能用于所有动作或运行时版本。替换前需核对任务、观测和动作定义、关节顺序、默认姿态、策略命令、参数和运行时支持;例如仓库中的 Roulade Angle 变体需要运行时提供累计角度输入。新策略应先在仿真和卸力状态下验证,再在可靠支撑、空旷的场地逐步测试。

返回 XGO-Duck 知识库目录