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

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

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

Leitores que trazem outros recetores, solucionadores e sensores para o tipo de cenário receiver-trust. Todos são só de leitura: funções puras sobre bytes ou texto que devolvem a mesma linha cronológica que os leitores de UBX, RINEX, Android e NMEA devolvem, ignorando e contando os registos corrompidos em vez de falharem. Tudo aqui é MODELLED: os formatos são lidos a partir de documentação pública e nenhum resultado é validado face a uma referência independente externa, para além do que está indicado.

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

O que `kshana imu-fit` lê de um registo de IMU estacionária, numa execução real do motor v0.40.0 sobre um registo 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 desvio 0,00296 e as primeiras inclinações de Allan (-0.51 e -0.49; cerca de -0.5 onde domina o ruído branco). A tabela ao lado é o TOML que o comando imprime. O estimador é verificado apenas em registos sintéticos. Consultivo: saída de análise de uma ferramenta de investigação 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 registo de IMU estacionária, numa execução real do motor v0.40.0 sobre um registo 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 desvio 0,00296 e as primeiras inclinações de Allan (-0.51 e -0.49; cerca de -0.5 onde domina o ruído branco). A tabela ao lado é o TOML que o comando imprime. O estimador é verificado apenas em registos sintéticos. Consultivo: saída de análise de uma ferramenta de investigação 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 ficheiro de solução que rnx2rtkp e RTKPOST do RTKLIB escrevem. 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) é transportada na etiqueta. Os ficheiros em graus-minutos-segundos são recusados. As linhas que começam por % são linhas de cabeçalho.

NovAtel OEM7 (format = "novatel")#

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

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

A rotina de CRC foi verificada face ao CRC que a documentação indica para o seu próprio exemplo BESTPOSA (citado, não reproduzido); os testes usam linhas escritas pelo próprio projeto. Não lidos: ASCII abreviado, outros registos. O indicador de jammer é o relatório do próprio recetor, não uma conclusão do Kshana; a concordância com os monitores do Kshana não é validação.

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

Ver 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, depois uma amostra por linha. Colunas (por qualquer ordem, nomes sem distinção de maiúsculas): t_s segundos no relógio do registo do recetor, gx, gy, gz velocidade angular em rad/s, ax, ay, az força específica em m/s². format = "euroc": o formato EuRoC MAV imu0 data.csv (#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. As linhas que não são interpretadas, e as linhas cujo tempo não aumenta, são ignoradas. Ver RECEIVER-TRUST.md para saber como é usado o rumo do giroscópio.

IMU nos cenários híbridos 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 lê esses parâmetros a partir de um registo de IMU parada, para que um cenário possa ser executado com o sensor que realmente se 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 giroscópio 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 registo muito mais longo do que o mínimo). O relatório inclui a taxa e a duração do registo e a inclinação de Allan inicial de cada canal (cerca de -0.5 onde domina o ruído branco); um registo que não esteja parado, ou que seja demasiado curto (menos de 2000 amostras) ou de amostragem irregular, é recusado ou dá parâmetros que as inclinações assinalam. A proveniência da tabela indica o SHA-256 do registo. MODELLED: o estimador é verificado em registos sintéticos de ruído branco com coeficientes conhecidos (recuperados a menos de 10 %), não face a uma referência independente externa. 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 tramas RTCM 3 (a saída de observação de uma estação de base ou de um recetor). 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 necessitam. Os campos de pseudodistância e de fase são saltados, não usados, pelo que o RTCM dá aos monitores de confiança C/N0 e mais nada; não há posição em MSM. As tramas com CRC-24Q errado são ignoradas e contadas.

De onde vem o formato. Não da norma RTCM (um documento pago, não consultado): do descodificador de código aberto pyrtcm 1.2.0, BSD 3-Clause, cuja licença e aviso constam de NOTICE (decisão do titular de 18 de outubro de 2026: "use open decoders"). O pyrtcm declara que as suas tabelas seguem a RTCM 10403,3; o Kshana apoia-se nas tabelas publicadas ao abrigo da licença do pyrtcm e não faz nenhuma alegação sobre a norma. Tempo: o MSM não transporta semana, pelo que as etiquetas indicam GPS TOW <s>; as épocas GLONASS (hora de Moscovo) são passadas para tempo GPS com GPS-UTC = 18 s (o valor desde 2017-01-01).

Verificado face a: o valor de verificação do catálogo do CRC-24Q (123456789 dá 0xCDE703) e, uma só vez durante o desenvolvimento, o descodificador do próprio pyrtcm sobre as mesmas tramas escritas pelo projeto (mesmo C/N0). Os ficheiros de ensaio são escritos pelo projeto; não foi feita nenhuma captura de um recetor real, pelo que o leitor é MODELLED até ter lido uma.