Sto indagando a fondo sulla questione dell'accuratezza / rssi / prossimità con iBeacons e penso davvero che tutte le risorse in Internet (blog, post in StackOverflow) siano sbagliate.
davidgyoung (risposta accettata,> 100 voti positivi) dice:
Nota che il termine "precisione" qui è che iOS indica la distanza in metri.
In realtà, la maggior parte delle persone lo dice ma non ho idea del perché! La documentazione rende molto molto chiaro che CLBeacon.proximity:
Indica la precisione orizzontale di un sigma in metri. Utilizzare questa proprietà per distinguere tra beacon con lo stesso valore di prossimità. Non utilizzarlo per identificare una posizione precisa per il faro. I valori di precisione possono variare a causa dell'interferenza RF.
Lasciatemelo ripetere: una precisione di un sigma in metri . Tutte le 10 pagine principali di Google sull'argomento hanno il termine "un sigma" solo tra citazioni da documenti, ma nessuna di esse analizza il termine, che è fondamentale per capirlo.
Molto importante è spiegare cos'è in realtà l' accuratezza di un sigma . I seguenti URL per iniziare: http://en.wikipedia.org/wiki/Standard_error , http://en.wikipedia.org/wiki/Uncertainty
Nel mondo fisico, quando effettui delle misurazioni, ottieni sempre risultati diversi (a causa del rumore, della distorsione, ecc.) E molto spesso i risultati formano una distribuzione gaussiana. Ci sono due parametri principali che descrivono la curva gaussiana:
- media (che è facile da capire, è il valore per il quale si verifica il picco della curva).
- deviazione standard, che indica quanto è ampia o stretta la curva. La curva più stretta, la migliore precisione, perché tutti i risultati sono vicini tra loro. Se la curva è ampia e non ripida, significa che le misurazioni dello stesso fenomeno differiscono molto l'una dall'altra, quindi la misurazione ha una cattiva qualità.
un sigma è un altro modo per descrivere quanto stretta / larga è la curva gaussiana.
Dice semplicemente che se la media della misurazione è X e un sigma è σ, il 68% di tutte le misurazioni sarà compreso tra X - σ
e X + σ
.
Esempio. Misuriamo la distanza e come risultato otteniamo una distribuzione gaussiana. La media è di 10 m. Se σ è 4 m, significa che il 68% delle misurazioni era compreso tra 6 me 14 m.
Quando misuriamo la distanza con i beacon, otteniamo un valore di calibrazione RSSI e 1 metro, che ci consente di misurare la distanza in metri. Ma ogni misurazione fornisce valori diversi, che formano una curva gaussiana. E un sigma (e accuratezza) è l'accuratezza della misurazione, non la distanza!
Potrebbe essere fuorviante, perché quando spostiamo il faro più lontano, un sigma aumenta effettivamente perché il segnale è peggiore. Ma con diversi livelli di potenza del faro possiamo ottenere valori di precisione completamente diversi senza effettivamente cambiare la distanza. Maggiore è la potenza, minore è l'errore.
C'è un post sul blog che analizza a fondo la questione: http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/
L'autore ha l'ipotesi che la precisione sia in realtà la distanza. Afferma che i beacon di Kontakt.io sono difettosi perché quando ha aumentato la potenza al valore massimo, il valore di precisione era molto piccolo per 1, 5 e persino 15 metri. Prima di aumentare la potenza, la precisione era abbastanza vicina ai valori di distanza. Personalmente penso che sia corretto, perché maggiore è il livello di potenza, minore è l'impatto dell'interferenza. Ed è strano il motivo per cui i beacon Estimote non si comportano in questo modo.
Non dico di avere ragione al 100%, ma oltre ad essere sviluppatore iOS ho una laurea in elettronica wireless e penso che non dovremmo ignorare il termine "un sigma" dai documenti e vorrei iniziare una discussione a riguardo.
È possibile che l'algoritmo di precisione di Apple raccolga solo misurazioni recenti e ne analizzi la distribuzione gaussiana. Ed è così che imposta la precisione. Non escluderei la possibilità che utilizzino l'accelerometro del modulo informativo per rilevare se l'utente si sta muovendo (e quanto velocemente) al fine di ripristinare i valori della distanza di distribuzione precedente perché sono sicuramente cambiati.