WiFi-Mat transforma el sistema WiFi DensePose en una herramienta de búsqueda y rescate (SAR) capaz de detectar supervivientes atrapados bajo escombros, clasificar su estado médico según el protocolo START y estimar su posición 3D en tiempo real.

¿Qué lo hace especial?

A diferencia de cámaras térmicas, sensores acústicos o perros de rescate, las señales WiFi de 5 GHz penetran materiales no metálicos como:

  • Hormigón y ladrillo
  • Madera y yeso
  • Escombros de edificios colapsados
  • Hasta 5 metros de profundidad en condiciones óptimas

Esto permite a los equipos de rescate obtener información crítica en segundos, sin necesidad de acceso visual o físico a la zona.

Cómo Funciona el Módulo WiFi-Mat

1. Detección de Signos Vitales a Través de Escombros

El sistema analiza dos señales biológicas fundamentales:

SeñalRango de DetecciónMétodo
Respiración4-60 respiraciones/minFiltro paso banda 0.07-1.0 Hz + modelo de zona de Fresnel que detecta desplazamientos del pecho de 5-10mm
Latido cardíaco40-120 lpmExtracción de micro-desplazamientos Doppler a partir de variaciones finas de fase en la CSI

La clave está en que el sistema puede distinguir entre:

  • Superviviente consciente: Movimiento activo + respiración regular
  • Inconsciente pero vivo: Solo respiración detectable
  • Sin signos vitales: Ninguna señal tras escaneo continuo

2. Localización 3D Preciso

Para determinar dónde exactamente está una persona atrapada, WiFi-Mat combina tres técnicas:

text

Trilateración multi-AP + Huella CSI + Estimación de profundidad
  • Múltiples puntos de acceso (ESP32 o routers) triangulan la posición
  • La huella única que cada ubicación genera en la señal CSI sirve como referencia
  • El sistema estima la profundidad de los escombros analizando la atenuación y los rebotes de la señal

3. Clasificación START (Triage) Automática

El sistema clasifica automáticamente a cada víctima según el protocolo estándar de emergencias:

EstadoColorCriterio de DetecciónPrioridad
Inmediato🔴 RojoRespiración detectable, sin movimientoP1 (crítico)
Diferido🟡 AmarilloMovimiento + respiración, signos establesP2 (urgente)
Leve🟢 VerdeMovimiento fuerte, patrones de respuesta activaP3 (ambulatorio)
Fallecido⚫ NegroSin signos vitales tras >30 min de escaneo continuoP4

4. Modos de Despliegue

WiFi-Mat se adapta a diferentes escenarios de emergencia:

ModoDescripciónEquipamiento
PortátilUn equipo de rescate con un transmisor y receptor portátiles2-3 ESP32-S3 en mochilas
DistribuidoRed de sensores desplegados alrededor del perímetro del colapso5-10 nodos ESP32 en trípodes
Montado en DronEscaneo aéreo de zonas inaccesiblesDron con ESP32 + batería externa
Vehículo móvilPuesto de mando con capacidad de escaneo continuoMúltiples antenas en furgoneta

Implementación Práctica desde Python

Configuración Básica del Módulo de Desastre

python

from wifi_densepose_mat import DisasterResponse, DisasterConfig, DisasterType, ScanZone

# Configurar el escenario de desastre
config = DisasterConfig.builder()
    .disaster_type(DisasterType.Earthquake)  # Tipo: terremoto, derrumbe, etc.
    .sensitivity(0.85)                       # Sensibilidad de detección (0-1)
    .max_depth(5.0)                          # Profundidad máxima en metros
    .build()

# Inicializar la respuesta
response = DisasterResponse.new(config)
response.initialize_event(
    location={"lat": 40.4168, "lon": -3.7038}, 
    description="Edificio residencial colapsado"
)

# Definir zonas de búsqueda
response.add_zone(ScanZone(
    name="Ala Norte",
    bounds=ZoneBounds.rectangle(0.0, 0.0, 30.0, 20.0)  # Coordenadas en metros
))

