Skip to content

About

Python + SQL + JavaScript: CSV observations, gap analysis and transactional archive / Observações CSV, análise de lacunas e arquivo transacional. Offline prototype / Protótipo offline.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Go2 PRO Telemetry Replay

Observation analysis · Análise de observações

Workflow illustration: Timed observations → Interval validation → Trajectory report

Checks English · Português · Guided tour / Visita guiada · Validation / Validação

EN: Which trajectory intervals have enough evidence to include?
PT: Quais intervalos de trajetória têm evidência suficiente para inclusão?

Start here · Comece aqui

Goal · Objetivo Where to go · Por onde começar
Understand a real example · Entender um exemplo concreto Walkthrough / Roteiro
Reproduce and compare · Reproduzir e comparar Evidence tour / Visita às evidências
Inspect the checks · Inspecionar as verificações Validation record / Registro de validação · CI
Explore in the browser · Explorar no navegador Public demonstration / Demonstração pública

Example result · Resultado do exemplo: Unique timestamps / Instantes únicos: **6 **; Included distance / Distância incluída: 1.5 m; Excluded intervals / Intervalos excluídos: **2 **

Try a comparison · Experimente uma comparação
EN: Compare nominal, missing observations and conflicting timestamps; inspect exclusions before summing distance.
PT: Compare o nominal, observações ausentes e instantes conflitantes; inspecione exclusões antes de somar distâncias.

Existing application preview / Prévia existente da aplicação

English

A read-only offline workbench for timestamped planar observations. It separates usable trajectory segments from gaps, invalid samples, conflicting timestamps and configured speed outliers.

This is a software workbench in a research portfolio centered on the Unitree Go2 PRO. The current release runs independently of physical hardware.

What works today

  • Timestamp normalization with explicit disorder and duplicate reports.
  • Conflicting same-time observations invalidate the shared anchor.
  • Distance totals include only qualified adjacent intervals.
  • Zero-order-hold replay with age and staleness indicators.
  • A documented export path into Go2 PRO Clearance Bench for contiguous traces.

English workbench chart

Run it locally

Use Node.js 22 or newer. There are no third-party runtime packages to install.

git clone https://github.com/galafis/go2-pro-telemetry-replay.git
cd go2-pro-telemetry-replay
npm test
npm start

Open http://127.0.0.1:4173. The browser includes an English/Portuguese switch. Choose an example, adjust the primary assumption, and select Update. Expand Edit all scenario fields for the complete JSON editor. Invalid imports leave the last valid result visible with an explicit error message. Export both the scenario and report to preserve the experiment.

For headless use:

node scripts/analyze.mjs examples/nominal.json report.json
npm run examples
npm run test:coverage

The command-line exit codes are 0 for completed analysis or review notes, 2 for a valid scenario that needs review, and 1 for invalid input or invocation. A review-required result is still written to the requested report file.

An experiment you can reproduce

The nominal six-sample polyline totals 2.5 m over 5,000 ms. Every segment travels 0.5 m in one second. Reducing maxGapMs from 1,500 to 999 excludes all five intervals; the result reports zero included distance instead of pretending that the observations are continuous.

How the result is calculated

  • Sort observations by timestamp while preserving source order within equal-time groups.
  • Identical repeated samples collapse to one sample. Conflicting samples at one timestamp become an invalid anchor, excluding both neighboring intervals.
  • An interval contributes distance only if both endpoints are valid, its gap is no larger than maxGapMs and its derived speed is no larger than speedLimitMps.
included distance = Σ hypot(Δx, Δy) over accepted adjacent intervals / distância incluída = Σ hipot(Δx, Δy) nos intervalos adjacentes aceitos

The architecture guide explains every rule and boundary case. The data contract documents fields, units, limits and the report envelope. Research scope separates implemented behavior from future platform work.

What the result does not establish

The JSON format is a public project schema, not a Unitree wire protocol. There is no live robot connection, sensor decoder, localization correction or motion control. Included distance is a quality-filtered sum under supplied assumptions and can underestimate travel when data are excluded.

Where this fits

Prepare a measured closed course and record independent observations using supported controls. Confirm any read-only interface before implementing a vendor adapter. Compare timestamp units, coordinate frame, validity flags and sampling intervals. Keep interrupted and incomplete records as part of the evaluation.

Related public project: go2-pro-clearance-bench. Each repository is independently runnable; a link does not imply a live integration. See integration notes for the exact supported exchange, where present.

Back to language navigation


Português

Uma bancada offline, somente de leitura, para observações planas com registro de tempo. Separa segmentos de trajetória utilizáveis de lacunas, amostras inválidas, instantes conflitantes e valores de velocidade acima do limite configurado.

Esta é uma bancada de software de um portfólio de pesquisa centrado no Unitree Go2 PRO. A versão atual funciona independentemente de hardware físico.

