普通人的双足机器人实践课
从一只会摇摆的鸭子,
理解真实世界的机器人。
从浏览器仿真到 50 Hz 控制循环,再到 15 自由度兼容原型。每一步都能运行、能验证,也知道哪里必须停下来。
15 电机 / 自由度50 Hz 策略循环< 800 g 官方整机


官方 press kit 照片
© Pollen Robotics
© Pollen Robotics
25 cm
14 cm
先说明“复刻”的边界
查看官方声明 官方开源的是软件栈;机械与电子设计文件没有公开。你可以运行同类控制架构、训练策略并自制兼容原型,但目前无法依据官方资料做出 1:1 硬件克隆。
01
CHOOSE YOUR ROUTE
先选路线,再买零件。
第一次做机器人,最昂贵的错误通常是过早购买硬件。
系统架构 / SYSTEM MAP
鸭子如何在 20 毫秒内
完成一次思考?
传感器形成状态,策略网络输出目标关节位置,robotd 在一个进程中拥有舵机总线。固定 50 Hz 循环让感知、推理和动作保持同一节拍。
阅读官方架构文档20 msCONTROL
LOOP
LOOP
01 / 感知IMU · ToF · 相机
02 / 状态61D OBSERVATION
03 / 推理ONNX POLICY
04 / 执行JOINT TARGETS
02
PARTS & DECISIONS
一份不假装“官方”的 BOM
按当前路线筛选。勾选状态保存在你的浏览器里。
完成类别部件 / 数量官方已确认教学原型建议

机械实现 / YOUR OWN CAD
结构从“关节地图”开始,
不是从外壳开始。
01
确定关节轴先画运动学骨架,验证每个转轴方向、零位与碰撞范围。
02
把重心压低电池靠近躯干中心;先用简化外壳验证站立与跌倒。
03
给线束留余量颈部、髋部和膝部需要应力释放,避免导线成为隐形弹簧。
04
最后做表情喙部抓取、摄像头与灯光是第二阶段,不要阻塞第一步行走。
官方 CAD 与电路图未公开。任何自制结构都应视为独立工程设计,并重新验证强度、夹伤点、跌落和电池安全。
03
SOFTWARE WORKSHOP
从会动,到动得可控。
下面代码是学习架构的最小示例;真实 MicroDuck 运行官方 Rust 工作区。
safe_policy_loop.py
# safe_policy_loop.py — 教学用最小骨架,不直接连接高扭矩舵机
import time
import numpy as np
import onnxruntime as ort
HZ, DT = 50, 1.0 / 50
MAX_STEP = np.deg2rad(2.0) # 首次调试应更小
class MockBus:
def read_state(self):
return np.zeros(14), np.zeros(14), np.zeros(3)
def write_targets(self, q):
print("targets", np.round(q[:4], 3), "…")
bus = MockBus()
policy = ort.InferenceSession("walk.onnx", providers=["CPUExecutionProvider"])
last_action = np.zeros(14, dtype=np.float32)
while True:
tick = time.perf_counter()
q, dq, gyro = bus.read_state()
command = np.zeros(13, dtype=np.float32)
obs = np.concatenate([gyro, [0, 0, -1], q, dq, last_action, command])
raw = policy.run(None, {policy.get_inputs()[0].name: obs[None].astype(np.float32)})[0][0]
target = q + np.clip(raw - q, -MAX_STEP, MAX_STEP)
bus.write_targets(target) # 实机前增加急停、限位、掉线看门狗
last_action = raw
time.sleep(max(0, DT - (time.perf_counter() - tick)))04
SIM TO REAL
把学习留在模拟器,把风险挡在实机外。
01MuJoCo 建模
质量、关节、接触与摩擦
02PPO 训练
用奖励函数形成步态
03域随机化
扰动质量、摩擦、延迟与传感噪声
04导出 ONNX
冻结策略与输入输出契约
05低功率上机
支架、限流、限位、看门狗
BEFORE POWER-ON
第一次通电清单
限流台式电源从低电流阈值开始,确认无短路再逐步增加。
卸载先拆下腿部连杆或把机体固定在支架上,避免舵机突跳。
限位为每个关节设置软限位、速度限制和单周期最大位移。
急停物理断电开关必须伸手可达,软件急停不能替代物理急停。
看门狗控制包超时、IMU 异常或温度过高时自动失能。
电池使用成品保护电池与合适充电器,不自行焊接裸锂电芯。
事实来源 / PRIMARY SOURCES