Coleta de Dados

O fluxo de trabalho de gravação completo para o LinkerBot O6. Teleoperação líder-seguidor, formato de conjunto de dados LeRobot, lista de verificação de qualidade de episódios e links para o pipeline de coleta de dados mais amplo.

Fluxo de Trabalho de Gravação para o O6

O processo completo desde o hardware pronto até o primeiro episódio do conjunto de dados. Siga os passos na ordem.

1

Verifique o hardware e a interface CAN

Confirme se o O6 está montado, ligado e a interface CAN está ativa. Execute candump can0 e verifique se os pacotes de batimento cardíaco do motor aparecem antes de continuar.

2

Configure a tarefa e o layout da câmera

Defina a descrição da tarefa, configure a(s) câmera(s) nos ângulos corretos e coloque os objetos da tarefa no espaço de trabalho. Uma configuração de cena consistente entre os episódios é crítica para a generalização da política.

3

Inicie a sessão de gravação

Inicie o script de controle do LeRobot com o record modo. Isso prepara o sistema para a gravação do episódio. A sessão aguardará seu gatilho de início antes de capturar.

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=record \
  --control.fps=30 \
  --control.repo_id=your-username/o6-task-name \
  --control.num_episodes=50 \
  --control.single_task="Pick up the blue block"
4

Teleoperar e gravar episódios

Use um braço líder (ou seu teclado para testes simples) para teleoperar o O6. Pressione a tecla de iniciar/parar para delimitar cada episódio. Redefina a cena entre os episódios para consistência.

5

Revisar e filtrar episódios

Use a ferramenta de replay do LeRobot para revisar visualmente cada episódio. Descarte qualquer um que não passe na lista de verificação de qualidade abaixo. Qualidade sobre quantidade: 30 episódios excelentes superam 100 medianos.

python -m lerobot.scripts.control_robot \
  --robot.type=linkerbot_o6 \
  --control.type=replay \
  --control.repo_id=your-username/o6-task-name \
  --control.episode=0
6

Carregar para o HuggingFace Hub

Envie seu conjunto de dados filtrado para o HuggingFace Hub para compartilhamento e treinamento. O conjunto de dados está imediatamente disponível para treinamento de políticas no LeRobot.

huggingface-cli login
python -m lerobot.scripts.push_dataset_to_hub \
  --repo_id=your-username/o6-task-name

Formato do Conjunto de Dados LeRobot para O6

Cada episódio gravado é armazenado no formato padrão de conjunto de dados HuggingFace do LeRobot. Este formato é diretamente compatível com ACT, Diffusion Policy e todos os outros algoritmos de treinamento suportados pelo LeRobot.

Estrutura do episódio

dataset/
  data/
    episode_000000/
      observation.state.npy     # [T, 12] — 6 joint positions + 6 velocities
      action.npy                # [T, 6]  — 6 target joint positions
      observation.images.wrist_cam/
        frame_000000.png        # 640x480 @ 30 fps
        ...
      observation.images.overhead_cam/
        frame_000000.png
        ...
      episode.json              # {task, success, duration_s, num_frames}
  meta_data/
    info.json                   # dataset schema version, robot type, fps
    stats.json                  # per-channel mean, std, min, max

Dimensões de estado e ação

# observation.state: [T, 12]
# Columns: [j0_pos, j1_pos, j2_pos, j3_pos, j4_pos, j5_pos,
#            j0_vel, j1_vel, j2_vel, j3_vel, j4_vel, j5_vel]
# Units: radians and radians/second

# action: [T, 6]
# Columns: [j0_target, j1_target, j2_target, j3_target, j4_target, j5_target]
# Units: radians

Treine uma política a partir do seu conjunto de dados O6

python -m lerobot.scripts.train \
  --dataset_repo_id=your-username/o6-task-name \
  --policy.type=act \
  --output_dir=./checkpoints/o6-act-v1 \
  --training.num_epochs=100

Lista de Verificação de Qualidade do Episódio

Aplique esta lista de verificação a cada episódio antes de incluí-lo em seu conjunto de dados de treinamento. Dados ruins são piores do que menos dados.

  • Tarefa concluída com sucesso — o braço alcançou o estado objetivo sem intervenção humana. Sem conclusões parciais.
  • O movimento é suave e deliberado — sem correções bruscas, excessos ou mudanças de direção repentinas. Demonstrações suaves treinam políticas mais suaves.
  • Todos os quadros da câmera estão presentes — sem quadros perdidos, sem oclusões da região de espaço de trabalho relevante para a tarefa.
  • Os estados das juntas são contínuos — sem lacunas de tempo maiores que 40 ms no registro de estado.
  • A duração do episódio é consistente — episódios mais curtos que 3 s ou mais longos que 30 s geralmente são outliers. Revise-os antes de incluir.
  • A cena foi reiniciada de forma idêntica — os objetos da tarefa foram retornados à mesma posição inicial antes do início do episódio.
  • Sem erros de CAN durante a gravação — verifique candump can0 os registros em busca de quadros de erro durante a sessão.
Visão Geral do Pipeline de Coleta de Dados →

Pronto para Treinar?

Siga o caminho de aprendizado do LinkerBot O6 para o fluxo de trabalho completo de configuração para treinamento.