A referência completa de instalação do SDK está em hardware/dk1/software. Esta unidade cobre os passos de configuração específicos para bimanual que vão além da instalação do SDK de braço único que você pode ter feito para o OpenArm.
Instale o SDK DK1
O SDK DK1 é separado do SDK OpenArm. Não tente executar braços DK1 com o pacote OpenArm — o protocolo de firmware é diferente.
Configure o Emparelhamento Líder/Seguido
O SDK lê um arquivo de configuração YAML que informa qual dispositivo serial é o líder e quais dispositivos são os dois braços seguidos. Você deve especificar os caminhos dos dispositivos na ordem correta — o SDK não detecta automaticamente a atribuição de funções.
Os campos principais em dk1-config.yaml:
/dev/ttyUSBN depende da ordem das portas USB, que pode mudar entre reinicializações. Para criar aliases estáveis, use udev regras baseadas no número de série do dispositivo. Execute udevadm info /dev/ttyUSB0 para encontrar o número de série de cada braço e criar regras em /etc/udev/rules.d/99-dk1.rules. Isso é abordado em detalhes em hardware/dk1/software.
Teste de Conexão Python — Ambos os Braços
Após editar a configuração, execute um teste de conexão que exercite todos os três dispositivos simultaneamente:
Uma execução bem-sucedida imprime 10 pares de arrays de estado das juntas com valores consistentes e estáveis. Se você ver valores NaN, um erro de timeout, ou menos de 6 valores de junta por braço, verifique as atribuições de caminho do dispositivo em seu arquivo de configuração.
Verificação de Sincronização
A verificação mais importante nesta unidade é verificar se o movimento do líder produz uma resposta sincronizada do seguidor sem atraso perceptível:
Mova o braço líder lentamente através de um arco de 30° em uma única junta. Ambos os braços seguidores devem se mover em uníssono sem atraso visível. Se um seguidor ficar atrás do outro por mais de meio segundo, verifique a latency_tolerance_ms configuração e verifique a conexão USB do braço lento.
Erros Comuns e Soluções
| Erro | Causa | Correção |
|---|---|---|
SerialException: device not found |
Caminho do dispositivo errado na configuração, ou USB não conectado | Executar ls /dev/ttyUSB* e atualize os caminhos de configuração. Verifique as conexões físicas do USB. |
SyncTimeoutError: follower_right |
O braço seguidor direito não está respondendo dentro da tolerância de latência | Aumentar latency_tolerance_ms para 10, ou tente uma porta USB diferente. Verifique o cabo quanto a danos. |
| Estados das juntas todos zeros após a conexão | Servos não habilitados — o braço está em modo de espera | Chamar robot.enable_servos() antes de ler os estados das juntas, ou habilite via a interface web primeiro. |
| Um seguidor espelha, o outro está estacionário | O líder está pareado apenas com um seguidor na configuração | Verifique ambos follower_left e follower_right estão configurados no arquivo YAML. |
Unidade 2 Completa Quando...
O SDK DK1 está instalado e dk1.__version__ retorna 0.4.0 ou superior. O teste de conexão imprime valores de estado de juntas estáveis para ambos os braços a 50Hz. Quando você inicia uma sessão de líder/seguidor e move o braço do líder, ambos os braços seguidores espelham o movimento sem atraso perceptível. Você verificou isso com pelo menos 3 movimentos de juntas diferentes no braço do líder.