搜索资料
SYSTEM STACK / RUNTIME

一只鸭的
系统栈

七个常驻 daemon、一个 CLI、一条 50 Hz 控制循环。分清谁拥有状态,才能在不破坏安全边界的前提下开发。

GAMEPADBLE / USB
PHONEBLE
LAPTOPSSH
REMOTE PEERWebRTC
JSON-RPC 2.0 / NDJSONUnix socket control plane · intents, config, status, events
robotd50 Hz controlmotor bussafety authority
configdWi-Fi / identitypairing / power
updaterdverify / swaphealth / rollback
mediadcamera / audioWebRTC / features
tofd8×8 depthpublisher only
UART15 motors + IMU
01 / OWNERSHIP

单一写入者,明确故障边界

每份状态只有一个 owner。btd、padd 和 mediad 是传输或媒体入口,不拥有机器人行为。

服务拥有接口设计要点
robotd电机、IMU、策略、安全/run/robotd.sock50 Hz,唯一电机总线写入者
configdWi-Fi、身份、配对、电源/run/configd.sockrobotd 故障时仍可用
updaterd验签、安装、切换、回滚/run/updaterd.sock健康门禁与自动恢复
btdBLE 传输适配BLE GATT不拥有机器人状态
padd游戏手柄输入/run/padd/pad.sock把输入转为 robot intent
mediad相机、音频、WebRTC:8080 / :8443媒体与远程 API 前门
tofd8×8 ToF 深度/run/tofd/tof.sock只发布,不读取其他服务
robotctl诊断与控制 CLI全部 socket坏掉时也要能工作
01

robotd 是唯一安全权威

客户端发送意图,不直接下发电机位置。关节、温度、跌倒与安全姿态限制不能被远端绕过。

02

控制循环不等待其他服务

跨服务感知采用缓存的最新值。媒体或深度服务停滞时,运动控制继续保持确定性。

03

恢复路径必须独立

configd、updaterd 和 btd 在 robotd 无法启动时仍工作,保证网络重配和回滚入口存在。

02 / SAFE UPDATE

发布是切换,不是覆盖

1构建并签名 release
2验签与解包
3切换 current
4robot.health
5健康则保留,失败则回滚
阅读官方完整架构设计