Medições GNSS brutas

O framework do Android permite acessar medições GNSS brutas em vários dispositivos Android.

Este artigo lista os dispositivos Android compatíveis com medições GNSS brutas, assim como ferramentas para registrar e analisar dados GNSS. Você pode encontrar as ferramentas no repositório GPS Measurement Tools no GitHub, que inclui o APK GNSS Logger, o app GNSS Analysis para Linux, Windows e macOS e o Manual do usuário e de instalação (links 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.

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

Antes de acessar qualquer saída bruta de GNSS, é preciso saber se o dispositivo é compatível com a coleta desses dados. A maioria dos dispositivos fabricados a partir de 2016 e vendidos com o Android 7.0 ou versões posteriores fornece dados brutos de GNSS.

Dependendo do dispositivo, as medições GNSS brutas podem incluir todos ou alguns dos seguintes dados:

  • Pseudodistância e taxa de pseudodistância.
  • Mensagens de navegação.
  • Delta de distância acumulado (ADR, na sigla em inglês) ou operadora.
  • Relógio de hardware (HW).

A tabela abaixo lista os dispositivos compatíveis com as medições GNSS brutas e os dados que elas disponibilizam. Esta não é uma lista completa. Entre em contato com o fabricante para saber se um dispositivo específico é compatível com medições GNSS brutas.

Modelo Versão do Android CAG Mensagens de navegação ADR (fase da operadora) L5 Sistemas globais
Xiaomi Mi 9 9.0 sim não não sim GPS
GLOGALBDSQZS
Samsung Galaxy Note 10+ 9.0 sim não não sim GPS
GLOGAL
Samsung Galaxy Note 10 9.0 sim não não sim GPS
GLOGAL
Samsung Galaxy S10e 9.0 sim não não não GPS
GLOGAL
Samsung Galaxy S10+ 9.0 sim não não não GPS
GLO
Samsung Galaxy S10 9.0 sim não não não GPS
GLOGAL
Huawei P30 Pro 9.0 não não sim sim GPS
GLOGALBDS
LG G8 ThinQ 9.0 sim não não não GPS
GLOGAL
One Plus 7 Pro 9.0 sim não não sim GPS
GLOGAL
One Plus 7 9.0 sim não não sim GPS
GLOGAL
Huawei Mate 20 X 9.0 não sim sim sim GPS
GLOGALQZS
Huawei Mate 20 RS (Porsche Design) 9.0 não não sim sim GPS
GLOGALBDS
Huawei Mate 20 Pro 9.0 não não sim sim GPS
GLOGALBDS
Huawei Mate 20 9.0 não não sim sim GPS
GLOGALBDS
Huawei Mate RS (Porsche Design) 8.1 não sim sim não GPS
GLO GAL
Pixel 3 XL 9.0 sim não não não GPS
GLOGALBDS
Pixel 3 9.0 sim não não não GPS
GLOGALBDS
Vivo X21 9.0 não não não não GPS
GLOBDS
OPPO R15 Pro 9.0 não não não não GPS
GLOGALBDS
Xiaomi Mi 8 8.1 não sim sim sim GPS
GLOGALBDSQZS
LG V40 ThinQ 8.1 não não não não GPS
GLOGALQZS
OnePlust 6T 9.0 não não não não GPS
GLOGALQZS
Samsung Note 9 8.1 não não não não GPS
GLOGAL QZSSBAS
LG G7 ThinQ 8.0 não não não não GPS
GLO
Xiaomi Mix 2S 9.0 não não não não GPS
GLOGALSBAS
Huawei P20 8.1 não sim sim não GPS
GLOQZS
Samsung Galaxy S9 (Exynos)1 8.0 não sim sim não GPS
GLOGALQZS
Samsung Galaxy S9+ 8.0 não não não não GPS
GLOGAL
Sony Xperia XZ2 8.0 não não não não GPS
GLOGALQZS
OPPO R15 9.0 não não não não GPS
GLOGALBDS
HTC U11 Plus 8.0 não não não não GPS
GLO
HTC U11 Life 8.0 não não não não GPS
GLO
Huawei Mate 10 8.0 não sim sim não GPS
GLO
Huawei Mate 10 Pro 8.0 não sim sim não GPS
GLOQZS
Google Pixel 2 XL 8.0 sim não não não GPS
GLOGALBDSQZS
Google Pixel 2 8.0 sim não não não GPS
GLOGALBDSQZS
Sony Xperia XZ1 8.0 não não não não GPS
GLOGALBDS
Samsung Note 8 (Exynos) 7.1 não sim sim não GPS
GLOGALBDS
Samsung Note 8 (QCOM) 7.1 não não não não GPS
GLOGALBDS
LG V30 7.1.2 não não não não GPS
GLOGAL
Moto X4 2017 7.1 não não não não GPS
GLO GAL
Essential PH-1 7.1 não não não não GPS
GLO
Moto Z2 7.1 não não não não GPS
GLO
HTC U11 7.1 não não não não GPS
GLO
OPPO R11 7.1 não não não não GPS
GLOGALBDS
Huawei Honor 9 7.0 não sim sim não GPS
GLO
Samsung S8 (Exynos)2 7.0 não sim sim não GPS
GLOGALBDSQZS
Samsung S8 (QCOM)3 7.0 não não não não GPS
Huawei P10 7.0 não sim sim não GPS
GLOGALBDSQZS
Huawei P10 Lite 7.0 não não não não GPS
Huawei Honor 8 7.0 não sim sim não GPS
GLOBDS
Huawei Mate 9 7.0 não sim sim não GPS
GLOBDS
Huawei P9 7.0 não sim sim não GPS
GLOBDS
Google Pixel XL 7.0 não não não não GPS
Google Pixel 7.0 não não não não GPS
Nexus 6P4 7.0 não não não não GPS
Nexus 5X4 7.0 não não não não GPS
Nexus 9 (versão sem rede celular)5 7.1 não sim sim não GPS
GLO

1 Exynos, dispositivos da EMEA, modelos: G960F ou G965F
(em inglês) 2 Exynos, dispositivos da EMEA, modelos: G950F ou G955F
(em inglês) 3 QCOM, dispositivos dos EUA, modelos: G950U ou G955U
(em inglês) 4 Medições brutas só são fornecidas quando uma posição de GPS está disponível.
5 Não há ciclo de trabalho. Funciona apenas na versão com rede celular do Nexus 9.

Para saber mais sobre os dados disponibilizados por um dispositivo, consulte Sistema Global de Navegação por Satélite (em inglês).

Registrar medições brutas

É possível usar o Android Studio para criar um app que colete medições GNSS brutas e as registre em um arquivo. O projeto Ferramentas de medição de GPS (em inglês) inclui o GNSS Logger, uma amostra de app que ensina a registrar dados relacionados ao local do Android, incluindo medições GNSS brutas.

Faça o download do APK do GNSS Logger (em inglês) para instalar o app de amostra no dispositivo.

Para acessar a saída de GNSS com o app de amostra, seu dispositivo precisa ser compatível com medições GNSS brutas. Para saber mais, consulte Dispositivos Android compatíveis com medições GNSS brutas.

Depois de coletar o registro de GNSS com o GNSS Logger, você pode copiar os arquivos de registros do dispositivo para o computador caso queira fazer análises mais detalhadas. 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.

Para procurar a amostra de código-fonte, consulte a pasta GNSSLogger no repositório Ferramentas de medição de GPS (links em inglês) no GitHub.

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.

Você pode fazer o download do app para os sistemas Linux, Windows e macOS ou do Manual do usuário e de instalação (links em inglês).

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 foi criado no MATLAB (em inglês), mas não é preciso 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 oferece gráficos interativos organizados nas colunas "radio frequency (RF)", "clocks" e "measurements", 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 por meio da 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, 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 aos comparativos conhecidos. O relatório de teste é útil para fabricantes de dispositivos, que podem usá-lo ao iterar por meio da criação e da 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 GNS Analysis v3.0.3.0

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

  • Adição de gráficos:
    • Posição do filtro de Kalman do PVT dos mínimos quadrados ponderados
    • Posição relativa dos mínimos quadrados ponderados do ADR (fase da operadora)
    • Residual de diferença única do ADR (fase da operadora)
  • Adição de posições de atualização para gerar gráficos de posicionamento com base nos satélites selecionados.
  • Adição do controle de máscara de elevação.
  • Otimização do download de arquivos de efemérides, usando descompactação nativa dentro do ambiente de execução do Matlab para todos os arquivos BKG, *.gz e ZIP.
  • Adição da posição do dispositivo como uma opção para PVT de referência.
  • Adição do recurso CustomDataFilter.m, filtrando qualquer um dos valores do cabeçalho # Raw.

Enviar feedback

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

Você pode encontrar respostas para as dúvidas mais comuns nas Perguntas frequentes das ferramentas do GNSS Analysis (em inglês).