Мастер-класс посвящён робототехнике и предполагает работу с манипулятором LeRobot. Участники получат практический опыт работы с симулятором Mujoco, познакомятся с основными модулями управления робо-руки и нейросетевой моделью, которая обеспечивает работу системы. В ходе мастер-класса школьники узнают, как записывать траектории движения манипулятора для сбора объектов, и увидят, как эти траектории использовались для обучения нейросетевой модели.
Параметры мастер-класса:
- количество участников: 15 человек;
- длительность: 90 минут;
- кураторы: ведущий и два ассистента.
Важно:
requirements.txtтянет актуальныйlerobotизhuggingface/lerobot@main.
Устанавливайте зависимости только через./install.shилиpip install -r requirements.txt.
./install.shПосле установки активируйте окружение:
source .venv/bin/activateЕсли окружение уже было создано до обновления зависимостей, выполните:
pip install -r requirements.txt.
├── README.md
├── requirements.txt
├── 1.collect_data_ru_master.ipynb # Сбор данных через телеоперацию в MuJoCo (SO-101)
├── 2.visualize_data_ru_so101.ipynb # Визуализация собранных траекторий
├── master_arm_control.py # Мост между реальной мастер-рукой SO-101 и MuJoCo
├── mujoco_env/ # Окружение MuJoCo-симулятора
│ ├── y_env.py # Основная среда (SO-101, 5-DOF + gripper)
│ ├── y_env2.py # Среда с 2 кружками + языковые инструкции
│ ├── mujoco_parser.py # Парсер и визуализатор MuJoCo
│ ├── ik.py # Обратная кинематика
│ ├── transforms.py # Преобразования координат
│ └── utils.py # Утилиты
├── asset.zip # 3D-модели (распаковывается install.sh)
└── asset/ # 3D-модели SO-101 и объектов (после распаковки)
└── so101/ # URDF/XML модели манипулятора SO-101
- Подключаем роботов к ноутбукам
lerobot-find-port - Калибруем leader и follower
lerobot-calibrate - Пробуем телеоперацию
lerobot-teleoperate - Даём 5-10 минут порадоваться и доделать отстающим
- Коротко рассказываем что вот есть imitation learning и VLA модели и не обязательно быть ML-щиком, но нужен датасет
- Рассказываем про формат датасета (v3), показываем формат
- Записываем датасет с кубиком через
lerobot-record - Даем 10-15 минут попробовать пособирать и понять что это не просто
- Объясняем что в том числе используются симуляторы для сбора датасетов
- Перетаскиваем кружки в MuJoCo и записываем это — открываем
1.collect_data_ru_master.ipynb
Управление по суставам SO-101:
| Клавиши | Действие |
|---|---|
| Q / A | shoulder_pan (основание) ± |
| W / S | shoulder_lift (плечо) ± |
| E / D | elbow_flex (локоть) ± |
| I / K | wrist_flex (запястье) ± |
| O / L | wrist_roll (вращение запястья) ± |
| Пробел | Переключить захват |
| Z | Сброс эпизода |
- Симулятор теперь сразу пишет датасеты в real-совместимом формате:
so_follower,10 fps, камерыobservation.images.front/observation.images.side, видеоh264. - Канонический numeric-контракт (как в
lerobot-recordдляso_follower):observation.stateиactionэто одни и те же 6 joint-каналов*.pos(shoulder_pan ... gripper), где суставы в градусах, а gripper в шкале0..100. - Актуальный merged train-датасет:
final-dataset/. run_official_smolvla_train_cached.shтеперь сам добавляет нужные train-флаги дляfinal-dataset:rename_map,policy.empty_cameras=1,dataset.video_backend=pyav,policy.push_to_hub=false.- Для запуска обучения на
A100с mixed precision используйтеrun_official_smolvla_train_cached_amp.sh. - Устаревшие маршруты конвертации state-контракта перечислены в
DATASET_FORMAT_DEPRECATIONS.md.