开源软件 · 闭源硬件 · Apache-2.0

一只 25 厘米的机器鸭,把物理 AI 的门槛压到 399 美元

Microduck 是 Hugging Face 旗下 Pollen Robotics 推出的开源双足机器人。它走、坐、蹲、踢球、用喙捡东西、穿轮滑鞋滑行,摔倒后靠强化学习策略自己爬起来。整套软件栈 —— 运行时、SDK、仿真环境与 RL 训练脚本 —— 全部以 Apache-2.0 开源。

  • 25 cm 高
  • 15 个舵机
  • 50 Hz 板载推理
  • $399 预售
  • Apache-2.0
01·概览

它到底是什么

Microduck 是一台为「行动」而非「对话」设计的机器人。 它的前作 Reachy Mini 是坐在桌面上、能看能听能说话的交互型机器人;Microduck 则从物理 AI 的另一端出发:在世界里移动、跌倒、爬起来、把东西叼走。

它由法国波尔多的 Pollen Robotics 团队开发 —— 该公司 2016 年由前 Inria 研究员创立,2025 年 4 月被 Hugging Face 收购。Reachy Mini 累计销量已超过 1 万台,而 Microduck 是团队第一次把「会走路的整机」做成预订制消费品直接售卖。

值得注意的是定位上的取舍:Microduck 不会说话。它通过古怪的小声音交流,每台机器鸭在首次开机时生成属于自己的音色,并永久绑定。这不是没做完的功能,而是一个刻意的设计决定 —— 把反馈回路牢牢绑在机器人正在做的物理动作上,而不是把它变成「碰巧长了腿的聊天机器人」。

  • 25 cm 站立高度 宽约 14 cm,单手可托
  • < 800 g 整机重量 官方公布约 770–780 g
  • 15 自由度舵机 双腿 10 + 头颈嘴 5
  • 50 Hz 控制频率 每 tick 20 ms
  • $399 首发预售 约 ¥2,681,不含税运
  • 942 通过测试 macOS 全量无排除
03·官方图集

12 张官方照片

以下照片同样来自官方新闻资料包,按产品发售时的真实外观拍摄。图片中的黄色与奶油色壳体是官方四种配色中的 Cream;另外三种配色为 Graphite、Lavender 与 Sky。

卧室地板上的 Microduck
卧室地板上,旁边坐着使用笔记本的人。25 cm 的身高让它主要在桌面以下的世界活动。
单手托起的 Microduck
单手托在胸前 —— 不到 800 g 的重量确实可以随身携带。
Microduck 头部特写
头部近景:单目前置摄像头、REC 指示灯和可张合的喙。
桌面上的 Microduck 与配件
桌面工作台上的 Microduck、配件、贴纸和游戏手柄。
两台机器鸭踢球
两台机器鸭与一只小球 —— 踢球是出厂动作之一。
晨光里的 Microduck
晨光里的机器鸭站在桌面上,背后是植物与显示器。
儿童房里的 Microduck
儿童房的地垫上,一只机器鸭独自站立。
使用者与 Microduck 互动
一位使用者俯身与机器鸭互动,桌上有贴纸。
Microduck 在显示器前
在显示器前与键盘并列,屏幕上是开发者环境。
Microduck 脚踩轮滑鞋
脚踩轮滑鞋的腿部特写 —— 注意轮子是 $39 配件包内容。
Microduck 贴纸
36 张贴纸散落桌面,官方明确允许在报道中自由使用。
群机在地垫上行走
群机在地垫上行走,背景中有人坐着操作。

摄影:Pollen Robotics。原图可在 官方新闻资料包 下载。

04·硬件

硬件规格:小机身里的完整感知套件

在这个价位上,Microduck 的传感器清单密度相当惊人。主控是 Rockchip RK3566(板卡形态为 Radxa Zero 3W),四核 Cortex-A55 最高 1.8 GHz,带约 0.8 TOPS INT8 的 NPU;搭配 1 GB 内存与 32 GB 存储。真正有意思的是:板载算力不是用来跑大模型的,而是用来在 20 ms 的硬实时预算内跑完一次策略前向推理。

