1 pontos por GN⁺ 2024-07-16 | 1 comentários | Compartilhar no WhatsApp

Cálculo de posição usando dados brutos de GPS

Importância do sistema GPS

  • GPS é o Sistema de Posicionamento Global e é usado em diversas aplicações, desde navegação no Google Maps até aplicativos de transporte
  • O GPS é muito preciso e também é usado para medir tectônica de placas e deriva continental
  • O GPS pertence ao governo dos EUA, e o acesso para outros países pode ser restringido por razões geopolíticas
  • Por isso, outros sistemas semelhantes ao GPS foram desenvolvidos, como o GLONASS da Rússia, o Galileo da União Europeia e o BeiDou da China

Sistemas de coordenadas

  • Vários sistemas de coordenadas são usados para representar a posição
  • Latitude/longitude, de uso comum, não é adequada para cálculos matemáticos
  • O sistema de coordenadas ECEF (Earth Centered, Earth Fixed) representa posições usando o centro da Terra como origem
  • O sistema WGS 1984 é o sistema ECEF mais usado

Definição de altitude

  • Ao definir altitude, é necessário definir a superfície de referência
  • São usados o elipsoide de referência e o modelo de geoide
  • O elipsoide de referência não tem significado físico, enquanto o geoide é definido como o conjunto de pontos com o mesmo potencial gravitacional

Latitude e longitude

  • A latitude geodésica é o ângulo entre a normal à superfície do elipsoide e o plano do equador
  • A longitude geodésica é o ângulo entre o meridiano de referência e um meridiano específico
  • A altura geodésica é a altitude medida em relação ao elipsoide

Conversão entre coordenadas geodésicas e cartesianas

  • Converter coordenadas geodésicas em coordenadas cartesianas é simples
  • Converter coordenadas cartesianas em coordenadas geodésicas exige um procedimento iterativo

Sistema de coordenadas local

  • O sistema de coordenadas local é o sistema ENU (East-North-Up), centrado na posição do usuário
  • Há uma forma de converter coordenadas ECEF em coordenadas ENU

Cálculo da posição do usuário usando GPS

Determinação da posição dos satélites

  • A órbita de um satélite é elíptica e é completamente definida por 6 parâmetros de Kepler
  • A posição do satélite é calculada de acordo com o documento de especificação da interface GPS

Cálculo da distância entre o usuário e o satélite

  • O receptor GPS usa os timestamps do sinal do satélite para calcular a distância até o satélite
  • Essa distância é chamada de pseudodistância (pseudorange)
  • Para calcular a posição com precisão, é necessário modelar o offset do relógio do usuário e do satélite, além do atraso atmosférico

Estimativa do offset do relógio do usuário

  • O offset do relógio do usuário é estimado junto com a posição do usuário

Algoritmo de estimativa da posição do usuário e do offset do relógio

  • Define-se uma posição inicial do usuário e um offset inicial do relógio, que são corrigidos iterativamente
  • Para cada satélite, corrige-se a pseudodistância, calcula-se o tempo de transmissão do sinal e calcula-se a posição do satélite
  • Técnicas de álgebra linear são usadas para encontrar uma solução de mínimos quadrados

Observações sobre o código Matlab

  • Algumas equações exigem chamar um solver
  • Por exemplo, calcular a anomalia excêntrica (E) a partir da anomalia média (M) requer um solver

Configuração experimental

  • É necessária uma unidade GPS especial para coletar dados brutos de GPS
  • Os chips NEO-M8T e 6T da u-blox são adequados
  • O utilitário STRSVR do RTKLib é usado para receber e armazenar sinais brutos de GPS

Processamento de dados brutos de GPS

  • O STRSVR armazena dados brutos de GPS no formato RTCM3
  • A biblioteca Matlab goGPS é usada para decodificar os dados RTCM e convertê-los em estruturas de dados do Matlab

Análise dos resultados

  • Analisa-se a variação da posição e do offset do relógio
  • Analisa-se a variação dos componentes leste/norte/cima (E/N/U) da posição
  • Analisa-se ao longo do tempo a variação do offset do relógio

Cálculo de azimute/elevação dos satélites

  • Calcula-se o azimute e a elevação dos satélites no referencial ENU centrado no usuário

Resumo do GN⁺

  • Este texto explica o princípio de funcionamento do sistema GPS e como a posição é calculada
  • Vários métodos de correção são usados para aumentar a precisão dos dados de GPS
  • O texto mostra como processar e analisar dados reais por meio de código Matlab
  • É útil para entender a infraestrutura técnica do sistema GPS
  • Projetos com funcionalidades semelhantes incluem RTKLib e goGPS

1 comentários

 
GN⁺ 2024-07-16
Comentários do Hacker News
  • O Android já oferece acesso à fase da portadora, e isso permite medir com muita precisão a posição relativa entre dispositivos na mesma área

    • Adicionando acelerômetro e giroscópio, é possível medir a posição em tempo real, e como a mudança nas medições de pseudodistância do GNSS é previsível, a precisão não cai muito
    • Isso permite implementar funções interessantes, como fazer um aeromodelo pousar automaticamente na caçamba de uma caminhonete
    • Se o consumo de energia não for uma preocupação tão grande, dá para construir um receptor GNSS bem bom por um custo baixo
  • Há um projeto open source para quem quer construir o próprio receptor GPS

  • É um link que aparece com frequência em comentários sobre GPS, mas por um bom motivo

  • Também há um link alternativo que oferece uma explicação mais interativa

  • Já conheci um pesquisador que coletava dados de GPS de organismos aquáticos que só emergem brevemente e raramente à superfície

    • Registrando os dados brutos e fazendo pós-processamento, é possível reduzir bastante o consumo de energia e o tempo de exposição ao sinal do satélite (o tempo de exposição fica abaixo de 1 segundo)
  • O próximo passo é PPP ou RTK

    • GNSS é uma área interessante que oferece várias possibilidades
  • Há outra boa implementação open source

  • Há uma imagem que mostra o impacto da geometria entre usuário e fonte na incerteza da posição do usuário

    • Seria ótimo se houvesse uma configuração nos aplicativos de mapa do celular para mudar o formato da incerteza de localização de um círculo para uma interseção de arcos
  • Ouvi dizer que o GPS é uma das poucas aplicações do dia a dia em que é preciso levar em conta efeitos da relatividade

    • Os dados gerados já excluem esses efeitos relativísticos
  • Exercício para terraplanistas: expliquem como o mapeamento por GPS do celular funciona se os satélites não orbitam uma Terra esférica