Merge remote-tracking branch 'origin/main' into feat/cross-node-fusion

# Conflicts:
#	rust-port/wifi-densepose-rs/crates/wifi-densepose-sensing-server/src/main.rs
This commit is contained in:
ruv 2026-03-30 21:55:40 -04:00
commit 2732cf9e8f
13 changed files with 2309 additions and 5 deletions

View File

@ -0,0 +1 @@
{"intelligence":7,"timestamp":1774922079152}

1
benchmark_baseline.json Normal file

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,33 @@
# ESP32-S3 CSI Node — Default SDK Configuration
# This file is applied automatically by idf.py when no sdkconfig exists.
# Target: ESP32-S3
CONFIG_IDF_TARGET="esp32s3"
# Use custom partition table (8MB flash with OTA — ADR-045)
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions_display.csv"
# Flash configuration: 8MB (Quad SPI)
CONFIG_ESPTOOLPY_FLASHSIZE_8MB=y
CONFIG_ESPTOOLPY_FLASHSIZE="8MB"
# Compiler optimization: optimize for size to reduce binary
CONFIG_COMPILER_OPTIMIZATION_SIZE=y
# Enable CSI (Channel State Information) in WiFi driver
CONFIG_ESP_WIFI_CSI_ENABLED=y
# NVS encryption disabled by default (requires eFuse provisioning).
# Enable only after burning HMAC key to eFuse block.
# CONFIG_NVS_ENCRYPTION is not set
# Disable unused features to reduce binary size
CONFIG_BOOTLOADER_LOG_LEVEL_WARN=y
CONFIG_LOG_DEFAULT_LEVEL_INFO=y
# LWIP: enable extended socket options for UDP multicast
CONFIG_LWIP_SO_RCVBUF=y
# FreeRTOS: increase task stack for CSI processing
CONFIG_ESP_MAIN_TASK_STACK_SIZE=8192

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1 @@
{"intelligence":35,"timestamp":1774903706609}

View File

@ -3584,12 +3584,9 @@ async fn udp_receiver_task(state: SharedState, udp_port: u16) {
let vitals = smooth_vitals_node(ns, &raw_vitals);
ns.latest_vitals = vitals.clone();
// Use correlation-based person estimation from frame history.
// This examines the temporal correlation structure of CSI
// subcarriers — correlated subcarriers belong to the same
// person, independent clusters indicate multiple people.
// DynamicMinCut person estimation from subcarrier correlation.
let corr_persons = estimate_persons_from_correlation(&ns.frame_history);
let raw_score = corr_persons as f64 / 3.0; // normalize to 0..1
let raw_score = corr_persons as f64 / 3.0;
ns.smoothed_person_score = ns.smoothed_person_score * 0.92 + raw_score * 0.08;
if classification.presence {
let count = score_to_person_count(ns.smoothed_person_score, ns.prev_person_count);

View File

@ -0,0 +1 @@
{"intelligence":60,"timestamp":1774039923051}