Microduck 官方规格(依据 Pollen Robotics 新闻资料与产品页整理)
项目规格
主控 SoCRockchip RK3566(Radxa Zero 3W),四核 Cortex-A55 @ 1.8 GHz,Mali-G52,约 0.8 TOPS INT8 NPU
内存 / 存储1 GB RAM · 32 GB eMMC
执行机构15 个 Dynamixel 舵机:左腿 id 20–24、右腿 id 10–14、颈/头/嘴 id 30–34;RL 策略输出 14 维,嘴部舵机独立控制
总线/dev/ttyS2 · 1 Mbps · Dynamixel protocol v2,舵机与 IMU 板共用同一条 UART
视觉前置摄像头,带独立摄像头使用指示灯
深度8×8 ToF 激光雷达矩阵(VL53L8CX 级别,15 Hz,挂在 HAT 的 I²C 上)
运动感知双 IMU:机身一组、头部一组;总线上的 imu_to_dxl 板(id 200)输出 SFLP 四元数
音频麦克风 + 扬声器;每台机器鸭由 SoC 序列号生成专属音色
交互可张合的 articulated 抓取喙;头部与鸭嘴各一组 NFC 天线
无线Wi-Fi + 蓝牙 / BLE,可连接游戏手柄
电池可拆卸 NP-F550,2600 mAh,官方标称约 1 小时续航
尺寸 / 重量约 25 cm 高 · 14 cm 宽 · 800 g 以下
配色Cream #f7e6cb / Graphite #6c6a68 / Lavender #bfa9cf / Sky #a9dbe8
包装内容机器鸭本体、电池、USB-C 线、游戏手柄
官方定价与套装(资料来源:Pollen Robotics 新闻资料包 FACT-SHEET)
套装价格包含内容
Microduck 基础套装$399机器鸭本体、电池、USB-C 线、游戏手柄
充电器套装+$39双槽充电器 + 2 块备用电池
开发者套装+$1193 个备用舵机、5 条电机线、2 块电池、双槽充电器、10 张 NFC 标签、Hugging Face 积分、螺丝刀与螺丝包
配件套装+$39激光笔、NFC 拍立得卡片、2 个轮滑滚轮、小球、10 张 NFC 标签

RK3566 为什么够用

22 nm 四核 A55,典型功耗 2.5 W、最大 5.25 W,对 7.4 V 锂电降压直供非常友好。它不追求峰值算力,而是把「够用的 CPU + 低功耗 + 长供货周期(板卡厂商承诺供货至 2030 年后)+ 完整 Linux 生态」打包在一起。

那颗 NPU 用在哪

当前主控制环走的是 ONNX Runtime + CPU 推理,已经够用。NPU 留给感知侧:项目正在把鸭子检测器搬到 RK3566 的 NPU 上,运行时锁定 rknn-toolkit2 v2.3.2。

一条总线,一个主人

15 个舵机和 IMU 板共用一条 UART。robotd 的控制线程是这条总线唯一的所有者,serialport 设置 TIOCEXCL 做排他,其他进程想碰总线必须通过 IPC 让 robotd 代劳。

电量是倒计时,不是仪表

0% 对应 BATTERY_EMPTY_V,到达时 robotd 会让机器鸭坐下并切断舵机电源。电量显示 30% 转黄、15% 转红;未取到读数时显示「batt not read yet」而不是 0.00 V。

05·能力

七个出厂动作,全部可重训

开箱即玩,不需要写一行代码:装上手柄就能驱动。七个预训练动作是强化学习策略的产物,不是预设动画 —— 而它们被官方明确定义为「起点,而不是这只鸭子的能力上限」。

行走 walk

摇摇晃晃地前进、转向。手柄左摇杆驱动,松开摇杆即站定。

坐立 / 站起 sit ↔ stand

D-Pad 向下在坐姿与站姿之间切换。

蹲伏 body pose

身体姿态模式下,摇杆控制站立机器人的前倾、侧倾与下蹲。

踢球 kick

LB / RB 分别为左脚和右脚踢击,轮滑形态下同样可用。

喙部拾取 ground pick

A 键触发地面拾取:喙贴地、夹住、抬起。官方演示可拾取袜子、记号笔等轻量物品。

轮滑 roller

装上轮子,长按 D-Pad 上 3 秒切换驱动模式,加载另一套策略大脑。

摔倒自起 get up

从多种常见摔倒姿势中自行恢复站立 —— 这是小尺寸双足机器人上最难学的动作之一,也是最容易因为缺失而让机器人变得不可用的一个。

