LeRobot documentation

OpenArm

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.7.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

OpenArm

OpenArm é um braço humanoide de 7 graus de liberdade de código aberto, projetado para pesquisa e implantação em IA física.

Para obter seu OpenArm, montado ou feito por você, e se juntar à comunidade global, explore os fabricantes verificados e certificados ao redor do mundo em openarm.dev.

O que é único?

  • Design em escala humana: O OpenArm é projetado com proporções semelhantes às humanas, dimensionado para uma pessoa de aproximadamente 160-165 cm de altura. Isso oferece um equilíbrio ideal entre alcance prático e inércia gerenciável para uma operação segura e responsiva.

  • Arquitetura com foco em segurança: Construído com motores QDD reversíveis e alta compliância, o OpenArm prioriza a interação segura entre humanos e robôs, mantendo capacidades práticas de carga útil (6,0 kg de pico / 4,1 kg nominal) para tarefas do mundo real.

  • Construído para durabilidade: Os componentes estruturais críticos utilizam construção em alumínio e aço inoxidável, garantindo desempenho robusto para a coleta repetitiva de dados e o uso contínuo em pesquisa.

  • Totalmente acessível e construível: Cada componente, desde peças de CNC e carcaças impressas em 3D até a fiação elétrica, é projetado para ser adquirível e construível por pesquisadores individuais e laboratórios, com dados completos de fabricação fornecidos.

  • Prático e acessível: Por US$ 6.500 por um sistema bimanual completo, o OpenArm oferece capacidades de nível de pesquisa por uma fração dos custos dos robôs humanoides tradicionais.

Requisitos da plataforma

**Linux Only**: OpenArm currently only works on Linux. The CAN bus USB adapter does not have macOS drivers and has not been tested on Windows.

Guia de Segurança

Antes de operar o OpenArm, leia o guia de segurança oficial. Pontos principais:

  • Instalação segura: Fixe o braço em uma superfície plana e estável com parafusos ou grampos
  • Distância segura: Mantenha partes do corpo e objetos fora do alcance de movimento durante a operação
  • Equipamento de proteção: Use sempre óculos de segurança; utilize EPIs adicionais conforme necessário
  • Limites de carga: Não exceda os limites de carga especificados (6,0 kg de pico / 4,1 kg nominal por braço)
  • Parada de emergência: Conheça a localização e o funcionamento do dispositivo de parada de emergência
  • Inspecionamento regular: Verifique parafusos frouxos, limites mecânicos danificados, ruídos incomuns e danos à fiação

Configuração de Hardware

Siga a documentação oficial de hardware do OpenArm para:

  • Lista de materiais e suprimentos
  • Instruções de impressão 3D
  • Montagem mecânica
  • Fiação elétrica

Os repositórios de hardware estão disponíveis em github.com/enactic/openarm.

Configuração do Bus CAN

O OpenArm usa comunicação via barramento CAN com os motores Damiao. Depois de conectar o adaptador USB do barramento CAN ao seu PC com Linux, siga o guia de motores Damiao e barramento CAN para configurar a interface.

Configuração rápida:

# Setup CAN interfaces
lerobot-setup-can --mode=setup --interfaces=can0,can1

# Test motor communication
lerobot-setup-can --mode=test --interfaces=can0,can1

Instale o LeRobot 🤗

Siga nosso Guia de Instalação e, em seguida, instale o suporte do motor Damiao:

pip install -e ".[damiao]"

Uso

Braço Seguidor (Robô)

Comando
Exemplo de API
lerobot-calibrate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower

Braço Líder (Teleoperador)

O braço líder é usado para teleoperação - movê-lo manualmente para controlar o braço seguidor.

Comando
Exemplo de API
lerobot-calibrate \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

Teleoperação

Para teleoperar o OpenArm com controle líder-seguidor:

lerobot-teleoperate \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader

Use o mesmo --robot.id e --teleop.id que durante a calibração, para que o LeRobot encontre os arquivos de calibração.

Teleoperação Bimanual

Para teleoperar um setup bimanual OpenArm com dois braços líderes e dois braços seguidores:

lerobot-teleoperate \
    --robot.type=bi_openarm_follower \
    --robot.left_arm_config.port=can0 \
    --robot.left_arm_config.side=left \
    --robot.right_arm_config.port=can1 \
    --robot.right_arm_config.side=right \
    --robot.id=my_bimanual_follower \
    --teleop.type=bi_openarm_leader \
    --teleop.left_arm_config.port=can2 \
    --teleop.right_arm_config.port=can3 \
    --teleop.id=my_bimanual_leader

Registrando Dados

Para gravar um conjunto de dados durante a teleoperação:

lerobot-record \
    --robot.type=openarm_follower \
    --robot.port=can0 \
    --robot.side=right \
    --robot.id=my_openarm_follower \
    --teleop.type=openarm_leader \
    --teleop.port=can1 \
    --teleop.id=my_openarm_leader \
    --dataset.repo_id=${HF_USER}/my_openarm_dataset \
    --dataset.single_task="Describe your task here" \
    --dataset.fps=30 \
    --dataset.num_episodes=10

lerobot-record adiciona a data e a hora da sessão ao nome do conjunto de dados, de modo que ele é salvo como my_hf_username/my_openarm_dataset_YYYYMMDD_HHMMSS. Consulte o guia de gravação para informações sobre câmeras, controles de teclado e o restante do fluxo de trabalho.

Opções de Configuração

Configuração de Seguidor

ParâmetroPadrãoDescrição
port-Interface CAN (por exemplo, can0)
sideNoneLado do braço: "left", "right" ou None para limites personalizados
use_can_fdTrueAtive o CAN FD para taxas de dados mais altas
can_bitrate1000000Taxa de bits nominal (1 Mbps)
can_data_bitrate5000000Taxa de bits dos dados CAN FD (5 Mbps)
max_relative_targetNoneLimite de segurança para posições relativas do alvo
position_kpPor articulaçãoGanhos proporcionais de controle de posição
position_kdPor articulaçãoGanhos derivativos de controle de posição

Configuração do Líder

ParâmetroPadrãoDescrição
port-Interface CAN (por exemplo, can1)
manual_controlTrueDesativar torque para movimento manual
use_can_fdTrueAtive o CAN FD para taxas de dados mais altas
can_bitrate1000000Taxa de bits nominal (1 Mbps)
can_data_bitrate5000000Taxa de bits dos dados CAN FD (5 Mbps)

Configuração do Motor

O OpenArm usa motores Damiao com a seguinte configuração padrão:

ConjuntoTipo de MotorEnviar IDID de Recv
joint_1 (Pan do ombro)DM80090x010x11
joint_2 (Elevação de ombro)DM80090x020x12
joint_3 (Rotação do ombro)DM43400x030x13
joint_4 (Flexão do cotovelo)DM43400x040x14
joint_5 (Rotação do pulso)DM43100x050x15
joint_6 (Pitch do pulso)DM43100x060x16
joint_7 (Rotação do pulso)DM43100x070x17
gripperDM43100x080x18

Solução de problemas

Sem resposta dos motores

  1. Verifique as conexões da fonte de alimentação
  2. Verify CAN wiring (CAN-H, CAN-L, GND)
  3. Execute diagnósticos: lerobot-setup-can --mode=test --interfaces=can0
  4. Consulte o guia de solução de problemas do Damiao para mais detalhes

Interface CAN não encontrada

Verifique se a interface CAN está configurada:

ip link show can0

Recursos

Update on GitHub