O que já funciona

  • Normalização dos instantes com registro explícito de desordem e duplicatas.
  • Observações conflitantes no mesmo instante invalidam a referência compartilhada.
  • Os totais de distância incluem apenas intervalos adjacentes qualificados.
  • Reprodução mantendo a última amostra, com indicação de idade e validade temporal.
  • Caminho de exportação documentado para o Go2 PRO Clearance Bench em trajetórias contínuas.

Gráfico da bancada em português

Executar localmente

Use Node.js 22 ou mais recente. Não há pacotes externos de execução para instalar.

git clone https://github.com/galafis/go2-pro-telemetry-replay.git
cd go2-pro-telemetry-replay
npm test
npm start

Abra http://127.0.0.1:4173. O navegador oferece alternância entre português e inglês. Escolha um exemplo, ajuste a hipótese principal e selecione Atualizar. Expanda Editar todos os campos do cenário para acessar o editor JSON completo. Importações inválidas mantêm o último resultado válido visível com mensagem explícita de erro. Exporte o cenário e o relatório para preservar o experimento.

Para usar sem interface gráfica:

node scripts/analyze.mjs examples/nominal.json report.json
npm run examples
npm run test:coverage

Os códigos de saída são 0 para análise concluída ou com notas, 2 para cenário válido que exige revisão e 1 para entrada ou chamada inválida. Resultados que exigem revisão também são gravados no arquivo de relatório solicitado.

Um experimento reproduzível

A linha poligonal nominal de seis amostras totaliza 2,5 m em 5.000 ms. Cada segmento percorre 0,5 m em um segundo. Reduzir maxGapMs de 1.500 para 999 exclui os cinco intervalos; o resultado informa distância incluída igual a zero, sem presumir continuidade das observações.

Como o resultado é calculado

  • Ordene as observações por instante, preservando a ordem de origem dentro dos grupos de mesmo instante.
  • Amostras repetidas idênticas são consolidadas. Amostras conflitantes no mesmo instante criam uma referência inválida, excluindo os dois intervalos vizinhos.
  • Um intervalo contribui para a distância somente se os dois extremos forem válidos, o intervalo não exceder maxGapMs e a velocidade derivada não exceder speedLimitMps.
included distance = Σ hypot(Δx, Δy) over accepted adjacent intervals / distância incluída = Σ hipot(Δx, Δy) nos intervalos adjacentes aceitos

O guia de arquitetura explica todas as regras e os casos limite. O contrato de dados documenta campos, unidades, limites e o formato do relatório. O escopo de pesquisa separa funcionalidades implementadas de futuras etapas com a plataforma.

O que o resultado não comprova

O formato JSON é um esquema público do projeto, não um protocolo de comunicação da Unitree. Não há conexão com robô, decodificação de sensores, correção de localização ou controle de movimento. A distância incluída é uma soma filtrada segundo hipóteses informadas e pode subestimar o percurso quando dados são excluídos.

Como este projeto se conecta ao portfólio

Prepare um percurso fechado medido e registre observações independentes usando controles compatíveis. Confirme qualquer interface de leitura antes de implementar um adaptador do fabricante. Compare unidades de tempo, sistema de coordenadas, indicadores de validade e intervalos de amostragem. Mantenha registros interrompidos e incompletos na avaliação.

Projeto público relacionado: go2-pro-clearance-bench. Cada repositório funciona independentemente; um link não implica integração em tempo real. Consulte as notas de integração para conhecer as trocas efetivamente suportadas, quando existentes.


Reproducible examples · Exemplos reproduzíveis

Example · Exemplo Result · Resultado Reproduce · Reproduzir
Closed course
Percurso fechado
complete Input · Entrada · Report · Relatório
Missing observations
Observações ausentes
review-notes Input · Entrada · Report · Relatório
Conflicting timestamp
Instante conflitante
review-required Input · Entrada · Report · Relatório

Project guide · Guia do projeto

Document · Documento Content · Conteúdo
Architecture · Arquitetura Domain rules, algorithms and boundaries · Regras, algoritmos e limites
Data contract · Contrato de dados Fields, units and JSON format · Campos, unidades e formato JSON
Schema Structural JSON Schema · Esquema estrutural JSON
Validation · Validação Behavioral tests and review protocol · Testes de comportamento e protocolo de revisão
Research scope · Escopo de pesquisa Platform relationship and next steps · Relação com a plataforma e próximas etapas
Integration · Integração Public artifact exchange · Troca de artefatos públicos
Contributing · Contribuições Development and review · Desenvolvimento e revisão
Security · Segurança Privacy and responsible reports · Privacidade e relatos responsáveis
Changelog · Histórico Versioned changes · Alterações por versão

Maintainer · Responsável

Gabriel Demetrios Lafis · Brazil / Brasil
[email protected] · GitHub

Independent work; institutional contact does not imply institutional or vendor endorsement.
Trabalho independente; o contato institucional não implica endosso de instituição ou fabricante.

Worked examples with expected metrics · Exemplos comentados com métricas esperadas

About

Python + SQL + JavaScript: CSV observations, gap analysis and transactional archive / Observações CSV, análise de lacunas e arquivo transacional. Offline prototype / Protótipo offline.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages