Tradução automática, não revista por um falante nativo. O inglês é a referência.

Confiança do receptor e marítimoEditar no GitHubFonte: docs/MACHINE-INPUTS.md

Entradas de máquina e de sensor (0,38)

Leitores que trazem outros receptores, resolvedores e sensores para o tipo receiver-trust. Todos são somente de leitura: funções puras sobre bytes ou texto que devolvem a mesma linha do tempo que os leitores de UBX, RINEX, Android e NMEA devolvem, pulando e contando os registros corrompidos em vez de falhar. Tudo aqui é MODELLED: os formatos são lidos da documentação pública e nenhum resultado é validado contra uma referência independente externa além do que está declarado.

Software de caráter consultivo. Não é um equipamento de navegação homologado. O operador continua responsável pela navegação segura da embarcação.

O que `kshana imu-fit` lê de um registro de IMU estacionária, a partir de uma execução real do motor v0.40.0 sobre um registro fictício (20.000 amostras a 100 Hz, 200 s): o passeio aleatório de velocidade do acelerômetro q_va = 4.02e-06, o passeio aleatório de ângulo do giroscópio q_arw = 9e-08, a instabilidade de viés 0,00296 e as inclinações iniciais de Allan (-0.51 e -0.49; cerca de -0.5 onde o ruído branco domina). A tabela ao lado é o TOML que o comando imprime. O estimador é conferido apenas em registros sintéticos. Consultivo: saída de análise de uma ferramenta de pesquisa e engenharia, não um equipamento de navegação homologado e não um serviço de segurança da vida humana.O que `kshana imu-fit` lê de um registro de IMU estacionária, a partir de uma execução real do motor v0.40.0 sobre um registro fictício (20.000 amostras a 100 Hz, 200 s): o passeio aleatório de velocidade do acelerômetro q_va = 4.02e-06, o passeio aleatório de ângulo do giroscópio q_arw = 9e-08, a instabilidade de viés 0,00296 e as inclinações iniciais de Allan (-0.51 e -0.49; cerca de -0.5 onde o ruído branco domina). A tabela ao lado é o TOML que o comando imprime. O estimador é conferido apenas em registros sintéticos. Consultivo: saída de análise de uma ferramenta de pesquisa e engenharia, não um equipamento de navegação homologado e não um serviço de segurança da vida humana.

RTKLIB .pos (format = "rtklib-pos")#

O arquivo de solução que rnx2rtkp do RTKLIB e o RTKPOST gravam. Lidos: o tempo (calendário yyyy/mm/dd hh:mm:ss.sss, ou semana GPS e segundos da semana), a posição (latitude e longitude em graus com altura, ou ECEF X/Y/Z convertido para geodésico) e o número de satélites. A escala de tempo do cabeçalho da coluna (GPST, UTC, JST) é levada no rótulo. Arquivos em graus-minutos-segundos são recusados. Linhas que começam com % são linhas de cabeçalho.

NovAtel OEM7 (format = "novatel")#

