最近,Hugging Face 旗下 Pollen Robotics 开放双足机器人 Microduck 预购。产品售价 399 美元,高约 25 厘米,由 15 个舵机驱动,可以完成行走、起身、踢球等动作。

Microduck 的步态并非由固定动作代码控制,而是通过强化学习训练神经网络策略。项目的训练框架、仿真模型和部分预训练策略已经开源,开发者可以在 MuJoCo 仿真环境中运行社区动作,也可以使用 GPU 训练自己的策略。

图片

一、社区已经训练了哪些动作

Microduck 发布后,社区开发者陆续上传了跑步、跳跃、单腿站立、鞠躬、旋转等动作策略。

图片

microduck跳跃-仿真

图片

microduck跳跃-真机

其中,社区成员 HannesVonEssen 训练的跑步策略实现了约 1.65 米/秒的速度;joanfox 开发的跳跃策略已经由 Pollen Robotics 在真实硬件上完成测试。

其他公开策略还包括:

  • 单腿站立

  • 地面捡物

  • 左右脚踢球

  • 前滚翻

  • 鞠躬

  • 太空步

  • ……

这些策略通常以 ONNX 文件发布在 Hugging Face。即使没有实体机器人,也可以先在电脑上通过 MuJoCo 查看运行效果。

二、训练一个动作需要什么

Microduck 的动作训练主要包含三个部分:仿真环境、奖励函数和强化学习算法。

以走路为例,奖励函数会鼓励机器人保持平衡并按照目标速度前进;如果训练跳跃动作,则需要提高双脚离地、身体姿态和落地稳定性等指标的权重。

项目支持同时运行数千个仿真环境,以提高数据采集和训练效率,这类训练通常需要 GPU。优刻得 GPU 云主机从单卡入门覆盖到多卡集群,具身智能训练是明确支持的方向。

GPU 选型参考:

|
训练需求
|
建议配置
|
适用场景
|
| — | — | — |
|
单个基础动作
|
V100S 32GB
|
可运行数千个并行环境,适合入门训练
|
|
多组参数并行测试
|
RTX 30/40 系列或同级 GPU
|
单卡计算速度较快,适合频繁迭代
|
|
多任务或大规模仿真
|
A800、H800 或同级 80GB GPU
|
适合多卡训练和较大规模实验
|

登录UCloud 控制台,进入云主机,即可创建 GPU 云主机。

图片

建议配置:

  • 1 张 32GB 显存 GPU

  • 10 核左右 CPU

  • 32GB 内存

  • Ubuntu 20.04 或更高版本

  • 至少 20GB 可用磁盘空间

  • 已安装 NVIDIA 驱动和 CUDA

三、在优刻得 GPU 云主机上完成一次训练

连接服务器后,先检查 GPU:

nvidia-smi

能够正常显示 GPU 型号、显存和驱动版本,即可继续安装训练环境。

1. 安装项目

# 安装 uv
curl -LsSf https://astral.sh/uv/install.sh | sh
source ~/.bashrc

# 安装 Python 3.12
uv python install 3.12

# 下载训练框架
git clone https://github.com/pollen-robotics/microduck_rl
cd microduck_rl

# 安装依赖
export UV_HTTP_TIMEOUT=600
uv sync

项目首次安装会下载 CUDA 等依赖,需要一定时间和磁盘空间。

如果希望在线查看训练曲线,可以登录 Weights & Biases:

uv run wandb login

如果后续需要将模型发布到 Hugging Face,还需要登录 Hugging Face CLI:

uv run hf auth login

API Key 和访问令牌应通过环境变量或交互式登录提供,不要写入源码或公开日志。

2. 训练走路策略

官方框架已经提供基础走路任务,可以直接启动:

# 离线训练
WANDB_MODE=offline uv run train \
  Mjlab-Velocity-Flat-MicroDuck \
  --env.scene.num-envs 4096

如果已经登录 Weights & Biases,可以去掉离线参数:

uv run train \
  Mjlab-Velocity-Flat-MicroDuck \
  --env.scene.num-envs 4096

训练过程中,终端会输出迭代次数、奖励值和 GPU 使用情况。奖励值整体上升并逐渐稳定,通常表示策略正在收敛。

如果出现显存不足,可以减少并行环境:

uv run train \
  Mjlab-Velocity-Flat-MicroDuck \
  --env.scene.num-envs 2048

基础走路策略通常可以在数小时内完成初步训练,实际时间取决于 GPU、训练参数和收敛要求。