除此之外,它还能做前滚翻(X 键,按住可连续翻)、跟随激光笔移动、用 NFC 标签触发动作,以及多台同型号机器鸭一起「合唱」。

06·架构

软件架构:一个板子上的七个守护进程

Microduck 的大脑是一个 Rust workspace,没有框架,一个 crate 对应一个服务。它们通过 Unix socket 上的 JSON-RPC 2.0(NDJSON,一行一个对象)互相通信。手机 App、控制台、手柄、你写的脚本 —— 所有客户端发出的是完全相同的调用。

clients — gamepad · phone · laptop · browser · GitHub release gamepad phone (BLE) robotctl (ssh) WebRTC peer GitHub release padd gamepad → intents btd BLE transport only robotctl the operator CLI mediad WebRTC + camera one Unix socket per service · JSON-RPC 2.0 · NDJSON one object per line · every client sends exactly the same calls robotd robot.* · 50 Hz loop · safety the only writer to the bus /run/robotd.sock configd net.* · pad.* · system.* wifi, identity, bonding /run/configd.sock updaterd update.* · verify · swap health-gate · roll back /run/updaterd.sock tofd 8×8 ToF depth matrix @ 15 Hz /run/tofd/tof.sock · publishes, answers nothing /dev/ttyS2 · 1 Mbps · Dynamixel v2 15 servos + imu_to_dxl (id 200), one UART survives a dead robotd ↓ configd · updaterd · btd — the recovery path
七守护进程共享一套 JSON-RPC 契约:只有 robotd 写总线,其余要么拥有自己的状态,要么只是传输层。
守护进程职责划分
服务拥有什么监听地址额外依赖
robotd电机控制、运动学、里程计、步态策略、安全层、robot.health/run/robotd.sockDynamixel 总线(/dev/ttyS2)
configdWi-Fi、机器鸭身份与名字、配对 PIN、手柄配对、重启/run/configd.sockBlueZ 与 NetworkManager(D-Bus)
updaterd发布版本:验签、安装、原子切换、健康门、回滚/run/updaterd.sockGitHub Releases、systemctl、robotd
btdBLE GATT 传输适配器 —— 不拥有任何状态BLE GATT 服务robotd / configd / updaterd
padd手柄 → 意图;同时提供原始输入流/run/padd/pad.sock/run/robotd.sock
mediad摄像头与音频流水线、WebRTC 网关、远程控制台:8080 控制台 · :8443 信令robotd / configd / updaterd
tofd头部 8×8 ToF 深度矩阵,15 Hz 发布/run/tofd/tof.sockHAT 的 I²C 总线
robotctl运维 CLI —— 必须在机器人「坏了」的时候也能用以上所有 socket

三条不变式,决定了整个设计

  1. btd、configd、updaterd 必须在 robotd 死掉时依然存活。 它们是恢复路径 —— 恰恰要在出问题的场景下可用。因此它们没有对 robotd 的 systemd 依赖,所有 IPC 都是可选且有超时上限的,依赖面刻意保持最小(不加载 ML 运行时、不加载媒体栈)。这也是 Wi-Fi 配置放在 configd 而不是 robotd 里的原因:配网正是机器人坏了的时候你最需要做的事。
  2. robotd 在安全上拥有最终权威。 任何远程或本地客户端都不能绕过跌倒检测、关节/温度限制与安全位姿逻辑。客户端发送的是意图,robotd 决定什么才是可执行的。
  3. robotd 的控制循环绝不为其他服务阻塞。 所有跨服务读取都是「最后值优先」的缓存,永远不是同步 RPC。

控制平面与数据平面被严格分开:命令、配置、状态走 Unix socket 上的 RPC;而 640×480 RGB @30fps 的视频流约 27 MB/s,永远不跨越 socket,直接由 mediad 的 GStreamer 流水线走硬件 H.264 编码(Rockchip MPP 的 mpph264enc)推出去。

07·实时性

50 Hz 控制循环:一个 tick 里发生的四件事

一个进程、一条串行总线、一个 50 Hz 循环。循环在单次事务中读取总线上的全部 16 个设备,解算出 15 个关节目标,再写回去。其余一切 —— 客户端、健康检查、遥测 —— 都挂在这个循环上,但永远无法阻塞它。

