Visualizar a telemetria
Resultado : abra um log e verifique se sua exibição corresponde ao mecanismo real. O visualizador lê arquivos; ele nunca se conecta a servos, comanda hardware ou prevê resultados de ajuste PID.
Instalar e abrir registros
Na raiz do projeto, usando Python 3.12:
macOS / Linux
python3.12 -m venv tools/simulation/.venv
tools/simulation/.venv/bin/python -m pip install -r tools/simulation/requirements.txt
mkdir -p logs/motion
Windows PowerShell
py -3.12 -m venv tools/simulation/.venv
.\tools\simulation\.venv\Scripts\python.exe -m pip install -r tools/simulation/requirements.txt
New-Item -ItemType Directory -Force logs/motion | Out-Null
Assista ao diretório de log em um terminal:
macOS / Linux
tools/simulation/.venv/bin/python tools/simulation/viewer.py live logs/motion --model so101
Windows PowerShell
.\tools\simulation\.venv\Scripts\python.exe tools/simulation/viewer.py live logs/motion --model so101
Um diretório vazio aguarda sua primeira gravação. Inicie o controle de hardware em outro terminal; o visualizador segue o novo log e alterna para as sessões subsequentes. Ele procura arquivos .ndjson nesse diretório, não em seus subdiretórios. Fechar o visualizador não interrompe o controle de hardware.
Para visualizar uma sessão concluída, substitua EVENTS.ndjson pelo seu caminho:
macOS / Linux
tools/simulation/.venv/bin/python tools/simulation/viewer.py play EVENTS.ndjson --model so101
Windows PowerShell
.\tools\simulation\.venv\Scripts\python.exe tools/simulation/viewer.py play EVENTS.ndjson --model so101
Selecione --model so101 para SO-101 ou --model so102 para SO-102 . SO-102 é o padrão. Modelos e malhas são agrupados. Um POSES.json de pose nomeada não é um log do visualizador: reproduza-o por meio do controlador e abra o log de eventos resultante.
Verifique o mapeamento de posição
A calibração e o mapeamento de exibição são separados:
angle = referenceRadians + (counts − referenceCount) × radiansPerCount
As contagens registradas já incluem a correção da posição do servo; não subtraia novamente.
| Modelo | Suposição padrão |
|---|---|
| SO-101 | Na contagem 2048, todas as seis juntas URDF estão em 0°; contagens positivas aumentam o ângulo em 2π/ 4096 radianos por contagem |
| SO-102 | Na contagem 2048: M1 0°, M2 − 3°, M3 1°, M4 1°; rotação do pulso e mandíbulas usam posições de exibição fixas |
SO-101 é rotulado como reference pose assumed: esta é uma suposição, não um alinhamento detectado. A pinça usa ângulo do codificador, abertura não normalizada 0 – 100. O mapa SO-102 vincula os deslocamentos específicos do braço original.
Após a recalibração, combine a referência física com os ângulos URDF. Verifique uma segunda postura e o sinal de um pequeno movimento manual em cada articulação; uma pose correspondente não pode verificar a escala ou a direção. As contagens mínima e máxima do codificador não derivam esses ângulos automaticamente.
Para uma versão personalizada do mapa 2, copie tools/simulation/so101-encoder-map.json ou tools/simulation/encoder-angle-map.json , edite-o e forneça seu caminho:
macOS / Linux
tools/simulation/.venv/bin/python tools/simulation/viewer.py play EVENTS.ndjson --model so101 --mapping MY_MAP.json
Windows PowerShell
.\tools\simulation\.venv\Scripts\python.exe tools/simulation/viewer.py play EVENTS.ndjson --model so101 --mapping MY_MAP.json
MY_MAP.json é o seu mapa com model , joints , fixedJoints correto e encoderCalibration opcional . Cada junta do modelo deve ser mapeada ou corrigida. Alterar apenas os campos de verificação de calibração não corrige a conversão física do ângulo. A seleção de um modelo de visualizador não altera o controlador de hardware ou seu modelo gravitacional.
Interpretar a exibição
A pose medida e a referência ciano são diferentes. O feedback detalhado do C2 contém a trajetória intermediária planejada; compact C1 contém apenas medições, portanto a comparação usa o destino comandado. Erro relativo ao destino final durante o movimento não é erro de rastreamento relativo ao plano.
O visualizador não recria medidas ausentes. Os dados obsoletos são rotulados; os comandos por si só não podem atualizá-lo. Os gráficos retêm até 20 segundos. A reprodução mantém o último quadro sem loop automático; reabrir um arquivo substituído ou truncado.
Teclas: 1 – 6 selecione um motor; Sobreposição de referência G; Gráficos C; Articulações J; M / R posição medida/referência; Qualidade F; Ajuda H. A grade é visual, sem colisões. A geometria é reproduzida com os contatos do simulador e a gravidade desabilitadas.
Verifique: o modelo corresponde ao braço, duas poses físicas e direções articulares são exibidas corretamente e você entende o tipo de feedback. Corrija o mapeamento antes de avaliar o desempenho do controle se essas verificações falharem.
Início da documentação · Revisão de origem: a995f77 . Extension 9.0 .