# Iniciar escaneo
response.start_scanning().await

Obteniendo Resultados en Tiempo Real

python

import asyncio
import websockets
import json

async def monitor_rescue_operation():
    uri = "ws://localhost:3001/ws/disaster"
    async with websockets.connect(uri) as ws:
        async for message in ws:
            data = json.loads(message)
            
            # Por cada víctima detectada
            for victim in data.get('victims', []):
                print(f"🎯 Víctima ID: {victim['id']}")
                print(f"   📍 Posición: {victim['position']}")  # Coordenadas 3D
                print(f"   ❤️ Respiración: {victim['breathing_rate']} BPM")
                print(f"   💓 Pulso: {victim['heart_rate']} BPM")
                print(f"   🚨 Estado START: {victim['triage_status']}")  # RED/YELLOW/GREEN/BLACK
                print(f"   📊 Confianza: {victim['confidence']*100:.1f}%")
                print("-" * 40)

API REST Específica para Desastres

bash

# Obtener mapa de calor de probabilidad de supervivientes
curl http://localhost:3000/api/v1/disaster/heatmap

# Listar todas las víctimas detectadas
curl http://localhost:3000/api/v1/disaster/victims

# Estadísticas de la operación
curl http://localhost:3000/api/v1/disaster/stats
# Respuesta: {"total_victims": 5, "by_status": {"RED": 2, "YELLOW": 2, "BLACK": 1}}

Validación y Pruebas

El módulo WiFi-Mat cuenta con 139 pruebas automatizadas que verifican:

  • Detección de respiración bajo diferentes tipos de escombros (simulados)
  • Clasificación START con datos sintéticos de pacientes
  • Localización 3D con múltiples configuraciones de antenas
  • Tolerancia a fallos si algunos nodos dejan de funcionar

Garantías de Seguridad

Para aplicaciones de vida o muerte, el sistema implementa salvaguardas críticas:

  • Defaults fail-safe: Ante cualquier señal ambigua, se asume que hay vida presente (minimizar falsos negativos)
  • Votación multi-algoritmo: Varios algoritmos independientes deben coincidir para emitir una alerta
  • Auditoría completa: Cada decisión queda registrada con la evidencia CSI que la sustentó
  • Funcionamiento offline: No requiere conexión a internet, vital en zonas de desastre

Ejemplo de Despliegue Real

Imagina un edificio de 5 plantas que ha colapsado. En 10 minutos puedes:

  1. Desplegar 6 nodos ESP32-S3 alrededor del perímetro
  2. Iniciar el servidor con el perfil «field» (específico para desastres)
  3. Obtener un mapa mostrando:
    • 3 víctimas en sótano (2 con respiración, 1 sin signos)
    • 2 víctimas en 2ª planta (ambas con movimiento)
    • Coordenadas precisas para guiar a los equipos de rescate

Puesta en Marcha Rápida

bash

# Instalar perfil específico para desastres
./install.sh --profile field

# Iniciar con configuración de rescate
docker run -p 3000:3000 -p 5005:5005/udp \
  -e DISASTER_MODE=true \
  -e MAX_DEPTH=5.0 \
  ruvnet/wifi-densepose:field

# Ver interfaz de operaciones de rescate
# Abre http://localhost:3000/disaster-dashboard

Limitaciones y Consideraciones

  • Materiales metálicos: El acero estructural o el metal denso pueden bloquear la señal
  • Agua: Grandes cantidades de agua absorben las microondas (supervivientes mojados pueden ser más difíciles de detectar)
  • Múltiples capas: Cada pared/losa de hormigón reduce la sensibilidad (~30% por capa)
  • Formación necesaria: El personal debe interpretar correctamente los datos (no es «magia», es una herramienta más)

Deja un comentario

Este sitio utiliza Akismet para reducir el spam. Conoce cómo se procesan los datos de tus comentarios.

La FRASE DEL MES

«Cualquier tecnología suficientemente avanzada es indistinguible de la magia.»

~ Arthur C. Clarke