one tick = 20 ms · 50 Hz · 15,022 observed · 3 missed1readIMU · ToF · commands2inferONNX policy forward3write15 joint targets4waitto the next 20 ms19.9 ms of work inside a 20.0 ms budget — on a non-RT kernel safety layer joint clamp · fall → limp · deadman clients send intents robotd decides what is executable never blocks cross-service reads are last-value caches
一个 tick 的四步,全部挤在 20 ms 预算内 —— 而且是在非实时内核上达成的。
  1. read —— 读 IMU 当前姿态、ToF 深度、目标指令。IMU 是 id 200,与舵机在同一次 sync_read 里被读走,因为 v2 的 imu_to_dxl 板就坐在 Dynamixel 总线上,从舵机应答的同一寄存器块里吐出片上 SFLP 四元数。
  2. infer —— ONNX Runtime 跑一次策略前向推理。策略文件是训练端导出的 .onnx,观测归一化被直接烘焙进计算图。
  3. write —— 把 15 个舵机的目标位置写回总线。
  4. wait —— 等下一个 20 ms。
  • 50.0 Hz 实测控制频率 非 RT 内核上达成
  • 15 022 统计窗口 tick 数 一次连续观测
  • 3 丢失的 tick 失帧率约 0.02%
  • 20 ms 单 tick 预算 读、推理、写都在里面

安全层与 robotd 共享唯一的写句柄,因此没有策略、也没有任何客户端能绕过它命令电机:关节限位、跌倒 → 无力(limp)、以及意图 deadman。robotctl monitor 会把「客户端请求了什么」与「实际执行了什么」并排显示,并在两者不一致时给出具名原因 —— 安全层一直在夹取数值,没有这个对照,「摇杆推到底而机器人不动」是完全无法读懂的。

08·训练

Sim-to-Real:从 MuJoCo 到 ONNX 的完整回路

这是整个项目里最值钱的部分。Pollen 没有把 sim-to-real 当成一篇论文发表,而是当成可运行的代码发布出来 —— 奖励函数、域随机化配置、执行器建模,全部在 microduck_rl 仓库里。

Train mjlab / MuJoCo Warp · PPO 4,096 parallel environments CUDA GPU · 1–2 h to a gait urdf + task + physics Make it survive reality BAM actuator model (XL330) domain randomisation backlash ±1° · command delay friction · voltage sag · terrain Export scripts/export.py → ONNX normaliser baked into the graph .onnx Deploy on the RK3566 ONNX Runtime · robotd · 50 Hz, 20 ms a tick Iterate without the hardware adjust the sim → retrain → hot-swap the .onnx
训练在 GPU 上完成,部署在 0.8 TOPS 的板子上完成,中间的桥是 ONNX。
训练端与部署端的对照
维度训练端部署端
硬件NVIDIA CUDA GPU / DGX Spark / Jetson / HF JobsRK3566 核心板(四核 A55 @1.8 GHz)
算力形态多卡并行,4096 个仿真环境4× Cortex-A55 + 约 0.8 TOPS NPU
软件栈mjlab / MuJoCo Warp / PPOONNX Runtime + 守护进程
输入机器人 URDF + 任务 + 物理参数IMU / ToF / Camera / 手柄命令
输出训练好的策略网络15 路舵机目标位置
时延要求1–2 小时出策略50 Hz,20 ms 一拍

为什么仿真里的策略能在真机上站住

  • BAM 执行器建模:仿真不把 Dynamixel XL330 当作理想 PD 控制器,而是建模它的电压控制律、反电动势、库仑摩擦、Stribeck 摩擦与负载相关摩擦曲线。
  • 域随机化:电池电压、电压跌落、指令延迟、摩擦系数、地形,逐环境随机化。
  • 齿隙(Backlash)仿真:可训练建模 ±1° 齿轮间隙的变体,让策略在真机上更稳。
  • 观测归一化烘焙进计算图scripts/export.py 导出 ONNX 时把归一化直接写进网络,部署端不需要额外携带预处理参数。
  • 13 个任务族,只有 7 个出厂可用microduck_rl 仓库登记了 13 个任务族,其中 6 个围绕脚底那组被动轮设计,另有前滚翻等;随机器人交付并经过实测验证的只有 7 个策略。剩下的任务族需要自己训练。
