MicroDuck: стратегии движения и разработка задач
В этой теме собраны материалы по MicroDuck / OpenDuck Mini V2: обучение с подкреплением, управление движением, физическая симуляция, оркестрация задач и развёртывание на устройстве. Порядок такой: сначала запускаем базовый вариант, затем разбираем код и только после этого переходим к разработке задач. Материал рассчитан на последовательное изучение с постепенным добавлением записей экспериментов.
Ежедневная программа на 8 дней по одному Notebook в день: 8-дневный план. Обзор демонстраций задач: сборка демонстраций. Текст набора участников: набор ведущих.
Есть также 21-дневная месячная программа группового обучения, в которой на каждую задачу отводится 2–3 дня. Обе программы используют общие материалы и Notebook; восьмидневный короткий вариант сохранён.
Порядок изучения
- Начните с балансировки на баскетбольном мяче: скорость как команда, 61-мерное наблюдение, 14-мерное действие, PPO и награда за контакт.
- Затем физические возмущения в браузере: состояние MuJoCo, возмущения, запись и интерфейс визуализации.
- Переходите к ходьбе на ходулях: параметры исполнительных механизмов, учебный план по форме, сглаживание действий и ограничения переноса из симуляции на реального робота (sim-to-real).
- Изучите качание и вращение и балансировку на шаре с FastSAC и сравните интерфейсы разных задач и алгоритмов.
- В конце переходите к подъёму по лестнице: сначала запуск подъёма, выхода на стол и подъёма на ноги, затем переключение между двумя стратегиями, контакт с перекладиной и обучение по учебному плану.
- Если нужно запустить или изменить код, перейдите к пакету кода. Его полная версия находится в исходном репозитории
every-embodied(каталогmicroduck-playground-stilts); в этой книге он не копируется. - Для RDK X5, веб-демонстрации и диспетчеризации нескольких стратегий перейдите к развёртыванию на устройстве и в вебе.
- Для запуска проверок по порядку занятий откройте вход в Notebook.
- На восьмой день утёнок учится понимать языковые команды и ориентироваться в разных комнатах: запустите многосценную навигацию LightNav-0. Используется GPU для подключения уже существующей модели; модель навигации не обучается и плата не подключается.
Структура каталога
05-microduck-movement-policy-and-task-development-topic/
├── README.md
├── learning-plan.md
├── recruitment-copy.md
├── monthly-team-learning-recruitment-copy.md
├── 01-task-information/
│ ├── 01-microduck-basketball-balance-reinforcement-learning/
│ ├── 02-mjswan-microduck-browser-physical-disturbance/
│ ├── 03-microduck-stilt-walker-reinforcement-learning-reproduction/
│ ├── 04-microduck-sway-rotation-reinforcement-learning-reproduction/
│ ├── 05-motrixlab-microduck-ball-balance-and-fastsac/
│ ├── 06-microduck-tread-climbing-reinforcement-learning-guide/
│ ├── 07-rdk-on-side-and-web-deployment/
│ └── selected-videos/
├── 02-executable-code/
│ └── lightnav-learning/ # Сервис навигации, сборка сцен и замкнутые видео
└── 03-Notebook/ # 8 учебных Notebook, проверка на GPU и RDK X5/BPU
Пакет кода microduck-playground-stilts (src/, scripts/, tests/, hardware/, docs/) находится в исходном репозитории и здесь не продублирован.
Линия Notebook
Notebook рекомендуется запускать на рабочей станции Ubuntu, а Windows-компьютер использовать только для доступа к Jupyter через браузер. Так MuJoCo, код обучения и зависимости Python работают в одной среде; для задач движения можно дополнительно подключить RDK X5 как отдельный BPU-вывод. Восьмой Notebook LightNav-0 использует только GPU рабочей станции и не подключает плату. Внутри Notebook есть контракт задачи, проверка моделей и вывод видео, поэтому не нужен дополнительный слой переходов «Windows Notebook → Ubuntu → RDK».
Модели ONNX компилируются в HBM инструментарием, совместимым с SDK RDK X5. Компиляция выполняется в Docker на Ubuntu. Плата запускает HBM нужной задачи; когда сервис на плате и симуляция на рабочей станции готовы, видео задач можно создать заново.
Задачи и содержание
| Задача | Что изучается | Демонстрация |
|---|---|---|
| Балансировка на баскетбольном мяче | Наблюдения и действия, PPO, рекуррентная сеть и награда за контакт | Удержание равновесия на баскетбольном мяче |
| Физические возмущения в браузере | Состояние MuJoCo, внешние силы, запись и визуализация | Перетаскивание и взаимодействие с внешними силами |
| Ходьба на ходулях | Исполнительный механизм BAM, учебный план по форме и сглаживание действий | Ходьба на ходулях 25 см / 200 см |
| Качание и вращение | Награда задачи, экспорт ONNX и интерфейс развёртывания | Качание на качелях и вращение |
| Балансировка на шаре и FastSAC | Обучение FastSAC, экспорт модели и оценка | Обучение балансировке на сферической поверхности |
| Подъём по лестнице | Два навыка — подъём и вставание, контакт с перекладиной и учебный план | Подъём по лестнице на GPU, выход на стол и устойчивое стояние |
| RDK X5 и веб-развёртывание | Компиляция HBM, вывод BPU, TCP и диспетчеризация стратегий | Вывод на плате и ходьба в симуляции |
| LightNav-0 навигация по языку | Изображения и язык, прогноз траектории, MPC и эксперименты в разных сценах | Навигация по жилой квартире, гостиной и коридору |
Сопутствующий код
Пакет microduck-playground-stilts в исходном репозитории — это воспроизводимый облегчённый снимок рабочего каталога с текущим кодом задач и нашими добавлениями: лестницей, исполнительными механизмами, оценкой и тестами. Из него не копируются .venv/, журналы, кэш обучения, checkpoint и результаты генерации: эти файлы велики, привязаны к конкретной машине и не должны попадать в основной репозиторий материалов.
Каждая учебная задача объясняет источник модели, метод обучения и соответствующую реализацию; пакет кода сохраняет лицензию вышестоящего проекта и локальные заметки об экспериментах.
Видеоматериалы
Каждая задача представлена в сборке демонстраций: GPU-вывод, BPU-вывод, сравнение размеров ходулей, полный подъём по лестнице и обзор всех задач. На странице используются сжатые GIF; повторный запуск Notebook создаёт MP4 и отчёт об оценке для каждой задачи.
Как вести записи дальше
Для каждого эксперимента фиксируйте название задачи, версию кода, checkpoint, число сред, число эпох обучения, random seed, критерий успеха, путь к видео и результаты оценки. Тогда эксперимент можно воспроизвести и сравнить с другими.