Ajustar e validar o controle
Resultado : aceita configurações de acordo com critérios medidos em vez de um movimento bem-sucedido. Primeiro verifique a calibração, o caminho de movimento inicial, os perfis e qualquer modelo de gravidade.
1. Prepare um plano básico
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
Em tools/tuning/plan.local.json , defina config como controller.local.json , stage como baseline e candidates como [] . O exemplo de origem contém um candidato PID; não execute-o inalterado como medida de linha de base.
Defina a porta e os perfis do controlador e inclua cada motor de suporte em joints como {"followerId": ID} . Remover um durationMs copiado: o batch.maxDurationMs do plano possui o orçamento de duração.
| Campo do plano | Decisão antes de correr |
|---|---|
probeId |
Motor que se moverá |
poses.screen, poses.validate |
Diferentes pares de endpoints permitidos para triagem e validação; não copie contagens de exemplo 2000 / 2050 sem verificar as posições físicas |
motion.speeds |
Velocidades apropriadas para a carga revisada |
limits |
Erro de acompanhamento/suporte, limites de temperatura e tensão |
acceptance |
Critérios de erro, overshoot, acomodação e saturação |
batch |
Repetições, durações de retenção e orçamento total |
As posições são contagens corrigidas do codificador. Após a recalibração, os mesmos números podem representar diferentes posições físicas. As juntas de apoio mantêm os alvos de retenção existentes; a ferramenta não reposiciona automaticamente todo o braço.
2. Separe os três comandos
Inspecione os arquivos e o uso estimado do barramento sem conectar :
macOS / Linux
npm run tune -- inspect tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- inspect tools/tuning/plan.local.json
Leia firmware, calibração, limites e perfis sem alterar os motores :
macOS / Linux
npm run tune -- preflight tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- preflight tools/tuning/plan.local.json
Execute o lote com movimento :
macOS / Linux
npm run tune -- run tools/tuning/plan.local.json
Windows PowerShell
npm.cmd run tune -- run tools/tuning/plan.local.json
Não execute se a simulação revelar alvos cortados inesperados, um erro de modelo ou um par de terminais recolhido em uma posição. O lote move probeId ; outros motores devem manter uma posição de suporte revisada.
3. Sintonize em ordem
- Baseline: movimentos iniciais e retenções sem candidatos; estabelecer repetibilidade e investigar alarmes.
- Gravidade : verifica um modelo em poses, direções e pelo menos duas velocidades. Esta etapa coleta dados sem alterar os ganhos.
- Velocidade : compara feedforward direcional usando movimento constante.
- PID : compara P, D e filtragem entre cargas; use retenções mais longas para expor a oscilação.
- Integral: introduzido apenas para um erro duradouro; teste ganho e limite juntos, incluindo pequenas reversões.
- Movimento : mantém os ganhos fixos ao comparar a aceleração e o tempo de rampa.
- Movimento combinado: reproduz um caminho de braço inteiro; a afinação conjunta isolada não valida o movimento acoplado.
- Validação : congela as configurações e verifica as velocidades, acelerações, cargas úteis e retenções estendidas necessárias.
O estágio restringe os campos candidatos. Linha de base, gravidade e validação não alteram as configurações. Os limites totais de saída permanecem explicitamente configurados, em vez de ajustados automaticamente.
4. Interprete os resultados
Cada diretório tools/tuning/logs/<run>/ contém events.ndjson e summary.json . Revise o status de conclusão, as linhas de base antes e depois do lote, os pares de validação independentes e todos os critérios de aceitação. Um lote incompleto ou com falha não fornece nenhuma recomendação. O desvio da linha de base pode tornar uma comparação inconclusiva.
As métricas cobrem RMS de rastreamento móvel, erro e amplitude constantes, overshoot, tempo de acomodação, tempo de resposta total e fração de saturação. A acomodação requer um intervalo contínuo dentro da banda; uma travessia antecipada é insuficiente. Retenções curtas não podem estabelecer a ausência de oscilação lenta.
A conclusão normal restaura a configuração de referência e mantém a posição. Durante o ajuste, Ctrl+C tenta desativar o torque, ao contrário da reprodução em modo Extension. Sustente o mecanismo antes da interrupção. Encerrar o processo à força ou desconectar o barramento pode deixar a retenção anterior ativa.
5. Salve as configurações aceitas
A ferramenta não instala automaticamente um candidato vencedor. Após a revisão, atualize os perfis locais e mantenha-os com calibração, modelo, detalhes de carga/montagem e registros de validação. A exportação abaixo usa o controlador de pose nomeado do guia do primeiro movimento. Atualize seus perfis para os valores aceitos. Para usar apply , primeiro adicione esta propriedade joints de nível superior a tools/poses/controller.local.json , ajustando os IDs para corresponder ao braço físico:
"joints": [
{"followerId": 1}, {"followerId": 2}, {"followerId": 3},
{"followerId": 4}, {"followerId": 5}, {"followerId": 6}
]
Este é um fragmento de propriedade, não um arquivo JSON completo: adicione uma vírgula entre ele e a propriedade adjacente. Exporte para um novo diretório sem conectar-se aos 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
Use um diretório que ainda não existe. A exportação não certifica configurações. Para aplicar o controlador exportado sem replay, ele deve conter joints para todos os seguidores. Este comando altera o controle e ativa a retenção:
macOS / Linux
npm run tune -- apply accepted-controller/controller.json
Windows PowerShell
npm.cmd run tune -- apply accepted-controller/controller.json
Uma mudança de perfil pode liberar o torque brevemente. A reprodução comum aplica sua própria configuração e não requer um comando apply separado.
Início da documentação · Revisão de origem: a995f77 . Extension 9.0 .