Ver la telemetría
Resultado: abra un registro y verifique que su visualización corresponde al mecanismo real. El espectador lee archivos; nunca se conecta a servos, controla hardware ni predice resultados de ajuste PID.
Instalar y abrir registros
Desde la raíz del proyecto, 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
Mire el directorio de registro en una 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
Un directorio vacío espera su primera grabación. Iniciar el control de hardware en otro terminal; el espectador sigue el nuevo registro y cambia a sesiones posteriores. Busca archivos .ndjson en ese directorio, no en sus subdirectorios. Cerrar el visor no detiene el control del hardware.
Para ver una sesión completa, reemplace EVENTS.ndjson con su ruta:
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
Seleccione --model so101 para SO-101 o --model so102 para SO-102. SO-102 es el predeterminado. Se agrupan modelos y mallas. Un POSES.json de pose con nombre no es un registro de visor: reprodúzcalo a través del controlador y luego abra el registro de eventos resultante.
Verifique el mapeo de posición
La calibración y el mapeo de visualización son independientes:
angle = referenceRadians + (counts − referenceCount) × radiansPerCount
Los conteos registrados ya incluyen la corrección de la posición del servo; no lo restes nuevamente.
| modelo | Suposición predeterminada |
|---|---|
| SO-101 | En el recuento 2048, las seis uniones URDF están en 0°; los recuentos positivos aumentan el ángulo en 2π/4096 radianes por recuento |
| SO-102 | En el conteo 2048: M1 0°, M2 −3°, M3 1°, M4 1°; El rodillo de muñeca y las mandíbulas utilizan posiciones de visualización fijas. |
SO-101 está etiquetado como reference pose assumed: esto es una suposición, no se ha detectado una alineación. La pinza utiliza un ángulo de codificador, no una apertura normalizada de 0 a 100. El mapa SO-102 vincula las compensaciones específicas del brazo original.
Después de la recalibración, haga coincidir la referencia física con los ángulos URDF. Compruebe una segunda postura y el signo de un pequeño movimiento manual en cada articulación; una pose coincidente no puede verificar la escala o la dirección. Los recuentos mínimo y máximo del codificador no derivan estos ángulos automáticamente.
Para un mapa personalizado de la versión 2, copie tools/simulation/so101-encoder-map.json o tools/simulation/encoder-angle-map.json, edítelo y proporcione su ruta:
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 es su mapa con model, joints, fixedJoints y encoderCalibration opcionales. Cada junta modelo debe ser mapeada o reparada. Cambiar solo los campos de verificación de calibración no corrige la conversión de ángulo físico. Seleccionar un modelo de visor no cambia el controlador de hardware ni su modelo de gravedad.
Interpretar la pantalla
La pose medida y la referencia cian son diferentes. La retroalimentación detallada de C2 contiene la trayectoria planificada intermedia; compact C1 contiene únicamente mediciones, por lo que la comparación utiliza el destino ordenado. El error relativo al destino final durante el movimiento no es un error de seguimiento relativo al plan.
El espectador no recrea las medidas faltantes. Los datos obsoletos están etiquetados; Los comandos por sí solos no pueden actualizarlo. Los gráficos se conservan hasta 20 segundos. La reproducción retiene el último fotograma sin realizar un bucle automático; volver a abrir un archivo reemplazado o truncado.
Teclas: 1–6 seleccionar un motor; superposición de referencia G; gráficos C; juntas J; M/R pose medida/referencia; calidad F; H ayuda. La cuadrícula es visual, sin colisiones. La geometría se reproduce con los contactos del simulador y la gravedad desactivada.
Compruebe: el modelo coincide con el brazo, dos posturas físicas y direcciones de las articulaciones se muestran correctamente y comprende el tipo de retroalimentación. Corrija el mapeo antes de juzgar el desempeño del control si estas comprobaciones fallan.
Inicio de la documentación · Revisión de la fuente: a995f77. Extensión 9.0.