Le positionnement indoor reste l’une des applications à plus forte valeur pour les balises Bluetooth. Les signaux GPS s’atténuent sous les plafonds en béton, laissant les systèmes basés sur balises comme la principale alternative indoor. Cet article compare les deux algorithmes de positionnement dominants — trilatération RSSI et empreinte (fingerprinting) — avec des données de précision réelles et des compromis de déploiement.

RSSI et Path Loss

Tout le positionnement par balise repose sur le Received Signal Strength Indicator (RSSI), mesuré en dBm. La relation fondamentale entre RSSI et distance suit un modèle de path loss log-normal :

RSSI(d) = A - 10 * n * log10(d)

Où :

  • A : RSSI à 1 mètre de distance de référence (typiquement -60 à -70 dBm pour balises alimentées par CR2032)
  • n : exposant de path loss (2.0 en espace libre, 2.7–3.5 en bureaux, 4.0+ en espaces industriels)
  • d : distance en mètres

En résolvant pour la distance :

d = 10 ^ ((A - RSSI) / (10 * n))

Le défi : le RSSI fluctue de ±5–8 dBm en environnement indoor à cause de l’évanouissement multitrajet, de l’absorption corporelle et de l’orientation d’antenne. Une erreur de 6 dBm à 5 mètres se traduit par une erreur de distance de 40–60%, rendant la mesure brute par balise unique peu fiable.

Approche 1 : Trilatération

La trilatération estime la position en intersectant les cercles de distance d’au moins trois balises. Chaque balise fournit une estimation de distance via l’équation de path loss ci-dessus.

Algorithme

  1. Collecter le RSSI de chaque balise visible (moyenner 5–10 échantillons pour réduire le bruit)
  2. Convertir le RSSI en distance avec le modèle de path loss calibré
  3. Résoudre l’intersection aux moindres carrés des cercles de distance

Pour des balises aux positions (xi, yi) avec distances estimées di, la position cible (x, y) minimise :

F(x,y) = Σ [(x - xi)² + (y - yi)² - di²]²

Ce problème de moindres carrés non linéaire est typiquement résolu par itération Gauss-Newton. L’estimation initiale peut utiliser le centroïde des positions de balises.

Benchmarks de Précision

Mesuré dans un bureau de 12m × 8m avec 6 balises au plafond, alimentées par CR2032, transmettant à 0 dBm toutes les 100 ms :

Scénario Balises Visibles Erreur Médiane 90e Percentile
Bureau ouvert 4–5 1.8 m 3.5 m
Zone de cubicles 3–4 2.6 m 5.1 m
Couloir 2–3 3.2 m 6.8 m
Avec obstruction corporelle 3–4 4.1 m 8.3 m

La précision se dégrade significativement quand moins de 3 balises sont visibles ou quand le corps de l’utilisateur obstrue la ligne de vue.

Exigences de Calibrage

La trilatération nécessite un calibrage par balise des paramètres de path loss (A, n). Procédure pratique :

  1. Placer un récepteur de référence à 1 m de chaque balise, enregistrer 100 échantillons RSSI, calculer la médiane → valeur A
  2. Mesurer le RSSI à 2 m, 5 m, 10 m le long d’un trajet dégagé
  3. Ajuster n par régression linéaire sur log10(d) vs RSSI
  4. Recalibrer trimestriellement — la chute de tension de batterie décale la puissance TX de 1–3 dBm sur le cycle de vie

Approche 2 : Empreinte (Fingerprinting)

Le fingerprinting contourne l’étape d’estimation de distance. Au lieu de cela, il construit une carte radio de l’espace durant une phase de relevé hors ligne, puis fait correspondre les observations RSSI en direct avec cette carte.

Phase Hors Ligne (Relevé)

  1. Diviser le plan en grille (espacement typique : 1–2 mètres)
  2. À chaque point de grille, collecter le RSSI de toutes les balises visibles pendant 10–30 secondes
  3. Stocker le vecteur RSSI et la liste d’IDs de balise comme empreinte

Un étage de 1000 m² avec un espacement de grille de 1 m produit ~1000 empreintes. Chaque empreinte contient 5–15 valeurs RSSI de balise plus des métadonnées (horodatage, orientation).

Phase En Ligne (Positionnement)

L’algorithme de correspondance le plus courant est Weighted K-Nearest Neighbors (WKNN) :

  1. Collecter le vecteur RSSI en direct des balises visibles (fenêtre de 2–5 secondes)
  2. Calculer la similarité (distance Euclidienne ou coefficient de Tanimoto) avec toutes les empreintes
  3. Sélectionner les K empreintes les plus proches (K = 3–5 typique)
  4. Pondérer chacune par distance inverse, calculer le centroïde pondéré de leurs positions

Benchmarks de Précision