3. 导出 ONNX 策略

使用 Weights & Biases 记录训练时,可以根据 run path 导出模型:

uv run scripts/export.py \
  Mjlab-Velocity-Flat-MicroDuck \
  --wandb-run-path <用户名>/<项目名>/<run_id>

离线训练则使用本地 checkpoint:

uv run scripts/export.py \
  Mjlab-Velocity-Flat-MicroDuck \
  --checkpoint-file <checkpoint路径>

导出完成后会生成 ONNX 策略文件。

4. 在仿真环境中验证

Linux 环境下运行:

uv run scripts/infer_policy.py \
  --walking output.onnx \
  --new-cmd-obs

macOS 环境下运行:

.venv/bin/mjpython scripts/infer_policy.py \
  --walking output.onnx \
  --new-cmd-obs

如需保存观测数据,可以增加 --record:

uv run scripts/infer_policy.py \
  --walking output.onnx \
  --new-cmd-obs \
  --record recording.pkl

策略验证主要关注三个方面:机器人能否保持稳定、动作是否符合目标,以及面对初始姿态变化或外部扰动时是否容易失效。

5. 发布到 Hugging Face

完成验证后,可以将 ONNX 文件发布到 Hugging Face Hub:

uv run publish \
  --onnx output.onnx \
  --repo <HF用户名>/microduck-walk \
  --kind perpetual \
  --slot walk \
  --description "Microduck walking policy"

其他用户可以通过以下命令下载:

uv run hf download \
  <HF用户名>/microduck-walk \
  policy.onnx \
  --local-dir policies/my-walk

在实体 Microduck 上加载策略时,可以使用项目提供的机器人控制工具:

sudo robotctl policy load \
  walk <HF用户名>/microduck-walk

  robotctl robot do walk

在真机运行前,应先确认策略与当前硬件、固件和控制接口兼容,并预留安全空间进行低速测试。

四、从走路扩展到跑步

训练新动作通常不只是提高目标速度,还需要重新调整奖励函数和鲁棒性参数。

以跑步策略为例,常见调整包括:

  • 提高目标速度和速度上限

  • 增加前进奖励权重

  • 对动作变化幅度进行约束

  • 加入随机外力

  • 随机改变躯干或头部重心

  • 设置不同的初始倾斜角度

这些扰动可以降低策略对单一仿真条件的依赖,提高部署到真实硬件后的适应能力。

社区扩展项目 microduck-playground 提供了跑步任务示例:

git clone https://github.com/Vottivott/microduck-playground.git
cd microduck-playground

export UV_HTTP_TIMEOUT=600
uv sync

MICRODUCK_RUNNING_TARGET_MAX_SPEED=2.2 \
MICRODUCK_RUNNING_SPEED_CAP=2.4 \
MICRODUCK_RUNNING_FORWARD_PROGRESS_WEIGHT=5.0 \
MICRODUCK_RUNNING_ROBUST_PUSH_MPS=0.10 \
MICRODUCK_RUNNING_ROBUST_TRUNK_COM_M=0.008 \
MICRODUCK_RUNNING_ROBUST_HEAD_COM_M=0.006 \
MICRODUCK_RUNNING_ROBUST_INITIAL_TILT_DEG=2.0 \
WANDB_MODE=offline \
uv run train \
  Mjlab-Running-Flat-MicroDuck \
  --env.scene.num-envs 4096

跑步比基础行走更难收敛,训练时间可能从数小时增加到十小时以上。参数并非越大越好,需要同时观察速度、稳定性、动作平滑度和能耗等指标。

五、成本与注意事项

云端训练成本主要由 GPU 实例运行时间、系统盘和公网流量构成。按照文中示例价格估算,基础走路策略训练约需数十元;更复杂的跑步或跳跃策略由于训练时间更长,成本也会相应增加。

为避免额外费用,完成训练后可以:

  1. 保存 checkpoint 和导出的 ONNX 文件;

  2. 将需要的文件上传至对象存储或本地;

  3. 停止或释放 GPU 实例;

  4. 后续使用普通 CPU 环境完成部分仿真回放和数据分析。

Microduck 的开源框架降低了机器人动作开发的入门门槛,但从仿真运行到真机稳定执行,仍需要经过参数调整、鲁棒性训练和硬件验证。对于初次尝试的开发者,建议先复现官方走路策略,再逐步修改速度、奖励函数和扰动参数。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