Modos, sessões e parada
Esta referência é para desenvolvedores de software de controle. O controlador compartilhado cuida da configuração da sessão para reprodução, teleoperação e ajuste; não execute uma segunda sequência de configuração manual junto com ele.
Redefinir seleciona o modo Legacy. A configuração Extension reside na RAM e não é restaurada automaticamente da EEPROM. Antes de um novo início, o software deve verificar as capacidades e suportar o protocolo 9.0.
Modo legado
O modo legado suporta a interface de registro STS padrão, incluindo potência do motor, modo de operação, comandos de posição e velocidade e leituras de status. O software STS existente pode usar os registradores 0 – 86 sem habilitar a extensão.
Nos modos de posição legados, ativar a potência do motor sem um novo comando de posição mantém a posição medida, mesmo fora dos limites salvos. Ele não reproduz um alvo antigo nem move a haste para o limite mais próximo. Novos comandos de posição ainda estão limitados aos limites salvos.
A extensão usa suas próprias configurações de movimento e controle. Os valores de ganho não devem ser copiados diretamente entre os dois modos porque suas escalas são diferentes. O suporte para comandos padrão não garante comportamento físico idêntico em todos os modelos de servo.
Iniciando e parando o modo de extensão
A sequência a seguir usa os números de registro e comandos documentados posteriormente. A seleção prepara uma sessão; habilitar a potência do motor inicia o controle.
- Encontre os IDs dos servos conectados e leia as capacidades de cada servo. Verifique
ARMCe versão9.0. Repita esta verificação após uma reinicialização ou alteração de firmware. - Desligue a alimentação do motor configurando o registro herdado de habilitação de torque 40 para
0. Conclua qualquer sessão existente e aplique quaisquer configurações herdadas permanentes. - Escreva e leia a configuração completa (
0xA0), incluindo configurações de feedforward de velocidade e taxa de variação da gravidade. - Grave
mode=1e um novo número de sessão diferente de zero em0xB8(total de bytes 3). Isto seleciona o modo de extensão e prepara a próxima partida; a energia permanece desligada. - Defina o registro 40 como
1. O firmware verifica os sensores, o status da proteção, a configuração e os limites de posição salvos e, em seguida, captura a posição medida como o alvo de retenção inicial. Contadores de comando, correção I e compensação de gravidade começam em zero. Leia0xC1e aguarde a sessão correta, medições atuais utilizáveis, acionamento do motor habilitado e saída pronta. - Envie alvos e quaisquer atualizações de gravidade. Leia o feedback para verificar quais comandos foram aceitos e até que ponto o servo os segue.
- O servo termina seu último movimento e mantém o destino até receber um novo alvo. Defina o registro 40 como
0para desligar o motor e encerrar a sessão. Para retornar ao modo legado, mantenha a energia desligada e gravemode=0, session=0em0xB8.
Se uma inicialização falhar, o registro 40 retorna para 0 . Seu reconhecimento de gravação normal por si só não confirma a inicialização bem-sucedida: verifique a leitura e o feedback do registro. Cada tentativa de início consome a sessão preparada. Após uma falha na partida, desligamento do torque ou desligamento da proteção, corrija a causa e escreva 0xB8 com um novo número de sessão antes de habilitar o torque novamente. A repetição da habilitação de torque enquanto o controle está em execução preserva seus contadores de alvo, compensação e comando.
Os comandos que movem ou ajustam um motor energizado requerem hardware pronto, nenhuma falha relatada e leituras de sensor não superiores a 2 ms antigas. O controlador normalmente atualiza a cada 1 ms e aceita intervalos de até 2 ms. Intervalos mais longos fazem com que a saída do motor seja desativada.
Ao usar a extensão, evite gravações legadas no registro de modo de operação 33 ou registros de movimento 41 – 47 : eles desligam a alimentação do motor e saem do modo de extensão. Salvar configurações permanentes também encerra o controle de extensão. Definir o registro 40 para 0 deixa o modo de extensão selecionado, pronto para outra configuração de sessão.
Se os comandos do host pararem de chegar
O servo termina o último movimento aceito e continua mantendo esse destino. A compensação gravitacional continua em direção ao último valor solicitado e permanece nesse valor. Nenhuma mensagem repetida é necessária para manter a sessão ativa, e a perda de comunicação com o host não altera o alvo nem desliga a energia do motor.
Para mudar para onde o servo vai, envie outro alvo. Para liberar o motor, ajuste a habilitação de torque para zero. As verificações de atualização do sensor, a proteção do motor e o watchdog do firmware permanecem ativos durante o movimento e a retenção.
Distinguir três mecanismos de temporização
| Mecanismo | O que verifica |
|---|---|
| Atualização do sensor de firmware | Medições locais utilizáveis; comandos de controle alimentados requerem leituras não anteriores a 2 ms |
| Verificações de host | Idade do frame/feedback e prazos de gravidade; uma violação aciona a tentativa de limpeza aplicável |
| Mensagens de ônibus ausentes | Não é em si um tempo limite de firmware que elimina a espera ou a última solicitação de gravidade |
O intervalo de comando do host não é o intervalo de controle de ms 1 do servo. Um servo pode continuar o movimento aceito após o host parar de funcionar.
Comportamento de parada da ferramenta
| Ferramenta/evento | Ação esperada |
|---|---|
| Repetição Extension: conclusão normal ou Ctrl+C | Retenha o último alvo e segure; com a gravidade configurada, faça a manutenção do movimento restante e confirme a compensação final |
| Teleoperação: conclusão normal ou Ctrl+C | Pare de emitir novos alvos e mantenha o controle motorizado; a espera de conclusão depende se a gravidade está configurada |
| Ajuste: conclusão normal | Restaure a linha de base configurada e mantenha a retenção |
| Ajuste: Ctrl+C durante um lote | Interromper e tentar desligar o torque |
| Replay legado: conclusão normal | Mantenha o controle na última pose |
| Replay legado: Ctrl+C ou falha | Tentativa de desligamento |
| Gravador: conclusão bem-sucedida | Deixe os motores selecionados sem alimentação |
| Fechando o visualizador | Não afeta o controle de hardware |
| Processo morto ou barramento desconectado | A limpeza pode nunca chegar; firmware pode reter o último alvo e gravidade |
Com um modelo de gravidade configurado e motores prontos, a conclusão do controlador compartilhado atende ao movimento restante e à gravidade, aguarda 200 ms de descanso com o tempo limite de conclusão de um 30 e confirma a compensação final. Descanso significa planejadores ociosos e cada posição medida permanecendo dentro de uma faixa de contagem durante esses ms 200; não estabelece erro alvo zero.
Erros de modelo, atualizações rejeitadas, feedback obsoleto, perda de propriedade, alarmes e temperaturas validadas iguais ou superiores a 60 °C disparam tentativa de desligamento de torque verificado. Uma exceção é a perda do prazo de gravidade durante uma espera estabelecida, quando duas novas passagens confirmam motores estacionários saudáveis na mesma sessão. A execução ainda falha com holdRetained: true e não é retomada automaticamente.
Sem um modelo gravitacional, o controlador compartilhado não realiza essa espera de descanso final. A reprodução de pose nomeada normalmente espera por cada destino dentro de sua tolerância configurada, mas Ctrl+C pode interromper essa espera. A repetição ou a teleoperação podem, portanto, sair enquanto o motor continua em direção ao último alvo.
Ctrl+C não é uma parada de emergência de hardware. A conclusão e a liberação do torque dependem da comunicação funcional; a instalação deve fornecer um estado mecânico seguro.
Início da documentação · Revisão de origem: a995f77 . Extension 9.0 .

