开源强化学习机器鸭microduck-policies:9个ONNX策略模型带你玩转MicroDuck机器人(完整入门指南)

发布时间:2026/11/3 2:36:06
开源强化学习机器鸭microduck-policies:9个ONNX策略模型带你玩转MicroDuck机器人(完整入门指南)

开源强化学习机器鸭microduck-policies:9个ONNX策略模型带你玩转MicroDuck机器人(完整入门指南)

🦆microduck-policies是开源项目 pollen-robotics 发布的MicroDuck 强化学习机器鸭策略模型仓库,收录了机器鸭出厂标配的一整套 ONNX 神经网络策略文件:走路、站立、坐下站起、地面捡物、翻滚、踢足球等动作全部由强化学习训练得到。无论你是想把自己的机器鸭跑起来,还是想学习「强化学习 → 部署到真实机器人」的完整链路,这份指南都能帮你在 10 分钟内搞清楚每个模型是干什么的。

一、microduck-policies 是什么?

一句话概括:它是 MicroDuck 机器鸭的"动作大脑"集合。

MicroDuck 是一款四足机器鸭机器人,采用xl330系列舵机驱动,以50Hz的控制频率运转。而让一条机械鸭"稳稳站起来、自然走路、还能踢足球"的核心,不是舵机本身,而是运行在板上的策略网络。本仓库就存放着这些网络的最终产物——10 个 ONNX 格式的策略模型,由 manifest.json 统一描述:

关键参数值含义
obs_len61每个模型接收的观测向量长度(姿态、速度、指令等)
action_len14每个模型输出的动作维度(对应 14 个舵机目标值)
servosxl330舵机型号
control_hz50控制回路频率 50Hz
schema_version/model_api2 / 1清单与模型接口版本

模型训练于pollen-robotics/microduck_rl仓库(基于 MJLab 强化学习框架),训练完成后通过导出脚本转换为 ONNX,再用Git LFS存储——所以你在 .gitattributes 中能看到*.onnx filter=lfs配置。单个模型大小仅约775KB,对嵌入式设备极其友好。

二、快速上手:如何获取策略模型

克隆仓库即可拿到全部策略文件:

git clone https://gitcode.com/hf_mirrors/pollen-robotics/microduck-policies

克隆下来的目录结构非常简洁:

  • manifest.json — 策略清单,机器人固件/上位机靠它识别每个模型的用途
  • velstand.onnx — 默认行走策略(v5 起取代了单独的站立网络)
  • alpha_walking.onnx / alpha_stand.onnx — 早期行走与站立策略
  • alpha_sitstand.onnx — 坐下/站起脚本策略
  • alpha_ground_pick.onnx — 地面捡物动作
  • roller.onnx / roller_crouch.onnx — 滚轮模式与下蹲
  • roulade.onnx — 原地侧翻(翻筋斗)
  • ball_kick_left.onnx / ball_kick_right.onnx — 左/右腿踢球

💡 小贴士:.onnx文件通过 Git LFS 下载,普通git clone会自动处理,无需额外安装 LFS 插件。

三、9类策略逐个拆解:每只机器鸭都会什么"技能"?

manifest.json 把策略分为三大类,这也是理解 MicroDuck 动作系统的钥匙:

3.1 常驻策略(perpetual)——"持续运行"的底层能力

这类模型一直挂在控制循环里,根据传感器反馈实时调整 14 个舵机:

  • velstand(v8 版,当前默认):行走步态网络,但命令速度为零时它会稳稳站住,因此 v5 起不再需要单独的站立网络。v7 之后站立时躯干还支持 roll/pitch 倾斜(约 ±10°);v8 版本(即 velstand.onnx 最新提交)让机器鸭摔倒后能平滑、可靠地自己爬起来,原地转向和行走中的转向都能精确跟踪 yaw 指令。
    • 训练信息:任务Mjlab-VelStand-Rough-Backlash-MicroDuck(带地面粗糙度与舵机回差),检查点 2749,2026-10-12 导出。
  • alpha_walking / alpha_stand:经典的"行走网 + 站立网"双网络方案,属于 velstand 出现前的历史版本,现在主要用于对比和回退。
  • roller:滚轮模式(action_scale: 0.8),配合 roller_crouch.onnx 使用。

