Сбор данных

Сбор данных гуманоидов фундаментально отличается от рабочих процессов, выполняемых только руками. K1 имеет более 22 степеней свободы, должен сохранять равновесие во время телеоперации и требует синхронизированного мультимодального захвата. На этой странице описаны проблемы, методы, формат набора данных и протокол безопасности.

Проблемы сбора данных о гуманоидах

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

Баланс во время телеоперации

K1 должен поддерживать баланс всего тела, пока оператор управляет руками. Движения рук смещают центр масс, требуя от контроллера движения постоянной компенсации. Быстрые команды рукой могут дестабилизировать робота.

📊

Многомерное государство

Состояние суставов всего тела включает 22 глубины резкости плюс IMU, позу головы и дополнительное состояние рук — более 30 измерений за временной шаг. Файлы наборов данных значительно больше, чем наборы данных только для рук. Планирование хранения имеет важное значение.

📷

Синхронизация нескольких камер

Гуманоидные задачи обычно требуют эгоцентрических (наголовных) и экзоцентрических (внешних) камер. Синхронизация нескольких видеопотоков с совместной телеметрией с частотой 50 Гц и выше требует тщательного проектирования конвейера.

👥

Усталость оператора

Телеоперация всего тела на основе виртуальной реальности требует физических усилий. Сеансы продолжительностью более 30 минут на одного оператора значительно ухудшают качество демонстрации. Планируйте ротацию операторов в расширенных кампаниях по сбору платежей.

Методы телеоперации для гуманоидов

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

Телеоперация всего тела в виртуальной реальности Рекомендуется

Использует Meta Quest 3 или аналогичную VR-гарнитуру для отслеживания положения головы и рук оператора. Суставы головы и рук K1 отражают движения оператора в реальном времени. Обеспечивает наиболее естественные и выразительные демонстрации.

Настраивать: Квест 3 + SteamVR, узел k1_vr_teleop ROS2, оператор в перчатках для отслеживания рук.

Задержка: ~20 мс голова, ~40 мс рука от конца до конца.

Лучше всего для: Манипулятивные задачи, перетаскивание, локомотивация всего тела.

Верхняя часть тела лидера-последователя Передовой

Второй экзоскелет человеческого масштаба или система рук лидера отражает верхнюю часть тела спутника K1. Углы соединения сопоставляются непосредственно от лидера к ведомому. Не требует оборудования VR.

Настраивать: Требуется совместимая система ведущих рук (например, бимануальный комплект OpenArm или индивидуальный экзоскелет). Свяжитесь с SVRC для получения партнерских конфигураций.

Лучше всего для: Точные бимануальные манипуляции, где точность отслеживания имеет решающее значение.

Передвижение во время телеоперации

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

# Launch combined teleop: VR for upper body + gamepad for locomotion
ros2 launch k1_teleop k1_combined_teleop.launch.py \
  vr_device:=quest3 \
  gamepad:=xbox \
  robot_ip:=192.168.10.102

Формат набора данных всего тела (более 30 степеней свободы)

Каждый эпизод записывает синхронизированное состояние соединения, кадры камеры и метаданные. Формат совместим с наборами данных LeRobot и HuggingFace.

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

episode_000001/
  joint_states.npy      # [T, 44] — positions, velocities, torques for 22 joints
  imu.npy               # [T, 6]  — accel (3) + gyro (3) from torso IMU
  head_pose.npy         # [T, 2]  — yaw and pitch in radians
  head_cam.mp4          # 1280x720 @ 30 fps, head-mounted egocentric
  left_cam.mp4          # 1280x720 @ 30 fps, left wrist
  right_cam.mp4         # 1280x720 @ 30 fps, right wrist
  external_cam.mp4      # 1920x1080 @ 30 fps, fixed external view
  timestamps.npy        # [T] unix timestamps for joint_states
  metadata.json         # task name, operator, duration, success label

Схема состояния сустава (22 сустава по 2 значения в каждом)

# joint_states.npy shape: [timesteps, 44]
# Columns: [q0_pos, q0_vel, q1_pos, q1_vel, ..., q21_pos, q21_vel]

# Joint index mapping:
# 0-5:   Left leg (hip_pitch, hip_roll, hip_yaw, knee, ankle_pitch, ankle_roll)
# 6-11:  Right leg (same order)
# 12:    Waist (yaw)
# 13:    Head yaw
# 14:    Head pitch
# 15-21: Left arm (shoulder_pitch, shoulder_roll, shoulder_yaw,
#                   elbow_pitch, wrist_pitch, wrist_roll, wrist_yaw)
# 22-28: Right arm (same order)
# Note: total 29 joints in extended K1 config; base K1 has 22

Запись сеанса с помощью k1_agent.py

# Start the platform agent (streams telemetry to RoboticsCenter)
python k1_agent.py \
  --robot-ip 192.168.10.102 \
  --platform-url https://fearless-backend-533466225971.us-central1.run.app \
  --record \
  --task "pick up red block" \
  --cameras head_cam,left_wrist,right_wrist,external

# Episodes auto-numbered and saved to ./recordings/

Конвертировать в формат LeRobot

python convert_k1_to_lerobot.py \
  --input-dir ./recordings/ \
  --output-dir ./dataset/ \
  --repo-id your-username/k1-pick-place

Протокол безопасности во время сбора данных

  • На все время требуется корректировщик — один выделенный человек наблюдает за роботом и удерживает кнопку аварийной остановки. Телеоператор не может одновременно следить за безопасностью.
  • Свободный периметр 3 м × 3 м — отсутствие посторонних лиц, кабелей и оборудования в рабочей зоне во время сеанса прямой трансляции.
  • Ограничение продолжительности эпизода: 60 ​​секунд. — делайте эпизоды короткими. Более короткие эпизоды легче фильтровать по качеству и снижают риск от длительной эксплуатации.
  • 30-минутная ротация оператора — ротация телеоператоров каждые 30 минут в сеансах VR. Усталость ухудшает качество демонстрации и увеличивает частоту ошибок.
  • Немедленно прервите работу и войдите в DAMP при любой нестабильности. — если K1 показывает какие-либо неожиданные колебания или дрейф, нажмите кнопку аварийной остановки и перезапустите режим DAMP. Не пытайтесь стабилизировать вручную.
  • Регистрируйте все инциденты - документируйте любые падения, ситуации, близкие к падению, или эпизоды прерывания. Эти данные полезны для фильтрации качества набора данных и улучшения процедур безопасности.

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

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

  • Задача завершена успешно (в обучающих данных нет частичных завершений)
  • Робот все время сохранял устойчивое равновесие — без спотыканий, колебаний и компенсационных рывков.
  • Все потоки камер содержат полные кадры без пропущенных сегментов.
  • Временные метки состояния соединения являются непрерывными (без пауз > 25 мс при записи 40 Гц)
  • Демонстрация плавная и продуманная — не торопливая, не чрезмерно исправленная.
  • Объект и сцена задачи видны как минимум в двух потоках камер по всему периметру.
Обзор конвейера сбора данных →

Готовы обучить свою первую гуманоидную политику?

После того как вы соберете качественные демонстрации, перейдите к курсу обучения Booster K1, чтобы ознакомиться с полным рабочим процессом обучения и развертывания.