Сбор данных

Полный рабочий процесс записи для LinkerBot O6. Дистанционное управление лидером и последователями, формат набора данных LeRobot, контрольный список качества эпизодов и ссылки на более широкий конвейер сбора данных.

Рабочий процесс записи для O6

Полный процесс от готовности оборудования до первого эпизода с набором данных. Следуйте инструкциям по порядку.

1

Проверьте оборудование и CAN-интерфейс

Убедитесь, что O6 установлен, включен и интерфейс CAN работает. Бегать candump can0 и убедитесь, что пакеты пульса двигателя появляются, прежде чем продолжить.

2

Настройка расположения задач и камер

Определите описание задачи, настройте камеры под правильным углом и разместите объекты задачи в рабочей области. Последовательная установка сцены во всех эпизодах имеет решающее значение для обобщения политики.

3

Начать сеанс записи

Запустите скрипт управления LeRobot с помощью команды record режим. Это активирует систему для записи эпизодов. Перед записью сеанс будет ожидать вашего триггера запуска.

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

Телеуправляйте и записывайте эпизоды

Используйте руку-лидер (или клавиатуру для простых тестов) для дистанционного управления O6. Нажмите кнопку «Пуск/Стоп», чтобы выделить каждый эпизод. Сбросьте сцену между эпизодами для единообразия.

5

Просмотр и фильтрация выпусков

Используйте инструмент воспроизведения LeRobot для визуального просмотра каждого эпизода. Отбросьте все, что не соответствует приведенному ниже контрольному списку качества. Качество важнее количества: 30 отличных серий лучше 100 посредственных.

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

Загрузить в HuggingFace Hub

Отправьте отфильтрованный набор данных в HuggingFace Hub для совместного использования и обучения. Набор данных сразу же доступен для обучения политике в LeRobot.

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

Формат набора данных LeRobot для O6

Каждый записанный эпизод сохраняется в стандартном формате набора данных LeRobot HuggingFace. Этот формат напрямую совместим с ACT, Diffusion Policy и всеми другими алгоритмами обучения, поддерживаемыми LeRobot.

Структура эпизода

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

Измерения состояния и действия

# 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

Обучите политику на основе вашего набора данных 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

Контрольный список качества эпизода

Примените этот контрольный список к каждому эпизоду, прежде чем включать его в свой набор обучающих данных. Плохие данные хуже, чем их недостаток.

  • Задача выполнена успешно — рука достигла целевого состояния без вмешательства человека. Никаких частичных доработок.
  • Движение плавное и осознанное — никаких резких коррекций, выбросов или внезапных изменений направления. Плавные демонстрации тренируют более плавную политику.
  • Все рамки камеры присутствуют — отсутствие пропущенных кадров, отсутствие перекрытия рабочей области, соответствующей задаче.
  • Совместные состояния непрерывны — в журнале состояний отсутствуют временные интервалы более 40 мс.
  • Продолжительность эпизода постоянна — эпизоды длительностью менее 3 с или более 30 с обычно являются выбросами. Просмотрите их, прежде чем включать.
  • Сцена была сброшена идентично — объекты задачи были возвращены в ту же исходную позицию до начала эпизода.
  • Отсутствие ошибок CAN во время записи - проверять candump can0 регистрирует кадры ошибок во время сеанса.
Обзор конвейера сбора данных →

Готовы тренироваться?

Следуйте инструкциям по обучению LinkerBot O6, чтобы получить полный рабочий процесс от настройки до обучения.