Relocalização grosseira

A relocalização grosseira é um recurso que permite a localização em larga escala com respostas aproximadas, mas rápidas, a estas perguntas:

  • Onde está o dispositivo agora?
  • Qual conteúdo devo observar?

A resposta não é precisa. Ela tem o formato: Você está perto destas âncoras. Tente localizar uma delas.

A relocalização grosseira marca âncoras com várias leituras de sensor no dispositivo que são usadas posteriormente para consultas rápidas. Para cenários de posicionamento externo, os dados do sensor normalmente são a posição do GPS (GPS) do dispositivo. Quando o GPS está indisponível ou não é confiável, como em locais fechados, os dados do sensor consistem nos pontos de acesso Wi-Fi e nos sinalizadores Bluetooth dentro do alcance. Os dados de sensor coletados contribuem para a manutenção de um índice espacial usado pelas Âncoras Espaciais do Azure para determinar rapidamente quais âncoras estão próximas ao dispositivo.

Quando usar a relocalização grosseira

Se você planeja lidar com âncoras em um espaço maior que uma quadra de tênis, provavelmente se beneficiará da indexação espacial da relocalização grosseira.

A rápida pesquisa de âncoras habilitadas pela relocalização grosseira simplifica o desenvolvimento de aplicativos apoiados por coleções mundiais de, por exemplo, milhões de âncoras distribuídas geograficamente. A complexidade da indexação espacial fica oculta para que você se concentre na lógica do aplicativo. Todo o trabalho difícil é feito em segundo plano pelas Âncoras Espaciais do Azure.

Usar a relocalização grosseira

Aqui está o fluxo de trabalho típico para criar e consultar Âncoras Espaciais do Azure com a relocalização grosseira:

  1. Crie e configure um provedor de impressão digital de sensor para coletar os dados de sensor desejados.
  2. Inicie uma sessão de Âncoras Espaciais do Azure e crie as âncoras. Como a impressão digital de sensor está habilitada, as âncoras são indexadas espacialmente por relocalização grosseira.
  3. Consulte as âncoras ao redor usando a relocalização grosseira por meio dos critérios de pesquisa dedicados na sessão de Âncoras Espaciais.

Você pode consultar um destes tutoriais para configurar a relocalização grosseira no seu aplicativo:

Sensores e plataformas

Disponibilidade da plataforma

Os seguintes tipos de sensores poderão ser usados em conjunto com a realocação grosseira (veja detalhes na tabela abaixo):

  • Posição de GPS: latitude, longitude, altitude
  • Intensidade do sinal de pontos de acesso Wi-Fi dentro do alcance
  • Intensidade de sinal dos sinalizadores Bluetooth dentro do alcance

Esta tabela resume a disponibilidade dos dados de sensor em plataformas com suporte e contém informações das quais você deve estar ciente:

HoloLens Android iOS
GPS Não1 Sim4 Sim6, 7
Wi-Fi Sim2 Sim5 Sim7
Sinalizadores de BLE Sim3 Sim3 Sim3, 7

1 Um dispositivo GPS externo pode ser associado ao HoloLens. Manipule o evento UpdatedSensorFingerprintRequired para enviar leituras de GeoLocation, caso esteja usando HoloLens com um rastreador GPS externo.
2 Com suporte em uma taxa de aproximadamente uma verificação a cada 3 segundos.
3 Limitado a Eddystone e iBeacon.
4 Com suporte por meio das APIs de LocationManager (GPS e REDE).
5 A partir do nível da API 28, as verificações de Wi-Fi são limitadas a quatro chamadas a cada 2 minutos. Desde o Android 10, você pode desabilitar essa limitação no menu de Configurações do desenvolvedor. Veja mais informações na documentação do Azure.
6 Com suporte diretamente por meio do iOS.
7 Com suporte indiretamente por meio de APIs CLLocationManager.

Qual sensor habilitar

A escolha do sensor depende do aplicativo que você está desenvolvendo e da plataforma. Este diagrama mostra um ponto de partida para determinar qual combinação de sensores você pode habilitar, dependendo do cenário de localização:

Diagram that shows enabled sensors for various scenarios.

As seções a seguir apresentam mais informações sobre as vantagens e as limitações de cada tipo de sensor.

GPS

O GPS é a opção preferencial para uso externo. Ao usar o GPS em seu aplicativo, tenha em mente que as leituras do hardware normalmente são:

  • Assíncronas e baixa frequência (menos de 1 Hz).
  • Não confiáveis/ruidosas (em média, desvio padrão de 7 m).

Em geral, o SO do dispositivo e as âncoras espaciais fazem filtragem e extrapolação do sinal de GPS bruto para aliviar esses problemas. Esse processamento extra exige tempo para convergência, portanto, para obter os melhores resultados, você deve fazer o seguinte:

  • Crie um provedor de impressão digital do sensor o mais cedo possível no seu aplicativo.
  • Mantenha o provedor de impressão digital do sensor ativo entre sessões diferentes.
  • Compartilhe o provedor de impressão digital do sensor entre sessões diferentes.

Os dispositivos GPS para consumidores normalmente são imprecisos. Segundo estudo de Zandenbergen e Barbeau (2011), a precisão mediana de celulares que têm o GPS assistido (A-GPS) é de cerca de 7 metros. É um valor muito grande a ser ignorado! Para considerar esses erros de medição, o serviço trata as âncoras como distribuições de probabilidade no espaço de GPS. Portanto, uma âncora é a região de espaço que provavelmente contém a posição GPS real e desconhecida (com mais de 95% de confiança).

