Сбор данных

Запись данных ловких манипуляций с помощью Orca Hand принципиально отличается от простого сбора данных с помощью захвата — 17 суставов пальцев, дополнительные тактильные потоки и телеоперация в перчатках — все это требует тщательной синхронизации. В этом руководстве описан весь рабочий процесс.

Перед записью

Настройка оборудования для оперативного сбора данных

Установка записи Orca Hand имеет больше потоков, чем простая рука-захват — суставы пальцев, дополнительные тактильные ощущения, камеры и суставы рук должны быть синхронизированы.

🕐

Рука Орки (USB-сериал)

Состояние пальца с 17 степенями свободы при частоте до 100 Гц. Проверять: python -c "from orca_core import OrcaHand; h=OrcaHand('/dev/ttyUSB0'); h.connect(); print(h.get_positions())"

🤸

Устройство телеуправления

Перчатка Juqiao (рекомендуется) или отслеживание рук в виртуальной реальности. Сопоставляет положение пальцев оператора с суставами рук Orca Hand в режиме реального времени.

📷

Камера на ладони/запястье

Маленькая USB-камера внутри ладони, направленная на кончики пальцев и предмет. Критически важен для задач, требующих большого количества контактов, где контакт кончика пальца с предметом определяет успех захвата.

📈

Тактильные датчики (опция)

Paxini или совместимые датчики на кончиках пальцев. Отдельное USB-подключение. Добавьте поток контактной информации в свой набор данных для обучения политике на основе контактов.

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

Пошаговый процесс записи

1

Поднять руку + кисть + перчатку.

# Terminal 1: Arm (if using OpenArm)
source ~/openarm_ws/install/setup.bash
ros2 launch openarm_ros2 openarm.launch.py use_fake_hardware:=false can_interface:=can0

# Terminal 2: Orca Hand
source ~/orca_ws/install/setup.bash
ros2 launch orca_ros2 orca_hand.launch.py port:=/dev/ttyUSB0 handedness:=right

# Terminal 3: Juqiao Glove (see Juqiao Glove software page)
python -m juqiao_glove.stream --port /dev/ttyUSB1
2

Убедитесь, что все трансляции ведутся в прямом эфире

# Check finger joint states
ros2 topic hz /orca_hand/joint_states   # expect ~100 Hz

# Check glove stream
ros2 topic hz /juqiao_glove/finger_angles   # expect ~100 Hz

# Check camera
python -c "import cv2; cap=cv2.VideoCapture(0); print('Camera OK:', cap.isOpened())"
3

Калибровка сопоставления перчаток и рук

Запустите калибровку перчаток, чтобы сопоставить размеры пальцев с диапазоном суставов руки Orca. Этот шаг обеспечивает естественную телеоперацию — ваша открытая рука = открытая косатка, ваш кулак = кулак косатки.

python -m orca_core.scripts.calibrate_teleop \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --handedness right
4

Настройте сцену задач

Размещайте объекты в одинаковых исходных положениях. Ловкое хватание очень чувствительно к позе объекта — используйте фиксаторы (ленту, замазку), чтобы поддерживать постоянное расположение объектов в разных эпизодах.

5

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

python -m orca_core.scripts.record_episodes \
  --hand_port /dev/ttyUSB0 \
  --glove_port /dev/ttyUSB1 \
  --camera_id 0 \
  --fps 30 \
  --output_dir ~/datasets/orca-grasp-v1 \
  --num_episodes 50 \
  --task "Pick up the pen using a precision pinch grasp"

Регистратор сохраняет синхронизированные положения суставов пальцев, углы наклона перчаток, кадры камеры и (если подключено) тактильные показания в наборе данных Parquet.

6

Проверьте качество захвата

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

python -m orca_core.scripts.visualize_episode \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --episode_index 0
7

Нажмите на HuggingFace Hub

python -m orca_core.scripts.push_dataset \
  --dataset_dir ~/datasets/orca-grasp-v1 \
  --repo_id your-username/orca-grasp-v1
Формат набора данных

Схема набора данных Orca Hand

Формат набора данных Orca Hand расширяет стандартную схему LeRobot дополнительными потоками, специфичными для пальцев, и тактильными потоками.

Поля в каждом эпизоде. Файл паркета.
наблюдение.hand_state float32[17] Все 17 положений суставов пальцев в градусах
наблюдение.hand_velocity float32[17] Скорость суставов пальцев в град/с
наблюдение.тактильный float32[5] Контактная сила на кончик пальца в Н (если подключены тактильные датчики)
наблюдение.изображения.* видео путь Рамки камеры — вид на ладонь, вид на запястье, вид на рабочую область
действие float32[17] Целевые положения суставов пальцев при телеоперации в перчатках
захват_типа нить Метка используемого примитива захвата (например, «precision_pinch», «power_grasp»)
временная метка float64 Временная метка Unix в секундах
следующий.сделано логическое значение Правда в последнем кадре каждого эпизода
Гарантия качества

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

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

  • 1
    Все 17 суставов имеют действительные показания положения на протяжении всего эпизода. Значения NaN или застрявшие значения указывают на отказ сервопривода. Осмотреть observation.hand_state для постоянных значений в любом суставе во всех кадрах.
  • 2
    Задержка между перчатками и руками составляет менее 20 мс. Проверьте соответствие временных меток между action (из перчатки) и observation.hand_state. Высокая задержка заставляет политику учиться на причинно-несовместимых парах.
  • 3
    Тип захвата единообразен в рамках задачи Политика точного сжатия не будет универсальной, если в некоторых демонстрациях использовался захват власти. Сохраняйте каждый набор данных в соответствии с одной основной стратегией сбора данных или маркируйте его по типу сбора данных.
  • 4
    События контакта видны в совместных позициях Когда рука соприкасается с предметом, в суставах пальцев должно наблюдаться явное замедление и податливое отклонение. Эпизоды, когда пальцы фиксируются в нужном положении без контактной деформации, возможно, не захватили захват.
  • 5
    Камера Palm показывает объект на протяжении всей фазы манипуляции Объект должен быть виден в камере ладони от подхода до момента отпускания. Убедитесь, что крепление камеры не пострадало и что поле обзора охватывает рабочую область.
  • 6
    Тактильные потоки содержат события контакта там, где и ожидалось. Во время щипкового захвата тактильно большой и указательный пальцы должны показывать увеличение силы. Отсутствие сигналов силы во время подтвержденного контакта указывает на отсоединенный или неправильно откалиброванный датчик.

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

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