Ir al artículo

Ajustar y validar el control

Comprobado 2026-11-01

Resultado: acepte la configuración según criterios medidos en lugar de un movimiento exitoso. Primero verifique la calibración, la trayectoria del movimiento inicial, los perfiles y cualquier modelo de gravedad.

1. Prepare un plan de referencia

macOS / Linux
cp tools/tuning/example.json tools/tuning/plan.local.json
cp tools/tuning/controller.example.json tools/tuning/controller.local.json
Windows PowerShell
Copy-Item tools/tuning/example.json tools/tuning/plan.local.json
Copy-Item tools/tuning/controller.example.json tools/tuning/controller.local.json

En tools/tuning/plan.local.json, establezca config en controller.local.json, stage en baseline y candidates en []. El ejemplo fuente contiene un candidato PID; no lo ejecute sin cambios como medición de referencia.

Configure el puerto y los perfiles del controlador e incluya cada motor compatible en joints como {"followerId": ID}. Eliminar un durationMs copiado: el batch.maxDurationMs del plan posee el presupuesto de duración.

Campo de plano Decisión antes de correr
probeId Motor que se moverá
poses.screen, poses.validate Diferentes pares de criterios de valoración permitidos para el cribado y la validación; no copie los recuentos de ejemplo 2000/2050 sin verificar las posiciones físicas
motion.speeds Velocidades adecuadas para la carga revisada.
limits Error de seguimiento/soporte, límites de temperatura y voltaje
acceptance Criterios de error, sobreimpulso, asentamiento y saturación.
batch Repeticiones, duraciones de espera y presupuesto total

Las posiciones son recuentos de codificador corregidos. Después de la recalibración, los mismos números pueden representar diferentes posiciones físicas. Las juntas de soporte mantienen los objetivos de sujeción existentes; la herramienta no reposiciona automáticamente todo el brazo.

2. Separa los tres comandos.

Inspeccione archivos y uso estimado del bus de comunicación sin conectarse:

macOS / Linux
npm run tune -- inspect tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- inspect tools/tuning/plan.local.json

Lea firmware, calibración, límites y perfiles sin cambiar motores:

macOS / Linux
npm run tune -- preflight tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- preflight tools/tuning/plan.local.json

Ejecute el lote con movimiento:

macOS / Linux
npm run tune -- run tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- run tools/tuning/plan.local.json

No lo ejecute si la verificación previa revela objetivos recortados inesperados, un error de modelo o un par de puntos finales colapsado en una posición. El lote mueve probeId; otros motores deben mantener una postura de apoyo revisada.

3. Sintoniza en orden

  1. Línea base: movimientos iniciales y retenciones sin candidatos; establecer repetibilidad e investigar alarmas.
  2. Gravedad: revisa un modelo en poses, direcciones y al menos dos velocidades. Esta etapa recopila datos sin cambiar las ganancias de control.
  3. Velocidad: compara la alimentación direccional utilizando un movimiento constante.
  4. PID: compara P, D y filtrado entre cargas; Utilice retenciones más largas para exponer la oscilación.
  5. Integral: introducir sólo en caso de un error duradero; Pruebe la ganancia y el límite juntos, incluidas pequeñas reversiones.
  6. Movimiento: mantenga fijas las ganancias de control mientras compara la aceleración y el tiempo de rampa.
  7. Movimiento combinado: repetir un recorrido de todo el brazo; la sintonización conjunta aislada no valida el movimiento acoplado.
  8. Validación: congele la configuración y verifique las velocidades, aceleraciones, cargas útiles y retenciones prolongadas requeridas.

La etapa restringe los campos candidatos. La línea de base, la gravedad y la validación no cambian la configuración. Los límites de salida total permanecen configurados explícitamente en lugar de ajustarse automáticamente.

4. Interpretar los resultados

Cadatools/tuning/logs/<run>/directorio contieneevents.ndjsonysummary.json. Revise el estado de finalización, las líneas de base antes y después del lote, los pares de validación independientes y todos los criterios de aceptación. Un lote incompleto o fallido no proporciona ninguna recomendación. La desviación de la línea de base puede hacer que una comparación no sea concluyente.

Las métricas cubren el RMS de seguimiento en movimiento, el error y la amplitud constantes, el exceso, el tiempo de estabilización, el tiempo total de respuesta y la fracción de saturación. El asentamiento requiere un intervalo continuo dentro de la banda; un cruce temprano es insuficiente. Las posiciones cortas no pueden establecer la ausencia de una oscilación lenta.

La finalización normal restaura la configuración de referencia y mantiene la posición. Durante el ajuste, Ctrl+C intenta desactivar el par, a diferencia de la reproducción en modo Extension. Sostenga el mecanismo antes de interrumpir. Terminar el proceso por la fuerza o desconectar el bus puede dejar activo el mantenimiento de la posición anterior.

5. Guarde la configuración aceptada

La herramienta no instala automáticamente a un candidato ganador. Después de la revisión, actualice los perfiles locales y consérvelos con los detalles de calibración, modelo, carga útil/montaje y registros de validación. La siguiente exportación utiliza el controlador de pose con nombre de la guía del primer movimiento. Actualice sus perfiles a los valores aceptados. Para usar apply, primero agregue esta propiedad joints de nivel superior a tools/poses/controller.local.json, ajustando las ID para que coincidan con el brazo físico:

"joints": [
  {"followerId": 1}, {"followerId": 2}, {"followerId": 3},
  {"followerId": 4}, {"followerId": 5}, {"followerId": 6}
]

Este es un fragmento de propiedad, no un archivo JSON completo: agregue una coma entre este y la propiedad adyacente. Exportar a un nuevo directorio sin conectarse a motores:

macOS / Linux
npm run tune -- export tools/poses/controller.local.json accepted-controller
Windows PowerShell
npm.cmd run tune -- export tools/poses/controller.local.json accepted-controller

Utilice un directorio que aún no exista. La exportación no certifica la configuración. Para aplicar el controlador exportado sin repetición, debe contener joints para todos los seguidores. Este comando cambia el control y permite mantener:

macOS / Linux
npm run tune -- apply accepted-controller/controller.json
Windows PowerShell
npm.cmd run tune -- apply accepted-controller/controller.json

Un cambio de perfil puede liberar brevemente el torque. La reproducción ordinaria aplica su propia configuración y no requiere un comando apply por separado.


Inicio de la documentación · Revisión de la fuente: a995f77. Extensión 9.0.