Medições GNSS brutas

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

Você pode encontrar as ferramentas no repositório GPS Measurement Tools no GitHub, que inclui o código-fonte de uma versão preliminar do GnssLogger e executáveis para o app GNSS Analysis para Linux, Windows e macOS. Manual de instalação e do usuário.

Desafio do Google Smartphone Decimeter

O Google, a divisão de satélites do Instituto de Navegação e a Kaggle estão patrocinando o 3º Desafio de Decímetro de Smartphone 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 brutas, dados de sensores e informações empíricas precisas estarão disponíveis ao público. A participação no concurso é aberta a todos. Os participantes são incentivados a enviar um resumo para a sessão intitulada "Desafio do smartphone decimétrico", 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 será ativada em 12 de setembro de 2023, às 15h30 (MDT).

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

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

O suporte para alguns dos campos brutos de medição 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 controle de ganho automático (AGC).
  • Intervalo delta acumulado (ADR, na sigla em inglês) ou fase da operadora.

A tabela abaixo lista alguns exemplos de dispositivos Android e mostra o nível de suporte a 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 Samsung Galaxy Exynos oferece ADR nos últimos anos. A versão do Samsung Snap Dragon ainda não oferece ADR.

Para mais informações sobre as definições de campos de medições brutas fornecidos por dispositivos Android, consulte Sistemas Globais de Navegação por Satélite.

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 sobre a calibragem da antena

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

Ao usar GnssAntennaInfo, tenha em mente os seguintes comportamentos do sistema. Elas foram criadas para melhorar a privacidade do usuário.

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

Registrar medições brutas

É possível usar o Android Studio para criar um app que colete medições GNSS brutas e outros dados de local e os registre em um arquivo. Para conferir um exemplo de código-fonte de um app assim, consulte Ferramentas de medição de GPS.

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

Depois de capturar o registro de GNSS com o GNSS Logger, você pode copiar os arquivos de registro do dispositivo para o computador e analisar melhor. No GNSS Logger, você pode enviar os arquivos para si por e-mail ou salvá-los no Google Drive. Como alternativa, você pode salvar os arquivos usando o app de gerenciamento de arquivos do dispositivo ou usar o Android Debug Bridge (ADB), como 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 de GNSS, como mostrado na Figura 1.

É possível fazer o download do app para os 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, mas você não precisa ter o MATLAB para executá-lo. O app é compilado em um executável que instala uma cópia do MATLAB Runtime.

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.
  • Controlar a posição de referência, a velocidade e o tempo (PVT) 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 fornece 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 por meio de 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 dos Estados Unidos (NMEA, na sigla em inglês) com PVT de referência de verdade.
  • O deslocamento do relógio em espera que mede 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 de mínimos quadrados ponderados, derivados das pseudodistâncias brutas. A ponderação é feita usando a incerteza informada de cada medição, que faz parte da especificação 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, conforme 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 aos comparativos conhecidos. O relatório de teste é útil para fabricantes de dispositivos, que podem usá-lo à medida que iteram 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 Compare mostra uma comparação lado a lado (veja a Figura 5) de C/No de vários arquivos de registro GNSS, o 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 projeto Ferramenta de Medição de GPS (em inglês) oferece um exemplo de código aberto do MATLAB que você pode usar para fazer 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:

  • A GnssAnalysisTool foi criada no Matlab R2022a, dando acesso a novos recursos:
  • A janela de status rola automaticamente: a mensagem de status mais recente está sempre visível.
  • Adicionamos uma tabela de comparações C/N0 por constelação e comparamos L1 a L5.
  • Gráfico residual da taxa de pseudodistância adicionado.
  • As guias separadas para PVT de referência estático ou em movimento foram removidas. Agora é mais fácil saber qual tipo de PVT de referência foi selecionado.
  • Os resultados de "Fazer denúncia" foram movidos de HTML para a janela de status.
  • A guia "Planner de missão" foi removida. Use gnssmissionplanning.com/ ou www.gnssplanning.com/.
  • Correções relacionadas à análise de arquivos de observação RINEX.
  • Retorno à fonte de efemérides do CDDIS da NASA para GPS e GLO quando o BKG não está funcionando.
  • Mover de igs.bkg.bund.de para igs-ftp.bkg.bund.de
  • Não saia da análise se o download de dados de posição GAL, QZSS ou BDS falhar.
  • Criar análise de CNo da antena mesmo que o chipset não ofereça suporte a BaseBandCNo

Manual de instalação e do usuário.

Enviar feedback

Queremos melhorar a compatibilidade do GNSS no Android. Informe problemas com a compatibilidade do GNSS no Android usando o rastreador de problemas de GNSS. 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, comente sobre sua experiência respondendo a uma pesquisa rápida. Se você tiver outras dúvidas ou alguma solicitação de ajuda, consulte Recursos de suporte para desenvolvedores.

Você pode encontrar respostas para perguntas frequentes nas Perguntas frequentes sobre as Ferramentas do GNSS Analysis (em inglês).