Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

MicroDuck: стратегии движения и разработка задач

В этой теме собраны материалы по MicroDuck / OpenDuck Mini V2: обучение с подкреплением, управление движением, физическая симуляция, оркестрация задач и развёртывание на устройстве. Порядок такой: сначала запускаем базовый вариант, затем разбираем код и только после этого переходим к разработке задач. Материал рассчитан на последовательное изучение с постепенным добавлением записей экспериментов.

Ежедневная программа на 8 дней по одному Notebook в день: 8-дневный план. Обзор демонстраций задач: сборка демонстраций. Текст набора участников: набор ведущих.

Есть также 21-дневная месячная программа группового обучения, в которой на каждую задачу отводится 2–3 дня. Обе программы используют общие материалы и Notebook; восьмидневный короткий вариант сохранён.

Порядок изучения

  1. Начните с балансировки на баскетбольном мяче: скорость как команда, 61-мерное наблюдение, 14-мерное действие, PPO и награда за контакт.
  2. Затем физические возмущения в браузере: состояние MuJoCo, возмущения, запись и интерфейс визуализации.
  3. Переходите к ходьбе на ходулях: параметры исполнительных механизмов, учебный план по форме, сглаживание действий и ограничения переноса из симуляции на реального робота (sim-to-real).
  4. Изучите качание и вращение и балансировку на шаре с FastSAC и сравните интерфейсы разных задач и алгоритмов.
  5. В конце переходите к подъёму по лестнице: сначала запуск подъёма, выхода на стол и подъёма на ноги, затем переключение между двумя стратегиями, контакт с перекладиной и обучение по учебному плану.
  6. Если нужно запустить или изменить код, перейдите к пакету кода. Его полная версия находится в исходном репозитории every-embodied (каталог microduck-playground-stilts); в этой книге он не копируется.
  7. Для RDK X5, веб-демонстрации и диспетчеризации нескольких стратегий перейдите к развёртыванию на устройстве и в вебе.
  8. Для запуска проверок по порядку занятий откройте вход в Notebook.
  9. На восьмой день утёнок учится понимать языковые команды и ориентироваться в разных комнатах: запустите многосценную навигацию 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, критерий успеха, путь к видео и результаты оценки. Тогда эксперимент можно воспроизвести и сравнить с другими.