
RuView 的 BLE Channel Sounding、时延-多普勒原生张量与因子化姿态ADR-281 深度技术解读【免费下载链接】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 仓库 docs/adr/ADR-281-ble-cs-delay-doppler-pose-factorization.md 为主体结合v2/crates/ruview-unified的 Rust 实现系统讲解三条「新模态」技术路线如何在统一射频世界模型ADR-273与通用编码器适配器注册表ADR-274中落地一是把 BLE Channel Sounding 的相位测距与 RTT 作为互相独立、交叉校验的证据源二是让 delay/Doppler 成为一级本机坐标轴并提供可分离快速变换三是用因子化姿态头把「会泛化的相对骨架」与「强条件化的根位置」拆开学习配合对数化数据新鲜度门控。读完本文你将掌握这些能力的物理原理、代码契约、输入输出格式与验证方法并能在仓库源码与测试中找到一一对应的证据。1. ADR-281 在 RuView 体系中的位置与「证明纪律」RuView 的核心命题是用商用 WiFi以及不断扩展的射频模态完成空间智能、生命体征与存在检测且不依赖任何视频像素。ADR-281 是这一命题下的一次新模态与学习结构扩展它正式接纳 BLE Channel Sounding蓝牙信道探测、delay-Doppler 原生张量与 IEEE P3162 合成孔径数据格式并引入「因子化姿态 年龄门控」的回归结构。其父级为 ADR-273统一射频空间世界模型扩展 ADR-274通用射频编码器-适配器注册表并与以下文档直接关联ADR-279FieldAxis原生坐标轴见 docs/adr/ADR-279-native-rf-frame-contract.md——delay/Doppler 之所以能成为「本机」轴依赖其定义的字段轴体系ADR-152几何条件化输入见 docs/adr/ADR-152-wifi-pose-sota-2026-intake.md——根定位分支读取的「几何条件化表示」即源于此ADR-021 / ADR-263雷达硬件见 docs/adr/ADR-021-vital-sign-detection-rvdna-pipeline.md、docs/adr/ADR-263-rtl8720f-2-4ghz-fmcw-radar-platform.md——delay-Doppler 原生支持对雷达/OTFS 类模态的意义正在于此。1.1 PROOF discipline哪些是外部输入哪些是仓库实测ADR-281 沿用了 ADR-273 §0 的「证明纪律」将结论严格分级这是解读全文的前提输入来源级别内容Bluetooth SIG「厘米级」定位宣传、商用 BLE CS 的 ~20–50 cm 实测体验差异EXTERNAL-UNVERIFIED外部未验证设计输入只作为立项动机不作为仓库声称的能力OTFS ISAC 外场试验、IEEE P3162EXTERNAL-UNVERIFIED作为格式与研究方向输入PerceptAlign 60% 跨域误差降低、RePos 10–21% MPJPE 提升EXTERNAL-UNVERIFIED作为「传感器位姿即信号」的设计启示ADR-281 文档与代码中的全部数值MEASURED-CODE / MEASURED-SYNTHETIC仓库实测或合成数据实测可在测试与基准中复现因此读者不应把外部厂商数字当作 RuView 的承诺文中凡是仓库自称的精度、速度与参数占比都指向可运行的测试或 criterion 基准见第 6 节验证路径。2. BLE Channel Sounding最可能通往消费级空间锚定的路线BLE 6.0 Channel Sounding信道探测相比 WiFi 的优势在于BLE 基础设施无处不在若能把距离证据稳定接入世界模型就能以极低成本为「空间锚定」提供几何约束——这正是 ADR-281 §2 的判断它是最快通往消费级空间锚定的路径。2.1 帧结构逐频点往返相位 可选 RTT在 v2/crates/ruview-unified/src/adapters.rs 中BleCsFrame承载一条 CS 交换的全部数据pub struct BleCsFrame { /// Sounded frequencies, Hz (uniformly spaced, ascending). pub frequency_steps_hz: Vecf64, /// Measured round-trip tone phase at each step, radians (wrapped). pub phase_samples_rad: Vecf64, /// Round-trip time measurement, ns, when the mode includes RTT. pub round_trip_time_ns: Optionf64, }三个字段各有严格的物理与安全含义frequency_steps_hz必须是均匀升序的扫频频点ble_cs_range通过相邻频点差分df f[1] - f[0]校验这一点非升序或不均匀数据会被拒绝phase_samples_rad是每个频点测得的往返音调相位以弧度计、存在 2π 缠绕round_trip_time_ns为可选 RTT往返时间仅在支持 RTT 的 CS 模式下存在。该帧被包装进RawCapture::BleCsadapters.rs并携带单链路几何links、样本年龄age_s与设备号从而和其它 WiFi CSI、FMCW 雷达、UWB CIR、蜂窝 SRS 模态共享同一个RawCapture枚举与调度入口。2.2 双证据源相位斜率测距 vs RTT 测距ble_cs_rangeadapters.rs是本节的核心函数其物理公式在注释中写得很清楚往返音调相位为θ(f) −4π·f·d/c (mod 2π)因此解缠绕后的相位-频率斜率给出d_phase |dθ/df|·c/(4π)RTT 独立给出d_rtt rtt·c/2两条路线分别计算、交叉校验而非平均。代码中对应的具体做法是先做逐频点 O(1) 解缠绕把每个原始相位平移若干个 2π落入前一点的 ±π 邻域内rem_euclid实现再用最小二乘求相位-频率斜率math::linear_slope进而得到phase_distance_mrtt_distance_m则由round_trip_time_ns * 1e-9 * c / 2.0直接换算。校验与置信度契约常量CS_AGREEMENT_TOLERANCE_M 0.5见 adapters.rs两距离差 ≤ 0.5 m →一致置信度按(1 − div/0.5)·0.5 0.5线性抬升到 [0.5, 1.0] 区间超过 0.5 m →不一致返回RangingAnomaly::Divergent置信度被压到exp(−divergence)且上限 0.2。Divergent的语义是多径偏置、中继relay攻击、时钟故障或标定问题的统一告警没有任何 RTT 的单源证据置信度被硬性封顶为 0.5——「单一机制永远不构成高置信测距」这是防伪中继/防误融合的安全底线。ADR-281 给出的实测合成干净相位40 频点 × 1 MHz 步进为在 1.5 m / 5 m / 12 m 三个距离上精确恢复误差 1 µm测试ble_cs_flags_relay_style_divergence_instead_of_averagingadapters.rs演示了中继式 RTT 膨胀——把一个 5 m 的相位估计配上膨胀到约 51 m 的 RTT最终被标记为分叉而不是被平均掉。这就是「交叉验证本身即安全价值」能骗过相位机制的攻击通常无法同时骗过 RTT反之亦然。2.3 针对测距前端的输入硬化该函数不是无脑算数而是先做输入边界验证这正是ble_cs_range抗 DoS 设计的价值所在。tests/security_boundaries.rs的属性测试security_boundaries.rs测试名ble_cs_range_never_panics暴露过两类致命缺陷并已修复非有限相位inf参与循环解缠绕会让差值恒为inf导致循环无法收敛代码改为先拒绝!is_finite()有限但巨大的相位如 1e300 rad循环式解缠绕会退化到约 1e299 次迭代代码引入MAX_PLAUSIBLE_PHASE_RAD 1e6一个音调相位物理上只在 mod 2π 有意义超过即垃圾数据并改写成模算术 O(1) 解缠绕。同时 RTT 非有限值、非升序频率也都被显式拒绝全部返回类型化UnifiedError。2.4 BleCsAdapter绝不 detrend 相位斜坡从原始帧到规范张量的归一化由BleCsAdapteradapters.rs完成注册硬件 id 为nrf54-cs。其关键设计是与其它适配器的一处刻意差异其它模态在归一化时会执行「逐链路, 快照相位去趋势phase detrend」而 CS 的测距斜坡本身就是测量量——若被 detrend 掉距离信息就没了。因此BleCsAdapter::normalize把每个频点的相位写成单位幅值相量Complex64::from_polar(1.0, theta)并在调用normalize_grid时显式传入phase_calibrated: trueadapters.rs跳过 detrend 分支测试ble_cs_adapter_produces_canonical_tensoradapters.rs断言相位斜坡被完整保留。AdapterRegistry::with_reference_adaptersadapters.rs将BleCsAdapter::new(nrf54-cs)与esp32s3-csi、mr60bha2、dw3000、oai-srs-xapp并列注册注册表查找是fail-closed的——未知硬件直接报UnknownHardware绝不静默回落。2.5 组合策略几何证据 环境活动ADR-281 §5 明确BLE/UWB 锚点作为「几何」证据进入世界模型而 WiFi 继续承载环境内的环境活动。这一互补策略已在代码层面实现——同一张规范张量、同一套适配器注册表、同一个融合空间只是不同模态各司其职锚点负责把绝对几何钉住环境活动负责把人体的存在与动作填满几何之间的空间。3. Delay-Doppler 原生支持从频时张量到延迟-多普勒地图WiFi/雷达采集到的原始数据天然是「频率 × 快照时间」网格而 OTFS 类波形与 ISAC 任务更关心目标的延迟对应距离与多普勒对应速度。ADR-281 §3 让 delay/Doppler 成为 ADR-279FieldAxis体系下的一级本机坐标轴使 OTFS 风格的采集可以原生存储、无需降维。3.1 可分离的快速变换RfTensor::delay_doppler_mapv2/crates/ruview-unified/src/tensor.rs对单条链路的频时张量执行标准变换对 bin 轴做 IDFT→ delay 轴再对快照轴做 DFT→ Doppler 轴输出形状(bins, snapshots)的幅值图。工程要点是它的可分离实现第一阶段对每个快照在频率轴上做 IDFT得到 delay 列第二阶段对每条 delay 行在快照轴上做 DFT 得到 Doppler。这样复杂度从直接形式的O(B²S²)降到O(B²S S²B)。为了证明分式没算错仓库保留了直接不可分离参考实现delay_doppler_map_directtensor.rs专供等价性测试与基准基线对比。3.2 实测定位精度、等价性与加速比测试delay_doppler_map_localizes_a_synthetic_targettensor.rs构造位于(delay 7, Doppler 3)的合成散射体H[b,s] exp(−j2πb·7/B)·exp(j2πs·3/S)断言输出图中该点出现单位峰值其余位置泄漏 1e-9测试separable_delay_doppler_matches_direct_formtensor.rs断言可分实现与直接参考的误差 1e-10criterion 基准delay_doppler_separable_56x8与delay_doppler_direct_56x8v2/crates/ruview-unified/benches/unified_bench.rs在 56×8 网格上测得可分实现约 8.3× 更快约 520 µs vs 4.34 ms越界链路返回类型化错误而不是 panicDimensionMismatch见 tensor.rs。3.3 规则原生地图不得过早坍缩ADR-281 明确了一条数据纪律派生特征可以做小但 delay-Doppler 地图在进入 provenance 与本地存储之前不得被坍缩成标量运动能量。理由是地图保留了延迟与速度的可分离结构坍缩会丢失「目标在哪条延迟路径、以什么速度接近」的关键信息。该规则服务于 ADR-273 的世界模型时延-多普勒本机的模态OTFS ISAC、雷达必须以原生表示进入本地可查询存储。4. IEEE P3162 合成孔径导入测量环境与学习模型的校准桥第三个新增能力是面向IEEE P3162的合成孔径信道探测数据导入档案ADR-281 §5。它的定位非常明确作为「已测量环境 ↔ Sionna 类仿真器 ↔ 学习式 RF 场景模型」三者之间的校准桥梁——用真实测量约束仿真、用仿真扩充真实数据的覆盖面。SyntheticApertureSoundingDatasetv2/crates/ruview-unified/src/frame.rs的字段构成一个完整、可校验的档案pub struct SyntheticApertureSoundingDataset { /// Sounded frequency range [low, high], Hz. pub frequency_range_hz: [f64; 2], /// Aperture element poses (building frame). pub aperture_geometry: VecPose3, /// Directional power-delay profile, (direction, delay) row-major. pub directional_pdp: Vecf64, /// PDP shape. pub pdp_shape: [usize; 2], /// Coordinate system identifier (P3162 vocabulary). pub coordinate_system: String, /// Hash of the processing manifest that produced the dataset. pub processing_manifest_hash: u64, }其校验构造器frame.rs逐条把关数据合法性频率范围必须为正且升序0 low high孔径几何aperture_geometry不允许为空PDP 条目数必须等于pdp_shape的乘积否则报ShapeMismatch每条 PDP 能量必须有限且非负finite 0processing_manifest_hash让「这份数据是怎么处理出来的」可追溯——处理清单的哈希进入档案保证同一份原始测量不被悄悄用不同处理流程污染后冒充。需要特别说明的边界ADR-281 原样声明当前实现只含 schema 校验解析器留待第一份真实 P3162 数据集出现时再实现。这意味着仓库现在能安全地装载、校验、交换这种档案格式但还不会「读 P3162 文件」。5. 因子化姿态RePos 教训 对数年龄门控第 5 个也是学习结构上最重要的一节如何让姿态回归「只学该泛化的只条件化该条件化的」。5.1 分离「什么会泛化」与「什么强条件化」FactorizedPoseHeadv2/crates/ruview-unified/src/heads.rs把姿态输出拆成两个分支相对骨架分支relative skeleton只读取环境不变的内容表示content representation因此结构上学不到房间位置的捷径——骨架形状身高臂展比例等不该随房间变化根定位分支root localization读取几何条件化表示geometry-conditioned representation——因为「传感器在房间哪里、目标在房间哪里」恰恰是强位置信号这正是 PerceptAlign 的教训在这种任务上无视几何就是在浪费信噪比最高的输入。最终组合为absolute root relative即PoseOutput::absolute_joints_m()heads.rs把根位置加到每个相对关节上。PoseOutput的结构heads.rs包括pub struct PoseOutput { pub relative_joints_m: [[f64; 3]; NUM_JOINTS], pub root_position_m: [f64; 3], pub root_uncertainty_m: f64, pub joint_uncertainty_m: ... // per-joint calibrated residual σ }每个姿态输出都携带逐关节与根位置的标定残差 σroot_uncertainty_m、逐关节不确定性这直接兑现 ADR-273 验收项第 8 条「每个输出都必须带不确定性」——测试断言这些 σ 全部有限且非负heads.rs。5.2 泄漏实验房间捷径确实会被拆掉测试factorized_pose_resists_room_shortcut_leakageheads.rs构造了真实部署中最阴险的陷阱训练房间 A只有身材小的人、训练房间 B只有身材高的人——于是「房间位置」与「身体尺度」在训练集上伪相关一个整体式monolithic绝对姿态头会利用这个房间特征当捷径在打破相关性的留出房间里崩塌因子化姿态头的骨架分支永远看不到房间特征只读 content 表示因此在留出房间依然成立。代码用 17 个确定方向生成骨架content 表示为[scale, 1]、full 表示为[scale, room_x/3, 1]根放在[room_x0.5, 2.0, 1]训练 3000 轮后评估 MPJPE。ADR-281 给出的实测数字是留出房间因子化头MPJPE ≈ 0.0003 m整体式绝对头≈ 0.2534 m相差约 845 倍。需要严格界定的是ADR 原话这是**「机制」的 MEASURED-CODE 证据toy 实验隔离机制**不是任何真实姿态精度声明代码层面的自动化断言是fact_err 0.15且mono_err 1.5 × fact_err。5.3 参数预算结构头不超过主干 2%结构化姿态头是最大的适配头实测约740 参数 vs 40,856 参数的骨干编码器约 1.8%。ADR-281 记录的预算纪律是结构化头pose 类上限 2%标量头presence/activity/localization 等维持1%门槛测试every_head_fits_the_one_percent_budget_at_deployment_configheads.rs在部署配置下对 presence、activity、localization、anomaly 逐头断言「 骨干的 1%」再对 pose 头断言「 2%」。这条纪律保证无论接多少任务头推理开销都被锁在骨干的一个小零头上这正是边缘/端侧部署约束ruview-unified面向边缘的定位的直接体现。5.4 对数年龄门控毫秒与多秒同尺度年龄门控数据新鲜度门的输入改为log(1 sample_age_ms)——实现于encoder::age_featurev2/crates/ruview-unified/src/encoder.rspub fn age_feature(age_s: f64) - f64 { (1.0 age_s * 1000.0).ln() }这一配方与「age-aware CSI」完全对齐对数缩放让毫秒级与多秒级的新鲜度进入可比输入尺度——否则一个 5 ms 样本与 5000 ms 样本在线性尺度上相差 1000 倍门控会退化成「要么永远新鲜、要么永远过期」的二值开关。编码器在ctx.age_s处调用该特征作为新鲜度输入encoder.rs且 ADR-281 声明用有限差分梯度检查重新证明了对该新输入的整个反向传播路径仍然正确。6. 后果锚定补全、原语生命周期与诚实的路线图6.1 世界模型原语补齐生命周期字段为了让「更新循环规范」能区分静态结构与瞬态目标高斯原语Gaussian primitive增加了生命周期字段见 v2/crates/ruview-unified/src/gaussian/primitive.rsfirst_seen_ns首次出现时间戳——原语存活时长lifetime_s now − first_seen_ns成为区分静态结构与瞬态的可计算证据gaussian/map.rsdoppler_variance多普勒方差用于表达速度不确定性source_receipts有界的来源帧收据链上限MAX_SOURCE_RECEIPTS——融合时对多份收据做去重归并map.rs保证每个原语都能向上追溯到它来自哪些源帧且追踪链不会无限膨胀。同时first_seen_ns取融合双方的最小值最早出现时间、doppler_variance按权重合并map.rs让融合后的原语既不丢失「首次出现」语义也不丢失速度信息。6.2 诚实的路线图明确未完成ADR-281 在 Consequences 中以极强的纪律性列出当前明确未做的事项避免读者误判成熟度真实的 nRF54 CS 采集路径当前nrf54-cs的适配器 合成/仿真数据就绪硬件直采未完成OTFS 波形生成delay-Doppler 地图变换与原生轴就绪波形发生器未完成P3162 文件解析schema/校验就绪parser 待真实数据集在真实 MM-Fi 风格数据上的姿态头训练当前因子化头验证仅在机制隔离的 toy 数据上。7. 在仓库中继续深入源码地图与验证路径以上全部结论都能在当前仓库源码与测试中逐一核验。建议按如下路径深入主题入口BLE CS 帧、测距函数、异常类型、适配器、注册表v2/crates/ruview-unified/src/adapters.rs可分离 delay-Doppler 变换与直接参考实现v2/crates/ruview-unified/src/tensor.rsP3162 合成孔径导入档案与校验v2/crates/ruview-unified/src/frame.rs因子化姿态头、PoseOutput、预算与泄漏测试v2/crates/ruview-unified/src/heads.rs对数年龄特征v2/crates/ruview-unified/src/encoder.rs高斯原语生命周期字段与融合归并v2/crates/ruview-unified/src/gaussian/primitive.rs、gaussian/map.rsCS 输入硬化与安全边界属性测试v2/crates/ruview-unified/tests/security_boundaries.rsdelay-Doppler 基准v2/crates/ruview-unified/benches/unified_bench.rs本地复现建议仓库只读仅运行验证不改动代码在v2工作区执行cargo test -p ruview-unified ble_cs可跑通相位测距恢复、中继分叉、适配器规范化与 fail-closed 注册表测试cargo test -p ruview-unified delay_doppler复现合成散射体定位与可分/直接等价性cargo test -p ruview-unified factorized复现泄漏实验与预算断言cargo bench -p ruview-unified -- delay_doppler复现可分实现的加速比。所有断言阈值都以 ADR-281 及本节标注的源码位置为准无外部依赖、无模型权重下载。一句话总结 ADR-281它用可交叉校验的 BLE CS 证据、延迟-多普勒原生表示、P3162 校准档案与因子化姿态结构把 RuView 从「WiFi 专属」推进到「多模态统一射频世界模型」的下一阶段——同时用每一条实测数字、每一份测试与每一处「明确未完成」的标记把工程纪律和诚实边界完整地留在仓库里供任何读者复核。【免费下载链接】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),仅供参考