Запись тактильных демонстраций

Тактильные данные — это недостающая модальность в большинстве наборов данных для обучения роботов. На этой странице объясняется, почему это важно, как записывать синхронизированные потоки тактильных сигналов + руки + камеры, расширенный формат набора данных и как обучать политикам, использующим тактильные входные данные.

Почему тактильные данные улучшают обучение роботов

Видение говорит о политике где захват есть. Проприоцепция говорит об этом как далеко пальцы закрыты. Ни то, ни другое не говорит об этом устойчив ли захват. Политика, обученная только на данных о зрении и суставах, должна научиться делать выводы о качестве захвата косвенно — на основе движения объекта, пределов силы руки или метода проб и ошибок во время развертывания. Добавление тактильного зондирования обеспечивает прямой контроль состояния контакта: политика получает сигнал истинности, отличающий надежный захват от рискованного на каждом этапе каждой демонстрации. Это особенно важно для деформируемых, прозрачных объектов или объектов переменного размера, где оценка качества визуального восприятия ненадежна.

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

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

  1. Рука робота — обеспечивает положение суставов, скорость и положение рабочего органа на частоте 100–500 Гц через USB или Ethernet. Чтобы получить состояние сустава с аппаратной отметкой, используйте API меток времени Arm SDK, а не системное время.
  2. Датчик(и) Paxini Gen3 — подключен к USB-концентратору с питанием, установленному на запястье робота. Каждый кадр получает метку времени на главном компьютере во время прерывания USB (наносекундное разрешение, джиттер <0,5 мс).
  3. Камера — одна камера на запястье (опционально: одна верхняя камера). Используйте камеру USB или GigE с аппаратной синхронизацией триггера или камеру с программным запуском и известной задержкой. Запись со скоростью 30–60 кадров в секунду.

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

# Complete synchronized recording session из paxini.sync импортировать MultiSourceRecorder рекордер = MultiSourceRecorder( рука=arm_interface, датчик = паксини.Датчик(), камера = camera_interface, output_dir="./demo_recordings/", эпизод_префикс="хват_место" ) рекордер.start_episode() # ... perform the manipulation demo ... рекордер.end_episode() # saves episode_000.hdf5

Формат набора данных — расширенная схема LeRobot

Конвейер сбора данных Paxini Gen3 расширяет стандартный формат набора данных LeRobot HDF5 дополнительными тактильными каналами. Существующие инструменты LeRobot (загрузка данных, визуализация, обучение политикам) остаются полностью совместимыми — новые ключи просто игнорируются конвейерами, которые их не используют.

Ключ HDF5 Форма Источник
наблюдение.состояние(Т, 7)Положения суставов рук + ширина захвата
наблюдение.изображения.запястье(Т, Ч, Ш, 3)Наручная камера (uint8 RGB)
действие(Т, 7)Целевые положения суставов + команда захвата
наблюдение.тактильное.pressure_map(Т, 8, 8)Массив давления Paxini Gen3 (кПа, float32)
наблюдение.тактильное.total_force_n(Т,)Общая нормальная сила на кадр (Ньютоны)
наблюдение.тактиль.in_contact(Т,)Логический флаг контакта для каждого кадра
наблюдение.тактиль.contact_centroid(Т, 2)Контактный центр (строка, столбец) на кадр
мета/timestamps_ns(Т,)Наносекундные временные метки для всех каналов

Новые тактильные клавиши подсвечиваются. Все остальные ключи соответствуют стандартной схеме LeRobot.

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

Запускайте базовую калибровку перед каждым сеансом Вызов sensor.calibrate() с открытым и незагруженным захватом. Это сводит к нулю контакт пальцев с самим собой и напряжение кабеля. Повторно откалибруйте, если положение руки значительно изменилось.
Убедитесь, что события контакта соответствуют видео Просмотрите 5 эпизодов в визуализаторе данных, прежде чем собирать полный набор данных. in_contact нарастающий фронт должен совпадать с видимым моментом контакта кончика пальца с предметом в видеокамере. Задержка >20 мс указывает на проблему с выравниванием метки времени.
Охватите весь диапазон силы в своих демонстрациях Старайтесь регистрировать хваты на легком, среднем и сильном уровне хвата. Если все ваши демонстрации используют максимальную силу захвата, политика не научится модулировать контактное давление. Меняйте вес объекта и его соответствие в разных эпизодах.
Отмечать и исключать события проскальзывания из данных обучения Эпизоды, когда объект ускользает в середине захвата, но демонстрация продолжает успешный результат, содержат противоречивые сигналы контроля. Используйте SDK paxini.annotate.flag_slip_events(episode) чтобы автоматически пометить их для проверки.
Проверьте насыщение датчика Если pressure_map.max() достигает 600 кПа в любом эпизоде, датчик насыщается. Уменьшите силу захвата или используйте вариант для ладони (более низкое пиковое давление на таксель) для более тяжелого захвата.

Обучение политике с тактильной информацией

Чтобы добавить тактильность в качестве модальности наблюдения в ACT или Diffusion Policy, расширьте конфигурацию наблюдения, включив в нее карту давления или агрегированный скаляр (total_force_n). Карта давления предоставляет полную пространственную информацию, но добавляет 64 плавающих элемента на кадр для каждого датчика; скаляр легче интегрировать, и его достаточно для задач качества двоичного понимания.

# ACT config snippet — add tactile to observation space клавиши наблюдения: - наблюдение.состояние # joint positions - наблюдение.изображения.запястье # camera - наблюдение.тактиль.total_force_n # scalar - наблюдение.тактильное.pressure_map # optional: full map # Normalize tactile observations тактильная_нормализация: total_force_n: {среднее: 2,5, стандартное: 1,8} Pressure_map: {среднее: 12,0, стандартное: 45,0} # kPa statistics from your dataset

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

Более широкий контекст стратегий ловкого ручного сбора данных см. Руководство по ловким рукам.