O mesmo raciocínio se aplica quando você consulta usando GPS. O dispositivo é representado como outra região de confiança espacial em relação à posição verdadeira do GPS, que é desconhecida. Para descobrir âncoras próximas, localizam-se as âncoras com regiões de confiança próximas o suficiente da região de confiança do dispositivo, conforme ilustrado aqui:

Diagram that illustrates finding anchor candidates by using GPS.

Wi-Fi

No HoloLens e no Android, a intensidade de sinal de Wi-Fi pode ser uma boa maneira de habilitar a relocalização grosseira em locais fechados. A vantagem é a possível disponibilidade imediata de pontos de acesso de Wi-Fi (comum em escritórios e shopping centers, por exemplo) sem configuração adicional.

Observação

O iOS não tem uma API para ler a intensidade do sinal de Wi-Fi, portanto, ele não pode ser usado para a relocalização grosseira por Wi-Fi.

Ao usar o Wi-Fi em seu aplicativo, tenha em mente que as leituras do hardware normalmente são:

  • Assíncronas e baixa frequência (menos de 0,1 Hz).
  • Potencialmente limitadas no nível do sistema operacional.
  • Não confiáveis/ruidosas (em média, desvio padrão de 3 dBm).

As Âncoras Espaciais tentam criar um mapa filtrado de intensidade de sinal de Wi-Fi durante uma sessão para aliviar esses problemas. Para obter melhores resultados, faça o seguinte:

  • Crie a sessão bem antes de inserir a primeira âncora.
  • Mantenha a sessão ativa pelo tempo máximo possível. Ou seja, crie todas as âncoras e a consulta em uma sessão.

Sinalizadores de Bluetooth

A implantação cuidadosa de sinalizadores de Bluetooth é uma boa solução para cenários de relocalização grosseira de grande porte em locais fechados, em que o GPS está ausente ou é impreciso. Também é o único método interno com suporte em todas as três plataformas.

Os sinalizadores normalmente são dispositivos versáteis nos quais tudo pode ser configurado, incluindo UUIDs e endereços MAC. As Âncoras Espaciais do Azure esperam que os beacons sejam identificados exclusivamente pelas UUIDs. Se você não garantir essa exclusividade, provavelmente obterá resultados incorretos. Para melhores resultados:

  • Atribua UUIDs exclusivas aos sinalizadores.
  • Implante os sinalizadores de uma forma que cubra seu espaço de maneira uniforme e de modo que pelo menos três sinalizadores possam ser acessados de qualquer ponto no espaço.
  • Passe a lista de UUIDs de sinalizador exclusivas para o provedor de impressão digital de sensor.

Sinais de rádio como aqueles do Bluetooth são afetados por obstáculos e podem interferir em outros sinais de rádio. Portanto, pode ser difícil determinar se o espaço está coberto uniformemente. Para garantir uma melhor experiência do cliente, recomendamos que você teste manualmente a cobertura dos sinalizadores. Para fazer o teste, percorra o espaço com os dispositivos candidatos e um aplicativo que mostre o Bluetooth dentro do alcance. Ao testar a cobertura, você deve alcançar ao menos três sinalizadores em três posições estratégicas do espaço. O excesso de sinalizadores pode gerar mais interferência entre eles e não necessariamente melhora a precisão da relocalização grosseira.

Os sinalizadores Bluetooth normalmente cobrem 80 metros se nenhum gargalo estiver presente no espaço. Portanto, para um espaço que não tem grandes obstáculos, você pode implantar sinalizadores em um padrão de grade a cada 40 metros.

Sinalizadores com bateria fraca afetam os resultados, portanto, monitore periodicamente a implantação para verificar se há baterias baixas ou sem carga.

As Âncoras Espaciais do Azure rastream somente os sinalizadores Bluetooth que estão na lista de UUIDs de proximidade de sinalizadores conhecidos. Mas sinalizadores mal-intencionados programados para ter UUIDs na lista de permitidos podem prejudicar a qualidade do serviço. Assim, você obterá os melhores resultados em espaços organizados em que é possível controlar a implantação de sinalizador.

Precisão do sensor

A precisão do sinal GPS, durante a criação de âncora e durante as consultas, tem uma influência significativa no conjunto de âncoras retornadas. Por outro lado, as consultas baseadas em Wi-Fi/sinalizadores consideram todas as âncoras que têm pelo menos um ponto de acesso/sinalizador em comum com a consulta. Nesse sentido, o resultado de uma consulta baseada em Wi-Fi/sinalizadores é determinado principalmente pelo intervalo físico dos pontos de acesso/sinalizadores e obstruções ambientais. Esta tabela estima o espaço de pesquisa esperado para cada tipo de sensor:

Sensor Raio de espaço de pesquisa (aproximado) Detalhes
GPS 20 m a 30 m Determinado pela incerteza do GPS, entre outros fatores. Os números indicados são estimativas com a precisão de GPS mediana de telefones celulares com A-GPS: 7 metros.
Wi-Fi 50 m a 100 m Determinado pelo alcance dos pontos de acesso sem fio. Depende da frequência, intensidade do transmissor, obstruções físicas, interferência e assim por diante.
Sinalizadores de BLE 70 m Determinado pelo alcance do sinalizador. Depende da frequência, intensidade da transmissão, obstruções físicas, interferência e assim por diante.