桌面陪伴机器人 · v0.0.1 骨架已交付

洛克三号
微型机器人标准底座

能听、会说、可交互。六个模块各自独立进程,模块之间零直连,只通过 128 字节定长消息头的事件总线对话 —— 一个崩溃不带走整机。

5+1
模块 · 进程隔离
128B
Airy IPC 定长头
21
条已登记主题
查看在线体验

表情与链路为演示编排;取值与主题名摘自 contracts/topics.toml。

能听 · 会说 · 会动

一台桌面机器人要成立的三件事:感知环境、给出回应、产生物理反馈。每件事背后各有一条系统约束,让它们安全地成立 —— 而不是 demo 完就散。

能听

麦克风阵列采集 16k / 单声道 / 16bit 的 PCM,VAD 判定起音与静音边沿,把"有人对我说话了"变成一条总线事件,携带置信度摘要而非闭环数据。

rr3-senseM3 落地

会说

识别文本以事件上行,回复文本走请求面播放,同时切换表情与灯效,一轮结束回到 idle。表情取值已冻结为 idle / blink / talk / think / happy。

rr3-interactM3–M4

会动

舵机与电机的角度、时限指令走 JSON-RPC 事务面(低于 100Hz);反射闭环留在模块本地,永不占用总线,只有异常或饱和才以通告形式上报。

rr3-actM5 落地

崩溃隔离

六个模块各是独立进程,一个崩溃不带走整机;模块之间禁止直连,只依赖"能力名"而不依赖具体模块。

ADR-0002 · v0.0.1 已落六模块结构与基座 crate

安全兜底

急停、限位与低电保护放在基座而不是模块里:即使认知模块崩溃或未注册,守护进程仍直接执行保护动作。

架构文档 §7.3 · 横切关注点全部下沉 base

契约先行

线格式采用 Airy IPC 的 128 字节定长头,全小端、packed 无填充;配一份 golden 字节向量与主题所有权表,字段只增不改。

ADR-0006 · 脚手架自检与契约测试强制

桌面上的三种角色

不只是"能跑 demo" —— 日常交互、故障降级、无板开发,三个场景分别回答:它在你桌上做什么、出问题怎么办、没有硬件怎么参与。

桌面上的一天

说一句话:VAD 给出起音边沿,识别文本以事件上行,认知模块编排一次回复,交互模块播放并切到 talk 表情,一轮结束回 idle。想看它动一下:舵机角度与时限走事务面,灯效作为可见反馈。

链路随 M3–M5

断网与故障时

WiFi 只是可选链路:链路状态以事件上行,各模块据此做降级判断。电源摘要与低压关断是本地决策,急停与限位逻辑在基座——即使认知模块崩溃仍会执行保护动作。

降级策略随 M2

没有板子也能参与

同一份契约被 Rust 基座与 Python 认知模块消费:改格式必须先改契约,且只增不改。脚手架能生成合规模块骨架,模拟工具产出模拟拾音流,运维命令面已定下。

当前可跑

三层 · 模块到固件

业务全在模块里,横切关注点在基座里,可烧录性在 OS 层里 —— 三层之间只有接口,没有耦合。v0.0.1 交付的是目录骨架、HAL trait 与契约;此图为目标架构。

模块层
rr3-sense 感知
rr3-brain 认知 Python
rr3-interact 交互
rr3-act 执行
rr3-power 电源
rr3-connect 连接
基座层
rr-ipc 线格式
rr-bus 事件总线
rr-registry 注册表
rr-hal HAL trait
rr-ota OTA
OS 层
Buildroot 构建
Linux 6.6 LTS
RK3566 Rockchip
maskrom 自烧录
控制面
反射环 1k–10kHz
实时面 100Hz–1kHz
事务面 <100Hz
模块与职责 · 摘自 contracts/topics.toml
模块职责
rr3-sense感知:麦克风阵列、环境传感器、IMU
rr3-brain认知:ASR / LLM / TTS 编排(Python),唯一编排者
rr3-interact交互:表情屏、TTS 播放、拾音状态机
rr3-act执行:舵机 / 电机、反射环宿主进程
rr3-power电源:电池、充电、低压关断兜底
rr3-connect连接:WiFi 链路、云端会话
rr3-runtime基座守护进程 rrd:注册、健康、系统广播
控制面三级分层 · ADR-0007
层频率承载
反射环1k–10kHz不进总线,模块进程内本地闭环
实时控制面100Hz–1kHzA-IPC over 共享内存 + ZEROCOPY / URGENT
事务面<100HzA-IPC over UDS + JSON-RPC