bash
# 训练侧(microduck_rl,Python)
# 4096 个并行 MuJoCo 环境 + PPO,一个可用步态大约 1–2 小时收敛

# 导出为 ONNX,观测归一化烘焙进 graph
python scripts/export.py --checkpoint <run> --out my_walking.onnx

# 部署侧:拷到板子上,在 /etc/robot/robotd.toml 里指过去
# [policy]
# walk = "/home/radxa/my_walking.onnx"
sudo systemctl restart robotd
09·交付

OTA 更新:设计目标就是「不可能被刷砖」

对一个要卖到普通用户手里的机器人来说,更新系统的优先级和步态一样高。Microduck 的做法是:发布是整体替换,而不是打补丁,并且每一步都可验证、可回滚。

push a branch CI builds and signs releases/<ver>/ verify + swap check signature move `current` health gate ask robot.health real socket probe keep it committed roll back old release back healthy not healthy — puts the old one back on its own everything outside releases/<ver>/ survives both an update and a rollback — and a boot counter + the golden symlink are the last net
更新是整体目录替换,而不是打补丁;健康门不过就自动回滚。
  1. 验签 —— 一个构建作为完整目录落到 /opt/robot/daemon/releases/<version>/,updaterd 先验签。
  2. 原子切换 —— 移动 current 软链,重启 unit。
  3. 健康门 —— 然后问 robotd:robot.health 过不过?这是真实的 socket 探针,不是进程存活检查。
  4. 自动回滚 —— 不过就把上一个版本自己换回去。
  5. 启动计数器兜底 —— 如果崩溃循环骗过了健康门,boot counter + golden 软链 + robot-rescue 是最后一张网。

关键的不变式是:releases/<ver>/ 之外的一切,既能在更新中存活,也能在回滚中存活。 这就是为什么单板配置不随发布包一起分发。开发者分支构建也受两条硬约束保护:dev 构建不可能变成 latest(版本是 semver 预发布号,version_under 拒绝把 dev tag 读成发布版本),也不可能装到客户机器人上(客户机 allow_dev_keys 为 false,且只有文件名以 .dev.pub 结尾的受信密钥才算 dev key)。

10·玩法

不只是走路:合唱团、特雷门琴与属于它自己的声音

每台机器鸭有专属音色

音色库由 SoC 序列号生成(sounds ensure-bank,每次发布安装时运行)。这意味着你 SSH 进去的那台机器鸭,回答你的是只有它自己会发出的声音 —— 静音永远意味着「认错鸭子了」。它启动时会打招呼,关机前会啄一下;如果开启 audio.pet_detect,麦克风听到有人挠它头时它还会咕哝(默认关闭:常开版本会对每一次无意擦碰都作出反应,很快就会腻)。

鸭子合唱团(无指挥、无共享时钟)

两只机器鸭在同一间屋子里会合唱一首四声部作品,更多鸭子加入已经开始的演唱。没有谁是指挥:两只鸭子看到相同的 BLE 广播,id 较小的那个担任指挥,所以没有选举可输,也没有必须送达的消息。没有共享时钟:板子既无 NTP 也无 RTC 同步,于是指挥的节拍计数器本身就是时基 —— 它每拍在 BLE 广播里递增一个字节,新值的到达即为强拍;跟随者在约 25 拍内平均相位,把射频抖动压进合奏需要的 ±20 ms 之内。声部是被推导出来的,不是被分配的:最低的那只唱低音,指挥广播名单,大家各自复算同一个座次表 —— 这正是防止两只鸭子唱同一声部的机制。

ToF 特雷门琴

头部的深度传感器变成一件乐器:喙前的手决定音高,越近越高,嘴随音符张开,音域顶端张得最开。它坐着、站着、走着都能演奏 —— 嘴不属于任何策略。读数最后一列是传感器对这一帧说了什么,这是「它为什么不响了」的唯一答案:ST 手册把状态码 5 和 9 标为「测距有效」,但只相信这两个码的版本在约 30 cm 处就看不见手了 —— 超过这个距离,移动的手会带着完全可用于定音的距离值返回 4 或 13(一致性检查失败、sigma 过大)。

远程与本地的多条通路

