Coleta de Dados

Gravar dados de manipulação hábil com a Orca Hand é fundamentalmente diferente da simples coleta de dados de garra — 17 articulações de dedos, fluxos táteis opcionais e teleoperação com luva exigem uma sincronização cuidadosa. Este guia cobre todo o fluxo de trabalho.

Antes da Gravação

Configuração de Hardware para Coleta de Dados Hábil

A configuração de gravação da Orca Hand tem mais fluxos do que um braço de garra simples — articulações de dedos, táteis opcionais, câmeras e articulações de braço precisam ser sincronizados.

🕐

Orca Hand (USB serial)

Estado do dedo com 17 DOF a até 100 Hz. Verifique: python -c "from orca_core import OrcaHand; h=OrcaHand('/dev/ttyUSB0'); h.connect(); print(h.get_positions())"

🤸

Dispositivo de Teleoperação

Luva Juqiao (recomendada) ou rastreamento de mão VR. Mapeia as poses dos dedos do operador para os alvos das articulações da Orca Hand em tempo real.

📷

Câmera de palma / pulso

Pequena câmera USB dentro da palma apontando para as pontas dos dedos e objetos. Crítico para tarefas ricas em contato onde o contato ponta do dedo-objeto determina o sucesso da preensão.

📈

Sensores táteis (opcional)

Sensores de ponta de dedo Paxini ou compatíveis. Conexão USB separada. Adicione o fluxo de força de contato ao seu conjunto de dados para treinamento de políticas guiadas por contato.

Fluxo de Trabalho de Gravação

Fluxo de Trabalho de Gravação Passo a Passo

1

Levantar braço + mão + luva

# Terminal 1: Arm (if using OpenArm)
source ~/openarm_ws/install/setup.bash
ros2 launch openarm_ros2 openarm.launch.py use_fake_hardware:=false can_interface:=can0

# Terminal 2: Orca Hand
source ~/orca_ws/install/setup.bash
ros2 launch orca_ros2 orca_hand.launch.py port:=/dev/ttyUSB0 handedness:=right

# Terminal 3: Juqiao Glove (see Juqiao Glove software page)
python -m juqiao_glove.stream --port /dev/ttyUSB1
2

Verifique se todos os fluxos estão ao vivo

# Check finger joint states
ros2 topic hz /orca_hand/joint_states   # expect ~100 Hz

# Check glove stream
ros2 topic hz /juqiao_glove/finger_angles   # expect ~100 Hz

# Check camera
python -c "import cv2; cap=cv2.VideoCapture(0); print('Camera OK:', cap.isOpened())"
3

Calibrar o mapeamento da luva para a mão

Execute a calibração da luva para mapear as dimensões dos seus dedos para a faixa de articulação da Orca Hand. Esta etapa garante uma teleoperação natural — sua mão aberta = Orca aberta, seu punho = Orca punho.

python -m orca_core.scripts.calibrate_teleop \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --handedness right
4

Configure a cena da tarefa

Coloque objetos em posições iniciais consistentes. A preensão ágil é altamente sensível à pose do objeto — use fixação (fita, massa) para manter a colocação consistente dos objetos entre os episódios.

5

Iniciar sessão de gravação

python -m orca_core.scripts.record_episodes \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --camera_id 0 \
  --fps 30 \
  --output_dir ~/datasets/orca-grasp-v1 \
  --num_episodes 50 \
  --task "Pick up the pen using a precision pinch grasp"

O gravador salva as posições das articulações dos dedos sincronizadas, ângulos da luva, quadros da câmera e (se conectado) leituras táteis em um conjunto de dados Parquet.

6

Revisar a qualidade da preensão

Reproduza cada episódio. Procure por: eventos de deslizamento (saltos súbitos de posição), preensões incompletas, saturação de tendões (articulação no limite máximo durante a preensão), caminhos de abordagem inconsistentes.

python -m orca_core.scripts.visualize_episode \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --episode_index 0
7

Envie para o HuggingFace Hub

python -m orca_core.scripts.push_dataset \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --repo_id your-username/orca-grasp-v1
Formato do Conjunto de Dados

Esquema do Conjunto de Dados da Orca Hand

O formato do conjunto de dados da Orca Hand estende o esquema padrão do LeRobot com fluxos adicionais específicos para os dedos e táteis.

Campos em cada arquivo Parquet de episódio
observation.hand_state float32[17] Todas as 17 posições das articulações dos dedos em graus
observação.velocidade_da_mão float32[17] Velocidades das articulações dos dedos em deg/s
observação.tátil float32[5] Força de contato por ponta de dedo em N (se sensores táteis conectados)
observation.images.* caminho do vídeo Quadros da câmera — visão da palma, visão do pulso, visão do espaço de trabalho
ação float32[17] Posições das articulações do dedo alvo da teleoperação da luva
tipo_abertura string Rótulo para o primitivo de aperto utilizado (por exemplo, "pinça_de_precisão", "aperto_de_poder")
carimbo de data/hora float64 Timestamp Unix em segundos
next.done bool Verdadeiro no último quadro de cada episódio
Garantia de Qualidade

Lista de verificação da qualidade dos dados de destreza

Dados de manipulação destreza têm mais modos de falha do que simples pegar e colocar. Revise isso antes de enviar para o Hub.

  • 1
    Todas as 17 articulações têm leituras de posição válidas durante todo o episódio Valores NaN ou travados indicam uma queda de servo. Inspecione observation.hand_state por valores constantes em qualquer articulação em todos os quadros.
  • 2
    A latência da luva para a mão está abaixo de 20ms Verifique o alinhamento do timestamp entre action (da luva) e observation.hand_state. Alta latência faz com que a política aprenda a partir de pares causalmente inconsistentes.
  • 3
    O tipo de aperto é consistente dentro de uma tarefa Uma política para pinça de precisão não irá generalizar se algumas demonstrações usaram apertos de poder. Mantenha cada conjunto de dados em uma estratégia de aperto primária, ou rotule por tipo de aperto.
  • 4
    Eventos de contato são visíveis em posições conjuntas Quando a mão faz contato com um objeto, as articulações dos dedos devem mostrar uma clara desaceleração e deflexão de conformidade. Episódios em que os dedos se ajustam à posição sem deformação de contato podem ter perdido a pegada.
  • 5
    A câmera da palma mostra o objeto durante toda a fase de manipulação O objeto deve ser visível na câmera da palma desde a aproximação até a liberação. Verifique se o suporte da câmera não foi batido e se o FOV cobre o espaço de trabalho da tarefa.
  • 6
    Fluxos táteis têm eventos de contato onde esperado Durante uma pegada de pinça, tanto o tátil do polegar quanto o do indicador devem mostrar aumento de força. Sinais de força ausentes durante o contato confirmado indicam um sensor desconectado ou mal calibrado.

Conjunto de Dados Pronto? Comece o Treinamento.

Envie seu conjunto de dados de manipulação hábil para o HuggingFace e explore modelos compatíveis.