Medições GNSS brutas

O framework do Android oferece acesso a medições GNSS brutas em vários dispositivos Android.

Você pode encontrar as ferramentas no repositório de Ferramentas de medição de GPS no GitHub, que inclui o código-fonte de uma versão preliminar do GnssLogger e executáveis para o app GNSS Analysis para computador para Linux, Windows e macOS (links em inglês). Instalação e manual do usuário.

Desafio do deciômetro do smartphone do Google

O Google, a Divisão de Satélites do Instituto de Navegação, e a Kaggle estão patrocinando o 3o Desafio de Deciômetro de Smartphones no ION GNSS+. A competição começa em 12 de setembro de 2023 e termina em 23 de maio de 2024. Mais de 150 novos rastros contendo medições GNSS brutos, dados de sensores e informações empíricas precisas estarão disponíveis publicamente. A participação no concurso é aberta a todos. Incentivamos os participantes a enviar um resumo da sessão intitulada "Smartphone Decimeter Challenge", que vai acontecer no ION GNSS+ 2024.

Para mais informações, incluindo regras e regulamentos, acesse a página da competição no Kaggle, que vai entrar ao ar no dia 12 de setembro de 2023, às 15h30 (horário de Brasília).

Dispositivos Android compatíveis com medições GNSS brutas

O suporte a medições GNSS brutas é obrigatório em dispositivos que executam o Android 10 (API de nível 29) ou versões mais recentes. No Android 9 (nível 28 da API) e versões anteriores, a compatibilidade com medições GNSS brutas é obrigatória para todos os dispositivos Android com hardware a partir do ano 2016. Atualmente, mais de 90% dos smartphones Android têm medidas brutas.

O suporte para alguns dos campos brutos de medição de GNSS é opcional e pode variar de acordo com o chipset GNSS usado. Confira alguns exemplos desses campos:

  • Pseudodistância e taxa de pseudodistância.
  • Mensagem de navegação.
  • Valor do controlador de ganho automático (AGC, na sigla em inglês).
  • Intervalo delta acumulado (ADR, na sigla em inglês) ou fase da operadora.

A tabela abaixo lista alguns exemplos de dispositivos Android e mostra a compatibilidade com medições GNSS brutas:

Modelo Versão do Android CAG ADR (fase da operadora) L5 Sistemas globais
Google Pixel 4/5/6/7 12 sim sim sim GPS
GLO
GAL
BDS
QZS
Xiaomi Mi 9 9 sim não sim GPS
GLO
GAL
BDS
QZS
Xiaomi Mi 8 8.1 não sim sim GPS
GLO
GAL
BDS
QZS
Huawei P30 Pro 9 não sim sim GPS
GLO
GAL
BDS
Huawei Mate 20 9 não sim sim GPS
GLO
GAL
BDS
One Plus 7 Pro 9 sim não sim GPS
GLO
GAL
One Plus 7 9 sim não sim GPS
GLO
GAL
Samsung Galaxy S20/S21 Ultra (Exynos)* 12 sim sim sim GPS
GLO
GAL
BDS
QZS
Samsung Galaxy S9 (Exynos)* 8.0 não sim não GPS
GLO
GAL
QZS
Samsung Galaxy S9+ 8.0 não não não GPS
GLO
GAL

* A versão do Samsung Galaxy Exynos fornece ADR nos últimos anos. A versão do Samsung Snapdragon ainda não oferece ADR.

Para mais informações sobre as definições de campos de medições brutas fornecidas por dispositivos Android, consulte Global Navigation Satellite Systems (em inglês).

Fabricantes de equipamento original (OEMs), desenvolvedores e pesquisadores podem usar as ferramentas desta página para testar novos designs de smartphone, validar recursos, desenvolver novos algoritmos, avaliar melhorias na implementação do sistema GNSS e criar apps de valor agregado.

Exemplo de código de cliente SUPL