duckctl 让你在没有网络、没有 ssh 的情况下,从笔记本通过 BLE 操作机器鸭。mediad 则从板子直接提供 WebRTC:浏览器在局域网里就能看到画面,并通过与视频轨同行的 control 数据通道下发控制。摄像头质量可在 1080p30 / 720p30 / 720p15 / 360p30 之间切换;关掉 media.camera 会推测试图 —— 因为 WebRTC 的控制通道骑在视频轨上,流水线起不来会同时损失两者。

11·上手

拥有它之后,最常用的几条命令

robotctl 跑在机器人上。只读命令不需要特权;任何改变机器人的操作都需要 sudo

bash
# 首先运行这个:每个守护进程正在跑什么 vs 装了什么,不一致时告警
robotctl version

# 软硬件一体报告,不健康或不可达时非零退出,可直接用于脚本门禁
robotctl health            # --json 输出支持包

# 客户端请求了什么 vs 实际执行了什么,并排显示,不一致时给出具名原因
robotctl monitor           # d 关闭鸭子视图 · [ ] 转视角 · t 打开 ToF 矩阵 · p 手柄原始输入

# 交互式配置编辑器,schema/默认值/校验都来自 robotd 自己解析文件的那个 crate
sudo robotctl configure

# 手柄配对(每个手柄只需一次)
robotctl pad status
sudo robotctl pad pair

# 发声:用只有它自己的声音叫一声
robotctl quack

# 合唱团 / 特雷门琴(Ctrl-C 退出)
robotctl chorale
robotctl theremin

# 更新:安装 / 回滚 / 固定版本
sudo robotctl update apply

# 从笔记本通过 BLE 操作,无需网络与 ssh
duckctl ...
12·中文报道

中文媒体与社区报道(附原文链接)

以下为已核实的中文报道与社区讨论,均保留原始链接,点击可跳转原文。内容摘要由本站整理,版权归原作者所有。

电子工程专辑 EET China

小型机器鸭开源,跌倒也能站起来

身高 25 厘米,宽 14 厘米,重量不足 800 克。24 小时,卖出 260 万美元。主控 Rockchip RK3566(Radxa Zero 3W),4 核 Cortex-A55,带约 0.8 TOPS INT8 NPU。整机 15 个舵机;RL 策略输出 14 维,控制双腿和头颈,嘴部舵机独立控制。
硬件拆解供应链 查看原文
CNX Software 中文站

Microduck:专为物理 AI 实验与娱乐设计的鸭子仿生双足机器人

SoC 瑞芯微 RK3566,四核 Cortex-A55 最高 1.8 GHz,Mali-G52,0.8 TOPS NPU,1GB RAM + 32GB eMMC。头部与鸭嘴各设一组 NFC 天线,2 个 IMU,8×8 ToF LiDAR(可能采用类似 VL53L8CX 的方案)。机载系统以守护进程形式运行:一个 50 Hz 的控制回路负责驱动 15 个舵机。
规格清单SoC 分析 查看原文
IT之家

Hugging Face 推出新款鸭形机器人:能捡东西、快速移动,399 美元

奶油色、石墨色、薰衣草紫和天蓝色四种颜色,计划今年圣诞节前发货。Microduck 是一款独眼双足机器人,身高不到 25.4cm,可以捡袜子和记号笔、踢球,还能踩着小型轮滑鞋快速移动。Pollen Robotics 表示:Microduck 会用一些古怪的小声音交流,听起来更像一种生物,而不是助理。
首发报道定价 查看原文
机器人前瞻

售价 2681 元,抱抱脸开源机器人来了

机身高约 25cm,体重约 770g,包含腿部、头部、颈部共 15 个自由度。搭载 Rockchip RK3566,配备 1GB 运行内存与 32GB 存储。电池采用可拆卸的 2600mAh NP-F550,续航约 1 小时。软件上配套开源 SDK,包含虚拟训练环境、强化学习 RL 训练脚本与开发工具,提供经过验证的仿真迁移实机工作流。
国内定价产业视角 查看原文
今日头条科技

399 美元机器鸭摔倒自爬,Hugging Face 开源新物种