3.2 脚本策略(scripted)——"坐与站的优雅过渡"

  • sitstand(alpha_sitstand.onnx):通过posture_flag指令编码控制——1.0坐下、0.0站起,配合 2 秒渐变(ramp_s)和 1 秒收尾(unwind_s),实现温柔的坐下与站起,坐姿时头部还可转向。v6 版本修复了坐姿时头部猛转导致后仰摔倒的问题。
    • 训练信息:任务Mjlab-SitStand-Flat-MicroDuck,检查点 2250。

3.3 一次性动作(episodic)——"按键即触发"的花式动作

这些模型跑完规定时长就自动退出,对应机器鸭按钮触发的特效动作:

模型动作时长说明
alpha_ground_pick.onnx🫳 地面捡物2.8s用相位指令控制幅度
roller_crouch.onnx🧎 滚轮下蹲3.5s滚轮模式 + 0.8 动作缩放
roulade.onnx🤸 原地侧翻1.0s支持chain连招
ball_kick_left.onnx⚽ 左腿踢球0.5s0.5 秒完成一记射门
ball_kick_right.onnx⚽ 右腿踢球0.5s左右脚交替踢球

四、策略模型是如何炼成的?

从 manifest.json 的training字段可以还原完整的强化学习流水线:

  1. 建任务:在 MJLab(MuJoCo 的 RL 训练框架)中定义任务,如Mjlab-VelStand-Rough-Backlash-MicroDuck——任务名直接写明了仿真条件:粗糙地面(Rough)+ 舵机回差(Backlash),保证策略在真实硬件上依然鲁棒;
  2. 跑训练:提交训练 run(如pollen-robotics/mjlab_microduck/0045i2si),迭代数千步(velstand 跑到 checkpoint 2749,sitstand 跑到 2250);
  3. 导出 ONNX:通过scripts/export.py把 PyTorch 检查点导出为 ONNX,并记录导出时间戳;
  4. 版本化发布:连同清单一起提交到本仓库,每个模型都标注了训练仓库、commit、分支和是否dirty,保证每个 .onnx 文件可追溯到确切的训练配置。

这种"清单 + 可追溯训练信息"的做法,正是机器人模型仓库工程化的最佳实践——你不需要重新训练,直接下载就能复现。

五、常见问题 FAQ

Q1:为什么模型只有 775KB 左右?ONNX 策略是轻量 MLP 结构,输入 61 维观测、输出 14 维舵机目标,参数量很小,适合在 MicroDuck 的嵌入式控制板上以 50Hz 实时推理。

Q2:velstand 和 alpha_walking 我该用哪个?用 velstand.onnx。它是 v5 起的默认行走策略,一个网络同时搞定"走"和"站",且 v8 版本自带平滑的摔倒自恢复能力。

Q3:清单里的slot、phase、posture_flag是什么?这是指令编码方式:slot表示速度指令映射到哪个控制槽位;phase表示一次性动作的相位进度(配合period_s/end_phase);posture_flag则是 sitstand 用的姿势标志位(1=坐,0=站)。

Q4:我可以基于这些模型二次开发吗?可以。模型以 Apache-2.0 协议开源,manifest.json 中model_api: 1定义了统一的观测/动作接口,你可以在microduck_rl训练仓库中修改任务后重新训练并导出新策略。

六、写在最后

🎉microduck-policies用不到 8MB 的空间,装下了一整只机器鸭的运动能力——从稳稳站立到 0.5 秒的闪电踢球,每一个 ONNX 文件背后都是"仿真训练 → 导出 → 真机部署"的完整强化学习工程实践。

新手建议的探索路线:

  1. 先通读 manifest.json,理解策略分类体系;
  2. 克隆仓库,用 ONNX 运行时(如 onnxruntime)加载 velstand.onnx 打印网络结构;
  3. 对照training字段,回到microduck_rl训练仓库复现训练任务;
  4. 尝试为机器鸭训练一个全新动作(比如"鞠躬"),加入你自己的策略集。

祝你的机器鸭早日学会新动作!🦆

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考