Estou investigando a fundo a questão de precisão / rssi / proximidade com iBeacons e realmente acho que todos os recursos na Internet (blogs, posts no StackOverflow) estão errados.
davidgyoung (resposta aceita,> 100 votos positivos) diz:
Observe que o termo "precisão" aqui é a linguagem iOS para distância em metros.
Na verdade, a maioria das pessoas diz isso, mas eu não tenho ideia do porquê! A documentação deixa muito claro que CLBeacon.proximity:
Indica a precisão horizontal de um sigma em metros. Use esta propriedade para diferenciar entre beacons com o mesmo valor de proximidade. Não o use para identificar um local preciso para o farol. Os valores de precisão podem flutuar devido à interferência de RF.
Deixe-me repetir: precisão de um sigma em metros . Todas as 10 principais páginas do google sobre o assunto têm o termo "um sigma" apenas na citação de documentos, mas nenhuma delas analisa o termo, que é fundamental para entender isso.
Muito importante é explicar o que é realmente a precisão de um sigma . Seguintes URLs para começar: http://en.wikipedia.org/wiki/Standard_error , http://en.wikipedia.org/wiki/Uncertainty
No mundo físico, quando você faz alguma medição, você sempre obtém resultados diferentes (por causa de ruído, distorção, etc) e muitas vezes resultados da distribuição gaussiana. Existem dois parâmetros principais que descrevem a curva gaussiana:
- média (que é fácil de entender, é o valor para o qual ocorre o pico da curva).
- desvio padrão, que indica o quão larga ou estreita é a curva. Quanto mais estreita a curva, melhor é a precisão, porque todos os resultados são próximos uns dos outros. Se a curva for ampla e não íngreme, isso significa que as medições do mesmo fenômeno diferem muito umas das outras, então a medição tem uma qualidade ruim.
um sigma é outra maneira de descrever quão estreita / larga é a curva gaussiana.
Ele simplesmente diz que se a média da medição for X e um sigma for σ, então 68% de todas as medições estarão entre X - σ
e X + σ
.
Exemplo. Medimos a distância e obtemos uma distribuição gaussiana como resultado. A média é 10m. Se σ é 4m, significa que 68% das medições ocorreram entre 6m e 14m.
Quando medimos a distância com beacons, obtemos RSSI e o valor de calibração de 1 metro, que nos permite medir a distância em metros. Mas cada medição fornece valores diferentes, que formam a curva gaussiana. E um sigma (e precisão) é a precisão da medição, não a distância!
Pode ser enganoso, porque quando movemos o farol para mais longe, um sigma na verdade aumenta porque o sinal é pior. Mas com diferentes níveis de potência do farol, podemos obter valores de precisão totalmente diferentes sem realmente alterar a distância. Quanto maior a potência, menos erros.
Há uma postagem de blog que analisa completamente o assunto: http://blog.shinetech.com/2014/02/17/the-beacon-experiments-low-energy-bluetooth-devices-in-action/
O autor tem a hipótese de que precisão é realmente distância. Ele afirma que os beacons do Kontakt.io estão com defeito porque quando ele aumentou a potência para o valor máximo, o valor de precisão era muito pequeno para 1, 5 e até 15 metros. Antes de aumentar a potência, a precisão estava bem próxima dos valores de distância. Eu pessoalmente acho que está correto, pois quanto maior o nível de potência, menor o impacto da interferência. E é estranho porque os faróis Estimote não se comportam dessa forma.
Não estou dizendo que estou 100% certo, mas além de ser desenvolvedor iOS, tenho graduação em eletrônica sem fio e acho que não devemos ignorar o termo "um sigma" dos documentos e gostaria de começar uma discussão sobre isso.
Pode ser possível que o algoritmo de precisão da Apple apenas colete medições recentes e analise a distribuição gaussiana delas. E é assim que define a precisão. Eu não excluiria a possibilidade de que eles usem o acelerômetro do formulário de informações para detectar se o usuário está se movendo (e com que rapidez) para redefinir os valores de distância de distribuição anteriores porque eles certamente mudaram.