有 CUDA 显卡的本地环境,用 4096 并行环境训练,一个能用的步态大约 1 到 2 小时就能训出来。这等于把过去锁在机器人实验室的「控制 + 仿真 + 训练栈」装进一个 399 美元的盒子。Hugging Face CEO Clem Delangue 说,团队特意把 Microduck 设计成「为运动而生,也准备好摔倒」—— 机器人失败和犯错本身也是教育的一部分。
训练成本产品理念 查看原文
ic.work(作者:沈砚)

Hugging Face 新机器人鸭:轮滑要加钱,硬件不开源

那对轮滑用的被动滚轮不在 399 美元的基础套装里,要单独买 39 美元的配件包才有,包里还搭了球、激光笔和几个 NFC 道具。也就是说,出厂时其实是不会滑的。官方新闻资料自己写得很清楚:Microduck「目前并非开源硬件」,机械结构和电子设计文件没有跟着一起公开。招牌是开源,锁住的是图纸。
开源边界成本拆解 查看原文
网易科技 · 摸鱼算法

399 美元机械鸭开启预售:能走路会滑旱冰,还能教你强化学习

代码采用 Apache 2.0 协议,硬件设计文件则采用非商业许可,因此没有人能制造并销售克隆品。仓库共登记 13 个任务族,包括前滚翻,以及围绕脚下一组被动轮设计的 6 项任务。模拟器运行在 MuJoCo Warp 上,底层基于 NVIDIA 的 Warp 框架;训练框架 mjlab 则重新实现了 NVIDIA 自家 Isaac Lab 的 API。
许可协议任务族 查看原文
13·国际报道

海外媒体与技术社区评价

TechCrunch

Hugging Face is selling a cute $399 open-source duck robot, Microduck

Clem Delangue 称 Microduck 是「一个可以用强化学习教会新把戏的开源机器人」。SDK、仿真环境与完整的强化学习训练栈都在 GitHub 上。对于「卧室里放一个带摄像头的机器人」的担忧,Delangue 此前对 TechCrunch 表示:由开源模型驱动的机器人,从隐私角度看远比「由少数机构控制的黑箱系统」更好。
首发权威报道隐私视角 查看原文
eesel AI Blog

Microduck: Hugging Face's $399 open-source robot duck, explained

Reachy Mini 是为交互而生的 AI,待在桌面上与你交谈;Microduck 从物理 AI 的另一侧出发 —— 穿过世界移动、跌倒再爬起、不用词语啁啾。Pollen 把若干数字(含摄像头分辨率、LiDAR 测距、射频版本)标注为尚未最终确定。
深度解读 查看原文
PacketNebula

Microduck at $399: open software, closed hardware

软件是开源的。运行时仓库与强化学习训练仓库都在 GitHub 上,采用 Apache 2.0,包括奖励函数和 sim-to-real 配方。机械与电子设计文件没有发布。这让它成为一个开源软件的机器人,而不是开源硬件。七个策略覆盖了行走、坐下、蹲伏、踢球、轮滑和跌倒后起身,全部可重训。
开源边界批判视角 查看原文
byteiota

Hugging Face Microduck: $399 Open-Source Robot With Full RL Stack

硬件是包装,技术栈才是产品。Pollen 发布的是让 sim-to-real 真正奏效的配方 —— 不是一篇论文,而是可运行的代码。microduck_rl 包含 XL330 舵机的 BAM 执行器模型:电压控制律、反电动势、库仑摩擦与 Stribeck 摩擦项。域随机化逐环境覆盖电池电压、电压跌落、指令延迟、摩擦系数与地形,并包含齿隙仿真。
技术栈RL 查看原文
Gadget Review

Hugging Face's $399 Robot Duck Bets on Crowdsourced AI

Hugging Face 想为机器人技能做 GitHub 为代码做过的事:把语音识别、SLAM 导航和抓取行为众包进一个共享的社区库。雄心勃勃,同时也完全依赖于一个尚不存在的社区参与度。喙能捡起袜子和记号笔 —— 实际提升能力约 100 克,别指望它给你端咖啡。
生态战略 查看原文
Mashable SEA

Hugging Face launches Microduck, a $399 open-source robot duck

出厂包含的动作不是为了定义这只机器人永远能做什么,它们是起点。开发者可以在物理仿真中训练行为,再迁移到实体机器人上;从那里调整仿真、重训行为、再次部署 —— 不必反复把那只真实的价值 399 美元的鸭子摔得满地打滚。
官方引述 查看原文
PeopleAreGeek

