第一次让 Microduck 动起来
最后更新
拿到 Microduck 之后,从通电到能用手柄驱动它,实际上只有四步。这一页把顺序和每一步的判断标准写清楚——尤其是“看起来没反应”的时候该查什么。
先搞清楚你在跟什么打交道
Microduck 是一台约 25 cm、800 g 的双足机器人,主控是 Rockchip RK3566。机身上跑着一组 Rust 写的守护进程,其中 robotd 以 50 Hz 的控制循环驱动 15 个舵机,动作来自神经网络策略(.onnx 文件),而不是手写的步态代码。
这一点决定了排查思路:“机器人不动”可能是策略没加载,而不是电机坏了。
第一步:确认软件状态
SSH 上机器人后,第一条命令永远是这个:
robotctl version
它同时告诉你每个守护进程正在运行的版本和已安装的版本,两者不一致时会警告。
这一步不能跳过。官方文档特别强调了原因:更新之后某个守护进程仍在跑旧代码,表现出来和“你刚修的 bug 没修好”一模一样。先排除这种情况,再去怀疑别的。
然后看整体健康状况:
robotctl health
硬件和软件状态在一份报告里。机器人不健康或不可达时它会以非零码退出,所以可以直接拿它当脚本的前置检查。加 --json 会输出完整的支持包格式。
注意一个设计取舍:电机过热、组件被 pin 住这类情况会被报告但不影响退出码——它们是信息,不是故障判定。
第二步:给关节上电
sudo robotctl robot init
这条命令给关节通电,并在大约两秒内把机器人缓慢移动到 home 位姿。
它会移动每一个关节。 官方文档明确提醒:执行前把机器人放在支架上。
init 不需要策略就能执行。手柄的 Start 键在开始驱动前也会做这件事,所以手动执行 init 主要是台架调试时用。
要回到松弛状态:
sudo robotctl robot relax --yes
relax 切断关节电力,如果没有东西托着,机器人会直接瘫下去——这就是它需要 --yes 的原因。它是除了拔电源之外唯一回到松弛的方法。
对比一下另外两种“停”:
| 操作 | 结果 |
|---|---|
robot relax --yes |
断电,机器人瘫倒 |
| 再按一次 Start | 停止策略,机器人保持站立 |
robot.stop |
速度归零,保持站立 |
第三步:配对手柄
手柄配对一台手柄只需要做一次,之后 padd.service 会在开机时自动接管任何连上来的手柄。
sudo robotctl pad pair
不需要输 MAC 地址——机器人会自己找处于配对模式的手柄。完整的配对步骤、Xbox 手柄那个“按错就关机”的按键陷阱,以及配不上时怎么办,见配对手柄。
配完确认一下:
robotctl pad status
它输出两行,因为手柄连接和驱动进程是分开失败的:
pad Xbox Wireless Controller 78:86:2E:BB:13:28 connected
padd active — driving whatever pad connects
一个连着的手柄配上一个死掉的驱动,从外面看和“机器人在无视你”完全一样——所以要分两行看。
第四步:按 Start
按下 Start 之前,什么都不会动。
Start 键切换策略的开关。策略没打开时,机器人上电站着,但对摇杆没有任何反应。这是最常见的“它坏了”误判。
完整按键映射见手柄按键对照。
动不了的时候看哪里
按顺序排除:
robotctl version—— 守护进程跑的是不是你以为的那个版本。robotctl health—— 有没有报 unhealthy,原因是什么。策略加载失败会在这里明确报出来。robotctl monitor—— 这是最有信息量的一个。它把「客户端请求了什么」和「实际执行了什么」并排显示,并在两者不同时给出原因。
monitor 值得单独说。安全限制会持续地钳制指令,“摇杆推到底但机器人不动”在没有原因说明的情况下是无法解读的。这个界面会直接写出来,比如:
deadman — no intent arrived recently, velocity zeroed
底部边框会显示当前加载的策略——具体的 .onnx 文件,以及是否配置了站立网络。没有策略的机器人会明说,策略加载失败的会显示另一种状态。这两种情况在数据流的 held 状态上是分辨不出来的。
界面右侧还会把机器人当前姿态画出来——用测量到的关节角度和 IMU 重力向量摆出姿势,用的是训练策略时同一个视觉模型。一条腿反向折叠、头栽进地板、鸭子侧躺,在关节数值表里都只是一堆数字,在这个视图里一眼就能看出来。终端宽度约 110 列以上时自动显示,d 关闭,[ ] 或方向键旋转。
下一步
- 配对手柄——包括配不上时的完整排查路径
- 手柄按键对照——全部按键与组合键
- robotctl 命令速查——所有命令按用途分组