O framework do Android permite acessar 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 Decímetro de Smartphone do Google
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 com medições GNSS brutas, dados de sensores e informações empíricas precisas vão estar disponíveis publicamente. A participação na competição é 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 a alguns dos campos de medição GNSS brutos é opcional e pode variar com base no 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).
- Delta de distância 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 Samsung Snapdragon 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 do modelo do dispositivo, não de 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 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.
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.
O app GNSS Analysis foi criado no MATLAB, mas não é necessário 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.
)
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.
)
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, 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 o design e a implementação de novos dispositivos. Para gerar o relatório de teste, clique em Make Report.
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.
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.
- Adição de gráfico residual de taxa de pseudodistância.
- As guias separadas para PVT de referência estático ou em movimento foram removidas, facilitando a visualização do tipo de PVT de referência 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 gnsmissionplanning.com/ ou www.gnsplanning.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 estiver 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 as dúvidas mais comuns nas Perguntas frequentes das ferramentas do GNSS Analysis.