SuperAPI AI 工具集

microduck-skill

智能体与模型

查看项目

更新于 10-15 09:56

技能介绍

Microduck RL 是一个围绕 Microduck 强化学习策略的完整流水线技能,目标是把策略从规格定义、仿真训练、打包、发布到 Hub,最终部署到真实机器人上。它训练的是 61→14 的 PPO 策略,而不是大语言模型;发布到 Hub 并非终点,部署同样在范围内,已发布的仓库是交付物,而非内置的官方权重。

【用途】 该技能用于训练、导出、发布并部署 Microduck 强化学习策略(基于 MuJoCo Warp,通过 mjlab 训练 PPO),并通过 robotctl 部署到真实机器人。规范手册为 pollen-robotics/microduck_rl 中的 AGENTS.md;本技能相当于任务工单,两者冲突时以 AGENTS.md 为准。$SKILL 是包含本 SKILL.md 的目录,脚本需始终以该绝对路径调用,技能 id 为 microduck-skill。

【主要能力与工作流】 工作流分为不可跳过的阶段:

  1. 规格(Spec):一行行为描述、类型(episodic 或 perpetual)、最接近的模板,参考 references/TRAIN.md。
  2. 仿真(Sim):编辑 env → CPU pytest tests/ → 运行 $SKILL/scripts/smoke.sh → 运行 $SKILL/scripts/train.sh。若已登录 wandb,可查看运行页面曲线(Jobs 无法录制 --video,因为镜像中无 GL)。保持惩罚项 Episode_Reward/* ≤ 0,否则使用 tensorboard 加 --no-wandb,避免 Jobs 挂起。可用 $SKILL/scripts/play.sh 回放某个检查点(Viser + 本地 mp4)。
  3. 打包(Package):运行 $SKILL/scripts/export_publish.sh,参考 references/PUBLISH.md。tensorboard 运行后,应从 --checkpoint-file(或已通过门控的 --onnx)导出,而非 wandb 路径。
  4. 部署(Deploy):发布后始终执行此阶段。打印 references/DEPLOY.md 中对应本次运行 --repo 的安装命令(切勿硬编码测试仓库)。若用户明确要求在自有 Microduck 上安装,则运行这些 robotctl 命令;若用户没有机器人或未提出要求,则打印命令后停止,在用户反馈前不得声称硬件成功。

【脚本】

  • scripts/doctor.sh [--clone] [--sync]:检查工具、检出、Jobs 环境。
  • scripts/smoke.sh <TASK_ID>:64×5 冒烟测试,除非 MICRODUCK_TRAIN_LOCAL=1 否则用 Jobs;wandb → 曲线;--video 仅在本地 CUDA 可用。
  • scripts/train.sh <TASK_ID> [args…]:同样的计算切换逻辑,默认 4096 环境,同样的 wandb/video 规则。
  • scripts/play.sh <TASK_ID> --checkpoint-file|--wandb-run-path …:本地 Viser 网页 + mp4,非 Jobs。
  • scripts/gate_check.py <policy.onnx>:[1,61]→[1,14],跳过 initializers,通过 uv run --with onnx 调用。
  • scripts/export_publish.sh …:仅官方导出到 $RL_ROOT/.microduck-plugin-export.onnx,然后发布到 Hub。

【前置条件与硬性规则】 前置条件:运行 $SKILL/scripts/doctor.sh(若无检出则加 --clone --sync),必须输出 doctor ok。默认计算为 Hugging Face Jobs,需要 HF_TOKEN(或 hf auth login)与 MICRODUCK_HF_NAMESPACE(用户或组织);无 namespace 时 Jobs 会提示导致代理挂起。仅在 MICRODUCK_TRAIN_LOCAL=1 且存在 CUDA 时才本地训练,冒烟测试同理。doctor 失败则停止,不得自创其他训练器(Isaac Sim、AutoTrain、仅 Colab 的 hack)。硬性规则:绝不跳过 64 环境 × 5 迭代冒烟测试;绝不手动将 .pt 转为 ONNX,只能用上游 scripts/export.py;观测保持 61D、动作保持 14D,未使用的命令槽位零填充而非删除;不硬编码关节索引,仅用 mdp.py 中的伺服辅助函数;社区发布仅限恒定命令的 episodic/perpetual,phase/姿态标志保持官方;除非用户明确要求安装到真实机器人,否则不运行 robotctl/SSH,只打印命令。

【适用场景与限制】 适用于需要训练并部署 Microduck 强化学习策略的场景。训练耗时以小时计,应提交 Jobs 后等待。报告时需说明实际表现(如“先鞠躬,然后每 3 次摔倒一次”),而非简单说“可用”。关于收费、价格、平台等具体信息,资料中暂未提供。