Pular para o conteúdo principal
Fase 2 · Capítulo 7 · Prática

7. Depuração de servos com a ferramenta de ajuste

Capítulo 7 do curso para iniciantes em SO-ARM Physical AI — use a ferramenta de depuração Seeed_RoboController para detectar servos, reprogramar IDs, gravar valores neutros, controlar servos individuais e ler o estado deles.

7.1 Para que serve a ferramenta​

Visão geral

7.1 Para que serve a ferramenta

A ferramenta de depuração de servos (Seeed_RoboController) é uma ferramenta gráfica para braços robóticos LeRobot / SO-ARM. Com ela você pode:

  • Detectar rapidamente o estado dos servos;
  • Reprogramar IDs duplicados ou errados;
  • Gravar valores neutros (posição média);
  • Controlar servos individuais e ler tensão, temperatura, velocidade, carga e corrente;
  • Gerenciar registros avançados, baud rate e restauração de fábrica.

Roda em Windows, Ubuntu e Mac, e é sua primeira parada quando um braço se comporta de forma estranha — antes de recalibrar no LeRobot, antes de desmontar e antes de assumir servo queimado.

7.2 Instalação​

Instalação

7.2 Instalação

1. Clone o repositório:

git clone https://github.com/Seeed-Projects/Seeed_RoboController.git

2. Instale as dependências. Recomendado dentro do ambiente conda do LeRobot do Capítulo 5. Para uma instalação isolada, crie um ambiente virtual novo para não poluir o Python do sistema:

pip install -r requirements.txt

3. Verifique o ambiente. Se retornar [OK] Environment check passed, está pronto:

python setup.py

4. Inicie a ferramenta:

python -m src.gui.factory_calibration_tool

Isso abre a seleção interativa de porta. (Opcional) Especifique as portas manualmente se estiverem ocupadas:

python -m src.gui.factory_calibration_tool --port1 /dev/ttyUSB0 --port2 /dev/ttyUSB1

7.3 Checar se os servos estão normais​

Detecção

7.3 Checar se os servos estão normais

Primeiro, selecione a porta correspondente no seletor. Se os servos 1-6 forem todos detectados, os servos estão reconhecidos e as funções básicas funcionam.

Os seis servos detectados

Se alguns aparecerem como não detectados:

  1. Confira o cabeamento; feche a página e abra de novo.
  2. Se persistir, os IDs podem estar duplicados — possivelmente porque o comando de calibração do braço foi executado por engano como o de calibração de servos. Nesse caso, reprograme esses IDs (próxima seção).
Servo não detectado

7.4 Reprogramar IDs de servo​

Corrigir IDs

7.4 Reprogramar IDs de servo

Do Capítulo 4: todos compartilham o barramento, então gravar um ID afeta todos os servos com aquele ID. Por isso os demais devem ser desconectados e reprogramados um a um.

Passo 1 — remova os chicotes entre servos adjacentes, da garras rumo à base:

Desconectar servo 6 de 5
Desconectar servo 1 da placa

Passo 2 — conecte um servo por vez. Garanta que só um servo esteja ligado à placa. Por exemplo, conecte o servo #6 conforme a figura — os outros seguem o mesmo padrão, então dá para corrigir IDs sem desmontar o braço.

Um único servo conectado à placa

Passo 3 — regrave o ID. No exemplo, só o servo #4 é reconhecido, mas o conectado é o #6 — o ID está errado e precisa voltar a 6.

ID errado detectado

Clique no servo #4 e mude o ID para 6. Repita com os demais.

Regravar o ID do servo

Concluída a correção, reconecte os cabos um a um.

7.5 Gravar o valor neutro no servo​

Neutro

7.5 Gravar o valor neutro no servo

A posição neutra (média) é a postura "reta" da qual toda calibração posterior é medida — internamente corresponde ao valor 2048.

Postura neutra de referência
  1. Clique em Serial Port Neutral Test para conferir se o neutro do braço bate com a referência. Se for parecido, o valor está normal.
  2. Se não, leve o braço à posição neutra e clique em Serial Port Neutral Calibration — a posição atual é gravada como neutro.
  3. Clique em Serial Port Disable Motors e o braço fica frouxo — segure-o com a mão.
Botões de teste e calibração neutra
dica

Esta também é a solução para o erro do LeRobot Magnitude 30841 exceeds 2047 (max for sign_bit_index=11): a mensagem indica offset zero anormal num servo. Faça aqui uma calibração de posição média (ou com o script servo_middle_calibration.py do mesmo repositório) e refaça a calibração completa do Capítulo 10.

7.6 Controle e status de servos individuais​

Controle

7.6 Controle e status de servos individuais

Por padrão, todos os servos da página estão na posição neutra.

Todos os servos no neutro

1. Habilite o torque e mova um servo. Habilite todos de uma vez ou um individual, e arraste o controle deslizante. Vá com calma: as peças impressas bloqueiam fisicamente certas posições, então não arraste até 0 nem ao máximo. Desabilitando o torque, o braço fica frouxo.

Torque habilitado, servo movido

2. Manutenção por servo. Dá para calibrar o neutro de um único servo e limpar o neutro, máximo e mínimo internos dele.

3. Painel de status:

CampoSignificado
PosPosição
VTensão
TTemperatura
SpdVelocidade
CargaTorque
CurCorrente
MovEstado de movimento
ModeloModelo, autoridade
StatusNormal / Sobrecorrente / Sobrecarga

Temperatura subindo com carga após longas teleoperações é normal no seguidor; Sobrecorrente ou Sobrecarga persistente em repouso normalmente indica junta travada ou neutro errado.

7.7 Ferramentas avançadas​

Avançado

7.7 Ferramentas avançadas

Para depurar mais a fundo dá para ler e gravar registros brutos, mudar o baud rate e restaurar o padrão de fábrica.

Painel de ferramentas avançadas
atenção

Gravar registros e restaurar de fábrica às cegas pode inutilizar a configuração de um servo. Prefira as funções guiadas (seções 7.3-7.6) e toque em registros brutos só quando um guia específico mandar.

7.8 Resumo​

Resumo

7.8 Resumo

  • A ferramenta de depuração é o console de manutenção do barramento de servos: detectar, corrigir IDs, ajustar neutros, mover servos, ler status.
  • IDs de servo são sempre regravados um servo conectado por vez.
  • Um neutro correto (2048) é a base de toda a calibração seguinte.

Com os braços montados e cada servo verificado, a Fase 2 está completa. A Fase 3 começa explicando por que braços robóticos precisam de aprendizado — e depois coloca seu SO-ARM para coletar dados e treinar políticas.

Loading Comments...