128 字节消息头

Rust 基座与 Python 认知模块对同一份文件编解码 —— 改格式必须先改契约,且只增不改。点击字段查看它的宽度、偏移与裁定依据。

128 字节定长头
Layout Cpacked 无填充,占两条 cache line
小端所有多字节字段
L1布局永久稳定
frozenv0.0.1 冻结头 + 枚举 + flags + 错误码

8 个已用字段共 44 字节,加 reserved 保留区 84 字节 = 128 字节。色块宽度按字节数分配,窄字段设有最小宽度以保证可读;精确偏移见点击后的详情。

5 种 payload 类型 · 新增只能追加在 0x0006 之后

payload 类型与洛克三号中的用途
类型值用途

兼容性测试覆盖 · 诚实标注哪些断言真的跑过

    UDS 套接字路径 /var/run/rock3-ipc.sock,可用 RR3_BUS_PATH 覆盖;UDS 是 M2 唯一实现,shm 随 M5,TCP 预留。

    21 条已登记主题

    一个主题只有一个 owner,命名规范为 <owner>/<域>/<事件>。计数被契约测试硬 pin —— 删主题、改 kind 都会让门禁变红,而不是靠人记得。

    类型

    所属模块

    主题注册表,可按类型与所属模块筛选
    主题kind稳定级说明

    注册表实际分布:request 7 / event 8 / stream 3 / notification 3,合计 21 条主题、7 个 owner。STREAM 类主题在 v0.0.1 仅登记、不实现传输。

    切换示例指令

    选一条指令,面板会同步展示它经过的模块链路、对应的真实主题与完成状态。所有主题名摘自 contracts/topics.toml,不是编出来的。

    示例指令 · 演示数据

    本轮涉及的模块

      对话轮替

      本轮已完成

      用户说话

      处理链路

        契约依据 真实主题名

          本轮结果 ✓ 已完成

          里程碑路线

          v0.0.1 交付骨架与契约:模块与 CLI 只有结构,没有实现。入口打印自述后退出 —— 总线接入随 M2、采集与驱动随 M3–M5,每一步都有可验证的交付物。

            硬性目标 · 设计目标,尚未实测

            • 任意开发板不拆机烧录(maskrom 路线),换板不需要烧录器
            • 基座能力 day-one:模块注册、看门狗、A/B OTA、工厂恢复
            • 第一版即含电源管理,待机功耗目标 <1W
            • 断电升级不 brick,坏 slot 自动回滚

            文档索引 · 站内不外链仓库内容,以下为文件路径

            • docs/architecture/architecture.md目标架构:分层、模块模型、HAL、IPC、数据流、里程碑与风险
            • contracts/envelope.schema.json字节级唯一事实源:偏移表与冻结枚举
            • contracts/topics.toml主题所有权注册表
            • docs/adr/ADR-0001 ~ ADR-0007 决策记录
            • docs/architecture/conventions.md开发规约:分支、提交、检查步骤与完成定义
            • legacy/README.mdESP32 在编固件(冻结区)

            参与共建

            Issue 是第一入口。分支与提交遵循开发规约,涉及决策的提交须引用 ADR 编号;命名以 naming.md 为唯一权威,规约检查以 tools/ci/check.sh 为唯一入口。

            许可协议仍在筹备中,正式发布前请勿直接复用代码。

            • 示例指令("今天天气怎么样"等)为演示文本,不代表已实机跑通的对话效果。
            • 处理链路的调用顺序、耗时、表情切换与"本轮已完成"状态是演示编排;真实实现随 M2–M4 落地。
            • 主题名、kind、稳定级与职责说明摘自 contracts/topics.toml;消息头字段与兼容性测试覆盖摘自 contracts/envelope.schema.json;分层、控制面与里程碑摘自架构文档 §7.4 / §10。
            • "硬性目标"一节全部是设计目标,本页不提供任何性能实测数据、用户规模或第三方背书。
            • 品牌字标按官方图复刻为 CSS/SVG 排版,项目尚无矢量 logo 源文件;页面不包含登录、支付、数据库与数据收集功能。