Сбор данных
VLAI L1 создан для крупномасштабного сбора данных телеопераций. Конвейер записи одним щелчком мыши, синхронизация с двумя руками и встроенный телеоптический VR делают его самым быстрым путем от доставки робота до готового к обучению набора данных.
Бимануальная запись телеоперации VR
Подключите и проверьте все системы
rc connect --device l1 --host 192.168.1.45
rc status # check: arms, base, cameras, battery all green
Переместите 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()"
Настройте сцену задачи и камеры
Разместите объекты задачи в одинаковых исходных положениях. Проверьте вид с камер на панели браузера — как наручные камеры (Developer Max), так и любые внешние камеры должны охватывать рабочую область задачи.
Начать сеанс записи через 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
Обзор серий
rc replay \
--dataset ~/datasets/l1-pour-v1 \
--episode 0
Средство просмотра показывает все потоки камер + синхронизированные временные ряды общего состояния. Прежде чем нажимать, удаляйте плохие эпизоды.
Нажмите на HuggingFace Hub
huggingface-cli login
rc push_dataset \
--dataset ~/datasets/l1-pour-v1 \
--repo_id your-username/l1-pour-v1
Схема набора данных L1
Конвейер записи L1 создает мультимодальный набор данных с обоими руками, мобильной базой, всеми камерами и дополнительными языковыми аннотациями.
Контрольный список качества
Телеоператор 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