Сбор данных

VLAI L1 создан для крупномасштабного сбора данных телеопераций. Конвейер записи одним щелчком мыши, синхронизация с двумя руками и встроенный телеоптический VR делают его самым быстрым путем от доставки робота до готового к обучению набора данных.

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

Бимануальная запись телеоперации VR

1

Подключите и проверьте все системы

rc connect --device l1 --host 192.168.1.45
rc status   # check: arms, base, cameras, battery all green
2

Переместите L1 в положение записи

Переведите L1 в рабочую область задач, используя WASD на панели браузера. Установите высоту подъема для выполнения задачи (например, 130 см для манипуляций со столешницей). Припаркуйтесь и заблокируйте колеса.

rc teleop --device l1   # open browser panel
# Drive to position, then lock:
python -c "from roboticscenter import L1; r=L1('192.168.1.45'); r.connect(); r.base.lock_wheels(); r.disconnect()"
3

Настройте сцену задачи и камеры

Разместите объекты задачи в одинаковых исходных положениях. Проверьте вид с камер на панели браузера — как наручные камеры (Developer Max), так и любые внешние камеры должны охватывать рабочую область задачи.

4

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

rc record \
  --device l1 \
  --task "Pick up the bottle and pour into the glass" \
  --num_episodes 50 \
  --output ~/datasets/l1-pour-v1 \
  --teleop_mode vr   # or: browser, leader_arms
# Press ENTER in VR to start each episode, ENTER again to end
5

Обзор серий

rc replay \
  --dataset ~/datasets/l1-pour-v1 \
  --episode 0

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

6

Нажмите на HuggingFace Hub

huggingface-cli login
rc push_dataset \
  --dataset ~/datasets/l1-pour-v1 \
  --repo_id your-username/l1-pour-v1
Формат набора данных

Схема набора данных L1

Конвейер записи L1 создает мультимодальный набор данных с обоими руками, мобильной базой, всеми камерами и дополнительными языковыми аннотациями.

Поля в каждом эпизоде. Файл паркета.
наблюдение.left_arm_state float32[8] Положения суставов левой руки в радианах (8 степеней свободы)
наблюдение.right_arm_state float32[8] Положения суставов правой руки в радианах (8 степеней свободы)
наблюдение.base_state float32[3] Мобильная база x, y, курс в метрах и радианах
наблюдение.lift_height поплавок32 Высота подъема туловища в метрах
наблюдение.изображения.* видео путь Наручные камеры (слева, справа), головная камера, внешняя камера рабочего места
action.left_arm float32[8] Целевые положения суставов левой руки из телеоптики VR
action.right_arm float32[8] Целевые положения суставов правой руки из телеоптики VR
языковая_инструкция нить Описание задачи на естественном языке для кондиционирования VLA
временная метка float64 Временная метка Unix в секундах
следующий.сделано логическое значение Правда в последнем кадре каждого эпизода
Гарантия качества

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

Телеоператор VR L1 может создавать уникальные проблемы с качеством данных, связанные с задержкой и бимануальной координацией. Пройдите через это, прежде чем отправляться в Хаб.

  • 1
    Задержка VR во время записи была ниже 50 мс. Во время записи проверяйте монитор задержки на панели браузера. При превышении 50 мс движения рук оператора отстают от действий робота, создавая причинно-следственное несоответствие в наборе данных. При необходимости перезапишите на канал Wi-Fi с меньшей задержкой.
  • 2
    Обе руки двигались как положено (нет эпизодов с одной рукой) При выполнении бимануальных задач убедитесь, что обе руки демонстрируют значительное движение. observation.left_arm_state и observation.right_arm_state. Эпизоды с доминированием одной руки могут указывать на то, что оператор отдает предпочтение одной руке.
  • 3
    Мобильная база оставалась неподвижной во время манипуляций с руками. Если вы не записываете задачи по манипулированию мобильными устройствами, observation.base_state должно быть почти постоянным в каждом эпизоде. Движение основания во время манипуляций приводит к смещению рабочего пространства относительно камер.
  • 4
    Представлены все потоки с камер для всего эпизода. Пропускная способность Wi-Fi L1 может пропускать кадры под нагрузкой. Бегать rc validate_dataset --dataset ~/datasets/l1-pour-v1 для проверки отсутствия кадров во всех потоках камеры.
  • 5
    Языковое обучение соответствует тому, что было продемонстрировано Языковая инструкция устанавливается до начала записи. Если оператор импровизировал другой подход (например, использовал одну руку вместо двух), обновите инструкцию или удалите эпизод.
Следующий шаг

Обучение VLA на основе вашего набора данных

Как только ваш набор данных окажется в HuggingFace Hub, настройте VLA с пространством действий L1.

Точная настройка OpenVLA на данных L1

pip install roboticscenter[vla]

python -m roboticscenter.scripts.finetune_vla \
  --model openvla/openvla-7b \
  --dataset your-username/l1-pour-v1 \
  --action_space l1_bimanual \   # registers the 16-DOF bimanual action head
  --epochs 50 \
  --output_dir outputs/openvla-l1-pour

Развертывание точно настроенного VLA на устройстве (Pro/Max для разработчиков)

rc развертывание vla \ --model выходы/openvla-l1-pour \ --quantize int4 \ --устройство l1 \ --хост 192.168.1.45 # Запускаем политику: политика запуска rc \ --задача «Поднять бутылку и налить в стакан»\ --max_steps 100

Набор данных готов? Начать обучение.

Откройте HuggingFace Hub и настройте модель VLA на основе данных бимануальных манипуляций.