Почему бимануальный сбор данных сложнее

При сборе данных с помощью одной руки плохая демонстрация влияет только на траекторию одной руки. Вы записываете 50 демонстраций, отбрасываете 5 плохих и тренируетесь на 45. При двуручном сборе данных ошибка в точке передачи делает недействительной оба траектории оружия для этой демонстрации одновременно. Виды отказа связаны.

Эта связь имеет два практических последствия. Во-первых, вам нужно больше демонстраций — 100 вместо 50 — потому что двуручные задачи имеют более высокую вариативность, а политика требует большего количества примеров для изучения структуры координации. Во-вторых, вам нужна более строгая последовательность при каждой демонстрации. Демонстрация с одной рукой, которая на 80% стабильна, тренируется достаточно хорошо. Бимануальная демонстрация, где одна рука постоянна, а другая варьируется, не учит политику ничему полезному в отношении времени координации.

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

Формат бимануального набора данных LeRobot

Интеграция DK1 с LeRobot расширяет стандартный формат с одной рукой за счет двойных массивов с шарнирным состоянием. Каждый временной шаг в наборе данных содержит:

# Bimanual dataset observation keys per timestep: наблюдение.joint_states.left # shape: (6,) — left follower joint angles in radians наблюдение.joint_states.right # shape: (6,) — right follower joint angles in radians наблюдение.гриппер.слева # shape: (1,) — left gripper position [0=open, 1=closed] наблюдение.захват.правый # shape: (1,) — right gripper position наблюдение.изображения.рабочая область # shape: (H, W, 3) — workspace overhead/front camera наблюдение.изображения.запястье # shape: (H, W, 3) — primary wrist camera action.joint_states.left # shape: (6,) — target left joint angles action.joint_states.right # shape: (6,) — target right joint angles action.gripper.left # shape: (1,) действие.гриппер.право # shape: (1,)

Ключевое отличие от однорукого: пространство действия 14-мерное (6+6 суставов + 2 захвата). ACT обрабатывает это автоматически — вы указываете измерение действия в конфигурации обучения, и никаких других изменений не требуется.

Рабочий процесс записи

источник ~/dk1-env/bin/activate # Start a recording session — 100 episodes for the cube handoff task python -m lerobot.scripts.record \ --robot-path ~/dk1-config.yaml \ --robot-type dk1_bimanual \ --fps 50 \ --root ~/dk1-datasets \ --repo-id куб-хэндофф-v1 \ --num-episodes 100 \ --warmup-time-s 3 \ --episode-time-s 30 \ --reset-time-s 5 # --warmup-time-s: time after pressing record before capture starts (use this to position the cube) # --episode-time-s: max demo length — cube handoff should complete in under 20s; 30s gives buffer # --reset-time-s: time between episodes to return arms to home and reposition the cube

Перед началом записи запустите 10–15 практических демонстраций, чтобы разогреть моторную память для выполнения задания. Первые 5–10 записанных демо будут для вас худшими — это ожидаемо. Не останавливайтесь, чтобы просмотреть их во время сеанса; просмотрите и отбросьте плохие демо-версии после того, как будут записаны все 100.

Контрольный список качества для бимануальных данных

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

Синхронизация рук при передаче обслуживания Обе руки должны одновременно находиться в пределах 3 см от намеченной точки передачи. Асинхронная передача обслуживания, когда одна рука ждет другой, учит политику приостанавливаться, что переносится плохо.
Постоянное стартовое положение Куб должен начинаться в пределах 2 см от одной и той же позиции для каждой демонстрации. Используйте пометки из раздела 1. Различия в начальной позиции вынуждают политику обобщать до того, как она усвоит основную задачу.
Чистый хват — обе руки Каждая рука должна добиться стабильного захвата, прежде чем переходить к следующей фазе. Ускользание в середине трансферта создает траекторию, которую невозможно надежно воспроизвести в рамках политики.
Возвращение в домашнюю позу Обе руки должны аккуратно вернуться в исходную позу в конце каждой демонстрации. Демонстрации, которые заканчиваются в середине движения, создают набор данных, в котором границы эпизодов неоднозначны.
Покрытие камеры рабочего места Момент передачи должен быть виден в кадре камеры рабочего места. Если тела роботов закрывают обзор, отрегулируйте угол камеры, прежде чем продолжить.
Постоянное время Продолжительность эпизода в разных демонстрациях должна различаться не более чем на ±5 секунд. Большая разница во времени указывает на непоследовательное выполнение и создает набор данных с высокой энтропией пространства действий.
Размер целевого набора данных: 100 демонстраций — рекомендуемый минимум для бимануального обучения ACT. Результаты исследований показывают, что бимануальные задачи требуют примерно в два раза больше данных, чем сопоставимые задачи одной рукой, поскольку структура совместной координации более сложна, а пространство действий больше. Если после обучения в модуле 5 ваш показатель успеха ниже 40%, первое, что нужно попробовать, — это собрать еще 50 целевых демонстраций.

Часть 4 завершена, когда...

У вас есть 100 записанных демонстраций в формате LeRobot на сайте ~/dk1-datasets/cube-handoff-v1/. После проверки и отбора не менее 90 демо-версий проходят контрольный список качества. Оба массива совместных состояний присутствуют на частоте 50 Гц для каждого эпизода. Обе камеры присутствуют и показывают полную последовательность задач, включая момент передачи управления. Вы побежали python -m lerobot.scripts.visualize_dataset --repo-id cube-handoff-v1 и подтвердил, что структура набора данных действительна.