首页
/ RuView ADR-113 多静态天线布放决策矩阵:把 9 个 R6 研究 Tick 收敛为一套可部署的部署规格

RuView ADR-113 多静态天线布放决策矩阵:把 9 个 R6 研究 Tick 收敛为一套可部署的部署规格

2026-09-09 15:17:35作者:裘旻烁

本篇以 RuView 的 SOTA 研究循环记录 tick-31 为主体,完整解析其核心产出——ADR-113 多静态(multistatic)锚点布放策略。读完本文,你将掌握 RuView 多静态 CSI 感知的“4 轴决策矩阵”(维度 × 区域模式 × 人数 × 认知功能 cog)、7 条绑定布放规则、每个 cog 的自动配置参数,以及底层 Fresnel 菲涅尔搜索参考实现与可复现的基准数据位置。

背景:布放问题为什么必须量化

ADR-029(RuvSense 多静态感知模式) 引入了多锚点 CSI 感知,但没有回答三个关键工程问题:需要多少个锚点、锚点放在哪里、布放方案如何随目标 cog(presence、person-count、pose、vital-signs 等)变化。2026-05-22 的 SOTA 研究循环在 R6 家族中产出了 9 个连续 tick 的物理推导与 NumPy 仿真,逐轴回答了这些问题:

  • R6 / R6.1:Fresnel 正向模型(单散射体 + 多散射体)
  • R6.2:2D 单对天线布放搜索——实测最优布放比随机中位数好 93 倍
  • R6.2.1:3D 布放——天花板单点安装彻底失效(0% 覆盖)
  • R6.2.2:2D N 锚点饱和曲线,拐点在 N=5
  • R6.2.2.1:3D N 锚点——2D 的拐点在 3D 中不成立
  • R6.2.3:胸部中心(chest-centric)区域——对 vital-signs 有 +27 pp 覆盖增益
  • R6.2.4:3D + 胸部组合——拐点在 N=6,且不需要天花板锚点
  • R6.2.5:多目标并集——N=5 在 1-4 人时达到 100% 覆盖

ADR-113 把上述 9 个 tick 收敛为一份按 维度 × 区域模式 × 人数 × cog 参数化的布放规格。tick-31 的结论是:这是该研究循环中“最具落地整合价值(most ship-relevant integrative)”的产出,因为它把物理学家才能解读的 9 份仿真报告压缩成非物理背景的安装工程师可以直接查表的矩阵。

4 轴决策矩阵:布放问题的完整答案

ADR-113 的绑定决策矩阵如下(完整继承自 tick-31ADR-113):

Cog 维度 区域模式 人数 推荐 N 锚点高度 预期覆盖
Presence(在场) 2D body 1 3 墙面 0.8 m 63%
Person count(人数统计) 2D body 1-4 4 墙面混合高度 86%
Pose(姿态估计) 2D body 1-2 5 墙面 0.8/1.5 m 混合 97%
Vital signs(生命体征) 2D chest 1-4 5 墙面 0.8/1.5 m 100%
Pose(姿态估计) 3D body 1-2 7-8 混合 0.8/1.5/2.4 m 65%+
Vital signs(3D) 3D chest 1-4 6 墙面 0.8/1.5 m,不用天花板 82%
船舱(maritime cabin) 2D chest 1-3 4 低处(0.5-0.8 m) 80%+
野生动物(wildlife) 1D linear 1-5 4 树装混合高度 70%+

矩阵背后的物理直觉来自 R6.2 的基准实验(详见 R6_2 研究文档):2.4 GHz 下波长 λ = 12.5 cm,第一菲涅尔区在 2D 中是一个椭圆,半短轴约 b ≈ √(d·λ)/2。5 m 链路的中点处包络宽约 39.5 cm,而对角穿过房间的 6.1 m 链路则有 43.7 cm——链路越长,菲涅尔包络越宽,覆盖的空间越多(在链路预算允许范围内)。R6.2 在 5×5 m 卧室中评估了 2,900 个天线对,最优布放(对角贯穿床区与椅区)总覆盖 51.1%,而随机中位数只有 0.5%,最差 0.0%——这就是 ADR-113 拒绝“ADR-029 对布放保持沉默”这一替代方案的原因:沉默等价于 93 倍的隐式覆盖损失

七条绑定规则

