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.
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 Passo a Passo
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
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())"
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
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.
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.
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
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
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.
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.
-
1Todas 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_statepor valores constantes em qualquer articulação em todos os quadros. -
2A latência da luva para a mão está abaixo de 20ms Verifique o alinhamento do timestamp entre
action(da luva) eobservation.hand_state. Alta latência faz com que a política aprenda a partir de pares causalmente inconsistentes. -
3O 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.
-
4Eventos 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.
-
5A 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.
-
6Fluxos 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.