2014-04-30 20 views
5

Sto provando a stimare la distanza da un dispositivo iOS a un iBeacon. Sono consapevole del fatto che la stima distanza non è super preciso, e sono anche consapevole di questa formula:Stima della distanza da iBeacon su iOS

https://electronics.stackexchange.com/questions/83354/calculate-distance-from-rssi

ho trovato, attraverso alcune ricerche, che la pubblicità BLE di un IBeacon infatti contiene dati che rappresenta la calibrazione valore. Vale a dire, l'RSSI determinato a 1 metro di distanza viene effettivamente trasmesso dal faro affinché tutti lo vedano.

Ora, penso che iOS debba utilizzare internamente queste informazioni per determinare le classificazioni di distanza Near, Far, Immediate e Unknown ma non sono a conoscenza di alcun modo per accedere direttamente a questo RSSI da 1 metro.

La mia domanda è semplicemente: c'è un modo per ottenere la stima della distanza tra un dispositivo iOS e un beacon SENZA avere il valore di calibrazione di 1-metri salvato sul dispositivo iOS in anticipo?

Alcune persone dicono che il campo "precisione" della classe CLBeacon è, in effetti, la misurazione della distanza al faro. La documentazione non supporta questa affermazione, ecco cosa dice:

accuratezza La precisione del valore di prossimità, misurata in metri dal faro. (Sola lettura)

@property (readonly, nonatomic) CLLocationAccuracy accuracy; 

Discussione Indica quella sigma precisione orizzontale in metri. Utilizzare questa proprietà per distinguere tra beacon con lo stesso valore di prossimità . Non usarlo per identificare una posizione precisa per il faro. I valori di precisione possono variare a causa di interferenze RF.

Un valore negativo in questa proprietà indica che non è stato possibile determinare l'accuratezza effettiva .

risposta

3

C'è un modo per ottenere la stima distanza tra un dispositivo IOS e un faro senza avere il valore di calibrazione 1 metro memorizzato sul dispositivo iOS anticipo?

SI, è sufficiente leggere il campo accuratezza CLBeacon come si sospetta. Questa è una stima della distanza dal faro in metri.

Questa stima utilizza un calcolo non documentato basato sulle misurazioni RSSI (probabilmente una media di 30 secondi, forse scartando valori anomali) combinato con il valore di calibrazione RSSI di 1 metro incorporato nell'annuncio iBeacon. Una porta di questo calcolo per Android è mostrata here.

E, no, non c'è modo di leggere il valore di calibrazione da un'app. È oscurato da iOS, il che non consente di vedere i dettagli degli annunci Bluetooth LE. Vedi here per una spiegazione dettagliata.

+0

hmm OK, questo è ufficialmente documentato ovunque? – fjlksahfob

+3

No, non penso di aver visto alcuna documentazione ufficiale Apple che afferma che il valore di accuratezza è la distanza stimata in metri. Ciò è probabilmente dovuto al fatto che Apple scoraggia il suo uso diretto a questo scopo a causa della grande quantità di rumore sulla stima. Apple consiglia di utilizzare il campo di prossimità che rende la stima della distanza in categorie immediate/vicine/lontane, che è quindi meno variabile. Il più vicino che ho visto per una definizione ufficiale di "precisione" come distanza in metri è in un forum di supporto in cui è stato descritto come tale da un dipendente Apple. – davidgyoung

+3

Ho rintracciato i post di cui stavi parlando: https://devforums.apple.com/message/934466#934466 ** "Non stiamo dicendo che sei esattamente a XX metri di distanza, ma stiamo dicendo che tu sono vicini a questo faro entro un intervallo di precisione. "** Continua a parlare di cose vicine/lontane/immediate e dice immediatamente <0.5m e near = 1-3 m https: // devforum. apple.com/message/908989#908989 Immagino che stiano dicendo che non esiste un vero modo per essere precisi sulla distanza, ma non si stanno davvero impegnando a rispondere. Non stanno dicendo che la distanza e la precisione sono la stessa cosa. – fjlksahfob

7

c'è una nuova iBeacon Document rilasciato da Apple il 2 giugno 2014, che dichiara:

Quando si costruisce un'applicazione che utilizza sia il GPS o beacon, è importante prendere in considerazione questa precisione. I valori segnalati dagli oggetti Posizione principale (la proprietà 01AorizzontaleAccuracy nella classe CLLocation o la proprietà di precisione nella classe CLBeacon) indicano questo livello di incertezza o il margine di errore. Entrambi sono misurati in metri. Maggiore è il valore, minore è la certezza della posizione del dispositivo o del beacon . Mantieni in la mente che a seconda dell'ambiente fisico una precisione bassa potrebbe non essere possibile.

Sospetto che sia la metrica di "fiducia" di Apple durante la lettura dei valori CLProximity. Lo interpreto come qualcosa di simile:

CLProximityNear con un valore di precisione di 5; Apple individua la tua posizione entro un margine di errore di 5 m.

Il sentimento generale tratto dalla mia analisi generale delle fonti è che l'utilizzo della tecnologia beacon per l'approssimazione della distanza non è probabilmente la forza della tecnologia.

MODIFICA: Chaise Hocking di Shine Technologies a Melbourne ha uno insightful blog post che ha alcuni esperimenti e risultati relativi alla proprietà accuracy.

Problemi correlati