Coleta de Dados
Registre a pressão de contato junto com o estado das juntas do robô e vídeo da câmera. A luva adiciona uma modalidade tátil que captura quão difícil o que o gripper do robô está pressionando — informações invisíveis apenas à visão.
Conexões do Sistema
Conecte todos os dispositivos antes de iniciar qualquer software. A luva é estritamente conectada por USB — não há modo sem fio.
Braço Robótico + Mão
Mão Orca (recomendada) ou outro efetor final. Conectado via adaptador USB Feetech ou CAN, dependendo do braço.
/dev/ttyUSB0 or CAN0Luva Juqiao
USB-C para PC host. Aparece como serial CDC-ACM. Cabo de 1,5 m; use uma extensão USB se necessário para liberdade de movimento.
/dev/ttyACM0Câmera de Pulso
Câmera USB ou GigE montada no pulso do robô, fornecendo uma visão centrada no objeto para treinamento.
/dev/video0 or GigE IPCâmera Superior
Câmera de espaço de trabalho fixa para contexto da cena. Emparelhe com a câmera do pulso para conjuntos de dados de múltiplas vistas.
/dev/video2 or GigE IPDispositivo de Teleoperação
Braço líder (SO-101 / líder OpenArm), controlador VR ou SpaceMouse dirigindo o robô seguidor.
Líder/Titular HIDGravação Passo a Passo
Levante o braço e a mão do robô
Inicie o driver do braço (e o driver da Mão Orca, se aplicável) em terminais separados. Verifique se os joint_states estão publicando antes de prosseguir.
Inicie o driver da luva Juqiao
Inicie o nó ROS2 da luva. Verifique se os dados de 200 Hz estão fluindo antes de iniciar qualquer sessão de gravação.
Inicie as câmeras
Inicie os nós da câmera para vistas do pulso e superiores. Confirme que os tópicos de imagem estão publicando na taxa de quadros alvo (tipicamente 30 fps).
Verifique se todos os fluxos estão sincronizados
Usar ros2 tópico list para confirmar que todos os tópicos necessários estão presentes. Verifique se os timestamps estão dentro de 20 ms entre modalidades antes de gravar qualquer episódio.
Grave um conjunto de dados com LeRobot
Use o script de gravação do LeRobot. O --tactile-topic flag adiciona o fluxo de pressão da luva como uma coluna de conjunto de dados ao lado dos estados das juntas e imagens.
Revise os episódios antes de enviar
Reproduza cada episódio com a sobreposição do mapa de calor para verificar a qualidade dos dados táteis antes de se comprometer com o HuggingFace Hub.
Envie para o HuggingFace Hub
Faça o upload do dataset validado. O cartão do dataset é gerado automaticamente com descrições de modalidade, incluindo tátil.
Esquema do Dataset
Cada quadro no dataset contém as seguintes colunas. Todos os arrays são armazenados como colunas Parquet float32; imagens como sequências de vídeo MP4.
| Coluna | Forma / Tipo | Descrição |
|---|---|---|
| observação.estado | float32[6] | Posições das juntas do braço robótico (radianos). O índice 6 é a abertura do gripper se estiver usando um braço de 6 DOF. |
| observation.hand_state | float32[17] | Posições das juntas da mão Orca (radianos), 17 DOF. Omitir se não houver mão destra. Rotulado por nome da junta no metadados. |
| observação.pressões_táteis | float32[64] | Pressão normalizada do Luva Juqiao por nó, 0.0 (sem contato) a 1.0 (escala total). 200 Hz reduzido para corresponder à taxa de quadros do robô. |
| observação.pressões_táteis_raw | uint16[64] | Valores brutos de ADC de 16 bits. Preservar para re-normalização após recalibração. Opcional; omitir para reduzir o tamanho do conjunto de dados. |
| observação.região_de_aperto | str | Heurística da região de contato ativa: "palma", "polegar", "indicador", "médio", "anel", "mínimo", ou "" (sem contato). |
| observação.imagens.pulso | uint8[H, W, 3] | Quadro RGB da câmera do pulso a 30 fps, armazenado como sequência de vídeo MP4. |
| observação.imagens.sobreposição | uint8[H, W, 3] | Quadro RGB da câmera superior a 30 fps. |
| ação | float32[6 ou 23] | Posições das articulações alvo para o braço (6) e opcionalmente para a mão (17). A forma depende de se a mão destra é presente. |
| instrução_de_linguagem | str | Descrição da tarefa, por exemplo. "pegue o ovo sem quebrá-lo". Habilita o treinamento de política condicionado à linguagem. |
| índice_do_episódio | int | Número do episódio dentro do conjunto de dados. |
| índice_do_quadro | int | Número do quadro dentro do episódio (indexado a partir de 0). |
| carimbo de data/hora | float64 | Segundos decorridos desde o início do episódio. |
Amostragem tátil
A luva transmite a 200 Hz; o robô e as câmeras normalmente operam a 30–100 Hz. O gravador alinha os quadros usando correspondência de timestamp por vizinho mais próximo. Para preservar o fluxo tátil completo de 200 Hz como um array separado:
Lista de Verificação de Qualidade do Episódio
Revise cada episódio em relação a esses critérios antes de incluí-lo em seu conjunto de dados. Um episódio ruim pode introduzir padrões táteis espúrios que degradam o treinamento da política.
-
O fluxo tátil é contínuo — sem lacunas de quadro. Verificar quadro.sequência incrementos sem pulos. Quedas de quadro aparecem como valores repetidos na coluna tátil.
-
A linha de base em repouso está próxima de zero (< 0,03) No início do episódio (antes de qualquer contato), o nó de pressão máxima deve ler abaixo de 0,03. Um desvio acima de 0,05 em repouso indica que a luva precisa de recalibração.
-
Eventos de contato se alinham com garras visíveis no vídeo Repetir com --sobreposição-tátilPicos de pressão (nó máximo > 0,4) devem coincidir com o fechamento visível do gripper na câmera do pulso.
-
A região de garra é consistente durante a fase de contato região_garra deve estabilizar em uma ou duas regiões durante cada garra (por exemplo, "palma" + "indicador"). Regiões que mudam rapidamente indicam desalinhamento da luva ou sinal ruidoso.
-
Latência da luva < 20 ms em relação ao estado do robô Compare o início do evento tátil com o pico de velocidade do gripper. Latência > 20 ms sugere congestionamento do hub USB — conecte a luva diretamente a uma porta USB do host.
-
A instrução de linguagem corresponde à tarefa demonstrada Para conjuntos de dados condicionados por linguagem, certifique-se de que a instrução inserida no início do episódio descreve com precisão o que o operador realmente demonstrou.
-
Sem interferência de cabos com o movimento do robô O cabo USB de 1,5 m não deve restringir os movimentos das mãos do operador ou puxar a luva durante o episódio. Use um clipe de gerenciamento de cabos no antebraço.
Treinamento com Observações Táteis
Políticas que consomem entrada tátil geralmente apresentam uma melhoria de 15–30% em tarefas sensíveis ao contato (manipulação de objetos frágeis, inserção de pinos, dobragem de tecidos) em comparação com linhas de base apenas visuais.