RuView 三层节点架构决策树:BOM 上限、no_std CSI 成熟度与证据驱动选型指南
【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView
RuView 将商品化 WiFi 信号转化为实时空间智能、生命体征监测与存在感知。当部署规模从单房间走向多房间集群时,一个核心架构问题随之而来:重算力(ML 推理、QUIC 回程、安全启动)究竟应该放在每个节点上,还是放在每簇一台的 Pi 上?本文以仓库中的 decision-tree.md 为骨架,完整继承其 6 项承重决策(L1–L6)、5 项独立决策(I1–I5)、Mermaid 决策树与推荐 ADR 序列,并融合 three-tier-rust-node.md、ADR-081、ADR-083 等仓库文档与固件源码,帮你理解:每个分支需要什么证据才能拍板、对应落在哪个 ADR 槽位,以及为什么当前最推荐「每簇一台 Pi」的混合路径。
1. 文档定位:一份「承重决策 → 证据 → ADR 槽位」的映射表
decision-tree.md自身刻意保持简短(Status 为 Reference,2026-04-25),其作用是把三层节点提案(three-tier proposal)中每个承重决策映射到三件事:
- 它依赖什么(依赖关系);
- 什么证据能证明该走是/否(证据要求);
- 一旦拍板,该决策应该落在哪个 ADR 槽位(ADR slot)。
详细的论证散文位于配套的 SOTA 调查(2026-Q2-rf-sensing-and-edge-rust.md)与种子探索文档(three-tier-rust-node.md)。用决策树的作者原话来说:"The prose lives in the SOTA survey and the seed exploration."——决策树本身只负责把证据门槛结构化,让每个决策可以独立勾选,而不是一次性做一个全有或全无的大 ADR。
阅读前提:本文讨论的是对现网基线(ADR-028 单 ESP32-S3 节点 + ADR-081 五层自适应内核)的架构演进评估,而非推翻基线。这一点在 three-tier-rust-node.md 的 Reading note 中明确声明:提案不取代 ADR-028 与 ADR-081。
2. 承重决策 vs 独立决策:哪些决定阻塞其他决定
决策树先把决策分成两类。六项承重决策(load-bearing)会解锁或阻塞其他决策:
| # | 决策 | 阻塞 |
|---|---|---|
| L1 | 每节点 BOM 上限 | 硬件拆分、Pi 形态、其下所有 ADR |
| L2 | 单 MCU vs 双 MCU 节点 | 传感器-MCU 运行时、ISR 策略 |
| L3 | 每节点一台 Pi vs 每簇一台 Pi | OTA 形态、安全启动方案、BOM |
| L4 | CSI no_std 成熟度门槛 | 传感器-MCU 语言选择 |
| L5 | 网格控制面技术 | 通信 MCU 选型(S3 vs C6) |
| L6 | 重算力 SoC 选型 | 安全启动路径、ML 模型类别 |
五项独立决策(independent)与三层形态无关,可以并行推进:
| # | 决策 |
|---|---|
| I1 | LoRa 备用芯片(SX1262 vs LR1121) |
| I2 | 充电器 / PMIC(BQ24074 vs BQ25798) |
| I3 | 回程协议:QUIC vs MQTT-over-TLS |
| I4 | 各 die 的 OTA 机制 |
| I5 | 配网协议(BLE vs USB) |
这个「承重/独立」二分法是决策树的组织原则:先把便宜的、独立的决策做掉,把承重决策用真实证据卡住,从而避免把整个硬件形态押在一次赌博式的大改版上。
3. 决策树全景(Mermaid):从 BOM 上限一路走到 SoC 选型
决策树的核心是一张 Mermaid 流程图,完整继承如下:
读图要点:
- L1 是总闸门:若每节点 BOM 上限 ≤ $15,三层提案直接出局(
KEEP_TODAY绿色分支),维持 ADR-028 的单 S3 节点;只有 $15–$30 或 > $30 才继续走 L3。 - L3 是性价比分水岭:走「每簇一台 Pi(1 Pi / 3–6 节点)」即进入
HYBRID混合路径——保留现有单 S3 传感器节点,只增加簇级 Pi;走「每节点一台 Pi」才需要评估 L2 的双 MCU 拆分。 - L2 依赖 L4:双 MCU 形态必须等到 no_std CSI 捕获被基准测试证明达标(L4 = yes)才放行;若 L4 长期卡住(
L4_NO红色虚线分支),则回退到 HYBRID。 - L5 决定通信 MCU:选 ESP-WIFI-MESH 则沿用 ESP32-S3(ADR-029 形态);选 802.15.4 Thread 则换成 ESP32-C6。
- L6 是所有重算力路径的汇聚点:HYBRID、L5_WIFI、L5_THREAD 三条路径最终都要回答「重算力 SoC 选谁」。
决策树给出的推荐最省成本路径是:
L1 → L3(每簇一台)→ HYBRID:保留今天的 ESP32-S3 传感器节点,每 3–6 个节点增加一台 Pi。这条路在不重做每节点 PCB的前提下,捕获了 QUIC / ML / 安全启动的大部分价值。
4. 逐决策详解:每个分支需要什么证据
4.1 L1 — 每节点 BOM 上限
| 分支 | 所需证据 | ADR 槽位 |
|---|---|---|
| ≤ $15 | 今天的 $9 BOM、ADR-028 witness 记录、部署成本分析 | 无需新 ADR — 维持 ADR-028 基线 |
| $15–$30 | 成本分析证明「单 MCU + 簇级 Pi」路径 < $30 | 新 ADR(如 ADR-083) |
| > $30 | 部署成本分析证明每节点 Pi 物有所值 | 两个 ADR(每节点 Pi、BOM 修订) |
仓库依据:ADR-028-esp32-capability-audit.md 记录单节点 BOM 约 $8–12、三节点套件约 $54;three-tier-rust-node.md §7.1 直言三层节点成本约 $40–55(约今天的 4–6 倍),"The cost story is bad before volume"——只有部署规模大到每个节点能替代一台 sensing-server 主机时,三层形态才站得住。而 ADR-083 正是 L1 的 $15–$30 分支对应的落地 ADR(每簇一台 $25–60 Pi,摊到每传感器约 $5–20)。
4.2 L2 — 单 MCU vs 双 MCU
| 分支 | 所需证据 | ADR 槽位 |
|---|---|---|
| 单 MCU | ADR-081 五层内核测量(已做到 60 字节特征包、5 Hz 下 0.003% CPU) | 无需新 ADR — 维持 ADR-081 |
| 双 MCU | 单 MCU 节点上实测的 ISR 抖动问题;或 no_std-CSI 成熟度被证明 | 新 ADR(固件拆分) |
仓库依据:单 MCU 分支的证据门槛几乎已被 ADR-081-adaptive-csi-mesh-firmware-kernel.md 的实测数据满足——adaptive_controller_decide()单次 3.2 ns(host)、rv_feature_state_t60 字节 @ 5 Hz 仅 300 B/s、特征包发射 CPU 占比约 0.003%。对应的固件实现见 firmware/esp32-csi-node/main/adaptive_controller.c 与 firmware/esp32-csi-node/main/rv_feature_state.h。双 MCU 的必要性在 three-tier-rust-node.md §9 被直白地质疑:"Is the sensor MCU strictly necessary?"——今天的单 MCU 形态(ADR-028 / ADR-081)已经能用 C 完成 CSI 捕获 + ESP-IDF 联网,双 MCU 的正当性主要来自ISR 纯净性与 Rust no_std,而非今天缺失的能力。
4.3 L3 — 每节点 vs 每簇重算力
| 分支 | 所需证据 | ADR 槽位 |
|---|---|---|
| 每簇一台 | 吞吐量数学:6 节点 × 5 Hz × 60 B = 1.8 KB/s 每簇;远低于 USB/Ethernet 到 Pi 的容量 | 新 ADR(簇级 Pi 形态) |
| 每节点一台 | 需求:每节点 ML、每节点 QUIC、每节点安全启动、无 LAN 网关的部署 | 新 ADR(每节点 Pi 形态) |
仓库依据:这是决策树中最有性价比的一步,其吞吐量数学建立在 ADR-081 的 60 字节特征包之上——ADR-081 明确对比了原始 ADR-018 CSI 约 100 KB/s 与特征态 300 B/s(99.7% 缩减),50 节点 @ 5 Hz 也仅 15 KB/s。落地的簇级形态即 ADR-083-per-cluster-pi-compute-hop.md:传感器节点不变(继续跑 ADR-081 五层内核、发rv_feature_state_t),每簇恰好一台 Pi 承担四重角色——传感器聚合器、ML 推理目标、QUIC 云回程客户端、簇内 OTA 与安全启动锚点。而「每节点一台」路径对应的完整三层形态(双 ESP32-S3 + Pi Zero 2W)保留在 three-tier-rust-node.md 中作为长期探索目标。
4.4 L4 — CSI no_std 成熟度门槛
| 分支 | 所需证据 | ADR 槽位 |
|---|---|---|
| 成熟 | esp-csi-rs(或替代品)在真实 S3 板上:捕获率、丢帧、ISR 抖动与esp_wifi_set_csi_rx_cb持平 | ADR-081 的 Phase-4 + 一个no_std迁移 ADR |
| 不成熟 | 并排基准显示捕获质量下降 ≥10%,或 ISR 抖动 > 100 µs | 推迟 — 维持 ESP-IDF C 路径 |
仓库依据:这是三层提案中最硬的技术门槛。SOTA 调查(2026-Q2-rf-sensing-and-edge-rust.md §3)记录了 2026 年嵌入式 Rust 生态的关键事实:esp-wifi已更名为esp-radio;esp-csi-rs存在但被标注为 "still in early development";更关键的是embassy-executor 在 esp-idf-svc(std)上不 ISR-safe——因为它依赖critical-section,而esp-idf-hal的critical-section基于 FreeRTOS 任务挂起实现。三层提案的策略正是用硬件隔离绕开这个问题:传感器 MCU 跑 no_std(esp-hal+ Embassy),完全不初始化 WiFi 协议栈,只在 PHY 层做 CSI 捕获;通信职责全部交给另一颗跑 ESP-IDF 的 MCU。这条证据链在 three-tier-rust-node.md §7.2、§7.3 有完整论证。
4.5 L5 — 网格控制面技术
| 分支 | 所需证据 | ADR 槽位 |
|---|---|---|
| ESP-WIFI-MESH | ≤ 25 节点目标;现有 ADR-029 + ADR-073 成立 | 无需新 ADR — 维持 ADR-029 |
| Thread | ≥ 50 节点目标;现场测试显示 ESP-WIFI-MESH 退化;通信 MCU 换成 ESP32-C6 可接受 | 新 ADR(Thread 控制面) |
esp-mesh-lite | 需要 IP 层路由以承载 QUIC + WiFi 同构,但留在 S3 上 | 新 ADR(mesh-lite 迁移) |
仓库依据:three-tier-rust-node.md §7.5 指出 Espressif 文档宣称 ESP-WIFI-MESH 的理论上限是 1000 节点、25 层,推荐每节点扇出 6,但在对抗性 RF 环境中稳定跑 100+ 节点的公开证据有限;网格协议栈还共享通信 MCU 主循环,与 TLS、OTA、BLE 争抢 CPU。ADR-029 的 RuvSense 多静态模式(ADR-029-ruvsense-multistatic-sensing-mode.md)与 ADR-073 的多频网格扫描(ADR-073-multifrequency-mesh-scan.md)就是当前 ≤ 25 节点形态的支撑。若走 Thread 分支,通信 MCU 换成 ESP32-C6(RISC-V、原生 802.15.4 + WiFi 6),数据面走 WiFi、控制面走 Thread——仓库固件中已有 C6 相关探索实现(如 firmware/esp32-csi-node/main/c6_timesync.c、c6_sync_espnow.c)。
4.6 L6 — 重算力 SoC 选型
| 分支 | 所需证据 | ADR 槽位 |
|---|---|---|
| Pi Zero 2W | Buildroot + dm-verity + 签名 FIT 满足威胁模型;成本/功耗比 ROM 根启动更重要 | 新 ADR(Pi Zero 2W 镜像 / OTA) |
| CM4 / Pi 5 | 真正的 ROM 根安全启动是部署硬性要求(如受监管环境) | 新 ADR(CM4 镜像 / OTA) |
仓库依据:决策树在此处非常诚实——Pi Zero 2W没有不可变 ROM 安全启动。SOTA 调查 §9 与 three-tier-rust-node.md §7.4 明确指出:树莓派基金会官方安全启动路径仅限 Pi 4 / Pi 5(USB 根 RSA 链),Pi Zero 2W 无官方安全启动文档;Buildroot + 签名 FIT + dm-verity 只能覆盖大部分威胁面。因此若「真安全启动」是部署硬需求,重算力 die 应选 CM4(BOM 增加约 $30–50),否则 Pi Zero 2W 足够。此决策被推迟为 ADR-085 草图(见 ADR-083 §Decision 第 3 点),本 ADR 不预承诺。
5. 独立决策 I1–I5:可以立即并行推进
这五项与三层形态无关,可独立评估、并行决策,且决策树给出了默认推荐:
| # | 决策 | 默认推荐 | ADR 槽位 |
|---|---|---|---|
| I1 | LoRa 备用芯片 | SX1262。仅当全球 / 2.4 GHz / 卫星漫游是部署硬需求时才选 LR1121。(SOTA §6) | ADR(LoRa 备用) |
| I2 | PMIC 选型 | 面板 ≤ 2 W 选 BQ24074,面板 ≥ 5 W 或纯太阳能选 BQ25798。仅亚瓦级能量采集才用 SPV1050。(SOTA §7) | ADR(电源路径) |
| I3 | 回程协议 | 双向 / 大载荷 / 移动网络切换敏感选 QUIC(quinn+rustls);低速率 publish-only 选 MQTT-over-TLS。(SOTA §5) | ADR(回程) |
| I4 | 各 die 的 OTA | no_std MCU 用embassy-boot双槽;ESP-IDF MCU 用ESP-IDF 原生 OTA;Pi 用A/B + 签名 FIT。(SOTA §3、§9) | ADR(OTA) |
| I5 | 配网协议 | 现场再配网用BLE 配网(esp-idf-svc);工厂配网只用USB / 串口。(无 SOTA 章节——成熟领域) | ADR(配网) |
其中 I3 的 QUIC 选项尤其值得注意:SOTA §5 与 three-tier-rust-node.md §7.7 一致认为,对每天仅唤醒 2 分钟、只发几 KB 特征汇总的节点,MQTT-over-TLS 甚至普通 HTTPS 就足够了;QUIC 的价值只有在 Pi 同时承担双向模型更新或大批量 fleet 同步时才体现出来。ADR-083 因此将 QUIC 上行设计为quinn+rustls的 feature-gated 模块,默认关闭(家庭实验室形态),簇级 Pi 形态才开启。
6. 推荐的 ADR 序列:outside-in,先便宜后承重
决策树 §5 给出如果部分采纳三层提案时的推荐 ADR 顺序——由外向内(outside-in):先解决最便宜、最独立的决策,用真实证据卡住承重决策:
- 独立 ADR 先行(任意顺序):
- I1 LoRa 备用芯片选型;
- I2 电源路径 / PMIC 选型(面板 ≤ 2 W 大概率 BQ24074,否则 BQ25798);
- I3 QUIC vs MQTT-over-TLS(仅心跳场景大概率 MQTT;有模型更新与 fleet 同步才上 QUIC)。
- 每簇一台 Pi 的 ADR(L3 混合分支)——高价值、低成本的第一步。每 3–6 节点一台 Pi,以最小的单传感器 BOM 影响捕获 ML / QUIC / 安全启动的大部分价值。此步已在仓库中落为 ADR-083-per-cluster-pi-compute-hop.md。
- 网格控制面 ADR(L5)——仅当部署目标 > 25 节点时才需要;否则维持 ADR-029 的 ESP-WIFI-MESH。
- CSI no_std 成熟度基准 ADR(L4 证据)——调查可以,但在基准测试完成前不承诺双 MCU。
- 双 MCU 节点 ADR(L2)——仅当 L4 证据到位,且单 MCU 节点出现明确的 ML 或 ISR 抖动问题时。
- 三层 PCB ADR(完整提案)——最后,仅当 BOM / 威胁模型 / 规模全部证明有必要时。
决策树特别强调:这个顺序刻意让大部分可部署面保持在今天的 ADR-028 / ADR-081 基线上,同时让每个可分离的升级都能按自己的证据独立评估——这正是「决策树把证据门槛结构化」这一设计意图的最终体现。
7. 与仓库现状的衔接:决策树的落地点
决策树不是悬空的规划文档,仓库中已有大量实现与其分支一一对应:
- KEEP_TODAY(L1 ≤ $15):ADR-028-esp32-capability-audit.md 的 witness 记录——单 ESP32-S3 节点约 $9 BOM、UDP 5005 直连 sensing-server,是当前被见证的系统。
- HYBRID(L3 每簇一台):ADR-083-per-cluster-pi-compute-hop.md,传感器 → Pi 沿用 ADR-081 的 60 字节
rv_feature_state_t(magic0xC5110006)UDP 线格式,Pi → 云新增 QUIC mTLS 上行;wifi-densepose-sensing-server已可cargo build --target aarch64-unknown-linux-gnu交叉编译,迁移只是部署变更而非重实现。 - L4 证据的现状:ADR-081 已实现五层内核(L1
rv_radio_ops_tvtable → L5 Rust handoff),固件源码见 rv_radio_ops.h、adaptive_controller.c、rv_mesh.h、rv_feature_state.h;而 no_std CSI(esp-csi-rs / esp-radio)仍属 "early development",双 MCU 形态被 L4 门禁卡住——这正是决策树推荐簇级 Pi 而非全三层的原因。 - 多静态融合(独立于硬件形态):ADR-029 RuvSense(ADR-029-ruvsense-multistatic-sensing-mode.md)与 ADR-031 RuView(ADR-031-ruview-sensing-first-rf-mode.md)的多视点融合属于算法层,three-tier-rust-node.md §7 明示其与节点硬件形态正交,簇级 Pi 正是这类融合的天然宿主。
8. 本文档范围外
决策树 §6 明确划出边界,避免越权:
- 不重新评估 ADR-029 的网格选型(除将 Thread 作为替代提及外)——这属于网格控制面 ADR 的职责;
- 不涉及任何候选板卡的 PCB 具体布局;
- 不涉及云侧架构(网关、fleet 同步目标、时序存储)——属于节点架构提案之外;
- 不涉及跨环境域泛化(ADR-027)——与硬件形态正交;
- 不涉及多静态融合算法(
wifi-densepose-ruvector::viewpoint)——与硬件形态正交。
9. 文档集引用:从哪里继续深入
- decision-tree.md — 本文的源文档:承重/独立决策、决策树、证据表与 ADR 序列。
- three-tier-rust-node.md — 种子提案:三层节点(no_std 传感器 MCU + ESP-IDF 通信 MCU + 功率门控 Pi Zero 2W)的完整硬件/软件/网络/安全形态与自我批评。
- 2026-Q2-rf-sensing-and-edge-rust.md — 每个主题的 SOTA 证据(802.11bf 状态、esp-radio 更名、embassy ISR 安全、ESP-WIFI-MESH 规模、Pi 安全启动现实)。
- implementation-plan.md — 更早(2026-04-02)的 ESP32-S3 + Pi Zero 2W GOAP 计划;三层提案最有用的读法是其延伸。
- ruvsense-multistatic-fidelity-architecture.md — 多静态融合架构,与节点硬件形态正交。
- ADR-028-esp32-capability-audit.md / ADR-081-adaptive-csi-mesh-firmware-kernel.md / ADR-083-per-cluster-pi-compute-hop.md — 决策树各分支对应的现网基线与落地 ADR。
一句话总结:当你在 RuView 的部署中需要回答「要不要上重算力节点、怎么上」时,沿着L1 → L3 → HYBRID这条最省路径走——先守住 $9 单 S3 节点基线,用每簇一台 Pi 兑现 ML / QUIC / 安全启动价值,再让 L4(no_std CSI 成熟度)与 L6(安全启动 SoC)的证据决定是否值得走向完整的双层 MCU + 每节点 Pi 形态。
【免费下载链接】RuViewπ RuView turns commodity WiFi signals into real-time spatial intelligence, vital sign monitoring, and presence detection — all without a single pixel of video.项目地址: https://gitcode.com/GitHub_Trending/wi/RuView
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考