Registros ASCII (#BESTPOSA,...*crc) e binários (cabeçalho AA 44 12), misturados livremente. Os leiautes seguem a documentação pública do OEM7 (docs.novatel.com): os cabeçalhos de mensagem, o CRC de 32 bits e as tabelas de campos de três registros. Registros cujo CRC não coincide são pulados e contados.

Registro ID Usado
BESTPOS 42 estado da solução (só SOL_COMPUTED dá uma posição), latitude, longitude, altura acima do nível médio do mar mais ondulação (a altura da posição é elipsoidal), satélites usados
RANGE 43 C/No por sinal (dB-Hz); sistema a partir dos bits 16-18 do estado de rastreamento, tipo de sinal a partir dos bits 21-25
RXSTATUS 93 o bit 15 de estado do receptor (interferidor detectado) torna-se o self_report da época (interferência 2 sinalizada, 1 não; o RXSTATUS não tem sinalizador de falsificação), comparado com os alarmes do Kshana por receiver-self-report; os 1 bits auxiliares de interferidor (RF1-RF6) são devolvidos em NovatelRead.status

A rotina de CRC foi verificada com o CRC que a documentação indica para o seu próprio exemplo BESTPOSA (citado, não transcrito); os testes usam linhas escritas por nós. Não lidos: ASCII abreviado, outros registros. O indicador de jammer é o relato do próprio receptor, não uma constatação do Kshana; a concordância com os monitores do Kshana não é validação.

GNSS-SDR (format = "gnss-sdr")#

Veja integrations/gnss-sdr/README.md. As saídas NMEA e RINEX do GNSS-SDR já são lidas com nmea e rinex; os fluxos UDP do Monitor e do PVT-monitor (Protocol Buffers) são retransmitidos como linhas JSON por relay.py e lidos com gnss-sdr.

IMU ([log.imu])#

format = "csv": uma linha de cabeçalho com os nomes das colunas e, depois, uma amostra por linha. Colunas (em qualquer ordem, nomes sem distinção entre maiúsculas e minúsculas): t_s segundos no relógio do registro do receptor, gx, gy, gz taxa angular em rad/s, ax, ay, az força específica em m/s². format = "euroc": o layout imu0 data.csv do EuRoC MAV (#timestamp [ns], w_RS_S_x/y/z [rad s^-1], a_RS_S_x/y/z [m s^-2]); a primeira amostra é t_s = 0. Linhas que não podem ser interpretadas e linhas cujo tempo não aumenta são ignoradas. Veja RECEIVER-TRUST.md para saber como o rumo do girômetro é usado.

IMU nos cenários híbrido e de fusão (kshana imu-fit)#

Os cenários hybrid e fusion (UKF de 17 estados) são simulações: recebem parâmetros de ruído do sensor ([accel_quantum], [accel_classical]: bias, q_va, gyro_bias, q_arw, bias_instability), não uma série medida. imu-fit extrai esses parâmetros de um registro de IMU parada, de modo que um cenário pode ser executado com o sensor que você realmente tem:

kshana imu-fit still.csv --format csv --axis x --expected-mean 0 --id bench-imu      # prints the TOML table
kshana imu-fit still.csv --axis z --expected-mean 9.80665 --json                     # whole report

Método: o desvio de Allan sobreposto do sinal integrado (allan::overlapping_adev_curve): q_va = (sigma(tau0) sqrt(tau0))^2, o mesmo para o girômetro z (q_arw), bias e gyro_bias como as médias e bias_instability como o mínimo da curva quando a curva sobe depois dele. q_aa não é ajustado (exige um registro muito mais longo que o piso). O relatório traz a taxa e a duração do registro e a inclinação inicial de Allan de cada canal (cerca de -0,5 onde predomina o ruído branco); um registro que não está parado, ou é curto demais (menos de 2000 amostras) ou tem amostragem irregular, é recusado ou produz parâmetros que as inclinações sinalizam. A proveniência da tabela indica o SHA-256 do registro. MODELLED: o estimador é verificado em registros sintéticos de ruído branco com coeficientes conhecidos (recuperados dentro de 10 %), não em relação a uma referência independente. Disponível na CLI, em Python (imu_fit), em WebAssembly (imu_fit), no MCP (fit_imu_log) e no plugin (/kshana-fit-imu).

RTCM 3 MSM4 e MSM7 (format = "rtcm3")#

Um fluxo de bytes de quadros RTCM 3 (a saída de observações de uma estação base ou de um receptor). Lidas: mensagens MSM4 e MSM7 (GPS 1074/1077, GLONASS 1084/1087, Galileo 1094/1097, SBAS 1104/1107, QZSS 1114/1117, BeiDou 1124/1127, NavIC 1134/1137): a época e a relação portadora-ruído de cada célula de sinal (MSM4: 6 bits, dB-Hz; MSM7: 10 bits, 1/16 dB-Hz), que é o que os monitores de C/N0 precisam. Os campos de pseudodistância e de fase são saltados, não usados; assim, o RTCM fornece aos monitores de confiança o C/N0 e nada mais; não há posição no MSM. Quadros com CRC-24Q inválido são ignorados e contados.

De onde vem o layout. Não da norma RTCM (um documento pago, não consultado): do decodificador de código aberto pyrtcm 1.2.0, BSD 3-Clause, cuja licença e aviso estão em NOTICE (decisão do responsável de 18 out 2026: "usar decodificadores abertos"). O pyrtcm declara que suas tabelas seguem o RTCM 10403,3; o Kshana se apoia nas tabelas publicadas sob a licença do pyrtcm e não faz nenhuma afirmação sobre a norma. Tempo: o MSM não traz semana, portanto os rótulos mostram GPS TOW <s>; as épocas GLONASS (horário de Moscou) são levadas ao tempo GPS com GPS-UTC = 18 s (o valor desde 2017-01-01).

Verificado em relação a: o valor de verificação do catálogo CRC-24Q (123456789 resulta em 0xCDE703) e, uma única vez durante o desenvolvimento, o próprio decodificador do pyrtcm sobre os mesmos quadros escritos por nós (mesmo C/N0). Os fixtures são escritos por nós; nenhuma captura foi feita de um receptor real, de modo que o leitor é MODELLED até ter lido uma.