YouDuck.ai

控制平面与数据平面

最后更新

Microduck 的进程间通信分成两层,理解这个分层能省掉很多排查时间。

控制平面:Unix socket 上的 JSON-RPC 2.0

所有守护进程通过一套 JSON-RPC 契约通信。这里有一条对使用者很重要的性质:

每一个客户端——手机 App、网页控制台、手柄、你自己写的脚本——发送的是完全相同的调用

也就是说,你脚本能做的事和官方 App 能做的事,接口上没有区别。没有隐藏的私有接口。

数据平面:传感器流不走控制平面

传感器数据由拥有它的那个守护进程直接发布,消费者订阅那个进程自己的 socket:

  • ToF 深度数据 → 订阅 tofdtof.stream
  • 手柄原始输入 → 订阅 padd

不经过 robotd 转发。

这对排查的实际影响

想看手柄的原始输入,去 padd,不要在机器人状态流里找——那里没有。robotctl monitorp 打开的就是这条独立的订阅。

同理,ToF 的数据在 tofdtofd 发布的是传感器视角的原始帧,不假装自己能算出它算不出的几何——要把一帧深度重投影到机器人坐标系,需要结合 robot.state 的关节状态和 kinematics crate 的头部正运动学。

相关