Guia de Configuração do Orca Hand

Caminho completo passo a passo desde a abertura da caixa até o primeiro agarre. Planeje de 3 a 4 horas no total para sua primeira montagem.

1

Montagem e Inspeção

Organize todos os componentes antes de começar: módulos de dedo (5×), montagem de palma/pulso, hardware de roteamento de tendões, fixadores e quaisquer módulos de sensor de ponta de dedo opcionais.

  • Módulos de dedo: Encaixe cada módulo de dedo na estrutura da palma na ordem — polegar, indicador, médio, anelar, mínimo. Verifique se cada articulação se move livremente antes de roteirizar os tendões.
  • Montagem do pulso: Anexe a montagem da palma à placa do pulso usando os fixadores fornecidos. Confirme se o padrão da flange corresponde ao seu braço robótico.
  • Roteamento de tendões: Roteie cada tendão (um por dedo) da polia do atuador através dos guias de conduíte. Deixe 2 a 3 mm de folga antes de tensionar — tensionar demais nessa fase causa travamento.
  • Sensores táteis (opcionais): Se estiver instalando sensores táteis na ponta dos dedos, coloque-os nas carcaças da ponta dos dedos antes de fechar as conchas dos dedos. Roteie os cabos dos sensores de volta através do corpo do dedo até o conector da palma.
Verifique a documentação oficial para sua revisão de hardware. Os detalhes da montagem variam entre as revisões de hardware do Orca Hand. Sempre verifique contra o documentação oficial do Orca Hand para sua versão específica.
2

Instalação de Software

A orca_core O pacote Python é a única dependência de software — não há requisito de ROS. Ele se comunica com todos os 17 motores Feetech STS3215 através de uma única conexão serial USB a 3 Mbps usando o protocolo Dynamixel. Python 3.9+ é necessário.

Opção A — Instalar via Poetry (recomendado):

git clone https://github.com/orcahand/orca_core.git
cd orca_core
poetry install

Opção B — Instalar via pip:

pip install orca_core

Conceda acesso à porta serial USB no Linux:

# Add your user to the dialout group (requires logout/login to take effect)
sudo usermod -aG dialout $USER

# Or grant temporary access without logging out
sudo chmod 666 /dev/ttyUSB0
o nome da porta do macOS. No macOS, a porta serial USB é tipicamente /dev/tty.usbserial-FT4TFV01. Abra orca_core/models/orcahand_v1/config.yaml e atualize o port campo antes de conectar, ou passe a string da porta explicitamente ao construir OrcaHand().

Conecte e verifique:

from orca_core import OrcaHand

hand = OrcaHand()
status = hand.connect()
print(status)  # (True, 'Connection successful')
3

Calibração

A calibração leva cada uma das 17 articulações até seu limite mecânico com um limite de corrente reduzido (450 unidades brutas) para estabelecer offsets de zero por motor. Sempre calibre antes de emitir comandos de posição — pular esta etapa pode causar grandes erros de posição ou movimento inesperado.

from orca_core import OrcaHand

hand = OrcaHand()
hand.connect()

# Drives all joints to hard stops at calib_current=450 to establish zero offsets
hand.calibrate()

# Calibration results are saved automatically to:
# models/orcahand_v1/calibration.yaml
A calibração é automática. A calibrate() O método avança iterativamente cada articulação em direção ao seu limite mecânico em incrementos de 0,3° (configurável via calib_step_size), declara uma articulação como inicializada após 10 leituras estáveis consecutivas dentro de 0,01° (configurável via calib_num_stable e calib_threshold), e então salva os offsets em calibration.yaml. Execute novamente apenas após alterações de hardware.

Após a calibração, mova todas as articulações para a posição aberta/zero:

# Command all 17 joints to 0° (open position)
hand.set_joint_pos({joint: 0 for joint in hand.joint_ids})
4

Primeiro Teste de Agarre

Verifique o controle da articulação usando o orca_core API Python. Comande articulações individuais pelo nome — o SDK traduz nomes de articulações para IDs de motor automaticamente via o joint_to_motor_map eles config.yaml.

from orca_core import OrcaHand

hand = OrcaHand()
hand.connect()
hand.calibrate()

# --- Read current joint positions (degrees) ---
positions = hand.get_joint_pos()
print(positions)
# e.g. {'thumb_mcp': 0.0, 'thumb_abd': 0.0, 'index_mcp': 0.0, ...}

# --- Make a fist: flex all MCP and PIP joints ---
hand.set_joint_pos({
    "index_mcp":  90, "index_pip":  110,
    "middle_mcp": 90, "middle_pip": 110,
    "ring_mcp":   90, "ring_pip":   110,
    "pinky_mcp":  90, "pinky_pip":  110,
    "thumb_mcp":  30, "thumb_pip":  100,
})

# --- Open hand back to zero ---
hand.set_joint_pos({joint: 0 for joint in hand.joint_ids})

# --- Torque control ---
hand.enable_torque()                    # Enable torque on all motors
hand.disable_torque(motor_ids=[1, 2])   # Disable specific motors (by ID)

# --- Disconnect (disables torque, closes serial port) ---
hand.disconnect()
Limites de ROM da articulação. As articulações MCP e PIP nos dedos 2–5 variam de −20° a +120° (MCP) e de −20° a +140° (PIP). O polegar tem o maior intervalo de abdução: ±65°. O pulso opera em ±60°. Comandar valores fora desses limites pode travar o motor em seu limite mecânico.

Se alguma articulação não atingir o ângulo comandado, verifique o roteamento do cabo e a tensão do tendão para aquele motor. Cada dedo usa um servo Feetech STS3215 dedicado; a obstrução geralmente é um problema de roteamento ou tensão, não um problema de software.

5

Integração com o Braço Robótico

Monte a Mão Orca no seu braço robótico usando o adaptador de flange de pulso padrão. A mão é compatível com o OpenArm 101 e a maioria dos braços com um padrão de flange ISO 9283.

  • Prenda a placa de pulso à flange do efetor final do braço usando parafusos M4 no padrão fornecido.
  • Roteie os cabos de sinal e de energia ao longo da estrutura do braço, fixando-os com abraçadeiras para evitar enroscos durante o movimento.
  • No espaço de trabalho ROS2 do seu braço, adicione a Mão Orca como um nó de efetor final e inicie os controladores do braço e da mão juntos.
Usando com o OpenArm 101? Veja o Passo a passo da configuração de teleoperação do OpenArm para instruções sobre como conectar um efetor final e gravar sua primeira sessão de coleta de dados.

Para um guia completo sobre fluxos de trabalho de pesquisa em manipulação destroça com a Mão Orca, veja o guia de pesquisa SVRC.

Configuração Completa?

Verifique as especificações completas ou junte-se à comunidade para compartilhar suas notas de construção.