O Suplclient (em inglês) é uma amostra de código que acessa supl.google.com para conseguir efemérides em tempo real. A classe SuplTester mostra um exemplo de como usar o SUPL Client Project. O SuplTester configura as especificações de conexão TCP do SUPL e, em uma determinada latitude e longitude, envia uma solicitação SUPPL LPP e imprime a resposta do servidor SUPL.

Informações de calibração da antena

No Android 11 (nível 30 da API) e versões mais recentes, é possível usar a classe GnssAntennaInfo para acessar as características da antena, como coordenadas de deslocamento do centro da fase (PCO, na sigla em inglês), correções da variação do centro da fase (PCV, na sigla em inglês) e do ganho de sinal. Essas correções podem ser aplicadas às medições brutas para melhorar a precisão.

Ao usar GnssAntennaInfo, não se esqueça dos comportamentos do sistema abaixo. Elas foram projetadas para melhorar a privacidade do usuário.

  • As características fornecidas por essa API são específicas para o modelo de dispositivo, não para um dispositivo individual.

Registrar medições brutas

Você pode usar o Android Studio para criar um app que capture medições GNSS brutas e outros dados de localização e as registre em um arquivo. Para ver um exemplo do código-fonte desse aplicativo, consulte Ferramentas de medição de GPS.

O GNSSLogger do Google é um app de exemplo desenvolvido com essa funcionalidade. Para acessar a saída GNSS com o app de amostra, seu dispositivo precisa ser compatível com medições GNSS brutas.

Depois de capturar o registro GNSS com o GNSS Logger, você pode copiar os arquivos de registro do dispositivo para o computador para análise posterior. No GNSS Logger, você pode enviar os arquivos para si mesmo por e-mail ou salvá-los no Google Drive. Como alternativa, você pode salvar os arquivos usando o app de gerenciamento de arquivos no dispositivo ou usar o Android Debug Bridge (adb), conforme explicado em Copiar arquivos de/para um dispositivo.

Analisar as medições brutas

O app GNSS Analysis lê as medições brutas de GPS/GNSS coletadas pelo GNSS Logger e as usa para analisar o comportamento do receptor, conforme mostrado na Figura 1.

É possível fazer o download do app para sistemas Linux, Windows e macOS.

GNSS Logger e GNSS Analysis

Figura 1. O GNSS Logger coleta as medições que podem ser consumidas pelo GNSS Analysis.

O app GNSS Analysis é criado no MATLAB (em inglês), mas você não precisa ter o MATLAB para executá-lo. O app é compilado em um executável que instala uma cópia do ambiente de execução MATLAB.

Painel de controle do GNSS Analysis

O painel de controle do GNSS Analysis, mostrado na Figura 2, permite gerenciar recursos do app, como:

  • Selecionar quais satélites são exibidos.
  • Controle a posição, a velocidade e o tempo de referência (PVT, na sigla em inglês) usados para calcular erros de medição.
  • Gerar relatórios de análise.
  • Definir uma janela nos dados entre os horários de início e término.

Painel de controle do GNSS Analysis)

Figura 2. Painel de controle do GNSS Analysis.

Gráficos interativos do GNSS Analysis

O app GNSS Analysis oferece gráficos interativos organizados nas colunas de radiofrequência (RF), relógios e medições, como mostrado na Figura 3.

Gráficos interativos do GNSS Analysis)

Figura 3. App GNSS Analysis exibindo gráficos interativos.

A coluna "RF" mostra os seguintes dados:

  • Para cada constelação, os quatro satélites com os sinais mais fortes.
  • Para cada satélite, o gráfico de tempo da taxa de densidade operadora-ruído (C/No).
  • Skyplot com as posições dos satélites.

A coluna "Clock" mostra os seguintes dados:

  • Pseudodistâncias.
  • A frequência de deslocamento do relógio do receptor, que é calculada usando uma das seguintes posições de referência:

    • Posição média calculada automaticamente
    • Latitude, longitude e altitude inseridas pelo usuário
    • Arquivo da Associação Nacional de Eletrônicos Marinhos (NMEA, na sigla em inglês) com PVT de referência de verdade.
  • O deslocamento do relógio em espera que mantém o tempo em que o receptor redefine o ciclo de trabalho do oscilador principal.

