El posicionamiento indoor sigue siendo una de las aplicaciones de mayor valor para balizas Bluetooth. Las señales GPS se atenúan bajo techos de hormigón, dejando a los sistemas basados en balizas como la principal alternativa indoor. Este artículo compara los dos algoritmos de posicionamiento dominantes — trilateración RSSI y fingerprinting — con datos de precisión real y trade-offs de despliegue.
RSSI y Path Loss
Todo el posicionamiento por baliza se basa en Received Signal Strength Indicator (RSSI), medido en dBm. La relación fundamental entre RSSI y distancia sigue un modelo de path loss log-normal:
RSSI(d) = A - 10 * n * log10(d)
Donde:
- A: RSSI a 1 metro de distancia de referencia (típicamente -60 a -70 dBm para balizas con CR2032)
- n: exponente de path loss (2.0 en espacio libre, 2.7–3.5 en oficinas, 4.0+ en espacios industriales)
- d: distancia en metros
Despejando la distancia:
d = 10 ^ ((A - RSSI) / (10 * n))
El desafío: el RSSI fluctúa ±5–8 dBm en entornos indoor debido a desvanecimiento multitrayecto, absorción corporal y orientación de antena. Un error de 6 dBm a 5 metros se traduce en un error de distancia del 40–60%, haciendo poco fiable la medición cruda de baliza única.
Enfoque 1: Trilateración
La trilateración estima la posición intersectando círculos de distancia de al menos tres balizas. Cada baliza proporciona una estimación de distancia mediante la ecuación de path loss anterior.
Algoritmo
- Recopilar RSSI de cada baliza visible (promediar 5–10 muestras para reducir ruido)
- Convertir RSSI a distancia usando el modelo de path loss calibrado
- Resolver la intersección por mínimos cuadrados de los círculos de distancia
Para balizas en posiciones (xi, yi) con distancias estimadas di, la posición objetivo (x, y) minimiza:
F(x,y) = Σ [(x - xi)² + (y - yi)² - di²]²
Este problema de mínimos cuadrados no lineal se resuelve típicamente mediante iteración Gauss-Newton. La estimación inicial puede usar el centroide de las posiciones de baliza.
Benchmarks de Precisión
Medido en oficina de 12m × 8m con 6 balizas de techo, alimentadas con CR2032, transmitiendo a 0 dBm cada 100 ms:
| Escenario | Balizas Visibles | Error Mediano | Percentil 90 |
|---|---|---|---|
| Oficina abierta | 4–5 | 1.8 m | 3.5 m |
| Área de cubículos | 3–4 | 2.6 m | 5.1 m |
| Pasillo | 2–3 | 3.2 m | 6.8 m |
| Con sombra corporal | 3–4 | 4.1 m | 8.3 m |
La precisión se degrada significativamente cuando menos de 3 balizas son visibles o cuando el cuerpo del usuario bloquea la línea de visión.
Requisitos de Calibración
La trilateración requiere calibración por baliza de los parámetros de path loss (A, n). Procedimiento práctico:
- Colocar receptor de referencia a 1 m de cada baliza, registrar 100 muestras RSSI, calcular mediana → valor A
- Medir RSSI a 2 m, 5 m, 10 m a lo largo de trayectoria despejada
- Ajustar n mediante regresión lineal sobre log10(d) vs RSSI
- Recalibrar trimestralmente — la caída de voltaje de batería desplaza la potencia TX 1–3 dBm durante el ciclo de vida
Enfoque 2: Fingerprinting
El fingerprinting omite el paso de estimación de distancia. En su lugar, construye un mapa de radio del espacio durante una fase de survey offline, luego compara observaciones RSSI en vivo contra este mapa.
Fase Offline (Survey)
- Dividir el plano en cuadrícula (espaciado típico: 1–2 metros)
- En cada punto de cuadrícula, recopilar RSSI de todas las balizas visibles durante 10–30 segundos
- Almacenar el vector RSSI y lista de IDs de baliza como fingerprint
Una planta de 1000 m² con espaciado de 1 m produce ~1000 fingerprints. Cada fingerprint contiene 5–15 valores RSSI de baliza más metadatos (timestamp, orientación).
Fase Online (Posicionamiento)
El algoritmo de matching más común es Weighted K-Nearest Neighbors (WKNN):
- Recopilar vector RSSI en vivo de balizas visibles (ventana de 2–5 segundos)
- Calcular similitud (distancia Euclidiana o coeficiente Tanimoto) con todos los fingerprints
- Seleccionar los K fingerprints más cercanos (K = 3–5 típico)
- Ponderar cada uno por distancia inversa, calcular centroide ponderado de sus posiciones
Benchmarks de Precisión
Mismo espacio de oficina 12m × 8m, 6 balizas, espaciado 1 m, WKNN con K=4:
| Escenario | Error Mediano | Percentil 90 | Tiempo Survey |
|---|---|---|---|
| Oficina abierta | 1.1 m | 2.3 m | 2.5 horas |
| Área de cubículos | 1.5 m | 3.0 m | 3.0 horas |
| Pasillo | 1.3 m | 2.8 m | 1.5 horas |
| Con sombra corporal | 2.0 m | 4.2 m | — |
El fingerprinting supera consistentemente a la trilateración en 30–50% en error mediano, especialmente en entornos con clutter donde el multitrayecto domina. El mapa de radio captura implícitamente patrones multitrayecto que los modelos de path loss no pueden modelar.
Comparación Directa
| Factor | Trilateración | Fingerprinting |
|---|---|---|
| Precisión (mediana) | 1.8–4.1 m | 1.1–2.0 m |
| Tiempo setup | ~30 min por baliza | 2–4 horas por planta |
| Reubicación baliza | Recalibrar A,n | Re-survey completo |
| Cambios ambientales | Degrada gradualmente | Requiere re-survey |
| Coste computacional | Bajo (resolver matriz) | Moderado (búsqueda KNN) |
| Escalabilidad | Excelente | BD crece linealmente |
| Min balizas | 3 | 4+ recomendadas |
Enfoque Híbrido
Los sistemas de producción a menudo combinan ambas técnicas. Pipeline híbrido común:
- Usar trilateración para estimación gruesa (3–5 m de precisión)
- Restringir matching de fingerprints a radio de 5 m alrededor de la estimación trilaterada
- Aplicar WKNN dentro de este espacio reducido
Esto reduce la búsqueda en BD de ~1000 entradas a ~50, cortando tiempo de cómputo en 80% manteniendo precisión de fingerprinting.
Densidad y Colocación de Balizas
La precisión depende en gran medida de la geometría de balizas. Directrices clave:
- Densidad: 1 baliza por 25–50 m² para 1–2 m de precisión; 1 por 100 m² para 3–5 m
- Altura: montaje en techo a 2.5–3.0 m proporciona mejor uniformidad de cobertura
- Geometría: evitar arreglos lineales. Teselación triangular/hexagonal minimiza dilución geométrica de precisión (GDOP)
- Potencia TX: +4 a 0 dBm para posicionamiento indoor. Mayor potencia aumenta interferencia; menor reduce el rango por debajo de umbrales útiles
- Intervalo advertising: 100 ms para tracking en tiempo real, 300–500 ms para monitoreo periódico. Intervalos <100 ms drenan CR2032 en 2–3 meses
Filtrado y Suavizado
Las estimaciones crudas de posicionamiento fluctúan significativamente. Un filtro de Kalman o de partículas suaviza trayectorias:
- Filtro de Kalman: modela movimiento del usuario como velocidad constante. Reduce el error en percentil 90 en 20–30% con cálculo mínimo. Vector de estado: [x, y, vx, vy].
- Filtro de partículas: maneja mejor movimiento no lineal y distribuciones multimodales. 500–1000 partículas proporcionan tracking suave a 5 Hz.
- Restricciones de mapa: fijar posiciones filtradas a áreas transitables (excluyendo paredes, obstáculos) elimina saltos imposibles. Reduce error mediano 10–15% adicional.
Errores Comunes de Despliegue
- Insuficientes balizas: desplegar solo 2–3 balizas por zona. La trilateración necesita 3+ visibles; el fingerprinting se beneficia de 4+.
- Ignorar orientación: el cuerpo humano atenúa señales 2.4 GHz en 10–20 dB. Recopilar fingerprints en una sola orientación produce sesgo sistemático cuando los usuarios miran otras direcciones.
- Fingerprints obsoletos: reorganización de mobiliario, nuevas particiones o cambios estacionales invalidan el mapa de radio. Programar re-surveys trimestrales.
- TX sin calibrar: la potencia TX varía ±3 dBm entre unidades por tolerancia de componentes. Medir y compensar por baliza.
- Sobre-filtrado: suavizado agresivo hace el sistema lento. Regla: la constante de tiempo del filtro no debe exceder 1 segundo para aplicaciones a velocidad de caminata.
Conclusión
Para la mayoría de despliegues de posicionamiento indoor con baliza Bluetooth, el fingerprinting con matching WKNN ofrece 30–50% mejor precisión que la trilateración, a costa de mayor tiempo de setup. El enfoque híbrido — trilateración para estimación gruesa, fingerprinting para refinamiento — ofrece el mejor balance de precisión, cómputo y mantenibilidad. Independientemente del algoritmo, la densidad, geometría y calibración individual de balizas importan más que la elección del algoritmo.