Même espace de bureau 12m × 8m, 6 balises, espacement 1 m, WKNN avec K=4 :

Scénario Erreur Médiane 90e Percentile Temps de Relevé
Bureau ouvert 1.1 m 2.3 m 2.5 heures
Zone de cubicles 1.5 m 3.0 m 3.0 heures
Couloir 1.3 m 2.8 m 1.5 heures
Avec obstruction corporelle 2.0 m 4.2 m

Le fingerprinting surpasse systématiquement la trilatération de 30–50% en erreur médiane, surtout dans les environnements encombrés où le multitrajet domine. La carte radio capture implicitement les motifs multitrajet que les modèles de path loss ne peuvent pas modéliser.

Comparaison Directe

Facteur Trilatération Fingerprinting
Précision (médiane) 1.8–4.1 m 1.1–2.0 m
Temps de setup ~30 min par balise 2–4 heures par étage
Repositionnement balise Recalibrer A,n Re-relevé complet
Changements environnementaux Dégradation progressive Re-relevé requis
Coût calcul Faible (résolution matrice) Modéré (recherche KNN)
Scalabilité Excellente BD croît linéairement
Min balises 3 4+ recommandées

Approche Hybride

Les systèmes de production combinent souvent les deux techniques. Pipeline hybride courant :

  1. Utiliser la trilatération pour une estimation de position grossière (précision 3–5 m)
  2. Restreindre la correspondance d’empreintes à un rayon de 5 m autour de l’estimation trilatérée
  3. Appliquer WKNN dans cet espace de recherche réduit

Cela réduit la recherche dans la BD d’empreintes de ~1000 à ~50 entrées, réduisant le temps de calcul de 80% tout en maintenant la précision du fingerprinting.

Densité et Placement des Balises

La précision de positionnement dépend fortement de la géométrie des balises. Directives clés :

  • Densité : 1 balise par 25–50 m² pour 1–2 m de précision ; 1 par 100 m² pour 3–5 m
  • Hauteur : montage au plafond à 2.5–3.0 m fournit la meilleure uniformité de couverture
  • Géométrie : éviter les arrangements linéaires. La tessellation triangulaire/hexagonale minimise la dilution géométrique de précision (GDOP)
  • Puissance TX : +4 à 0 dBm pour le positionnement indoor. Puissance plus élevée augmente l’interférence ; plus basse réduit la portée sous les seuils utiles
  • Intervalle advertising : 100 ms pour le tracking temps réel, 300–500 ms pour la surveillance périodique. Intervalles <100 ms vident les CR2032 en 2–3 mois

Filtrage et Lissage

Les estimations de position brutes fluctuent significativement. Un filtre de Kalman ou un filtre à particules lisse les trajectoires :

  • Filtre de Kalman : modélise le mouvement de l’utilisateur comme vitesse constante. Réduit l’erreur au 90e percentile de 20–30% avec un calcul minimal. Vecteur d’état : [x, y, vx, vy].
  • Filtre à particules : gère mieux le mouvement non linéaire et les distributions de position multimodales. 500–1000 particules fournissent un tracking fluide à 5 Hz.
  • Contraintes de carte : limiter les positions filtrées aux zones praticables (hors murs, obstacles) élimine les sauts physiquement impossibles. Réduit l’erreur médiane de 10–15% supplémentaires.

Erreurs Courantes de Déploiement

  • Nombre insuffisant de balises : déployer seulement 2–3 balises par zone. La trilatération nécessite 3+ visibles ; le fingerprinting bénéficie de 4+.
  • Ignorer l’orientation : le corps humain atténue les signaux 2.4 GHz de 10–20 dB. Collecter les empreintes dans une seule orientation produit un biais systématique lorsque les utilisateurs font face à d’autres directions.
  • Empreintes obsolètes : réaménagement de mobilier, nouvelles cloisons ou changements saisonniers invalident la carte radio. Programmer des re-relevés trimestriels.
  • Puissance TX non calibrée : la puissance TX des balises varie de ±3 dBm entre unités due à la tolérance des composants. Mesurer et compenser par balise.
  • Sur-filtrage : un lissage agressif rend le système lent. Règle : la constante de temps du filtre ne doit pas dépasser 1 seconde pour les applications à vitesse de marche.

Conclusion

Pour la plupart des déploiements de positionnement indoor par balise Bluetooth, le fingerprinting avec correspondance WKNN offre 30–50% de meilleure précision que la trilatération, au coût d’un temps de setup plus long. L’approche hybride — trilatération pour estimation grossière, fingerprinting pour raffinement — offre le meilleur équilibre entre précision, calcul et maintenabilité. Indépendamment de l’algorithme, la densité, la géométrie et le calibrage individuel des balises importent plus que le choix de l’algorithme lui-même.