🧪 Novos tutoriais em andamento — do braço robótico ao sensor
Ir para o conteúdo

Etapa 3: Teleoperação (Windows) ​

Esta etapa inicia o ciclo fechado de teleoperação: o braço líder controla o movimento do braço seguidor e a garra controla a abertura/fecho da AmazingHand. Esta é a etapa decisiva para verificar se todo o sistema funciona corretamente.


Pré-requisitos ​

  • Etapa 1: Configuração do ambiente e Etapa 2: Calibração concluídas

  • os três dispositivos alimentados e as portas série registadas


Executar a teleoperação ​

PowerShell
lerobot-teleoperate --robot.type=so101_amazing_hand --robot.port=<follower_arm_com> --robot.hand_port=<hand_com> --robot.id=amazing_hand_follower --teleop.type=so101_leader --teleop.port=<leader_arm_com> --teleop.id=amazing_hand_leader

Substitua <follower_arm_com> / <hand_com> / <leader_arm_com> pelos números COM reais da sua máquina (exemplo COM58 / COM11 / COM54).

Efeito esperado:

  • 5 juntas do braço líder → o braço seguidor acompanha

  • garra do braço líder → abertura/fecho da AmazingHand (acompanhamento proporcional: meio pinçado = meio fechado)

💡 Descrição dos parâmetros:

  • --robot.type=so101_amazing_hand: robô combinado de braço seguidor + mão

  • --robot.port: porta série do braço seguidor

  • --robot.hand_port: porta série da mão

  • --teleop.type=so101_leader: teleoperador do braço líder

  • --teleop.port: porta série do braço líder


Obrigatório na primeira execução: verificação de direção ​

Após o arranque, faça primeiro um teste de direção para confirmar que os dois pontos seguintes estão corretos:

TesteOperaçãoComportamento correto
Acompanhamento do braçoGire cada junta do braço líderO braço seguidor acompanha na mesma direção
Abertura/fecho da mãoAbra/pinça a garra do braço líderGarra aberta → mão aberta; garra pinçada → mão fechada

⚠️ Nota (e se a direção estiver invertida):

  • Direção de abertura/fecho da mão invertida (ao abrir a garra, a mão fecha em vez disso): indica calibração imprecisa dos ângulos da mão; execute novamente a ferramenta de calibração (incluindo a calibração da direção da garra); passa a valer automaticamente após guardar, sem necessidade de alterar ficheiros manualmente. Ver Etapa 2: Calibração.

  • Direção do mapeamento da garra invertida (ao abrir a garra, a mão fecha em vez disso): o mesmo que acima; ao calibrar, clique em [Capture Open] com a garra do braço líder aberta e em [Capture Close] com ela pinçada; a ferramenta regista e guarda automaticamente gripper_open_pos/gripper_close_pos, carregados automaticamente no arranque.

Após a alteração, execute novamente a teleoperação para verificar.


Verificação do acompanhamento proporcional ​

Com a direção correta, verifique a fineza da proporção:

  1. Abra a garra lentamente → a mão deve abrir suavemente (sem saltos)

  2. Pare a garra a meio → a mão também deve parar a meio

  3. Abra e feche rapidamente → a mão responde rapidamente, sem bloqueios

⚠️ Nota (problema histórico de abertura/fecho excessivo da mão): se a mão fechar quando a garra estiver apenas a meio, na maioria dos casos a posição de "aberta/fechada em punho" na calibração dos ângulos da mão está imprecisa. Execute novamente o passo 3 da calibração (GUI dos ângulos da mão) para calibrar posições de abertura/fecho mais precisas.


Opcional: visualização com câmaras ​

Adicione --robot.cameras para ligar câmaras e --display_data=true para abrir a janela de visualização do Rerun (exibe em tempo real as imagens das câmaras + o estado das juntas):

PowerShell
lerobot-teleoperate --robot.type=so101_amazing_hand --robot.port=<follower_arm_com> --robot.hand_port=<hand_com> --robot.id=amazing_hand_follower --teleop.type=so101_leader --teleop.port=<leader_arm_com> --teleop.id=amazing_hand_leader --robot.cameras='{wrist: {type: opencv, index_or_path: 0, width: 640, height: 480, fps: 30, fourcc: "MJPG"},top: {type: opencv, index_or_path: 1, width: 640, height: 480, fps: 30, fourcc: "MJPG"}}' --display_data=true

💡 Notas:

  • index_or_path é o índice da câmara; confirme primeiro com lerobot-find-cameras (a numeração varia conforme a máquina).

  • fourcc: "MJPG" é opcional e reduz significativamente o consumo de largura de banda das câmaras USB (passa a usar compressão MJPEG); pode ser adicionado em caso de bloqueios.

  • Se precisar de apenas uma câmara, basta remover a linha correspondente (por exemplo, top).

⚠️ Nota (dependência do rerun): --display_data=true requer o pacote de visualização rerun; se não estiver instalado, execute:

PowerShell
pip install "rerun-sdk>=0.24.0,<0.34.0"

Requer o ficheiro executável do Rerun Viewer. No Windows, se aparecer Failed to find Rerun Viewer executable, significa que falta o visualizador com GUI. Isso não afeta a teleoperação; basta remover --display_data=true.


Sair ​

Prima Ctrl+C para parar. O programa automaticamente:

  1. Liberta o binário dos 8 servos da mão

  2. Desliga as portas série do braço seguidor/líder

  3. Desliga as câmaras (se existirem)

⚠️ Nota: antes de sair normalmente, não feche o terminal diretamente, caso contrário pode ficar uma porta série ocupada. Se, após uma saída anormal, a porta série ficar ocupada, volte a ligar o USB ou reinicie o processo do terminal.


Resolução de problemas ​

SintomaCausaSolução
Direção da mão invertidaDireção dos ângulos da mão ou do mapeamento da garra invertidaVer "Verificação de direção" acima; troque os ângulos ou ajuste o mapeamento
Abertura/fecho excessivo/insuficiente da mãoCalibração imprecisa dos ângulos da mãoRecalibrar a GUI dos ângulos da mão
O braço não acompanhaCalibração ausente/porta série erradaConfirme que o braço seguidor está calibrado e que --robot.port está correto
Erro do rerunDependência de visualização ausenteRemova --display_data=true
Porta série ocupadaSaída anormal anteriorEncerre o processo que a ocupa ou volte a ligar o USB