Microduck:把 800 克双足机器人带到 400 美元价位

2026-08-31 41 预计阅读时间: 1 分钟
来源: oschina.net AI 摘要 Original link

Disclaimer: This article is an AI-assisted summary. Read it together with the original source when precision matters. The summary may omit context, version differences, or edge cases and is not official documentation.

预计阅读时间:8 分钟

法国 Pollen Robotics 公布的 Microduck,把开源双足机器人推到了更接近个人开发者的价格区间:机器人重约 800 克,售价约 400 美元,计入运费约 510 美元,预计在 2026 年圣诞节前发货。它不仅被展示为能够行走,还能踢球、拾取物体和滑冰。对开发者而言,真正值得关注的不只是动作列表,而是低成本双足硬件能否成为一个可重复实验、可修改控制链路的机器人平台。

价格下降,开发难度并不会同步消失

Microduck 采用 Rockchip RK3566 处理器。这个选择意味着机器人具备在本地运行 Linux 应用、状态机、通信服务以及轻量视觉任务的潜力。不过,来源摘要没有给出内存、存储、摄像头、执行器、传感器和软件接口的完整规格,因此不能仅凭处理器型号判断它能运行多大的模型,或是否原生支持 ROS 2。

双足机器人的困难集中在整条控制链路上:

  • 步态必须持续处理支撑脚切换、重心移动和落脚冲击。
  • 踢球会短暂减少支撑裕量,对关节速度和姿态恢复提出更高要求。
  • 拾取物体会改变质心位置,手臂动作不能脱离腿部控制单独规划。
  • 滑冰减少了地面对横向运动的约束,需要另一套平衡策略。

因此,“能完成动作”和“开发者可以稳定复现动作”是两个不同指标。评估产品时,应关注动作成功率、连续运行时间、跌倒恢复方式,以及电机温度或电流是否能被软件读取。

开源二字需要拆开检查

Microduck 被定义为开源机器人,但来源摘要没有列出具体许可证和开放仓库范围。正式下单前,建议逐项确认:

  1. 机械结构是否提供 STEP、STL 或原始 CAD 文件。
  2. 电路板是否开放原理图、PCB 文件和物料清单。
  3. 固件、运动控制程序和上层 SDK 是否使用允许修改及再分发的许可证。
  4. 电机、减速器和电池是否能单独购买,接口是否依赖专用零件。
  5. 固件损坏后是否存在公开的恢复和刷写流程。

这些问题决定了它究竟是一台可以阅读部分代码的成品,还是一套能够维修、改装并用于教学的开放平台。约 400 美元的价格很有吸引力,但含运费约 510 美元仍不是完整持有成本;备用电池、易损结构件、税费和开发工具也应计入预算。

可以这样实践:先建立可审查的动作描述

在官方 SDK 和通信协议尚未明确时,可以先用与厂商 API 无关的动作文件组织实验。下面是一个最小伪项目:motion.json 描述关节关键帧,play_motion.py 负责校验并默认以 dry-run 方式播放。

这里明确做两个假设:关节角使用度数,所有关节的临时安全范围统一限制为 -90 到 90 度。这些不是 Microduck 的官方参数;拿到机器后必须根据其关节名称、零位和机械限位修改。

{
  "name": "small_kick_demo",
  "frames": [
    {"duration_ms": 600, "joints": {"left_hip": 0, "left_knee": 18, "right_hip": -8, "right_knee": 22}},
    {"duration_ms": 350, "joints": {"left_hip": 0, "left_knee": 20, "right_hip": 24, "right_knee": 8}},
    {"duration_ms": 700, "joints": {"left_hip": 0, "left_knee": 12, "right_hip": 0, "right_knee": 12}}
  ]
}
#!/usr/bin/env python3
import argparse
import json
import time
from pathlib import Path

LIMITS = (-90.0, 90.0)  # Replace with official per-joint limits.


def load_motion(path: str) -> dict:
    motion = json.loads(Path(path).read_text(encoding="utf-8"))
    frames = motion.get("frames")
    if not isinstance(frames, list) or not frames:
        raise ValueError("motion.frames must be a non-empty list")

    for index, frame in enumerate(frames):
        duration = frame.get("duration_ms")
        joints = frame.get("joints")
        if not isinstance(duration, int) or duration < 100:
            raise ValueError(f"frame {index}: duration_ms must be >= 100")
        if not isinstance(joints, dict) or not joints:
            raise ValueError(f"frame {index}: joints must be a non-empty object")
        for joint, angle in joints.items():
            if not isinstance(angle, (int, float)) or not LIMITS[0] <= angle <= LIMITS[1]:
                raise ValueError(f"frame {index}: unsafe angle for {joint}: {angle}")
    return motion


def send_to_robot(joints: dict) -> None:
    # Replace this function only after consulting the official SDK.
    raise NotImplementedError("hardware transport is intentionally disabled")


def main() -> None:
    parser = argparse.ArgumentParser()
    parser.add_argument("motion")
    parser.add_argument("--hardware", action="store_true")
    args = parser.parse_args()

    motion = load_motion(args.motion)
    print(f"motion={motion.get('name', 'unnamed')} frames={len(motion['frames'])}")
    for index, frame in enumerate(motion["frames"]):
        print(f"frame={index} duration_ms={frame['duration_ms']} joints={frame['joints']}")
        if args.hardware:
            send_to_robot(frame["joints"])
        time.sleep(frame["duration_ms"] / 1000)


if __name__ == "__main__":
    main()

将两个文件放在同一目录后,可以直接检查动作序列:

python3 play_motion.py motion.json

这段程序默认不会连接机器人。接入真机时,应只替换 send_to_robot(),并在通信适配层增加急停、超时、姿态异常、关节限位和电机过流处理。第一次测试还应抬起机器人或使用支撑架,并显著降低速度和力矩。

适合谁,以及下单前看什么

Microduck 更适合希望研究步态、运动编排、人机交互和小型机器人应用的开发者,而不是期待开箱即用工业可靠性的团队。它的价格降低了实验门槛,但 2026 年末的预计交付时间也带来了规格变化、延期和售后不确定性。

采用前可以用一份简短清单做决策:确认开源许可证和仓库内容,等待完整硬件规格与 SDK 文档,检查电池运输及所在地区税费,了解备件价格,并验证是否提供急停、日志、固件恢复和关节标定工具。对双足机器人来说,真正有价值的不是一次精彩演示,而是跌倒之后仍能定位问题、替换零件并重复实验。


相关推荐