从 R6 家族提炼出的 7 条规则是矩阵每一行的依据,安装与调优时应逐条对照:

  1. 天花板单点安装必然失败(R6.2.1):当天线都位于天花板高度时,菲涅尔包络也悬在天花板高度,永远够不到地面层的目标区域。必须至少包含一个低高度锚点。
  2. 3D 中垂直链路多样性获胜(R6.2.1):不同高度的对角链路(如 0.8 m → 1.5 m)会让椭球体倾斜穿过多个高度层。
  3. 锚点高度应与目标区域高度匹配(R6.2.4):z=0.3-1.5 m 的胸部区域不会从 z=2.4 m 的天花板锚点受益;全身体覆盖则需要。
  4. 生命体征场景下胸部中心优于全身体(R6.2.3):更小、针对人体的区域在 N=5 时带来 +27 pp 覆盖增益。
  5. 多目标并集才是家庭场景的正确目标(R6.2.5):单目标优化扩展到 4 人时损失 29 pp;多目标联合优化保持 100%。
  6. N=5 是消费级推荐值(R6.2.2 + R6.2.5):2D 胸部中心多目标的饱和拐点,超过 N=5 后边际增益不足 1 pp。
  7. 目标区域不要放在视距(LOS)连线上(R6.1):对 LOS 上的散射体,路径差随偏移量是二阶小量,呼吸运动几乎不改变路径长度;真实安装要求目标主体偏离 LOS。

参考实现:贪心 + 重启搜索的覆盖率计算

矩阵中的每个数值都由纯 NumPy 参考脚本生成,位于 examples/research-sota/02-placement/,共 7 个脚本逐一回答布放问题的一个轴:

脚本 研究轴 关键结论
r6_2_antenna_placement.py 2D 单对 最优比随机中位数好 93×,对角贯穿最优
r6_2_1_3d_placement.py 3D 单对 天花板单点安装 0% 覆盖
r6_2_2_multistatic_placement.py 2D N 锚点 N=5 拐点(96.8% body 区域覆盖)
r6_2_2_1_3d_multistatic.py 3D N 锚点 2D 拐点在 3D 消失(N=5 仅 49%)
r6_2_3_chest_centric.py 2D 胸部中心 +27 pp 覆盖增益(vital-signs cog)
r6_2_4_3d_chest_multistatic.py 3D 胸部中心 N=5 恢复 77%,N=6 达 82%
r6_2_5_multi_subject.py 多目标并集 N=5 对 1-4 人达成 100% 覆盖

r6_2_2_multistatic_placement.py 为例,其核心算法结构是:

  • 覆盖判据:点 (x, y) 在第一菲涅尔区内当且仅当 |Tx-x| + |x-Rx| ≤ d + λ/2in_first_fresnel,源码第 35-40 行);N 个锚点产生 C(N,2) 条成对链路,任一条覆盖即计为覆盖(union_coverage)。
  • 搜索策略:由于完整组合搜索 O(M^N) 不可行(墙周 25 cm 步长下候选点约 100 个),采用贪心——每步加入使边际覆盖最大的候选锚点——并以 K 次随机初始对重启来逃离局部极小值(greedy_search,默认 4-8 次重启)。
  • 候选点集:仅沿四面墙周边枚举(candidate_positions),对应墙装天线的实际安装约束。

R6_2_2 的结果文件 记录了 5×5 m 房间、2.4 GHz、bed/chair/desk 三个目标区下的完整饱和曲线:N=2 覆盖 35.7% → N=3 达 63.4% → N=4 达 86.2% → N=5 达 96.8% → N=6 起 100%。边际增益序列(+27.6 pp、+22.8 pp、+10.6 pp、+3.2 pp、+0)直接印证了规则 6 中“拐点在 N=5”的判断。同样的分析模式贯穿整个 R6.2 家族——每份 *_results.json 都包含锚点坐标、覆盖率和边际增益,可直接复现矩阵中任一数值。

多目标并集:家庭场景的 100% 覆盖

R6.2.5 研究文档 把单个胸部位置推广为多个预期占位区域的并集,结果是整个矩阵中最“可出货”的一行:

场景 区域数 总面积 N=5 覆盖
1 人(椅) 1 0.16 m² 100%
2 人(椅 + 床) 2 0.40 m² 100%
3 人(椅 + 床 + 桌) 3 0.48 m² 100%
4 人(+ 第二把椅) 4 0.64 m² 100%

对照实验还证明 CLI 必须支持多个 --target 参数并对并集优化,而不是选一个代表区域碰运气:单目标优化放到 4 区域目标上只有 70.6% 覆盖,多目标联合优化则保持 100%(+29.4 pp)。几何原因也直观:40×40 cm 的胸部区域可以塞进单个约 40 cm 宽的菲涅尔椭球体内,N=4 锚点产生的 6 条成对链路就足以无浪费地覆盖 4 个不相交的小区域。

Per-cog 自动配置

产品化的关键是用一个 --cog 标志吸收“该查矩阵哪一行”的复杂度。各 cog 到矩阵行的映射(完整继承自 tick-31 与 ADR-113):

Cog 区域模式 N
cog-presence body 3
cog-person-count body 4
cog-pose-estimation body 5/7(2D/3D)
cog-vital-signs chest 5/6(2D/3D)
cog-breathing chest 5/6
cog-heart-rate chest 5/6
cog-intruder body 5
cog-maritime-watch chest 4
cog-wildlife linear 4

注意 vital-signs 家族(cog-vital-signs / cog-breathing / cog-heart-rate)统一走胸部中心模式,而 3D 姿态估计(body)需要 7-8 个锚点且覆盖只有 65%+——ADR-113 明确承认 3D body-centric 目前没有架构级解法,胸部中心只是 vital-signs 的绕行方案,3D 姿态估计可能需要另外的方法。