A coluna "Measurements" mostra os seguintes dados:

  • Os resultados da posição dos mínimos quadrados ponderados, obtidos das pseudodistâncias brutas. A ponderação é feita usando a incerteza relatada de cada medição, que faz parte das especificações da API de medição bruta.
  • Os erros de cada pseudodistância para cada medição.
  • Os erros de cada taxa de pseudodistância para cada medição.

Relatório de teste do GNSS Analysis.

O GNSS Analysis pode gerar um relatório de teste, como mostrado na Figura 4, que avalia a implementação da API, o sinal recebido, o comportamento do relógio e a precisão da medição. Para cada caso, o app informa se o receptor passou ou falhou no teste com base no desempenho medido em relação às comparações conhecidas. O relatório de teste é útil para fabricantes de dispositivos, que podem usá-lo durante a iteração no design e na implementação de novos dispositivos. Para gerar o relatório de teste, clique em Make Report.

Relatório de teste do GNSS Analysis.

Figura 4. Relatório de teste do GNSS Analysis.

A guia Comparar fornece uma comparação lado a lado, mostrada na figura 5, de C/Não de vários arquivos de registro GNSS, que é útil ao comparar o desempenho de RF de vários dispositivos.

Comparação lado a lado de dados C/No

Figura 5. Comparação lado a lado dos dados C/No de vários arquivos de registro.

Tem interesse no código-fonte? O GPS Measurement Tool Project oferece um exemplo de código aberto do MATLAB que pode ser usado para realizar as seguintes ações com sinais de constelação de GPS:

  • Ler dados coletados com a amostra de app GNS Logger.
  • Calcular e visualizar pseudodistâncias.
  • Calcular a posição e a velocidade dos mínimos quadrados ponderados.
  • Visualizar e analisar a fase da operadora.

Notas da versão do app GNSS Analysis v4.6.0.1

A versão 4.6.0.1 do app GNSS Analysis inclui as seguintes atualizações:

  • Criação da GnssAnalysisTool no Matlab R2022a, que fornece acesso a novos recursos:
  • A janela de status rola automaticamente: a mensagem de status mais recente está sempre visível.
  • Adição de uma tabela de comparações C/N0, por constelação, e comparando L1 a L5.
  • Gráfico de residual da taxa de pseudodistância adicionada.
  • Removemos as guias separadas de PVT de referência estacionário ou em movimento, facilitando a visualização do tipo de PVT de referência selecionado.
  • Os resultados de “Make Report” foram movidos do HTML para a janela de status.
  • Removida a guia Planejador de missões. Acesse gnssmissionplanning.com/ ou www.gnssplanning.com/.
  • Correções relacionadas à análise do arquivo de observação RINEX.
  • Substituto da fonte de ephemeris da NASA CDDIS para GPS e GLO, quando o BKG não está funcionando.
  • Mudar de igs.bkg.bund.de para igs-ftp.bkg.bund.de
  • Não saia da análise se houver falha no download de efeméricas da gal, do QZSS ou do BDS.
  • Cria análise de CNo da antena mesmo que o chipset não seja compatível com BaseBandCNo

Instalação e manual do usuário.

Enviar feedback

Queremos melhorar a compatibilidade do GNSS no Android. Informe sobre problemas com a compatibilidade com GNSS no Android usando o Issue Tracker do GNSS (em inglês). Verifique se seu problema já foi abordado na seção Perguntas frequentes (em inglês) antes de postá-lo.

Se você já usou as ferramentas do GNSS Analysis, responda a uma breve pesquisa para dar seu feedback. Se você tiver outras dúvidas ou uma solicitação de suporte, consulte Recursos de suporte ao desenvolvedor.

Você pode encontrar respostas para perguntas frequentes nas Perguntas frequentes sobre as ferramentas do GNSS Analysis.