Teleoperação e reprodução de sessões
Resultado: um mapeamento de junta verificado permite que o líder controle o seguidor e uma sessão salva pode ser reproduzida sem o líder.
Prepare dois ônibus
Use adaptadores seriais separados para líder e seguidor, pares de juntas 1 – 6, limites não vazios salvos, modo de posição comum e resolução da unidade. O líder pode usar firmware de fábrica; o seguidor requer Extension v9.
Cada barramento deve conter exatamente seus IDs configurados. Desative o torque do líder antecipadamente: a ferramenta nunca grava no líder . As configurações do seguidor devem ser bloqueadas sem gravação legada adiada. Prepare perfis e, se necessário, um modelo gravitacional usando o guia de configuração .
Configurar o arquivo
macOS / Linux
cp tools/teleoperation/example.json tools/teleoperation/controller.local.json
Windows PowerShell
Copy-Item tools/teleoperation/example.json tools/teleoperation/controller.local.json
Defina leaderPort e followerPort distintos, taxa de transmissão e todos os pares joints. O exemplo de origem contém um par; expanda-o para o braço real. Dê a cada seguidor um perfil, com caminhos relativos ao arquivo do controlador.
{"leaderId": 1, "followerId": 1, "mapping": "angle", "direction": 1}
Esta é uma entrada da matriz joints, não um arquivo completo. Opções de mapeamento:
| Campo | Significado |
|---|---|
mapping: "angle" |
Preservar o deslocamento da contagem a partir do ponto médio do limite salvo; assume escalas e engrenagens de codificador compatíveis |
mapping: "range" |
Dimensione cada metade do deslocamento do líder para a metade do seguidor correspondente, útil para diferentes garras |
direction |
1 ou − 1 |
leaderMiddle, followerMiddle |
Centros opcionais somente para range, estritamente dentro dos respectivos limites |
O ponto médio do limite pode diferir da contagem de referência 2048. As posições de calibração correspondentes, portanto, não garantem alvos correspondentes quando os limites são assimétricos. Os alvos são limitados aos limites de seguidores.
Visualizar e iniciar
Este comando lê os barramentos e visualiza o mapeamento sem alterar as configurações:
macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json
Compare as posições e alvos relatados com a configuração física e verifique a direção de cada par. Apoie ambos os mecanismos e deixe espaço para o seguidor se aproximar da postura do líder. Em seguida, inicie explicitamente o controle:
macOS / Linux
npm run teleoperate -- tools/teleoperation/controller.local.json --run
Windows PowerShell
npm.cmd run teleoperate -- tools/teleoperation/controller.local.json --run
hz solicitado varia de 1 – 60 Hz e o padrão é 60; a taxa real depende do barramento, computador, feedback e registro. Os períodos perdidos são ignorados em vez de serem enviados em rajadas de recuperação. Não execute outro controlador no mesmo barramento.
Verifique: sem erros de estrutura obsoleta ou de feedback, direção correta e limites de deslocamento esperados. A conclusão normal e Ctrl+C mantêm a retenção energizada. Com um modelo gravitacional, a conclusão aguarda o descanso; sem ele, o processo pode terminar enquanto o motor continua em direção ao último alvo. A ferramenta não move automaticamente o braço para uma posição de estacionamento.
Repetir sem o líder
Os logs são salvos em logs/motion/ . Selecione SESSION.ndjson contendo limites de líder de simulação e mapeamento seguido por eventos de comando. Mantenha o mesmo mapeamento de junta no arquivo do controlador atual. O replay abre apenas o seguidor:
macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson
macOS / Linux
npm run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run
Windows PowerShell
npm.cmd run replay -- tools/teleoperation/controller.local.json SESSION.ndjson --run
O primeiro comando é visualizado; o segundo se move. A reprodução usa posições e limites de líderes registrados, limites de seguidores atuais , perfis atuais e gravidade atual. Não reproduz ganhos ou esforços históricos. As pausas gravadas permanecem; atrasos no processamento aumentam o tempo em vez de emitir rajadas de recuperação.
Um registro expressando um comando pretendido não prova a aceitação do motor. Ao revisar uma sessão com falha, compare os comandos pretendidos, a transmissão real e o feedback.
Início da documentação · Revisão de origem: a995f77 . Extension 9.0 .