CLI 与 MCP 产品化接口

tick-31 给出的产品化表面包括 CLI 子命令和 MCP 工具两层:

wifi-densepose plan-antennas
    --room W H [Z]                        # 2D 或 3D
    --target NAME X Y W H [DX DY DZ]      # 可重复
    --target-mode {body, chest}           # R6.2.3
    --freq-ghz F                          # 2.4, 5.0, 6.0
    --n-anchors N                         # 省略时自动饱和
    --restarts K                          # 默认 4
    --cog COG_NAME                        # 自动选定 target-mode 与 N

R6.2.5 给出的一个可复制的 4 人家庭示例(5×5 m 房间、2.4 GHz):

wifi-densepose plan-antennas \
    --room 5 5 \
    --target chair_chest 3.7 3.7 0.4 0.4 \
    --target bed_chest   2.2 0.8 0.6 0.4 \
    --target desk_chest  0.5 2.7 0.4 0.2 \
    --target chair2_chest 1.0 4.2 0.4 0.4 \
    --freq-ghz 2.4

AI Agent 侧则通过 MCP 工具暴露(对应 ADR-104 的 CLI/MCP 分发面):

ruview_placement_recommend(
    room: {width, depth, ceiling?},
    targets: [{name, position, size}],
    cog: str          // 自动配置 target-mode 与 N
) -> {
    anchors: [{x, y, z, height_category}],
    expected_coverage: float,
    placement_rationale: str
}

规模预算:ADR-113 的实现计划约 260 LOC(CLI --cog 分类查找 60、MCP 工具 80、cog manifest 元数据 30、CLI 的 3D 椭球扩展 50、多目标并集 40),加上 R6.2.5 参考实现之上的约 100 LOC 产品化,布放策略产品化总预算约 360 LOC

诚实范围:矩阵当前的适用前提

tick-31 与 ADR-113 都以“Honest scope”一节明示边界,读者引用矩阵数值时必须附带这些前提:

  • 合成物理推导:所有矩阵数值来自 NumPy 仿真而非实测,真实部署可能偏移 ±5-15%;基准验证(bench validation)在记录时仍待完成;
  • 单一房间几何基线:仅 5×5 m 卧室 + 4×6 m 客厅级几何;走廊、大客厅、厂房等需要单独基准;
  • 5 cm 姿态跟踪噪声假设(R12.1):姿态跟踪退化可能使部分推荐失效;
  • 自由空间传播:未建模多径,真实房间通常还叠加 5-15% 的多径覆盖增益;
  • 无家具遮挡:沙发、墙体、衣柜均被忽略;
  • 贪心 + 4 重启搜索:全局最优可能比报告值高 1-2 pp;
  • 未覆盖:生产硬件验证、时变/移动锚点(如扫地机载)、跨房间布放、分频段矩阵(当前全部行基于 2.4 GHz,5 GHz / 6 GHz 的包络宽度不同,最优解可能移动)。

与研究线程和 ADR 链的组合关系

tick-31 记录的是整个 SOTA 循环的收尾节点,其组合关系值得索引:

  • R7 mincut:所有多功能 cog 满足 N ≥ 4 的对抗性单链路欺骗防御要求——布放矩阵自动保证了这一点;
  • R10 / R11:wildlife 与 maritime 条目进入矩阵;
  • R12 PABS / R12.1:布放覆盖率 = 入侵检测灵敏度;
  • R14 V1/V2/V3(共情家电):V1 照明(chest 模式 N=5)、V2 HVAC(混合)、V3 注意力(chest 模式)全部被矩阵行覆盖;
  • ADR-029:被直接修订(amended)——其留白的“锚点布放”规范即本矩阵;
  • ADR-100/103:cog 打包签名与 person-count cog 的 2D body N=4 行映射;
  • ADR-105/106/107(联邦学习链):布放质量影响联邦梯度质量(更好的布放 → 更快的 ε 收敛);
  • ADR-108/109(PQC 链):保护布放推荐输出的传输安全。

至此 SOTA 循环共产出 9 份 ADR(105-109 + 113,加上循环前已发布的 100/103/104),覆盖隐私 + 联邦 + 溯源 + 布放四条主线。tick-31 同时给出循环的完整产出清单:13 条研究线程(R1、R3、R5-R15)、6 份 ADR、3 类负结果(physics-floor、architecture-error、missing-tool-revisited)、2 次显式自我修正、3 项诚实范围发现、9 tick 的 R6 布放家族、3 tick 的 R3 跨房间重识别弧线,以及 R12 结构检测弧线(负结果 → 正结果 → 闭环)。

在仓库中如何验证本文内容

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
docsdocs
暂无描述
Markdown
899
5.83 K
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.14 K
2.76 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
860
1.35 K
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
925
1.85 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.84 K
1.02 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
533
601
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.37 K
1.46 K
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
548
395
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.04 K
525