Hugging Face Opens Orders for a $399 Robot

最有用的开源硬件很少是最强的硬件;它是你承受得起它失败、从而能从中学习的、最便宜的那个东西。Microduck 不说话,用非语言的声音交流,每台在设置时获得一个永久固定的音频身份。这是一个真实的决定,而且是个好决定。
设计评论 查看原文
14·开源

开源边界:Apache-2.0 覆盖了什么

开源

板载运行时与 SDK(Rust,Apache-2.0)

开源

仿真环境与物理模型(MuJoCo / mjlab)

开源

RL 训练栈、奖励函数与 sim-to-real 配方(Python)

开源

7 个出厂动作的策略权重,全部可重训

开源

CLI 工具链与 OTA 更新引擎

未开源

机械结构与电子设计文件

这意味着:你可以在自己的机器上训练一个新策略,在没有厂商 SDK 门槛、没有中间云服务的情况下部署到机器人上。社区贡献的步态策略可以像模型权重一样托管在 Hugging Face Hub 上 —— 这个飞轮正是 HF 收购 Pollen 的初衷。用 Pollen 官方博客的话说:「模型之所以有价值,是因为人们能在彼此的成果之上继续构建。我们希望物理行为也能以同样的方式被共享。」

15·FAQ

常见问题

Microduck 多少钱,什么时候发货?

首发预售价 399 美元(约 2,681 元人民币),不含税与运费,提供 Cream、Graphite、Lavender、Sky 四种配色。官方最初的目标是 2026 年圣诞节前交付,但 Pollen 自家商店已调整为「无法承诺新订单圣诞送达」,并给出 4–6 个月的预估等待期。首发区域为美国、加拿大、欧盟、英国、挪威、瑞士、日本与韩国。

它到底开源在哪里?硬件也开源吗?

开源的是软件:SDK、基于 MuJoCo 的仿真环境、以及产出出厂行为的强化学习训练管线,全部 Apache-2.0。硬件本身是一件售价 399 美元的商品,而不是一组你可以自己制造的文件。因此准确的说法是「跑在闭源硬件上的开源软件平台」,而非开源硬件项目。

它会上跑大模型吗?

不会。RK3566 配 1 GB 内存在物理上做不到,Pollen 也没有这样宣称。板载算力存在的原因是跑小的、导出的控制策略,50 Hz。想让 LLM 参与,它是跑在机器人之外、通过 Wi-Fi 与机器人对话的。

它会说话吗?

不会,这是设计选择而不是没做完的功能。Microduck 通过非语言的声音交流,每台机器鸭在首次启动时获得一个永久固定的音频身份。避开语音,就是避开了整个「助手」叙事框架,让交互闭环始终绑在机器人正在做的物理动作上。

训练一个新动作需要什么?

一块 CUDA GPU。microduck_rl 用 mjlab / MuJoCo Warp 拉起 4096 个并行环境,用 PPO 训练,一个可用的步态大约 1–2 小时收敛,导出成 ONNX 后部署到真机。没有合适 GPU 的话,仓库也给出了 NVIDIA DGX Spark、GB10、Jetson 等选项,或把训练任务交给 Hugging Face Jobs。

它的鸭嘴能抓多重的东西?

官方演示的是袜子、记号笔这类轻量物品。第三方报道给出的实用提升能力约 100 克;也有报道写作「最多约 800 克」,但该数值与整机自重数据存在混淆可能。建议以官方最终规格为准,不要指望它端咖啡。

更新会把它刷成砖吗?

整套更新系统的设计目标就是不可能。发布是整体目录替换而非打补丁:先验签,再原子切换 current 软链,然后过一道真实的健康门(socket 探测 robot.health),不过就自动回滚上一个版本;崩溃循环若骗过健康门,还有 boot counter 与 golden 软链兜底。需要诚实披露的是:boot-recovery 这套机制虽已随发布包启用,但项目文档明确注明从未在真实板子上演练过。

和 Reachy Mini 有什么区别?

两者定位互补而非迭代。Reachy Mini 是桌面机器人,面向「AI 的交互」:能看、能听、能说话,销量已超 1 万台。Microduck 面向「AI 的行动」:在物理空间里移动、携带物品、从跌倒中恢复。用官方的话说,前者是 AI that interacts,后者是 AI that acts。