跳到正文
已核查原始资料

MicroDuck 本地整机仿真:没有实体也能运行真实 robotd

把官方 robotd、robotctl 和 50 Hz 控制循环接到 MuJoCo 机体,完成启动、健康检查、短距离驱动与实时率排查,并说明哪些硬件问题无法验证。

官方 duck-sim 不是网页动作演示,而是让真实守护进程控制 MuJoCo 机体。策略、IPC、健康检查和控制循环可在电脑上联调;电机总线、蓝牙、相机 ISP、NPU、硬件编码器和供电仍必须回到实体检查。

先判断是否需要这套仿真

只想体验动作,用浏览器仿真最快;要改 robotd、robotctl、策略加载或客户端通信,再使用本页的守护进程仿真。它运行真实控制程序,只把实体电机和传感器接口替换为 MuJoCo 通道。

固定两个仓库再开始

把 microduck 与 microduck_rl 放在相邻目录,或者用 DUCK_SIM_RL 指定后者的绝对路径。RL 仓库需要先生成包含 duck-body 与 ONNX Runtime 的虚拟环境。

可复制示例
git clone https://github.com/pollen-robotics/microduck.git
git -C microduck checkout --detach e90389492bd4da42f60da343983e50cecd43b54b
git clone https://github.com/pollen-robotics/microduck_rl.git
git -C microduck_rl checkout --detach cb70b792312d559a4da09064d92009079671815f
cd microduck_rl
uv sync

上述版本是本站 2026-09-23 核查快照。不要在已有改动的目录里强行切换提交;为复现新建独立目录更容易保留证据。

启动一只鸭并做短检查

可复制示例
cd /absolute/path/to/microduck
DUCK_SIM_RL=/absolute/path/to/microduck_rl scripts/duck-sim
scripts/duck-sim status
scripts/duck-sim drive
scripts/duck-sim ctl health
scripts/duck-sim realtime
scripts/duck-sim down

drive 只发送约八秒的前进请求,适合确认控制链路,不是速度或稳定性成绩。把 status、health、realtime、robotd 日志和 MuJoCo 日志放在同一份记录中。实时率低于 1.0 时,策略看到的时序已经改变;先减少鸭子和相机数量,再考虑无窗口运行。

plain 与 boot 回答不同问题

普通启动适合策略、IPC、控制循环和客户端。boot 模式把每只鸭放进真实 systemd 容器,适合验证服务账户、目录权限、更新健康门和重启顺序,但需要 sudo、systemd-nspawn 与 mmdebstrap。不是排查系统服务时,不必先承担这层复杂度。

明确写出验证边界

通过本地仿真,可以写“在指定提交的守护进程仿真中复现”。不能据此写成电机总线、蓝牙、相机、NPU、打印结构或实地接触已经验证。跨过这个边界时,另建实体测试清单。

来源与核查日期

资料核查于 2026年9月23日 · 已核查原始资料

  1. 原始资料 1 · github.com / simulation.md ↗
  2. 原始资料 2 · github.com / duck-sim ↗
  3. 原始资料 3 · github.com / README.md ↗