O Que Você Vai Realizar
No final desta unidade, você terá um ambiente virtual Python com o SDK do OpenArm instalado, e executar um script de teste de 5 linhas retornará True de arm.ping(). Essa confirmação significa que seu código Python tem um canal de comunicação ativo com o braço — que é a base sobre a qual tudo nas Unidades 3–6 se baseia.
A documentação completa de instalação e configuração do SDK está em hardware/openarm/software. Esta unidade estrutura esse processo com o contexto que você precisa e cobre os modos de falha mais comuns.
Instale o SDK
Trabalhe através do guia de configuração de software para a instalação completa do SDK. A versão curta:
A instalação leva de 5 a 15 minutos, dependendo da sua conexão com a internet. Os torch e lerobot pacotes são grandes, mas você precisará deles nas Unidades 4 e 5, então instale-os agora.
Teste Rápido de Conexão Python
Com o ROS 2 em execução (da Unidade 1) e seu ambiente virtual ativado, execute este teste. É a maneira mais rápida de confirmar que sua pilha completa está funcionando de ponta a ponta:
Se arm.ping() retorna True e arm.get_joints() retorna os ângulos articulares atuais, você terminou. Passe para a seção de solução de problemas apenas se você ver erros.
Solução de Problemas: Os 3 Erros de Conexão Mais Comuns
Erro 1: ConnectionRefusedError ou tempo limite em OpenArm()
ROS 2 não está em execução ou o servidor de ação ainda não foi iniciado. Verifique se ros2 node list mostra /openarm_controller. Se não, volte para o seu terminal ROS 2 e confirme que o lançamento foi concluído sem erros. Uma causa secundária comum: você esqueceu de configurar seu espaço de trabalho antes de lançar — veja a Unidade 1, passo crítico 2.
Erro 2: can0: Network is down sem terminal ROS 2
A interface SocketCAN foi desconectada. Isso acontece se você desconectar e reconectar o adaptador USB-CAN sem reexecutar o ip link set comando. Execute sudo ip link set can0 up type can bitrate 1000000, então reinicie o lançamento do ROS 2. Adicione este comando a um script de inicialização para que ele seja executado automaticamente na inicialização: sudo nano /etc/network/interfaces.d/can0.
Erro 3: arm.get_joints() retorna todos os zeros mesmo quando o braço não está em posição inicial
Isso não é um erro — significa que o braço está está relatando seu estado articular, mas a calibração pode não estar completa. Se o seu braço estiver fisicamente na posição zero, os zeros estão corretos. Se o seu braço estiver em um ângulo diferente, mas ainda relatando zeros, reexecute a calibração pela interface da web (Unidade 1, passo crítico 4). Os codificadores de junta precisam da sequência de homing para estabelecer a posição absoluta.
Unidade 2 Completa Quando...
arm.ping() retorna True no seu terminal Python. O script de teste é executado sem erros do início ao fim. Você pode ver os valores dos ângulos articulares mudarem em tempo real quando você move fisicamente o braço enquanto arm.get_joints() é consultado em um loop. Você está pronto para a Unidade 3.