YouDuck.ai

策略热切换

最后更新

Microduck 的运行时会在多个策略之间热切换:行走、跌倒恢复、各种技能动作各是一个 .onnx,由 robotd 按需加载。

前提是共享观测契约

能这么做的原因是所有策略共享同一份 61 维观测契约。切换就是换一个网络,不需要状态转换或数据重排。

一个具体例子:walk ⇄ roller

给机器人装上或拆掉轮子后,长按手柄十字键上 3 秒:

  1. 机器人叫一声(walk)或两声(roller)
  2. 回到 home 位姿
  3. 在那里加载对应模式的策略
  4. 继续驱动

几秒钟,全程保持扭矩,不需要重启。

robotd.toml 不会被修改,所以重启后回到配置文件里设定的模式。想让切换持久化,用 robotctl configure[policy] mode

设计成「按住」而不是「按一下」,是因为驱动时很容易顺手压到十字键上。

用自己的策略

不需要发布版本。在 /etc/robot/robotd.toml 里直接指过去:

[policy]
walk = "/home/radxa/my_walking.onnx"
stand = "/home/radxa/my_stand.onnx"
sudo systemctl restart robotd

这些路径能挺过系统更新——发布版替换的是它自带的文件,不是这个指向别处的配置。

加载失败的策略会报 unhealthy,robotctl healthmonitor 底部边框都会说明原因。